MOL (.mol)

Background & Context

    • MIME type: chemical/x-mdl-molfile
    • MDL molecule model files.
    • Used in cheminformatics applications and on the web for storing and exchanging 3D molecule models.
    • Plain text tabular format.
    • Represents a single chemical compound.
    • Stores atomic coordinates, chemical bond information, and metadata.
    • Maintained by Elsevier Molecular Design Limited (MDL).

Import & Export

  • Import["file.mol"] imports a molecule from a molfile.
  • Export["file.mol",mol] exports elements of a molecule model to a molfile.
  • Import["file.mol"] gives a Molecule containing the molecule model contained in the molfile.
  • Import["file.mol",elem] imports the specified element from a molfile.
  • Import["file.mol",{elem,suba,subb,}] imports a subelement.
  • Import["file.mol",{{elem1,elem2,}}] imports multiple elements.
  • The import format can be specified with Import["file","MOL"] or Import["file",{"MOL",elem,}].
  • Export["file.mol",mol] creates a molfile by treating mol as a Molecule.
  • Export["file.mol",expr,elem] creates a molfile by treating expr as specifying element elem.
  • Export["file.mol",{expr1,expr2,},{{elem1,elem2,}}] treats each expri as specifying the corresponding elemi.
  • Export["file.mol",expr,opt1->val1,] exports expr with the specified option elements taken to have the specified values.
  • Export["file.mol",{elem1->expr1,elem2->expr2,},"Rules"] uses rules to specify the elements to be exported.
  • See the reference pages for full general information on Import and Export.
  • ImportString and ExportString support the MOL format.

Import Elements

  • General Import elements:
  • "Elements"list of elements and options available in this file
    "Rules"full list of rules for each element and option
    "Options"list of rules for options, properties, and settings
  • Data element:
  • "Molecule"a symbolic representation of the molecule model
  • Graphics elements:
  • "Graphics3D"3D rendering of the molecule model
    "StructureDiagram"2D structure formula
  • Data representation elements:
  • "EdgeRules"connectivity data, given as a list of rules
    "EdgeTypes"bond types, given as a list of strings
    "FormalCharges"electric charges of the atoms, given as a list of integers
    "MassNumbers"isotope mass numbers
    "VertexCoordinates"2D or 3D atomic coordinates, typically given in angstroms
    "VertexTypes"all atoms or groups constituting the molecule, typically given as a list of chemical element abbreviations
  • Export["file.mol",{vert,coord},{{"VertexTypes","VertexCoordinates"}}] creates a molfile from a specification of atom types and their 2D or 3D coordinates.
  • Metainformation element:
  • "Header"header information from the file


  • Graphical Import options:
  • ImageSizeAutomaticspecifies the overall size of the graphics to display
    BackgroundWhitespecifies what background color to use
    ViewPointAutomaticpoint in space from which the 3D model is to be viewed
  • With the default setting "ViewPoint"->Automatic, the Wolfram Language automatically calculates the optimal viewing angle for the imported molecule geometry.
  • Selecting a 3D rendering style:
  • "Rendering""BallAndStick"specifies the visualization method
  • Possible settings for "Rendering" are:
  • "BallAndStick"displays atoms and bonds as a ball-and-stick model
    "Spacefilling"atoms shown as overlapping spheres
    "Wireframe"bonds rendered as lines


Basic Examples  (2)

Show the Import elements available in a MOL file:

Import a 3D molecule model as a Molecule:

The coordinates from the file are contained in the expression under the AtomCoordinates option:

When importing a molfile that contains a 2D representation of a molecule, the coordinates are stored in the expression under the AtomDiagramCoordinates option:

This creates a molfile from the previous output:

Introduced in 2007
Updated in 2019