mailRe: To all relax developers: presenting relax at the ENC conference and preliminary BMRB NMR-STAR file creation for model-free results.


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on March 11, 2009 - 13:59:
Hi,

I'll go through the new BMRB saveframes and tags from your MS .doc
file one by one below.  But my first question is, is this version 3.1
of the NMR-STAR dictionary?  For the BMRB API package I'm writing, it
would be useful to know if I should put this into the v3.1 code, or
put it into a layer higher into v3.2 code?


save_general_relaxation_list_1
    _General_relaxation_list.Sf_category
    _General_relaxation_list.Sf_framecode
    _General_relaxation_list.ID
    _General_relaxation_list.Sample_condition_list_ID
    _General_relaxation_list.Sample_condition_list_label
    _General_relaxation_list.Temp_calibration_method

Can _General_relaxation_list.Temp_calibration_method be limited to a
set number of strings with fixed capitalisation?  I.e. 'MeOH' for
methanol, 'MEG' for monoethylene glycol, etc?  And would this not be
more logical in _General_relaxation_experiment?  How would you
indicate that no temp calibration was performed?


    _General_relaxation_list.Temp_control_method

Could the _General_relaxation_list.Temp_control_method tag be split
into 2, i.e.

|     _General_relaxation_list.Temp_single_scan_interleaving
|     _General_relaxation_list.Temp_compensation_block

where both are boolean types (True-False, 0-1, yes-no, etc.)?  Again,
would this not be more logical in _General_relaxation_experiment?


    _General_relaxation_list.Spectrometer_frequency_1H
    _General_relaxation_list.Relaxation_coherence_type

Could a list of allowable values (or recommended) be placed in the tag
details frame of the NMR-STAR docs?  I'll generate and parse whatever
you wish this to be.


    _General_relaxation_list.Relaxation_type_common_name

Is this for human readability, i.e. a VARCHAR such as 'R1'?


    _General_relaxation_list.Relaxation_val_units
    _General_relaxation_list.Rex_units
    _General_relaxation_list.Details


 loop_
    _General_relaxation_experiment.Experiment_ID
    _General_relaxation_experiment.Experiment_name
    _General_relaxation_experiment.Sample_ID
    _General_relaxation_experiment.Sample_label
    _General_relaxation_experiment.Sample_state
    _General_relaxation_experiment.Sf_ID
    _General_relaxation_experiment.Entry_ID
    _General_relaxation_experiment.General_relaxation_list_ID


 stop_

 loop_
    _General_relaxation_software.Software_ID
    _General_relaxation_software.Software_label
    _General_relaxation_software.Method_ID
    _General_relaxation_software.Method_label
    _General_relaxation_software.Sf_ID
    _General_relaxation_software.Entry_ID
    _General_relaxation_software.General_relaxation_list_ID


 stop_

This all seems to be sufficient, for relax's needs anyway.  Maybe
something will come up later.


 loop_
    _General_relaxation.ID
    _General_relaxation.Assembly_atom_ID
    _General_relaxation.Entity_assembly_ID
    _General_relaxation.Entity_ID
    _General_relaxation.Comp_index_ID
    _General_relaxation.Seq_ID
    _General_relaxation.Comp_ID
    _General_relaxation.Atom_ID
    _General_relaxation.Atom_type
    _General_relaxation.Atom_isotope_number
    _General_relaxation.General_relaxation_val
    _General_relaxation.General_relaxation_val_err
    _General_relaxation.Rex_val
    _General_relaxation.Rex_err

Here there is a '*_val', '*_val_err', and '*_err'.  For consistency,
should this be 'Rex_val_err' or 'General_relaxation_err'?


    _General_relaxation.General_relaxation_list_ID

 stop_
save_

On question about this general relaxation saveframe, is this supposed
to cover standard relaxation together with cross-correlated
relaxation?  I've recently noticed:

http://www.bmrb.wisc.edu/dictionary/3.1html_frame/frame_SaveFramePage.html#dipole_CSA_cross_correlations
http://www.bmrb.wisc.edu/dictionary/3.1html_frame/frame_SaveFramePage.html#dipole_dipole_cross_correlations

How will these saveframes be handled in this new design?  Will thez be
absorbed into General_relaxation or will they be redesigned to match
General_relaxation?




The Order_parameter saveframe naming obviously matches the v3.1
convention, but this might be problematic.  There is a competing
theory to model-free analysis called SRLS (slowly relaxing local
structure).  Due to implementation difficulties for end users,
history, and politics this is not used anywhere near as much as
model-free, but maybe it would be useful to accommodate this theory in
the BMRB.  Another is the Jens Meiler et al. 2000, model-free analysis
of RDC data.  Here there are again order parameters.  I would assume
that the chance of order parameters appearing in future theories is
also extremely high.  So maybe this saveframe would be better named as
Model_free, and having other theories in saveframes such as
Slowly_relaxing_local_structure, RDC_model_free, etc.?


save_order_parameter_list_1
    _Order_parameter_list.Sf_category
    _Order_parameter_list.Sf_framecode
    _Order_parameter_list.ID
    _Order_parameter_list.Sample_condition_list_ID
    _Order_parameter_list.Sample_condition_list_label
    _Order_parameter_list.Tau_e_val_units
    _Order_parameter_list.Tau_s_val_units
    _Order_parameter_list.Details

Here _Order_parameter_list.Tau_f_val_units is missing!


 loop_
    _Order_parameter_input.Sf_category
    _Order_parameter_input.Sf_category_ID

What is the Order_parameter_input tag category?


    _Order_parameter_experiment.Order_parameter_list_ID

 stop_

 loop_
    _Order_parameter_software.Software_ID

I'm guessing that the software version, etc. is in a separate software
saveframe that this tag is referring to?


    _Order_parameter_software.Software_label
    _Order_parameter_software.Method_ID
    _Order_parameter_software.Method_label
    _Order_parameter_software.Sf_ID
    _Order_parameter_software.Entry_ID
    _Order_parameter_software.Order_parameter_list_ID


 stop_

 loop_
    _Order_param.ID
    _Order_param.Entity_assembly_ID
    _Order_param.Entity_ID
    _Order_param.Comp_index_ID
    _Order_param.Comp_ID
    _Order_param.Obs_atom_ID
    _Order_param.Attached_atom_ID
    _Order_param.Bond_vector_x_val
    _Order_param.Bond_vector_y_val
    _Order_param.Bond_vector_z_val

Unit vectors are used in calculations, but I guess it doesn't matter
what the units or length of this vector are as it can always be
converted to unit length.  One issue here is a future extension I am
considering.  In an NMR ensemble, or MD simulation, there are multiple
vectors available for a single spin.  Currently you pick one, or the
average (should this be recorded?).  But an option might be to use a
set of vectors, although implementation is not clear.  But maybe it
would be useful to have the flexibility to handle this?


    _Order_param.Bond_length_val
    _Order_param.Bond_length_val_err

The _Order_param.Bond_length_val_err will only be used if bond length
r is an optimised parameter.


    _Order_param.CSA_val
    _Order_param.CSA_val_err

Same here.  In addition, people might start to use the full CS tensor,
hence 5 parameters are generally needed (e.g. anistropic part, rhombic
part, and 3 Euler angles).

I'm currently placing these CSA values into the Chem_shift_anisotropy
saveframe.  Do these need to be placing into the model-free saveframe
or would it be better to stay with the current BMRB convention of
storing these in their own frame (as well as the Bond_length and
Bond_vector)?


    _Order_param.S2_val
    _Order_param.S2_val_err
    _Order_param.Sf2_val
    _Order_param.Sf2_val_err
    _Order_param.Ss2_val
    _Order_param.Ss2_val_err

In relax and Modelfree4 (and many other places), these params are
written as S2f and S2s.  Maybe this is because the 2 and f and super
and subscripts respectively, and you usually put the superscript
first?


    _Order_param.Tau_m_val

To avoid confusion, maybe Local_tau_m_val (and _val_err) would be
better?  People might think this is the global correlation time tau_m
and not the isolated spin specific parameter.  Note that some people
will argue that Local_tau_c_val and Local_tau_c_val_err would be
better.


    _Order_param.Tau_e_val
    _Order_param.Tau_e_val_err
    _Order_param.Tau_f_val
    _Order_param.Tau_f_val_err
    _Order_param.Tau_s_val
    _Order_param.Tau_s_val_err
    _Order_param.Rex_val
    _Order_param.Rex_val_err
    _Order_param.Chi_squared_val

When optimising the global model (model-free models of all spins +
diffusion tensor), or simply optimising the diffusion tensor, there
will be no spin specific chi-squared values.  Is there a way of
storing this global chi-squared value?


    _Order_param.Model_fit

Here I would suggest 2 options.  The first would be like you
suggested, have a string such as 'S2, te' or 'S2s, tf, S2s, ts, Rex',
etc. covering all possible parameter combinations.  But I would have
this limited to a small set of fixed strings to allow parsing by
model-free programs.  The other would be to use a set of predefined
names as aliases for these parameters (if so, it would be good to have
them in the NMR-STAR dictionary documentation), so for example in
relax the following names are used:

    The standard preset model-free models are
        'm0' = {},
        'm1' = {S2},
        'm2' = {S2, te},
        'm3' = {S2, Rex},
        'm4' = {S2, te, Rex},
        'm5' = {S2f, S2, ts},
        'm6' = {S2f, tf, S2, ts},
        'm7' = {S2f, S2, ts, Rex},
        'm8' = {S2f, tf, S2, ts, Rex},
        'm9' = {Rex}.

    Additional preset model-free models, which are simply extensions
of the above models with
    the addition of a local tm parameter are:
        'tm0' = {tm},
        'tm1' = {tm, S2},
        'tm2' = {tm, S2, te},
        'tm3' = {tm, S2, Rex},
        'tm4' = {tm, S2, te, Rex},
        'tm5' = {tm, S2f, S2, ts},
        'tm6' = {tm, S2f, tf, S2, ts},
        'tm7' = {tm, S2f, S2, ts, Rex},
        'tm8' = {tm, S2f, tf, S2, ts, Rex},
        'tm9' = {tm, Rex}.

More models are detailed at the end.  Although not tested, they may
appear in the future.  Note that you can either optimise S2+S2f or
S2s+S2f as S2=S2f*S2s.  But I've shown in papers that S2+S2f
optimisation is much, much more reliable.  The point is, if someone
optimises S2s and S2f together, they have made a mistake - but this
doesn't need to be an excuse for a second set of models with S2s!  Oh,
note that model 'm0' might be problematic for the 'S2, te' type
representation.  Which method is chosen makes no difference from my
perspective, as long as these models are limited to an array of
allowable values.


    _Order_param.Order_parameter_list_ID


 stop_
save_

I think that covers most things.

Regards,

Edward



P.S.  All the models currently accepted in relax (cut and paste from
the documentation):

    The standard preset model-free models are
        'm0' = {},
        'm1' = {S2},
        'm2' = {S2, te},
        'm3' = {S2, Rex},
        'm4' = {S2, te, Rex},
        'm5' = {S2f, S2, ts},
        'm6' = {S2f, tf, S2, ts},
        'm7' = {S2f, S2, ts, Rex},
        'm8' = {S2f, tf, S2, ts, Rex},
        'm9' = {Rex}.

    The preset model-free models with optimisation of the CSA value are
        'm10' = {CSA},
        'm11' = {CSA, S2},
        'm12' = {CSA, S2, te},
        'm13' = {CSA, S2, Rex},
        'm14' = {CSA, S2, te, Rex},
        'm15' = {CSA, S2f, S2, ts},
        'm16' = {CSA, S2f, tf, S2, ts},
        'm17' = {CSA, S2f, S2, ts, Rex},
        'm18' = {CSA, S2f, tf, S2, ts, Rex},
        'm19' = {CSA, Rex}.

    The preset model-free models with optimisation of the bond length are
        'm20' = {r},
        'm21' = {r, S2},
        'm22' = {r, S2, te},
        'm23' = {r, S2, Rex},
        'm24' = {r, S2, te, Rex},
        'm25' = {r, S2f, S2, ts},
        'm26' = {r, S2f, tf, S2, ts},
        'm27' = {r, S2f, S2, ts, Rex},
        'm28' = {r, S2f, tf, S2, ts, Rex},
        'm29' = {r, CSA, Rex}.

    The preset model-free models with both optimisation of the bond
length and CSA are
        'm30' = {r, CSA},
        'm31' = {r, CSA, S2},
        'm32' = {r, CSA, S2, te},
        'm33' = {r, CSA, S2, Rex},
        'm34' = {r, CSA, S2, te, Rex},
        'm35' = {r, CSA, S2f, S2, ts},
        'm36' = {r, CSA, S2f, tf, S2, ts},
        'm37' = {r, CSA, S2f, S2, ts, Rex},
        'm38' = {r, CSA, S2f, tf, S2, ts, Rex},
        'm39' = {r, CSA, Rex}.

    Warning:  The models in the thirties range fail when using
standard R1, R2, and NOE
    relaxation data.  This is due to the extreme flexibly of these
models where a change in the
    parameter 'r' is compensated by a corresponding change in the
parameter 'CSA' and
    vice versa.


    Additional preset model-free models, which are simply extensions
of the above models with
    the addition of a local tm parameter are:
        'tm0' = {tm},
        'tm1' = {tm, S2},
        'tm2' = {tm, S2, te},
        'tm3' = {tm, S2, Rex},
        'tm4' = {tm, S2, te, Rex},
        'tm5' = {tm, S2f, S2, ts},
        'tm6' = {tm, S2f, tf, S2, ts},
        'tm7' = {tm, S2f, S2, ts, Rex},
        'tm8' = {tm, S2f, tf, S2, ts, Rex},
        'tm9' = {tm, Rex}.

    The preset model-free models with optimisation of the CSA value are
        'tm10' = {tm, CSA},
        'tm11' = {tm, CSA, S2},
        'tm12' = {tm, CSA, S2, te},
        'tm13' = {tm, CSA, S2, Rex},
        'tm14' = {tm, CSA, S2, te, Rex},
        'tm15' = {tm, CSA, S2f, S2, ts},
        'tm16' = {tm, CSA, S2f, tf, S2, ts},
        'tm17' = {tm, CSA, S2f, S2, ts, Rex},
        'tm18' = {tm, CSA, S2f, tf, S2, ts, Rex},
        'tm19' = {tm, CSA, Rex}.

    The preset model-free models with optimisation of the bond length are
        'tm20' = {tm, r},
        'tm21' = {tm, r, S2},
        'tm22' = {tm, r, S2, te},
        'tm23' = {tm, r, S2, Rex},
        'tm24' = {tm, r, S2, te, Rex},
        'tm25' = {tm, r, S2f, S2, ts},
        'tm26' = {tm, r, S2f, tf, S2, ts},
        'tm27' = {tm, r, S2f, S2, ts, Rex},
        'tm28' = {tm, r, S2f, tf, S2, ts, Rex},
        'tm29' = {tm, r, CSA, Rex}.

    The preset model-free models with both optimisation of the bond
length and CSA are
        'tm30' = {tm, r, CSA},
        'tm31' = {tm, r, CSA, S2},
        'tm32' = {tm, r, CSA, S2, te},
        'tm33' = {tm, r, CSA, S2, Rex},
        'tm34' = {tm, r, CSA, S2, te, Rex},
        'tm35' = {tm, r, CSA, S2f, S2, ts},
        'tm36' = {tm, r, CSA, S2f, tf, S2, ts},
        'tm37' = {tm, r, CSA, S2f, S2, ts, Rex},
        'tm38' = {tm, r, CSA, S2f, tf, S2, ts, Rex},
        'tm39' = {tm, r, CSA, Rex}.



Related Messages


Powered by MHonArc, Updated Sun Mar 15 19:00:27 2009