Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Get a random SMILES string for a molecule
ResourceFunction["RandomSmilesString"][mol] returns a SMILES string for the molecule mol with the atoms in a random order. | |
ResourceFunction["RandomSmilesString"][mol,n] returns a list of n SMILES strings. |
"AllBondsExplicit" | False | whether to explicitly show all bonds |
"AllHsExplicit" | False | whether to explicitly list all implicit hydrogens |
"Isomeric" | True | include stereochemistry and isotope information |
"Kekulized" | False | whether to use aromatic or Kekule form |
IncludeHydrogens | False | whether to include hydrogens as explicit atoms |
Create a molecule and get a random SMILES string:
In[1]:= |
Out[1]= |
Get a list of five random SMILES:
In[2]:= |
Out[2]= |
All of the strings encode the same molecular structure:
In[3]:= |
Out[3]= |
Compare this with the "IsomericSMILES" property, which lists the atoms in canonical order:
In[4]:= |
Out[4]= |
To get a reproducible SMILES string, use SeedRandom:
In[5]:= |
Out[5]= |
In[6]:= |
Out[6]= |
Use BlockRandom to block one use of RandomSmilesString from affecting others:
In[7]:= |
Out[7]= |
By default single and aromatic bonds are elided. Use "AllBondsExplicit"→True to change this:
In[8]:= |
Out[8]= |
By default implicit hydrogen counts are only included when necessary. Use "AllHsExplicit"→True to change this:
In[9]:= |
Out[9]= |
Use "Kekulized"→True to use localized single and double bonds in place of aromatic bonds:
In[11]:= |
Out[11]= |
Use IncludeHydrogens→True to include hydrogen atoms as explicit atoms:
In[12]:= |
Out[12]= |
Small molecules will have a limited number of SMILES representations:
In[13]:= |
Out[13]= |
In[14]:= |
Out[14]= |
This work is licensed under a Creative Commons Attribution 4.0 International License