CML
Marvin is capable of importing and exporting files in the Chemical Markup Language. Special atom types are lost during export.
Import
The following CML2 standard tags are recognized:
-
<cml>
Children: -
<molecule>
Attributes:-
title
Children:
-
Code: cml
Extension: .cml
-
<propertyList>
-
<property dictRef="name" title="name"> - A property.
-
<scalar [dataType="dataType"]>value</scalar> - Supported data types: "string" (default), "boolean", "integer", "double", "ENTITY" (for special property classes).
-
<array dataType="dataType" [delimiter="delimiter"]>list of values</array> - Currently, only the "integer" data type is supported. The default delimiter is the space character.
-
-
-
<property>
-
<atomArray>
Attributes:-
atomID, elementType, x2, y2, x3, y3, z3, formalCharge, hydrogenCount, isotope
Children:
-
<atom>
Attributes:-
id, elementType, x2, y2, x3, y3, z3, formalCharge, hydrogenCount, isotope
-
-
-
<bondArray>
Attributes:-
atomRefs1, atomRefs2, order
Children:
-
<bond atomRefs2="a1a2" order="order" >
The atom references a1 and a2 must be valid atom ids. The order value can be "1", "S" (single), "2", "D" (double), "3", "T" (triple) or "A" (aromatic).
Children:-
<bondStereo>value</bondStereo>
-
Value can be "W" (wedge - up), "H" (hatch - down), "C" (cis) or "T" (trans)
-
-
<bondStereo convention="convention" conventionValue="value" />
convention
conventionValue
meaning
MDL
1
up
MDL
6
down
MDL
4
either
MDL
3
cis or trans
ChemAxon
CTUnspec
cis/trans or unspecified
A <bond> tag is recognized at import even if the bondArray container is not present.
-
-
-
-
<reaction>
Attributes:-
title
Children:
-
<reactantList>
-
<molecule>
-
-
<productList>
-
<molecule>
-
-
<propertyList> - Reaction properties
-
CML in other programs:
-
JChemPaint (last version tested: 1.9.8) and Marvin imports each other's CML files.
-
Jmol 8 imports CML files exported by Marvin that contain 3D structures. Jmol is a 3D viewer that does not import bonds but calculates them from atomic distances. This means that bonds are not imported correctly if the molecule is 2D.