General database organization
Relational model definition
XML input/output file



General organization of NMRb:

Information can be uploaded either by a web graphic interface (repository form) or by direct file transfer (XML information file and raw spectra). Spectra information is inserted in an XML file for the data verification step. Then, information is saved in the MySQL base. The raw spectra are saved directly on the hard disc in traditional Unix compression format file (.tgz). and spectra information is organized in a relational data-base (MySQL server). The reading of the base is done by a web graphic interface.



Figure 1







Relational model organisation:


Relational model organisation: NMRb data are distributed in 16 interrelated tables which names are "DataModel", "DataSet", "Spectra", "Molecule", "Authors", "Laboratory", "Sample", "MolInSample", "Reference" , "Spectrometer", "Probe", "Sequence", "Processing", "Axe", "Sampling", "GFTProcessing".

Each table is a set of rows and columns. All columns contain a given information type as described in Table 1. For example, "AuthorsEmail" is one column of the "Authors" table. Each row is a set of columns with only one value for each. Rows contain real values. For example, one row contains "john@laboratory.fr" in the "AuthorsEmail" columns of "Authors" table.

In order to handle data inside a relational table, an index is needed to identify each row stored into that table. It is the primary key of table (eg: AuthorsIndex). Another reason to create a primary key is the use of its value as a foreign key by other tables. For example, the foreign key "LaboratoryIndex" in the Authors table correspond to the same value (primary key) entry in Laboratory table. This relation permits to find easily the author's laboratory with only one SQL query.

All arrows in Table 1 and in Figure 2 define a foreign key corresponding to a primary key entry in an other table.

Some tables like MolInSample permit to associate Molecule entry with Spectra entry in order to have a variable number of connexion between Molecule and Spectra tables. (Sampling and GFTProcessing tables are not yet available. It is a prevision for future version.)



Figure 2






Table 1


Table DataModel

Table DataSet

Table Spectra

TableMolecule

DataModelIndex

DataModelVersion

DataSetIndex

DepositionDate

ConfidencialityLevel

AccessLogin

AccessPasswd

DepositorEmail

NumberOfSpectra

StudyCitations

StudyPDB_id

StudyBMRB_id

StudyType

DataSetTitre

DataModelIndex ->

SpectraIndex

SpectraDataFormat

SpectraLocalFileAddress

SpectraSoftware

SpectraAxeNumber

SpectraTemperature

SpectraPressure

DataSetIndex ->

SampleIndex ->

ReferenceIndex ->

SpectrometerIndex ->

ProbeIndex ->

SequenceIndex ->

ProcessingIndex ->

MoleculeIndex

MoleculeShortName

MoleculeLongName

MoleculeType

MoleculeState

MoleculeWeight

MoleculeSwissprot_id

MoleculeSource

PrimarySequence

OffsetSequence

ExpOrganism

ExpSource

MoleculeDetails


Table MolInSample

Table Authors

Table Laboratory

Table Sample

MolInSampleIndex

MolInSampleConcMole

MolInSampleConcMass

MolecularIsotopeLabelling

SpectraIndex ->

MoleculeIndex ->


AuthorsIndex

AuthorsFirstName

AuthorsSurname

AuthorsEmail

LaboratoryIndex ->

DataSetIndex ->

LaboratoryIndex

LaboratoryName

LaboratoryAddress

LaboratoryCountry

SampleIndex

SampleSolvant

SamplePH

SampleBufferType

SampleBufferConcentration

SampleSaltType

SampleSaltConcentration

SampleAddMol

SampleDetails


Table Reference

Table Spectrometer

Table Probe

Table Sequence

ReferenceIndex

ReferenceMolecule

ReferenceAbsoluteFrequency

SpectrometerIndex

SpectrometerManufacturer

SpectrometerModel

ProtonFrequency

ProbeIndex

ProbeManufacturer

ProbeModel

ProbeCryo

SequenceIndex

SpectraSequenceType

SpectraMixingTimeDuration

SpectraPulseSequenceFilter


Table Processing

Table Axe

Table Sampling

Table GFTProcessing

ProcessingIndex

AxesOrder

F1Index ->

F2Index ->

F3Index ->

F4Index ->


(Limited to 4D spectra)

AxeIndex

AxeName (F1, F2,...)

SpectraNucleusAxe (1H, 13C,..)

Stokage (real, complex,..)

SpectralWidth

CarrierFrequency

SamplingType (regular, partial)

PartialSamplingIndex ->

ZeroTimePosition

Modulation (Real, Complex, ...)

PhaseModAxePointed

NP_AxePointed

Preprocessing ( LP, ...)

PhaseCorrection_PH0

PhaseCorrection_PH1

LeftExtractZoneAfterProcess

RightExtractZoneAfterProcess

PostProcessing (Reverse, ...)

SamplingIndex

PartialSamplingTable


(For future version)

GFTProcessinIndex



(For future version)





XML file for input/output :


XML data file: XML is a simple and very flexible text format designed to describe data (Figure 3). XML tags are not predefined in XML but defined according to NMRb data. We use an XML scheme in order to have a fine description of the data according to MySQL database characteristics. It permits to preserve some features like variable type, enumeration choices values and mandatory or facultative information fields. XML file is used to deposit data and also to recover them.



Figure 3 - syntax of the XML file


<?xml version="1.0" ?>

<!-- XML file for NMRb Deposition -->

<NMRb_Deposit>


<Study_Info>

<Data_Set>

<NMRb_Id>NMRb_id</NMRb_Id>

<Study_Type>Complex</Study_Type>

... General data-set information

</Data_Set>

<Molecule>

<Molecule_Common_Name>ltp</Molecule_Common_Name>

<Molecule_Weight>6979</Molecule_Weight>

... Molecular information

</Molecule>

<Ligand>

... as molecular information

</Ligand>

</Study_Info>

<Authors_Zone>

<Authors num="1">

<Authors_First_Name>John</Authors_First_Name>

... Authors information

<Laboratory_Name>CBS</Laboratory_Name>

... Laboratory information

</Authors>

... Several Authors entries are possible

</Authors_Zone>


<Spectra_Zone>

<Spectra>

<Spectra_File_Name>cosy_1H_295K.tgz</Spectra_File_Name>

<Spectra_Data_Format>Bruker</Spectra_Data_Format>

<Spectra_Axe_Number>2D</Spectra_Axe_Number>

... Spectra information


<Axes_Zone>

<Axes>

<Axe>F1</Axe>

<Axe_Nucleus>1H</Axe_Nucleus>

...Axes information

</Axes>

.. Several axes entries are possible

</Axes_Zone>


</Spectra>

.. Several Spectra entries are possible

</Spectra_Zone>


</NMRb_Deposit>





Back to homepage