The AC NMR Document format

For the storage in the database and for an exchange file format the AC-NMR DB uses a JSON file format. This format encodes the structure formula and the literature reference.

The atom and bonds objects in this file format are modeled as closely as possible to the CML XML format in terms of label names and options.

The NMR Document Object JSON Format

The ‘*‘ signifies a required Field.

Data format for molecules and NMR data.

Type:

object

Contains:

_rev, _id, docid, owner, date, molecule*, NMRDatasets*, sdf, Litref, Annotations, Error

Required:

True

JSON Path:

Example JSON:

{
  "NMRDatasets": [],
  "molecule": {
    "Mol_ID": "",
    "bonds": [],
    "atoms": []
  }
}

_rev

Revision ID as used by the document store.

Type:

string

Required:

False

JSON Path:
  • # [‘_rev‘]

Example JSON:

{"_rev": ""}

_id

Document ID GUID as used by the document store.

Type:

string

Required:

False

JSON Path:
  • # [‘_id‘]

Example JSON:

{"_id": ""}

docid

Unique document ID. This is used as ID throughout the application.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"docid": ""}

owner

User who did last edit.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"owner": ""}

date

UTC Time of last edit as Unix time stamp. (seconds since epoc)

Type:

number

Required:

False

JSON Path:

Example JSON:

{"date": 0}

molecule

Contains molecule data. Data, like atoms, bonds and color coding.

Type:

object

Contains:

InChI, InChIKey, Mol_ID*, MolLinked, Mol_Name, CAS_RN, SMILES, Stereoinformation, BoilingPoint, MSPeakListPeaks, MSPeakListSourceID, MeltingPoint, FORMULA, Comment, atoms*, bonds*

Required:

True

JSON Path:

Example JSON:

{"molecule": {"Mol_ID": "","bonds": [],"atoms": []}}

InChI

International chemical identifier.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"InChI": ""}

InChIKey

International chemical identifier hashed. If available, it will be used for finding data sets with the same chemical structure.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"InChIKey": ""}

Mol_ID

Arbitrary ID for molecule. This is used if InChI is not available.

Type:

string

Required:

True

JSON Path:

Example JSON:

{"Mol_ID": ""}

MolLinked

Flag for deciding if changes on this molecule structure should affect the others with the same ID

Type:

boolean

Required:

False

Default:

False

JSON Path:

Example JSON:

{"MolLinked": false}

Mol_Name

Compound name.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Mol_Name": ""}

CAS_RN

Compound number from the American Chemical Society.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"CAS_RN": ""}

SMILES

SMILES Code. This represents the connection graph of the molecule and is used for substructure and similarity search.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"SMILES": ""}

Stereoinformation

Marker for molecules containing chiral structure.

Type:

boolean

Required:

False

JSON Path:

Example JSON:

{"Stereoinformation": true}

BoilingPoint

Boiling point [°C].

Type:

string

Required:

False

JSON Path:

Example JSON:

{"BoilingPoint": ""}

MSPeakListPeaks

Type:

string

Required:

False

JSON Path:

Example JSON:

{"MSPeakListPeaks": ""}

MSPeakListSourceID

Type:

string

Required:

False

JSON Path:

Example JSON:

{"MSPeakListSourceID": ""}

MeltingPoint

Melting point [°C].

Type:

string

Required:

False

JSON Path:

Example JSON:

{"MeltingPoint": ""}

FORMULA

Sum formula.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"FORMULA": ""}

Comment

Arbitrary comment.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Comment": ""}

atoms

Type:

array() items: {2d, 3d, elementType, hydrogenCount, formalCharge, role, properties}

Required:

True

JSON Path:

Example JSON:

{"atoms": []}

2d

2D atom coordinates for structure diagrams. [a.u]

Type:

array(2) items: number

Required:

True

JSON Path:

Example JSON:

{"2d": []}

3d

3D atom coordinates for 3d structure (crystal-structure). [a.u]

Type:

array(3) items: number

Required:

False

JSON Path:

Example JSON:

{"3d": []}

elementType

Symbol of chemical Element. Allowed are the symbols as defined in CML.

Type:

string

values:

[H, He, Li, Be, B, C, N, O, F, Ne, Na, Mg, Al, Si, P, S, Cl, Ar, K, Ca, Sc, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, Ga, Ge, As, Se, Br, Kr, Rb, Sr, Y, Zr, Nb, Mo, Tc, Ru, Rh, Pd, Ag, Cd, In, Sn, Sb, Te, I, Xe, Cs, Ba, La, Ce, Pr, Nd, Pm, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb, Lu, Hf, Ta, W, Re, Os, Ir, Pt, Au, Hg, Tl, Pb, Bi, Po, At, Rn, Fr, Ra, Ac, Th, Pa, U, Np, Pu, Am, Cm, Bk, Cf, Es, Fm, Md, No, Lr, Rf, Db, Sg, Bh, Hs, Mt, Ds, Rg, Cn, Uuq, Uuh, Du, R]

Required:

True

JSON Path:

Example JSON:

{"elementType": "H"}

hydrogenCount

Hydrocen-count as defined in CML.

Type:

number

Required:

False

JSON Path:

Example JSON:

{"hydrogenCount": 0}

formalCharge

Formal charge as defined in CML.

Type:

number

Required:

False

JSON Path:

Example JSON:

{"formalCharge": 0}

role

The role is used to further describe ‘R’ or ‘Du’ pseudo Atoms. May be used to describe polymeres by using ‘*’

Type:

string

Required:

False

JSON Path:

Example JSON:

{"role": ""}

properties

Properties of the atom that are not directly related to the molecular structure, such as coloring, and other annotations.

Type:

object

Contains:

color

Required:

False

JSON Path:

Example JSON:

{"properties": {}}

color

Color code of atom to hilight or mark atom or set of atoms.

Type:

string or null

Required:

False

JSON Path:

Example JSON:

{"color": null}

bonds

Array of bonds.

Type:

array() items: {id, bond, order, stereoType}

Required:

True

JSON Path:

Example JSON:

{"bonds": []}

id

type:

object

Required:

False

JSON Path:

Example JSON:

{"id": {}}

bond

Indices of atoms which are connected via this bond. Index starts with 1.

Type:

array(2) items: number

Required:

True

JSON Path:

Example JSON:

{"bond": []}

order

The type or ‘order’ of this bond. The bond order values are as defined in CML.

Type:

string

values:

[1, hbond, partial01, partial12, 2, partial23, 3, A]

Required:

True

JSON Path:

Example JSON:

{"order": "1"}

stereoType

Stereo-type as defined in CML.

Type:

string

values:

[C, T, W, H]

Required:

False

JSON Path:

Example JSON:

{"stereoType": "C"}

NMRDatasets

Chemical shifts and couplings.

Type:

array() items: {Shifts, Nucleus, Solvent, Standard, Method, Temp}

Required:

True

JSON Path:

Example JSON:

{"NMRDatasets": []}

Shifts

List of shifts for from one nucleus, standard, solvent, temperature ... -combination.

Type:

array() items: {Shift, ColorRef, Comment, J}

Required:

False

JSON Path:

Example JSON:

{"Shifts": []}

Shift

Numerical value of chemical shift in [ppm].

Type:

number or object

Contains:

from, to

Required:

False

JSON Path:

Example JSON:

{"Shift": null}

from

Type:

number

Required:

False

JSON Path:

Example JSON:

{"from": 0}

to

Type:

number

Required:

False

JSON Path:

Example JSON:

{"to": 0}

ColorRef

Colour label to match the colors in molecular structure.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"ColorRef": ""}

Comment

Comment for shift.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Comment": ""}

J

List of coupling constants for this shift.

Type:

array() items: {ftype, textval, type, unit, value}

Required:

False

JSON Path:

Example JSON:

{"J": []}

ftype

Coupling type including text formatting information.

Type:

string

Required:

True

Default:

J()

JSON Path:

Example JSON:

{"ftype": "J()"}

textval

Unparsed text value if availabe.

Type:

string

Required:

True

JSON Path:

Example JSON:

{"textval": ""}

type

Coupling type whithout text formatting information.

Type:

string

Required:

True

JSON Path:

Example JSON:

{"type": ""}

unit

Unit of numeric value.

Type:

string

Required:

False

Default:

Hz

JSON Path:

Example JSON:

{"unit": "Hz"}

value

Numeric value of coupling constant.[Hz]

Type:

number

Required:

True

JSON Path:

Example JSON:

{"value": 0}

Nucleus

Type of nucleus used in NMR, ‘29Si’, for example.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Nucleus": ""}

Solvent

Solvent in which NMR measurement took place.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Solvent": ""}

Standard

Reference compount for shift.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Standard": ""}

Method

NMR Method.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Method": ""}

Temp

Sample teperature. [°C]

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Temp": ""}

sdf

Field to store legacy sdf source if available.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"sdf": ""}

Litref

Literature reference. Each data document may be associated with one literature reference.

Type:

object

Contains:

LitrefLinked, Author, YEAR, Title, DOCTYPE, Page, REFNO*, Source, Volume, Keyword, Editor, CASAN, DOI

Required:

False

JSON Path:

Example JSON:

{"Litref": {"REFNO": ""}}

LitrefLinked

Flag for deciding if changes on this literature reference should be changed in all documents.

Type:

boolean

Required:

False

Default:

True

JSON Path:

Example JSON:

{"LitrefLinked": true}

Author

Author.

Type:

string

Required:

False

Default:
JSON Path:

Example JSON:

{"Author": ""}

YEAR

Year of publication.

Type:

number

Required:

False

JSON Path:

Example JSON:

{"YEAR": 0}

Title

Title.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Title": ""}

DOCTYPE

Journal, book, thesis ...

Type:

string

Required:

False

JSON Path:

Example JSON:

{"DOCTYPE": ""}

Page

Page number.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Page": ""}

REFNO

This is an ID for the reference. Many documents may come from the same Literature reference.

Type:

string

Required:

True

JSON Path:

Example JSON:

{"REFNO": ""}

Source

Journal name, for example.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Source": ""}

Volume

Journal or book volume.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Volume": ""}

Keyword

List of keywords seperated by ‘ ‘ or ‘,’.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Keyword": ""}

Editor

Publication Editor

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Editor": ""}

CASAN

Chemical Abstract Service reference id of the American Chemical Society.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"CASAN": ""}

DOI

Digital Object Identifier for the literature reference.

Type:

string

Required:

False

Default:
JSON Path:

Example JSON:

{"DOI": ""}

Annotations

This may contain arbitrary data and comments.

Type:

object

Contains:
Required:

False

JSON Path:

Example JSON:

{"Annotations": {}}

Error

Processing errors.

Type:

string

Required:

False

JSON Path:

Example JSON:

{"Error": ""}