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 - 10:42:
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 <tlinnet@xxxxxxxxx> 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', file='proc_list.txt.1int',
spectrum_id='1_133.33', int_method='point sum', heteronuc='N', proton='HN',
int_col=3)
    relax_fit.relax_time(time=0.06, spectrum_id='1_133.33')
    spectrum.read_intensities(dir='relax', file='proc_list.txt.2int',
spectrum_id='2_166.67', int_method='point sum', heteronuc='N', proton='HN',
int_col=3)
    relax_fit.relax_time(time=0.06, spectrum_id='2_166.67')
    spectrum.read_intensities(dir='relax', file='proc_list.txt.3int',
spectrum_id='3_333.33', int_method='point sum', heteronuc='N', proton='HN',
int_col=3)
    relax_fit.relax_time(time=0.06, spectrum_id='3_333.33')
    spectrum.read_intensities(dir='relax', file='proc_list.txt.4int',
spectrum_id='4_33.33', int_method='point sum', heteronuc='N', proton='HN',
int_col=3)
    relax_fit.relax_time(time=0.06, spectrum_id='4_33.33')
   ... and so on

# Specify the duplicated spectra.
spectrum.replicated(spectrum_ids=['0_0.0', '18_0.0'])
spectrum.error_analysis()

# Deselect unresolved spins.
#deselect.read(file='unresolved', mol_name_col=1, res_num_col=2,
res_name_col=3, spin_num_col=4, spin_name_col=5)

# Set the relaxation curve type.
relax_fit.select_model('exp')

# Grid search.
grid_search(inc=11)

# Minimise.
minimise('simplex', scaling=False, constraints=False)

## Monte Carlo simulations.
monte_carlo.setup(number=10)
monte_carlo.create_data()
monte_carlo.initial_values()
minimise('simplex', scaling=False, constraints=False)
monte_carlo.error_analysis()

## Save the relaxation rates.
value.write(param='rx', file='rx.out', force=True)

## Save the results.
results.write(file='results', force=True)

# Save the program state.
state.save('rx.save', force=True)

Best

Troels Emtekær Linnet
Ved kløvermarken 9, 1.th
2300 København S
Mobil: +45 60210234

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

This is the relax-users mailing list
relax-users@xxxxxxx

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-users




Related Messages


Powered by MHonArc, Updated Thu May 02 17:00:06 2013