mailRe: Is it possible to analyse CPMG experiments with relax?


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

Header


Content

Posted by Edward d'Auvergne on May 02, 2013 - 18:21:
Hi,

Its great that you have an interest and know Python - you are in a
perfect position to join as a relax developer!  See below for more
responses:


Thank you for your generous email, which helped a-lot.

You're welcome!


I am happy to see the active development, and I would be more than happy to
join in.
I am "quite" good in python programming, and are confident i revision
programs as svn and git.
And I have courses in scientific computing, so I think i get along quite
good.

I would recommend you have a read of the relax open source
infrastructure chapter of the relax manual
(http://www.nmr-relax.com/manual/Open_source_infrastructure.html) and,
more importantly, the development chapter of the relax manual
(http://www.nmr-relax.com/manual/relax_development.html).  The PDF
version of the manual is much easier to read
(http://download.gna.org/relax/manual/relax.pdf).  These chapters
describe in full detail everything you would ever need as a relax
developer.  Note that relax is a very mature project, so learning how
to code in such an environment to avoid breaking the rest of the
program will give you quite a different skill set.

You might also be interested in learning about the minfx project that
relax uses for optimisation (https://gna.org/projects/minfx/).  This
originated as a relax package as the scipy optimisers all contained
fatal bugs back in 2003 (I'm not sure they have been fixed as the
original developers were MIA even back then and I think have never
returned).  But it was spun out into its own software distribution.


My reason for my interest, is that I think I should change my working
habits, to something more effect full.

My work-flow at the moment, is this.

1) CPMG/T1-rho experiment acquisition with NLS, through VnmrJ.

I have to warn you here that non-linear sampling is notoriously bad
for measuring high precision NMR parameters such as relaxation data.
I would recommend avoiding this technique if you can.  It is great for
low precision data required for assignment, for example, but not so
good for the high precision data measurements.


2) Data reconstruction in qMDD.
(3) Main peak positioning in CcpNmr  Analysis.)
4) Small peak adjustment, control in SPARKY.
5) Point sum integration in with: seriesTab with: -dx 1 -dy 1
6) Integration analysis in gnuplot/IgorPro,Originlab.
The use of IgorPro,Originlab have been used because of easy use of the
global fitting routine, but pose a problem, since
we only have a very few licenses. And I weigh open-source very high. :-)

The way I perform this is a bit different in that I use peak heights
directly from Sparky.


The last weeks, I have fiddling around my workflow to try something like
this:
1) CPMG/T1-rho experiment acquisition with NLS, through VnmrJ.
2) Data reconstruction in qMDD.
(3) Main peak positioning in CcpNmr  Analysis.)
4) Small peak adjustment, control in SPARKY.
5) Point sum integration in nmrglue, and easy visualization of each
integration. Preparation of data for fitting.
6) Global fitting. Either with nessy, relax or with python scipy leastsq.

Here I tried to make a nessy database, but nessy came out very buggy.
And I was about to set out for some python scipy fitting after nmrglue.

I am currently the maintainer of the NESSY project, but the types of
bugs reported require significant amounts of coding to solve the
problems.  Unfortunately I don't have the time for this - it could be
a few months of work.  As for nmrglue
(http://code.google.com/p/nmrglue/), this appears quite new and this
is the first time I have heard of it.  It looks like an interesting
project.  I wonder if they use 3-point quadratic integration for
determining the maximum peak height?


But I had a hard time imagining that NMR software were not already developed
for this,
and I was very pleased to see the development of relax, which have not come
to my attention before.
And especially the inclusion of the python interpreter, and possibility to
write scripts, is genius.
Which is similar to the where the power of pymol is shining through.

Thanks!  I am directing the development of relax to have the maximum
amount of flexibility.  For the basic users who want quick results,
there are the auto-analyses which can be used as blackboxes, giving
the user the best practice analysis.  These are used in the GUI.  For
the medium level users, the user functions (which are special Python
functions which perform a lot of checking of the user input) allow for
advanced scripting.  For the advanced users, the relax API can be used
to build complete new analyses (http://www.nmr-relax.com/api/).  I
have been developing relax so that in the future it can be used by NMR
users as a replacement for Matlab/Mathematica for numerical
operations.  The relax library - the 'lib' package - is a large
collection of NMR specific functions.  For example, have a look at the
rotation matrix module 'lib.geometry.rotations'
(http://svn.gna.org/viewcvs/relax/trunk/lib/geometry/rotations.py?view=markup).
 This can be used to convert between the different Euler angle
notations used in the field (there are 2602 different notations in
total for symmetric tensors).  I hope that through this library, the
power of PyMOL will be far exceeded.  I simply add to this library
whenever I need.  Note that this library is quite new but that the
code comes from all parts of relax and have been written by various
relax developers.

There is also the pipe_control package which manages the relax data
model and can handle many different types of NMR data, physical
parameters, etc.  This package is key for handling the flow of data
through the analyses and is already quite advanced in handling most
things users can throw at relax.  This used to be called the
'generic_fns' package, if you encounter this in the manual.

There has been a large rearrangement of code in relax recently and
this is in preparation for the release of relax 3.0.0.  So don't be
surprised if you cannot find the 'data', 'maths_fns', 'generic_fns',
and 'specific_fns' packages as these are now called 'data_store',
'target_functions', 'pipe_control', and 'specific_analyses'
respectively.  And a lot of code from those packages have been shifted
into the 'lib' package.


An optimal workflow would be this.
1) CPMG/T1-rho experiment acquisition with NLS, through VnmrJ.
2) Data reconstruction in qMDD.
(3) Main peak positioning in CcpNmr  Analysis.)
4) Small peak adjustment, control in SPARKY.
5) Point sum integration in nmrglue, and easy visualization of each
integration. Preparation of data for fitting.
6) nmrglue script preparation for relax, execution, save of result.
7) Graphical inspection of result through relax.

So, I think I will try out the current state of the relax-disp branch.
Are there any others developing on this branch?

I am currently the only one developing the branch.  Sebastian Morin is
no longer involved.  Note that the state currently appears quite
primitive as only the exponential curve-fitting currently works, but
that most of the key infrastructure is there.  I will soon, in the
next few days, create the code for the R2eff =
-1.0/time_T2*log(Intensity/averageZero) calculation for my own
purposes and well as the 2-site fast exchange model for R1rho.  These
will result in some large rearrangements and changes to the data
passed into the target function code of the
target_functions.relax_disp module.

I would recommend that for discussing development that we should use
the relax-devel at gna.org mailing list instead of the relax-users
mailing list.

Cheers,

Edward



Related Messages


Powered by MHonArc, Updated Thu May 02 19:00:05 2013