Molecule
Molecule[{atom1,atom2,…},{bond1,bond2,…}]
represents a molecule with atoms atomi and bonds bondi.
Molecule[name]
gives the molecule corresponding to the input name.
Details and Options
- Molecule is always converted to an optimized representation and treated as raw by functions like AtomQ and for purposes of pattern matching.
- name can be any of the following forms:
-
"identifier" a systematic chemical name, SMILES or InChI string Entity["Chemical",entity] a chemical entity ExternalIdentifier[type,id] an external identifier of the given type BioSequence[type,seq] biomolecular sequence of the given type - For Molecule[ExternalIdentifier[type, id]], type may be one of "PubChemCompoundID", "PubChemSubstanceID", "InChI" or "ChEMBLID".
- Creating a molecule from an ExternalIdentifier requires internet connectivity and uses external services to retrieve structural information.
- For Molecule[BioSequence[type,seq]], type should be one of "DNA", "RNA", "Peptide", "CircularDNA", "CircularRNA", "CircularPeptide" or "HybridStrand".
- Atoms can be specified in the following forms:
-
"sym" atom with atomic symbol "sym" (e.g. "C", "Cl") Entity["Element",element] atom of a given element Entity["Isotope",isotope] atom of the specified isotope Atom[elemspec,"prop""val",…] atom with specified properties - Bonds can be entered as Bond[{id1,id2},type], where idi is an atom index and type is one of "Single", "Double", "Triple" or "Aromatic".
- Hydrogen atoms may be omitted from the atom list if their presence can be inferred from the valence and bonding of the atoms present.
- Possible options include:
-
AtomCoordinates Automatic three-dimensional coordinates IncludeAromaticBonds True whether to mark bonds as "Aromatic" MetaInformation < > an association for user-supplied data StereochemistryElements None a list specifying stereochemical arrangement AtomDiagramCoordinates Automatic two-dimensional coordinates ValenceFilling Automatic whether to fill unmet valences with hydrogens - MoleculeQ[mol] gives True only if mol corresponds to a valid molecule expression.
- Graph[Molecule[…]] returns a Graph object.
- Property values for molecules can be accessed via mol["property"], which is equivalent to MoleculeValue[mol,"property"].
Examples
open allclose allBasic Examples (4)
Scope (2)
Options (5)
IncludeHydrogens (2)
Create a Molecule from a SMILES string with implicit hydrogens:
Setting IncludeHydrogens to All will make all hydrogen atoms explicit:
These two expressions represent the same molecule and return the same property values:
But they have different memory footprints:
Create a molecule with a mixture of explicit and implicit hydrogen atoms:
The "SMILES" property will contain the explicit hydrogens:
StereochemistryElements (2)
ValenceFilling (1)
By default, empty atomic valences will be filled with hydrogen atoms:
Use ValenceFillingNone to disable filling open valences:
Properties & Relations (1)
Create a Graph from a Molecule:
Retrieve atom information from the graph using AnnotationValue:
Possible Issues (2)
Hydrogen atoms may be omitted from the atoms list and will be inferred from common atomic valence:
A chemical formula is not sufficient to determine molecular structure:
Use Interpreter to find the appropriate "Chemical" entity first:
Neat Examples (2)
Filtering a group of molecules for those containing a particular substructure or functional group is intuitive and simple. Create a list of molecules using the entity class:
Now use a SMARTS pattern to select only those ketones that are also diaryl ethers:
Generate 2D diagrams and highlight the diaryl ether functional group:
Create a WordCloud of different synonyms for the same molecule, together with the molecule's structure diagram:
Text
Wolfram Research (2019), Molecule, Wolfram Language function, https://reference.wolfram.com/language/ref/Molecule.html (updated 2020).
CMS
Wolfram Language. 2019. "Molecule." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/Molecule.html.
APA
Wolfram Language. (2019). Molecule. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Molecule.html