recognizes a molecule in image and returns it as a Molecule object.


  • MoleculeRecognize works with grayscale and color images.
  • Hydrogen atoms not explicitly included in the image are not added to the resulting molecule, but are instead treated as implicit. MoleculeModify["AddHydrogens"][mol] can be used to make them explicit for the molecule mol.
  • image should contain one or more 2D structure diagrams, returning a single Molecule object. Use ConnectedMoleculeComponents to retrieve the individual molecules.
  • Coordinates detected from the image are stored in the AtomDiagramCoordinates option in the returned expression.
  • Stereochemistry depicted by wedged and dashed bonds is automatically detected and stored in the StereochemistryElements option.


open allclose all

Basic Examples  (2)

Recognize a molecule in an image:

Use MoleculePlot to visualize the result:

Recognize multiple molecules in an image:

Find corresponding entities:

Scope  (4)

Detect a molecule in a grayscale image:

This works equally well with a dark background:

The resulting molecules are equivalent:

Detect a molecule in a color image:

Common functional group abbreviations are recognized and expanded:

Delocalized electrons represented as a circle are detected:

Wolfram Research (2020), MoleculeRecognize, Wolfram Language function,


Wolfram Research (2020), MoleculeRecognize, Wolfram Language function,


Wolfram Language. 2020. "MoleculeRecognize." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2020). MoleculeRecognize. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_moleculerecognize, author="Wolfram Research", title="{MoleculeRecognize}", year="2020", howpublished="\url{}", note=[Accessed: 13-June-2024 ]}


@online{reference.wolfram_2024_moleculerecognize, organization={Wolfram Research}, title={MoleculeRecognize}, year={2020}, url={}, note=[Accessed: 13-June-2024 ]}