1
$\begingroup$

I have been unable to find any tutorials or examples of creating molecules using a Generative Adversarial Network (GAN) in the Wolfram language. It appears that the Selfies paclet was created to assist in such work in ML models. If you are aware of how to use GANs for chemistry using WL, or if you are aware of a resource that provides an example, I would be grateful if you could share links/resources.

Thank you,

$\endgroup$

1 Answer 1

1
$\begingroup$

You may be restricting yourself to overly complicated techniques in particular GANs. There are far simpler methods for generating molecules and in fact statistical models such as Markovian text generators can generate valid SMILES strings and can even generate libraries of molecules that follow a theme. This has all been worked out in the publication found here:

Machine Learning Methods in Chemistry by James Bonnar

Interestingly what is shown in the book is a technique that first starts out by creating a database, simply a list of entries separated by newline characters, of SMILES strings. You don't need to understand how that is done, but your database should contain SMILES string representing the different molecules you wish to combine. A link is given in the text to all the programs you will need including the Markovian test generator written in python. This can be run from within Mathematica. Once you learn all that the world is your oyster because you can use the combinatorial libraries thereby generated to do all sorts of ML apps including property prediction and retrosynthesis. I strongly recommend reading the entire book because it is clearly written and is somewhat revolutionary. Uses Mathematica's Predict function to form a "cognitive model" of chemical reactions. SMILES strings are mapped to numbers which get equated on the left and right sides of the reactions.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.