Molecular Structure & Computation
TopicOverview »
The Molecule is a symbolic representation of a chemical species and is a fully computable first-class member of the Wolfram Language. More than 20 new functions allow users to create, analyze and modify chemical species. A wide range of computed properties such as stereochemistry, symmetry elements, molecular graphs and molecular mechanics energies facilitate problem solving across all chemical disciplines. Built-in support for organic and inorganic nomenclature allows fast creation of molecule objects from chemical names. Molecule folds seamlessly into existing functionality, e.g. Graph, to enable novel computations.
Symbolic Chemical Representation
Molecule — a molecule specified by atoms and bonds, name or SMILES string
ChemicalFormula — symbolic representation for a chemical formula
Atom — symbolic representation of an atom in a molecule
Bond — symbolic representation of single, double, aromatic, etc. bond
Molecule Options
IncludeHydrogens — whether to implicitly add hydrogen atoms for unfilled valences
StereochemistryElements — specify local stereochemical arrangements of atoms
AtomCoordinates — explicitly specify 3D coordinates of atoms in a molecule
AtomDiagramCoordinates — explicitly specify 2D coordinates to use in diagrams
IncludeAromaticBonds — whether to include aromatic bonds or use single/double form
Molecular Structure
AtomList ▪ AtomCount ▪ BondList ▪ BondCount ▪ BondQ
MoleculeQ — test for a valid molecule
Molecular Visualization
MoleculePlot — annotatable 2D molecular structure diagram with automatic layout
MoleculePlot3D — 3D molecular rendering allowing automatically generated coordinates
Style — specify highlighting and other styles for molecular substructures
RGBColor ▪ Opacity ▪ EdgeForm ▪ FaceForm ▪ ...
PlotTheme — specify overall appearance ("SpaceFilling", "BallAndStick", "Tubes", ...)
Molecular Graphs
MoleculeGraph — get an annotated graph for a molecule
ConnectedMoleculeQ — test for a single covalently bound structure
ConnectedMoleculeComponents — give a list of independent covalently bound structures
FindCycle ▪ FindPath ▪ FindHamiltonianPath ▪ ...
Molecular Recognition
MoleculeRecognize — recognize a molecule from an image
MoleculeName — find the name for a molecule
FindIsomers — find molecules with the same chemical formula
MoleculeDraw — sketch freehand molecules and interpret them
Molecular Property Computation
MoleculeValue — find structural or computed properties of molecules
MoleculeProperty — symbolic representation of a molecular property
Molecular Comparison & Substructure
MoleculeMatchQ — test whether a molecule matches a pattern or another molecule
MoleculeContainsQ — test whether a molecule contains a specified structure
MoleculeFreeQ — test whether a molecule is free from a specified structure
FindMoleculeSubstructure — find where a substructure occurs in a molecule
MoleculeMaximumCommonSubstructure — identify substructure common to molecules
MoleculeSubstructureCount — count occurrences of a molecule substructure
MoleculePattern — symbolic or SMARTS pattern representing a molecular substructure
Modifying Molecules
MoleculeModify — create a new molecule by editing an existing molecule
MoleculeAlign — align molecules in 3D
ValenceErrorHandling — how to handle valence errors when a molecule is edited
Chemical Reactions
ChemicalReaction — symbolic representation for a chemical reaction
ReactionBalance — balance a chemical reaction
ReactionBalancedQ — check if a chemical reaction is balanced
PatternReaction — symbolic representation of a reaction between molecule patterns
ApplyReaction — apply a pattern reaction to molecules
Chemical Quantities
ChemicalInstance — symbolic representation of an amount of a chemical
ChemicalConvert — convert between different chemical amounts
Import, Export — import and export molecular structures
"MOL" ▪ "MOL2" ▪ "SDF" ▪ "XYZ" ▪ "Cube" ▪ "PDB" ▪ "GaussianLog"
Known Chemicals & Properties
Chemical — known chemicals and their properties
Molecular Dynamics
NBodySimulation — classical n-body simulation with arbitrary potentials