Molecular Structure & Computation

Topic Overview

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

BioMolecule — a large biopolymer composed of peptide, DNA or RNA units

ChemicalFormula — symbolic representation for a chemical formula

MoleculePattern — symbolic or SMARTS pattern representing a molecular substructure

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

BioMoleculeQ — test for a valid bio molecule

ChemicalFormulaQ  ▪  MoleculePatternQ

Molecular Visualization

MoleculePlot — annotatable 2D molecular structure diagram with automatic layout

MoleculePlot3D — 3D molecular rendering allowing automatically generated coordinates

MoleculeMesh — a 3D boundary mesh representation of a molecule or biomolecule

BioMoleculePlot3D — display a biomolecule as a ribbon diagram

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

BioMoleculeValue — find properties of biomolecules

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

MoleculeSubstructureCases — give all occurrences of a pattern in a molecule

MoleculeSubstructure — symbolic representation of a substructure within a molecule

MoleculeSubstructureCount — count occurrences of a molecule substructure

MoleculeMaximumCommonSubstructure — identify substructure common to molecules

MoleculeSubstructureQ

Modifying Molecules

MoleculeModify — create a new molecule by editing an existing molecule

MoleculeAlign — align molecules in 3D

BioMoleculeAlign — align bio 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

ChemicalReactionQ  ▪  PatternReactionQ

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"

"PDB"  ▪  "MMCIF"  ▪  "MMJSON"

Known Chemicals & Properties

PeriodicTablePlot — create a visualization of the periodic table of elements

Chemical — known chemicals and their properties

Protein Mineral Food

External Services

ServiceConnect, ServiceExecute — connect to external services

"PubChem"  ▪  "ChemSpider"  ▪  "RCSBProteinDataBank"  ▪  "ESMAtlas"  ▪  "EncyclopediaOfDomains"  ▪  "CATHDatabase"

Molecular Dynamics

NBodySimulation — classical n-body simulation with arbitrary potentials