Difference between revisions of "Nmredata object structure"

From NMReDATA
Jump to: navigation, search
(2D spectra)
m (Protected "Nmredata object structure" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
 
(28 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Possible structure of the object including NMReDATA reflecting the format of NMReDATA tags of SDF files
+
Possible structure of the object including NMReDATA reflecting the format of NMReDATA tags of SDF files.
 +
 
 +
'''Note:''' This is not designed to include ambiguities in the assignment. This is therefore only for use with Level=0.
 +
 
 
= Chemical structure =
 
= Chemical structure =
 
For the structure part originating from the .mol part of the SDF file:
 
For the structure part originating from the .mol part of the SDF file:
Line 6: Line 9:
 
   
 
   
 
  object.structure.atom[''n''] (for each atom ''n'')  
 
  object.structure.atom[''n''] (for each atom ''n'')  
  object.structure.atom[''n''].N '''''integer''''' atomic mumber of atom N)  
+
  object.structure.atom[''n''].N '''''integer''''' atomic number of atom N)  
 
  object.structure.atom[''n''].X '''''float''''' x coordinate in A  
 
  object.structure.atom[''n''].X '''''float''''' x coordinate in A  
 
  object.structure.atom[''n''].Y '''''float''''' y coordinate in A  
 
  object.structure.atom[''n''].Y '''''float''''' y coordinate in A  
Line 12: Line 15:
 
   
 
   
 
  object.structure.bond[''m''] (for each bond ''m'')
 
  object.structure.bond[''m''] (for each bond ''m'')
  object.structure.bond[''m''].a1 '''''int''''' first atom
+
  object.structure.bond[''m''].a1 '''''int''''' first atom (1 to number of atoms)
  object.structure.bond[''m''].a2 '''''int''''' second atom
+
  object.structure.bond[''m''].a2 '''''int''''' second atom (1 to number of atoms)
 
  object.structure.bond[''m''].type '''''int''''' 1:for single bond, 2: for double bond, 3: for triple bond
 
  object.structure.bond[''m''].type '''''int''''' 1:for single bond, 2: for double bond, 3: for triple bond
  
= NMR isolated signals =
+
= Sample data =
 +
Information about the sample
 +
 
 +
object.version '''''string''''' version (content of the NMREDATA_VERSION tag)
 +
object.level '''''int''''' level (content of the NMREDATA_LEVEL tag)
 +
object.SMILE '''''String''''' smile code
 +
 +
When H are explicit in the structure, the SMILE code must also include all the H atoms in the smile code. The reason to include the smiles in the NMReDATA is that it can be used to generate pure text MNR description of spectra (This is under elaboration but it is very important for stability of the format to include them in SDF files!)
 +
 
 +
object.concentration '''''float''''' concentration in mM
 +
object.temp '''''float''''' temperature in K
 +
 
 +
= Assignment =
 
For the <NMR_ASSIGNMENT> (previously named NMR_SIGNALS>) of the SDF file:
 
For the <NMR_ASSIGNMENT> (previously named NMR_SIGNALS>) of the SDF file:
 
The signals of all isotopes are listed together, they compile the information from the tag describing the spectra (see below)
 
The signals of all isotopes are listed together, they compile the information from the tag describing the spectra (see below)
  
 
  object.assignment[''n''] (for each assignment ''n'')
 
  object.assignment[''n''] (for each assignment ''n'')
  object.assignment[''n''].label '''''string''''' label give to the atom or set of atoms
+
  object.assignment[''n''].label '''''string''''' label given to the atom or set of atoms
  object.assignment[''n''].cs '''''float''''' chemical shift of
+
  object.assignment[''n''].cs '''''float''''' chemical shift (single value, no range accepted!)
 
  object.assignment[''n''].atom[''m''] '''''integer''''' atom number(s) assigned to the signal (start numbering at 1)
 
  object.assignment[''n''].atom[''m''] '''''integer''''' atom number(s) assigned to the signal (start numbering at 1)
  
Line 33: Line 48:
 
  object.J[''n''].label2 '''''string''''' label of the second signal  
 
  object.J[''n''].label2 '''''string''''' label of the second signal  
 
  object.J[''n''].value '''''float''''' coupling constant between label1 and label2
 
  object.J[''n''].value '''''float''''' coupling constant between label1 and label2
 
= Sample data =
 
Information about the sample
 
 
object.version '''''string''''' verions (content of the NMREDATA_VERSION)
 
object.level '''''int''''' level (content of the NMREDATA_LEVEL)
 
object.ID[''n''] '''''String''''' ID ''n'' (line ''n'' of the NMREDATA_ID tag)
 
 
   
 
   
 +
''optional because possibly involving difficulties:''
 +
object.J[''n''].nb[''m''] '''''int''''' number of bonds between the atoms corresponding to the labels.
  
When using list of signals including interchangeable assignments (see .... for examples), set to 1.
+
In most cases, ''m'' = 1, but when the two labels correspond to more than one spin (for example in AA'XX' systems is described using a single lable for A and A' and a single label for X and X') the number of bonds depends on whether we consider A-X and A-X', this is why we need two elements in the tabel.
 
 
When using ambiguously assigned signals in 1D or 2D spectra (see .... for examples), set to 2.
 
 
 
When using interchangeable and ambiguous assignment, set to 3.
 
 
 
==== <NMREDATA_ID> (for database) ====
 
This tag is optional but very much encouraged, in particular when data are originating from a stable database. When copied from database to database, multiple ID's may be included. These will be defined by database manager and software producers.
 
 
 
DB_ID= the code or number is assigned by the hosting database
 
Title= Full analysis of whatever from methanol extract of leafs 
 
Comment= Here more details could be given on the record.
 
Comment1= Here more details could be given on the record.
 
Comment2= Here more details could be given on the record.
 
Comment3= Here more details could be given on the record.
 
AUTHOR=Doe John, University of Tougalpa, Swinerland (optional)
 
ORIGIN_ONE=2345627486 (could be about the sample name)
 
ORIGIN_TWO=323212KKDKKS (could give a date or other reference)
 
Title_L1=after sep. hplc (this could be extracted from the first line of the title in the 1H spectrum)
 
 
 
One or more identifier can be given under "ID". The ID will be generated by the software generating data and/or the database storing the data, etc. There may be more than one ID (for example one from the software generating it, one from the university labelling the origin of the data, one from the database, one from the publisher of the associated data, etc.) it is to the “generator” of the file to decide if/how to make it unique if desired. InChIKey/SMILES could be given if the soft generating the data is able to specify it. CAS-number if it already exists.
 
 
 
==== <NMREDATA_SMILES>;optional be strongly encouraged ====
 
Here comes the smiles code mandatoryly with explicit H... The reason to includ the smiles in the NMReDATA is that when given with protons, it can be used to generate pure text MNR description of spectra (This is under elaboration ...)
 
 
 
====  <NMREDATA_SOLVENT> ====
 
The solvent is specified using this tag.
 
>  <NMREDATA_SOLVENT>
 
CDCl3
 
For mixture of solvents, the most abundant is first and they are separated by "/" followed by the raio in % separated by ":"
 
>  <NMREDATA_SOLVENT>
 
CDCl3/DMSO 80:20
 
 
 
>  <NMREDATA_SOLVENT>
 
CDCl3/DMSO/D2O 80:10:10
 
 
 
The proportions are given in % volumes.
 
 
 
In the case of RDC measurements, the medium used can be specified in the line following the name of the solvent.
 
 
 
>  <NMREDATA_SOLVENT>
 
CDCl3
 
PBLG
 
 
 
The quantity of the orientation medium should be given using usual units (this is vague, but we cannot do better). Agarose used at 1% mass ratio:
 
>  <NMREDATA_SOLVENT>
 
D2O
 
Agarose 1%
 
For solid-states samples:
 
>  <NMREDATA_SOLVENT >
 
solid
 
 
 
==== <NMREDATA_CONCENTRATION> (optional) ====
 
When known, the concentration should be given. Only “mM” are allowed, but the unit is specified.
 
<NMREDATA_CONCENTRATION>
 
12.3 mM
 
 
 
====  <NMREDATA_TEMPERATURE> (optional)====
 
When available the temperature of the sample should be given (only K are allowed, but the unit is given)
 
>  <NMREDATA_TEMPERATURE>
 
298.0 K
 
  
 
= 1D spectra =
 
= 1D spectra =
 +
See also [[1D attributes|1D spectra attributes page]].
  
 
  object.spectrum1d[''n''] (for each 1D spectrum ''n'')
 
  object.spectrum1d[''n''] (for each 1D spectrum ''n'')
 
  object.spectrum1d[''n''].S Multiplicity ('''''string''''')
 
  object.spectrum1d[''n''].S Multiplicity ('''''string''''')
  object.spectrum1d[''n''].J Scalar coupling ('''''string''''')
+
  object.spectrum1d[''n''].J Scalar coupling ('''''string''''') This is a string because it contains the description of the coupling, assignment, etc.
 
  object.spectrum1d[''n''].N number of nuclei ('''''int''''')
 
  object.spectrum1d[''n''].N number of nuclei ('''''int''''')
 
  object.spectrum1d[''n''].L Label of the signal ('''''string''''')
 
  object.spectrum1d[''n''].L Label of the signal ('''''string''''')
Line 118: Line 69:
  
 
= 2D spectra =
 
= 2D spectra =
 
+
See also [[2D attributes|2D spectra attributes page]].
 
  object.spectrum2d[''n''] (for each 2D spectrum ''n'')
 
  object.spectrum2d[''n''] (for each 2D spectrum ''n'')
  object.spectrum2d[''n''].L1 Label of the signal ('''''string''''')
+
  object.spectrum2d[''n''].L1 Label of the signal in F1('''''string''''') (if the signal is not assigned, the chemical shift is given as a string)
  object.spectrum2d[''n''].L2 Label of the signal ('''''string''''')
+
  object.spectrum2d[''n''].L2 Label of the signal in F2('''''string''''') (if the signal is not assigned, the chemical shift is given as a string)
 
  object.spectrum2d[''n''].I Intensity ('''''float''''')
 
  object.spectrum2d[''n''].I Intensity ('''''float''''')
 
  object.spectrum2d[''n''].E Signal volume ('''''float''''')
 
  object.spectrum2d[''n''].E Signal volume ('''''float''''')
  object.spectrum2d[''n''].Ja Active scalar coupling ('''''float'''from COSY spectra'')
+
  object.spectrum2d[''n''].Ja Active scalar coupling ('''''float)''' i.e. from a COSY spectrum''
  object.spectrum2d[''n''].Jp1[''n''] Passive scalar coupling(s) in F1 ('''''float''''')
+
  object.spectrum2d[''n''].J1[''m''] Passive scalar coupling(s) in F1 ('''''float''')i.e. from a high-resolution COSY spectrum''
  object.spectrum2d[''n''].Jp2[''n''] Passive scalar coupling(s) in F2 ('''''float''''')
+
  object.spectrum2d[''n''].J2[''m''] Passive scalar coupling(s) in F2 ('''''float''')i.e. from a high-resolution COSY spectrum''
 +
object.spectrum2d[''n''].JL1[''m''] Label of the assigned passive coupling in F1 ('''''string''')i.e. from a high-resolution COSY spectrum''
 +
object.spectrum2d[''n''].JL2[''m''] Label of the assigned passive coupling in F2 ('''''string'''')i.e. from a high-resolution COSY spectrum''

Latest revision as of 10:54, 13 April 2018

Possible structure of the object including NMReDATA reflecting the format of NMReDATA tags of SDF files.

Note: This is not designed to include ambiguities in the assignment. This is therefore only for use with Level=0.

Chemical structure

For the structure part originating from the .mol part of the SDF file:

object.structure (from the .mol part of the file)

object.structure.atom[n] (for each atom n) 
object.structure.atom[n].N integer atomic number of atom N) 
object.structure.atom[n].X float x coordinate in A 
object.structure.atom[n].Y float y coordinate in A 
object.structure.atom[n].Z float z coordinate in A 

object.structure.bond[m] (for each bond m)
object.structure.bond[m].a1 int first atom (1 to number of atoms)
object.structure.bond[m].a2 int second atom (1 to number of atoms)
object.structure.bond[m].type int 1:for single bond, 2: for double bond, 3: for triple bond

Sample data

Information about the sample

object.version string version (content of the NMREDATA_VERSION tag)
object.level int level (content of the NMREDATA_LEVEL tag)
object.SMILE String smile code

When H are explicit in the structure, the SMILE code must also include all the H atoms in the smile code. The reason to include the smiles in the NMReDATA is that it can be used to generate pure text MNR description of spectra (This is under elaboration but it is very important for stability of the format to include them in SDF files!)

object.concentration float concentration in mM
object.temp float temperature in K

Assignment

For the <NMR_ASSIGNMENT> (previously named NMR_SIGNALS>) of the SDF file: The signals of all isotopes are listed together, they compile the information from the tag describing the spectra (see below)

object.assignment[n] (for each assignment n)
object.assignment[n].label string label given to the atom or set of atoms
object.assignment[n].cs float chemical shift (single value, no range accepted!)
object.assignment[n].atom[m] integer atom number(s) assigned to the signal (start numbering at 1)

J couplings

For the <NMR_J> of the SDF file: This includes all the coupling extracted from the spectra (see below)

object.J[n] (for each coupling n listed)
object.J[n].label1 string label of the first signal 
object.J[n].label2 string label of the second signal 
object.J[n].value float coupling constant between label1 and label2

optional because possibly involving difficulties:

object.J[n].nb[m] int number of bonds between the atoms corresponding to the labels. 

In most cases, m = 1, but when the two labels correspond to more than one spin (for example in AA'XX' systems is described using a single lable for A and A' and a single label for X and X') the number of bonds depends on whether we consider A-X and A-X', this is why we need two elements in the tabel.

1D spectra

See also 1D spectra attributes page.

object.spectrum1d[n] (for each 1D spectrum n)
object.spectrum1d[n].S Multiplicity (string)
object.spectrum1d[n].J Scalar coupling (string) This is a string because it contains the description of the coupling, assignment, etc.
object.spectrum1d[n].N number of nuclei (int)
object.spectrum1d[n].L Label of the signal (string)
object.spectrum1d[n].E Integral (float)
object.spectrum1d[n].I Intensity (float)
object.spectrum1d[n].T1 T1 relaxation time (float)
object.spectrum1d[n].T2 T2 relaxation time (float)
object.spectrum1d[n].Diff diffusion rate (float)

2D spectra

See also 2D spectra attributes page.

object.spectrum2d[n] (for each 2D spectrum n)
object.spectrum2d[n].L1 Label of the signal in F1(string) (if the signal is not assigned, the chemical shift is given as a string)
object.spectrum2d[n].L2 Label of the signal in F2(string) (if the signal is not assigned, the chemical shift is given as a string)
object.spectrum2d[n].I Intensity (float)
object.spectrum2d[n].E Signal volume (float)
object.spectrum2d[n].Ja Active scalar coupling (float) i.e. from a COSY spectrum
object.spectrum2d[n].J1[m] Passive scalar coupling(s) in F1 (float)i.e. from a high-resolution COSY spectrum
object.spectrum2d[n].J2[m] Passive scalar coupling(s) in F2 (float)i.e. from a high-resolution COSY spectrum
object.spectrum2d[n].JL1[m] Label of the assigned passive coupling in F1 (string)i.e. from a high-resolution COSY spectrum
object.spectrum2d[n].JL2[m] Label of the assigned passive coupling in F2 (string')i.e. from a high-resolution COSY spectrum