Molecular Structure & Computation

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

AtomLabels  ▪  BondLabels

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

Protein Mineral Food

Molecular Dynamics

NBodySimulation classical n-body simulation with arbitrary potentials