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

2013-05-02 Thread Edward d'Auvergne
Hi Troels,

Welcome to the relax mailing lists.  For now the answer to your
question is, unfortunately, no - relax does not officially support
relaxation dispersion.  The analysis you are running is simple two
parameter exponential curve-fitting
(http://www.nmr-relax.com/manual/Relaxation_curve_fitting.html).  This
can be used to find the R2eff or R1rho values if you have measured the
full exponential curves, but otherwise you cannot perform a dispersion
analysis with this.

This may not be of use for you at the moment, but note that relax has
unofficial and incomplete support for dispersion analyses (both
CPMG-type and R1rho-type data sets).  As relax is open source, there
are many NMR spectroscopists who have added code to relax (for example
see http://gna.org/project/memberlist.php?group=relax).  An initial
implementation of the relaxation dispersion analysis was added to a
relax branch back in 2009 by Sebastian Morin
(http://thread.gmane.org/gmane.science.nmr.relax.devel/1728).  But as
this was not completed at the time, it was never merged back into the
relax main line (the source code where official relax releases come
from).  I have recently restored the branch to a partially working
state and added a graphical interface for the analysis - mainly for my
own purposes (http://svn.gna.org/viewcvs/relax/branches/).  So at some
point in the near future relax will be able to perform the analyses
you are interested in.

As relax is open source, if you are interested and adventurous enough
you are most welcome to help in the development.  Even if you do not
know how to code, there are many other things which can be done.  For
example calculating the partial derivatives of the analytic solutions
to obtain the gradients and Hessians so that with relax you can have
access to far more powerful optimisation algorithms than any of the
other dispersion software has access to.  Or to create test data
whereby the solution is know, or to collect the input and output test
data from published results.  If you have the subversion version
control software installed, you can obtain the code by typing either:

$ svn co svn://svn.gna.org/svn/relax/branches/relax-disp

or:

$ svn co http://svn.gna.org/svn/relax/branches/relax-disp

If you are more interested in quickly performing the analysis, I would
point you to Dr. Flemming Hansen's CATIA program:

http://www.biochem.ucl.ac.uk/hansen/catia/ (the old page is
http://pound.med.utoronto.ca/~flemming/catia/).

This performs numerically integration of the Bloch-McConnell
equations, so not the optimisation of the analytic solutions of
Meiboom, Richard-Carver, etc.  It is also only for CPMG-type data
rather than R1rho, whereas the relax branch will handle both.  I hope
this information helps.

Regards,

Edward




On 30 April 2013 18:40, Troels Emtekær Linnet tlin...@gmail.com wrote:
 Dear relax users.

 I am looking into different NMR programs to fit
 relaxation data for CPMG relaxation dispersion experiments and T1rho.

 Essentially, I am looking for programs for which can fit functions, which
 for example nessy provide:
 http://home.gna.org/nessy/reference.html
 The Meiboom equation or Richard-Carver equation

 Nessy is very buggy, and I am looking for a replacement.

 I should be able to:
 R2eff = -1.0/time_T2*log(Intensity/averageZero)

 ncyc_arr=[28, 0, 4, 32, 60, 2, 10, 16, 8, 20, 50, 18, 40, 6, 12, 0, 24]
 time_T2 = 0.06 second
 nu = ncyc_arr[i]/time_T2

 R2cpmg_slow:
 tau_cpmg = 1.0/(4*nu)
 R2eff = R2+ka*(1.0-sin(Domega*tau_cpmg)/(Domega*tau_cpmg))


 I have followed the tutorial in the homepage manual:

 Can relax analyse these kinds of experiments?
 Should i provide the: relax_fit.relax_time(time to be equal tau_cpmg ?
 I put in time_T2, even though its wrong. I just wanted to try the program.
 :-)

 
 Script for relaxation curve fitting.
 # Create the 'rx' data pipe.
 pipe.create('rx', 'relax_fit')
 ## Load the backbone amide 15N spins from a PDB file.
 pdbfile=False
 if pdbfile:
 structure.read_pdb(pdbfile)
 structure.load_spins(spin_id='@N')
 else:
 molecule.create(mol_name='protein', mol_type='protein')
 residue.create(res_num=2, res_name='VAL')
 spin.create(res_num=2, spin_name='N')
 residue.create(res_num=3, res_name='PHE')
 spin.create(res_num=3, spin_name='N')
 residue.create(res_num=4, res_name='GLY')
 spin.create(res_num=4, spin_name='N')
 residue.create(res_num=5, res_name='ARG')
 spin.create(res_num=5, spin_name='N')
 residue.create(res_num=6, res_name='CYS')
  and so on

 ## Loop over the spectra intensities. Relaxation times should be in seconds.
 readint=True
 if readint:
 spectrum.read_intensities(dir='relax', file='proc_list.txt.0int',
 spectrum_id='0_0.0', int_method='point sum', heteronuc='N', proton='HN',
 int_col=3)
 relax_fit.relax_time(time=0.06, spectrum_id='0_0.0')
 spectrum.read_intensities(dir='relax', 

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

2013-05-02 Thread Troels Emtekær Linnet
Dear Edward.

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

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.

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.
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:
seriesTabhttp://spin.niddk.nih.gov/NMRPipe/ref/prog/seriestab.htmlwith:
-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 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,http://springer.r.delivery.net/r/r?2.1.Ee.2Tp.1jiDvx.C5t4Ay..H.a%2ace.44Wy.bW89MQ%5f%5fDIJWFRd0and
easy
visualization of each
integrationhttps://github.com/jjhelmus/nmrglue/wiki/Plot-and-integrate-peaks-from-nmrpipe-format-and-sparky-list.
Preparation of data for fitting.
6) Global fitting. Either with nessy, relax or with python scipy leastsq.

Here I tried to make a nessy
databasehttps://github.com/jjhelmus/nmrglue/wiki/Make-a-nessy-database-for-CPMG-eksperiment,
but nessy came out very buggy.
And I was about to set out for some python scipy fitting after nmrglue.

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.

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
integrationhttps://github.com/jjhelmus/nmrglue/wiki/Plot-and-integrate-peaks-from-nmrpipe-format-and-sparky-list.
Preparation of data for fitting.
6) 
nmrgluehttp://springer.r.delivery.net/r/r?2.1.Ee.2Tp.1jiDvx.C5t4Ay..H.a%2ace.44Wy.bW89MQ%5f%5fDIJWFRd0script
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?

Best
Troels

--
Troels Emtekær Linnet
PhD student
Copenhagen University
SBiNLab, 3-0-41
Ole Maaloes Vej 5
2200 Copenhagen N
Tlf: +45 353-22083



2013/5/2 Edward d'Auvergne edw...@nmr-relax.com

 Hi Troels,

 Welcome to the relax mailing lists.  For now the answer to your
 question is, unfortunately, no - relax does not officially support
 relaxation dispersion.  The analysis you are running is simple two
 parameter exponential curve-fitting
 (http://www.nmr-relax.com/manual/Relaxation_curve_fitting.html).  This
 can be used to find the R2eff or R1rho values if you have measured the
 full exponential curves, but otherwise you cannot perform a dispersion
 analysis with this.

 This may not be of use for you at the moment, but note that relax has
 unofficial and incomplete support for dispersion analyses (both
 CPMG-type and R1rho-type data sets).  As relax is open source, there
 are many NMR spectroscopists who have added code to relax (for example
 see http://gna.org/project/memberlist.php?group=relax).  An initial
 implementation of the relaxation dispersion analysis was added to a
 relax branch back in 2009 by Sebastian Morin
 (http://thread.gmane.org/gmane.science.nmr.relax.devel/1728).  But as
 this was not completed at the time, it was never merged back into the
 relax main line (the source code where official relax releases come
 from).  I have recently restored the branch to a partially working
 state and added a graphical interface for the analysis - mainly for my
 own purposes (http://svn.gna.org/viewcvs/relax/branches/).  So at some
 point in the near future relax will be able to perform the analyses
 you are interested in.

 As relax is open source, if you are interested and adventurous enough
 you are most welcome to help in the development.  Even if you do not
 know how to code, there are many other things which can be done.  For
 example calculating the partial derivatives of the analytic solutions
 to obtain the 

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

2013-05-02 Thread Edward d'Auvergne
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'