Hi Sven,

Sorry for not getting back to you earlier, I have been extremely busy
lately.  Please see below:


On 25 April 2017 at 14:52, Sven Wernersson <sven.werners...@bpc.lu.se> wrote:
> Hi again,
>
> It seems that the tutorial you linked only applies for supporting data from 
> new experiments to dispersion analysis and not for model-free analysis? Is 
> adding experiments for model-free analysis done in a similar fashion?

For the model-free analysis, adding new models is more complicated.
The reason for this is because the code is highly optimised to avoid
repetitive calculations, and it is not as modular as the relaxation
dispersion code.  Another reason is because I started this code back
in 2001, back when I was first learning how to code in Python, so it's
design was not as advanced as the relaxation dispersion side of relax.
Also, you will be using the same models as already implemented, but
the input data will be different.


> As for your listed requirements, I have experimental data and I can rather 
> easily generate synthetic data. The  eta_xy equation is number (2) in:
>
> Longitudinal and Transverse 1H−15N Dipolar/15N Chemical Shift Anisotropy 
> Relaxation Interference:  Unambiguous Determination of Rotational Diffusion 
> Tensors and Chemical Exchange Effects in Biological Macromolecules
> Christopher D. Kroenke,†, J. Patrick Loria,†, Larry K. Lee,†, Mark Rance,*,‡ 
> and, and Arthur G. Palmer, III*,†
> Journal of the American Chemical Society 1998 120 (31), 7905-7915
> DOI: 10.1021/ja980832l

If you would like to develop new code here, which shouldn't be
difficult if you can handle complex Matlab code, I would suggest we
create a new development branch in the repository.  You should learn
how to develop for relax by reading the "relax development" chapter of
the manual:

    http://www.nmr-relax.com/manual/relax_development.html

This explains the procedure for becoming a relax developer.  We could
then grant you commit access on the condition of only modifying your
development branch.  That way you can experiment in this sandbox as
you wish, and it can be abandoned and a new branch created if you
don't like your initial tests.

The very first step in implementing a new model/analysis in relax is
to create a system/functional test.  From the information you provide,
it looks like you could create two or more tests.  One would be
synthetic data where you know the model-free parameters and you hand
calculate the relaxation data (to 64-bit machine precision).  The
second would be taking some of the Kroenke et al. published data where
you know the relaxation data and model-free result.  With the
synthetic data, you could create a number of tests later on to cover
corner cases and hard to optimise cases.  Once you have the relaxation
data, you create a relax script to analyse this data.  This is then
placed into a test which runs the script and then checks the optimised
model-free parameter values.  See the code in test_suite/system_tests/
for plenty of such examples.  Obviously these tests will fail at the
start, but once the Python code for the eta_xy data is in place and
correct, the tests will pass.

After the tests have been added, then I can help point you in the
right direction with the model-free target function code.  There was
one abortive effort to handle anisotropic chemical shift tensors and
multiple dipolar relaxation data, which as later merged for archival
purposes into the CST branch of relax (see
https://marc.info/?t=135070783800002&r=2&w=2).  This was by Pavel
Kaderavek and Petr Novak back in 2008:

    https://mail.gna.org/public/relax-devel/2008-12/msg00046.html

This might be worth having a look at as some of the concepts might be
similar.  The 'cst_1.2.10' branch might be the most informative, as
the 'cst' branch was a failed attempt to keep this code up to date
with the relax trunk.  Note though that the code developed there was
not ideal as the model-free code was simply replicated 6 times for the
different data types.  Instead I would like to help you so that the
input data structure for the model-free functions are modified, and
the model-free functional code is reused for all data types.  For
eta_xy data, do we need the full chemical shift tensor as an input?

Regards,

Edward


P. S. As for implementing the eta_xy data, have you thought of eta_z
data as well?  If you implement eta_xy support, adding eta_z support
in addition should be relatively easy.

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@gna.org

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to