Page tree
Skip to end of metadata
Go to start of metadata

Special data types in SDfile and RDfile fields

Data fields store strings normally, but other data types are also supported in Marvin, in a non-standard way. If the data starts with the "MProp:scalar:" or "MProp:array:" string, then it can have a special type:

  • MProp:scalar:boolean:true and MProp:scalar:boolean:false — boolean values (java.lang.Boolean class),
  • MProp:scalar:integer:n — integer value (java.lang.Integer class),
  • MProp:array:m:integer: n0 ... nm-1m-element integer array (int[] in java),
  • MProp:scalar:double:x — double precision floating point value (java.lang.Double class),
  • MProp:scalar:MDocument:... — an MDocument object,
  • MProp:scalar:Molecule:... — a Molecule object (in SDfiles only; RDfiles store molecule properties in a different, standard way).

ChemAxon specific information in MOL files

Implicit hydrogens on aromatic nitrogen

The mol family of formats cannot store the implicit hydrogens of atoms, so it is calculated from the bond orders. This is always correct when the molecule is in Kekule format, but causes problems when nitrogen-containing aromatic rings are saved with aromatic bond types.

To counteract the information loss, implicit hydrogen count is stored in these formats as attached data on the nitrogen. The associated data sgroup has field name of MRV_IMPLICIT_H and value IMPL_H<n> where n is the number of implicit hydrogens. These special data attachments are then converted back to implicit hydrogens upon import. When the file is read in ISIS/Draw, the lost hydrogen will not reappear, but the attached data will be visible as a warning.

Stereo bond information loss without atom coordinates

The mol family of formats cannot store stereo information without bond coordinates in V2 version. If you have imported the molecule from a format that does not contain coordinates, but contain stereo information (e.g.: name, smiles), then to preserve the stereo information, while exporting the molecule into a V2 ctfile format, Marvin cleans the molecule in 2D. This clean can be omitted by passing the omitClean0D parameter to the exporter, or by using V3 format.

Multipage molecular document

To save information about multipage molecular document, properties are stored as attached data. The field names and values are the following:

  • MRV_PAGE_SELECTED - the selected page in multipage molecular document. Its value is a non-negative integer.
  • MRV_PAGE_COLUMN_COUNT - number of columns in multipage molecular document. Its value is a non-negative integer.
  • MRV_PAGE_ROW_COUNT - number of rows in multipage molecular document. Its value is a non-negative integer.
  • MRV_PAGE_WIDTH - width of a page in multipage molecular document. Its value is a floating point number.
  • MRV_PAGE_HEIGHT - height of a page in multipage molecular document. Its value is a floating point number.
  • MRV_PAGE_LEFT_MARGIN - left margin of a page in multipage molecular document. Its value is a floating point number.
  • MRV_PAGE_RIGHT_MARGIN - right of a page in multipage molecular document. Its value is a floating point number.
  • MRV_PAGE_TOP_MARGIN - top margin of a page in multipage molecular document. Its value is a floating point number.
  • MRV_PAGE_BOTTOM_MARGIN - bottom margin of a page in multipage molecular document. Its value is a floating point number.

Coordination compounds and markush structures

To save information about coordination compounds and markush structures, properties are stored as attached data. The field names and values are the following:

  • MRV_MULTICENTER_ATOM_INDEX - index of the multi-center atom. Its value is a positive integer.
  • MRV_COORDINATE_BOND_TYPE - index of the coordinate atom. Its value is a positive integer.

Charge displayed on S-group bracket

To save information about charge location in S-groups in case of generic, monomer, mer and component S-group types, properties are stored as attached data. The field name and value are:

  • MRV_CHARGE_ON_GROUP - the charge displayed on the bracket. Its value is an integer.
  • No labels