SMILES (.smi)
Background & Context

-
- MIME type: chemical/x-daylight-smiles
- SMILES chemical format.
- Commonly used to describe the structure of chemical molecules.
- SMILES is an acronym for Simplified Molecular Input Line Entry Specification.
- Used in cheminformatics applications and in chemistry databases to represent chemical formulas.
- ASCII format.
- Uses a linear notation to represent the connectivity graph of a molecule.
- Can store data for multiple molecules.
- Additional properties can be stored on the same line as the SMILES string.
- Developed in the 1980s by Arthur Weininger and David Weininger.
Import & Export

- Import["file.smi"] imports a list of molecules from a SMILES file.
- Import["file.smi"] converts SMILES data to a Molecule.
- Import["file.smi",elem] imports the specified element from SMILES.
- Import["file.smi",{{elem1,elem2,…}}] imports multiple elements.
- The import format can be specified with Import["file","SMILES"] or Import["file",{"SMILES",elem,…}].
- Export["file.smi",mol] creates a SMILES file by treating mol as a Molecule.
- Export["file.smi",expr,elem] creates a SMILES file by treating expr as specifying element elem.
- Export["file.smi",{expr1,expr2,…},{{elem1,elem2,…}}] treats each expri as specifying the corresponding elemi.
- Export["file.smi",expr,opt1->val1,…] exports expr with the specified option elements taken to have the specified values.
- Export["file.smi",{elem1->expr1,elem2->expr2,…},"Rules"] uses rules to specify the elements to be exported.
- See the following reference pages for full general information:
-
Import, Export import from or export to a file CloudImport, CloudExport import from or export to a cloud object ImportString, ExportString import from or export to a string ImportByteArray, ExportByteArray import from or export to a byte array
Import Elements

- General Import elements:
-
"Elements" list of elements and options available in this file "Summary" summary of the file "Rules" list of rules for all available elements - Data elements:
-
"Molecule" a symbolic representation of the molecule model "Molecule", n a symbolic representation of the n molecule
"Metadata" an Association containing the metadata from the file "Metadata", n the metadata for the n molecule
- Import by default uses the "Molecule" element when converting from SMILES.
- SMILES strings are interpreted by Molecule.
- Data representation elements:
-
"EdgeRules" connectivity data, given as a list of rules "EdgeTypes" bond types, given as a list of strings "FormalCharges" charges of the atoms given by "VertexTypes" "VertexTypes" all atoms or groups constituting the molecule, typically given as a list of chemical element abbreviations
Examples
Basic Examples (6)Summary of the most common use cases
Import the SMILES string for caffeine:
In[1]:=1

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-f9jtyn
Out[1]=1

Find the corresponding chemical entity:
In[2]:=2

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-i55fxv
Out[2]=2

Import a list of molecules from a SMILES file string:
In[1]:=1

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-j0kecq
Out[1]=1

In[2]:=2

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-0qtguy
Out[2]=2

Import a list of molecules along with meta information:
In[1]:=1

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-ml8lhj
Out[1]=1

The metadata is stored in the molecule expressions:
In[2]:=2

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-q8sbpe
Out[2]=2

In[3]:=3

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-qzg0ez
Out[3]=3

Export a list of molecules as SMILES strings:
In[1]:=1

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-jg50f8
Out[1]=1

In[2]:=2

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-qg1khs
Out[2]=2

Include a data column in the output:
In[3]:=3

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-rmqcrv
Out[3]=3

Use associations for the metadata to generate a header line:
In[4]:=4

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-hn25qd
Out[4]=4

In[5]:=5

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-s9g1pl
Out[5]=5

Import from a SMILES string, keeping hydrogen atoms implicit:
In[1]:=1

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-1jlcm4
Out[1]=1

In[2]:=2

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-fbikq0
Out[2]=2

Control whether aromatic bonds are found:
In[1]:=1

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-3zv725
Out[1]=1

In[2]:=2

✖
https://wolfram.com/xid/0ca09tk1nqsshmy-u8mkdx
Out[2]=2
