mailRe: r21920 - /trunk/test_suite/system_tests/relax_disp.py


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

Header


Content

Posted by Troels Emtekær Linnet on December 09, 2013 - 18:03:
Hi Edward.

The R1rho data is not constant time.

I have only included the models:
MODELS = ['R2eff', 'No Rex', 'DPL94']

I have set it up, to find a solution for analysing R1rho data, where R1 data has not been acquired, but for 
different 

It actually also fails at the moment, and will probably do for some time.

--------
relax -s Relax_disp.test_r1rho_kjaergaar

relax> calc(verbosity=1)
Traceback (most recent call last):
  File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/test_suite/system_tests/relax_disp.py", line 2581, in test_r1rho_kjaergaard
    relax_disp.Relax_disp(pipe_name=pipe_name, pipe_bundle=pipe_bundle, results_dir=ds.tmpdir, models=MODELS, grid_inc=GRID_INC, mc_sim_num=MC_NUM, modsel=MODSEL)
  File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/auto_analyses/relax_disp.py", line 116, in __init__
    self.run()
  File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/auto_analyses/relax_disp.py", line 447, in run
    self.interpreter.calc()
  File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/prompt/uf_objects.py", line 221, in __call__
    self._backend(*new_args, **uf_kargs)
  File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/pipe_control/minimise.py", line 86, in calc
    calculate(verbosity=verbosity)
  File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/api.py", line 717, in calculate
    self._calculate_r2eff()
  File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/api.py", line 182, in _calculate_r2eff
    check_exp_type_fixed_time()
  File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/checks.py", line 112, in check_exp_type_fixed_time
    raise RelaxError("The experiment '%s' is not of the fixed relaxation time period data type." % exp_type)
RelaxError: RelaxError: The experiment 'R1rho' is not of the fixed relaxation time period data type.

--------------

Is the R1rho analysis only implemented for fixed time periods?

Best
Troels



2013/12/9 Edward d'Auvergne <edward@xxxxxxxxxxxxx>
Hi Troels,

When looking at this data and analysis, remember that I have not
implemented Dmitry Korzhnev's "correction" for constant time R1rho
data.  I don't know if that was used in the original publication for
your data.  More details are given in the 'To do' section of the
manual (I only recently added this info).  I also don't know what the
rest of the field think of his correction and how it applies to later
models from the Palmer group.

Regards,

Edward



On 9 December 2013 17:49,  <tlinnet@xxxxxxxxxxxxx> wrote:
> Author: tlinnet
> Date: Mon Dec  9 17:49:49 2013
> New Revision: 21920
>
> URL: http://svn.gna.org/viewcvs/relax?rev=21920&view=rev
> Log:
> Added system test for the analysis of optimisation of the Kjaergaard et al., 2013 Off-resonance R1rho relaxation dispersion experiments using the 'DPL' model.
>
> Work in progress for Support Request #3083, (https://gna.org/support/index.php?3083) -  Addition of Data-set for R1rho analysis.
>
> Modified:
>     trunk/test_suite/system_tests/relax_disp.py
>
> Modified: trunk/test_suite/system_tests/relax_disp.py
> URL: http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/relax_disp.py?rev=21920&r1=21919&r2=21920&view=diff
> ==============================================================================
> --- trunk/test_suite/system_tests/relax_disp.py (original)
> +++ trunk/test_suite/system_tests/relax_disp.py Mon Dec  9 17:49:49 2013
> @@ -2450,6 +2450,137 @@
>          self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].chi2, 0.030959849811015544, 3)
>
>
> +    def test_r1rho_kjaergaard(self):
> +        """Optimisation of the Kjaergaard et al., 2013 Off-resonance R1rho relaxation dispersion experiments using the 'DPL' model.
> +
> +        This uses the data from Kjaergaard's paper at U{DOI: 10.1021/bi4001062<http://dx.doi.org/10.1021/bi4001062>}.
> +
> +        """
> +
> +        # The path to the data files.
> +        data_path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'Kjaergaard_et_al_2013'
> +
> +        # Set pipe name, bundle and type.
> +        pipe_name = 'base pipe'
> +        pipe_bundle = 'relax_disp'
> +        pipe_type= 'relax_disp'
> +
> +        # Create the data pipe.
> +        self.interpreter.pipe.create(pipe_name=pipe_name, bundle=pipe_bundle, pipe_type=pipe_type)
> +
> +        # Read the spins.
> +        self.interpreter.spectrum.read_spins(file='1_0_46_0_max_standard.ser', dir=data_path+sep+'peak_lists')
> +
> +        # Test some of the sequence.
> +        self.assertEqual(len(cdp.mol), 1)
> +        self.assertEqual(cdp.mol[0].name, None)
> +        self.assertEqual(len(cdp.mol[0].res), 48)
> +
> +        # Name the isotope for field strength scaling.
> +        self.interpreter.spin.isotope(isotope='15N')
> +
> +        # Set number of experiments to be used.
> +        NR_exp = -1
> +
> +        # Load the experiments settings file.
> +        expfile = open(data_path+sep+'exp_parameters_sort.txt','r')
> +        expfileslines = expfile.readlines()[:NR_exp]
> +        expfile.close()
> +
> +        # In MHz
> +        yOBS = 81.050
> +        # In ppm
> +        yCAR = 118.078
> +        centerPPM_N15 = yCAR
> +
> +        ## Read the chemical shift data.
> +        self.interpreter.chemical_shift.read(file='1_0_46_0_max_standard.ser', dir=data_path+sep+'peak_lists')
> +
> +        # Test the chemical shift data.
> +        cs = [122.223, 122.162, 114.250, 125.852, 118.626, 117.449, 119.999, 122.610, 118.602, 118.291, 115.393,
> +        121.288, 117.448, 116.378, 116.316, 117.263, 122.211, 118.748, 118.103, 119.421, 119.317, 119.386, 117.279,
> +        122.103, 120.038, 116.698, 111.811, 118.639, 118.285, 121.318, 117.770, 119.948, 119.759, 118.314, 118.160,
> +        121.442, 118.714, 113.080, 125.706, 119.183, 120.966, 122.361, 126.675, 117.069, 120.875, 109.372, 119.811, 126.048]
> +
> +        i = 0
> +        for spin, spin_id in spin_loop(return_id=True):
> +            print spin.name, spin.num, spin_id, spin.chemical_shift, cs[i]
> +            # Check the chemical shift.
> +            self.assertEqual(spin.chemical_shift, cs[i])
> +
> +            # Increment the index.
> +            i += 1
> +
> +        # The lock power to field, has been found in an calibration experiment.
> +        spin_lock_field_strengths_Hz = {'35': 431.0, '39': 651.2, '41': 800.5, '43': 984.0, '46': 1341.11, '48': 1648.5}
> +
> +        # Apply spectra settings.
> +        for i in range(len(expfileslines)):
> +            line=expfileslines[i]
> +            if line[0] == "#":
> +                continue
> +            else:
> +                # DIRN I deltadof2 dpwr2slock ncyc trim ss sfrq
> +                DIRN = line.split()[0]
> +                I = int(line.split()[1])
> +                deltadof2 = line.split()[2]
> +                dpwr2slock = line.split()[3]
> +                ncyc = int(line.split()[4])
> +                trim = float(line.split()[5])
> +                ss = int(line.split()[6])
> +                set_sfrq = float(line.split()[7])
> +                apod_rmsd = float(line.split()[8])
> +                spin_lock_field_strength = spin_lock_field_strengths_Hz[dpwr2slock]
> +
> +                # Calculate spin_lock time
> +                time_sl = 2*ncyc*trim
> +
> +                # Define file name for peak list.
> +                FNAME = "%s_%s_%s_%s_max_standard.ser"%(I, deltadof2, dpwr2slock, ncyc)
> +                sp_id = "%s_%s_%s_%s"%(I, deltadof2, dpwr2slock, ncyc)
> +
> +                # Load the peak intensities.
> +                self.interpreter.spectrum.read_intensities(file=FNAME, dir=data_path+sep+'peak_lists', spectrum_id=sp_id, int_method='height')
> +
> +                # Set the peak intensity errors, as defined as the baseplane RMSD.
> +                self.interpreter.spectrum.baseplane_rmsd(error=apod_rmsd, spectrum_id=sp_id)
> +
> +                # Set the relaxation dispersion experiment type.
> +                self.interpreter.relax_disp.exp_type(spectrum_id=sp_id, exp_type='R1rho')
> +
> +                # Set The spin-lock field strength, nu1, in Hz
> +                self.interpreter.relax_disp.spin_lock_field(spectrum_id=sp_id, field=spin_lock_field_strength)
> +
> +                # Calculating the spin-lock offset in ppm, from offsets values provided in Hz.
> +                frq_N15_Hz = yOBS * 1E6
> +                offset_ppm_N15 = float(deltadof2) / frq_N15_Hz * 1E6
> +                omega_rf_ppm = centerPPM_N15 + offset_ppm_N15
> +
> +                # Set The spin-lock offset, omega_rf, in ppm.
> +                self.interpreter.relax_disp.spin_lock_offset(spectrum_id=sp_id, offset=omega_rf_ppm)
> +
> +                # Set the relaxation times (in s).
> +                self.interpreter.relax_fit.relax_time(time=time_sl, spectrum_id=sp_id)
> +
> +                # Set the spectrometer frequency.
> +                self.interpreter.spectrometer.frequency(id=sp_id, frq=set_sfrq, units='MHz')
> +
> +        # The dispersion models.
> +        MODELS = ['R2eff', 'No Rex', 'DPL94']
> +
> +        # The grid search size (the number of increments per dimension).
> +        GRID_INC = 4
> +
> +        # The number of Monte Carlo simulations to be used for error analysis at the end of the analysis.
> +        MC_NUM = 3
> +
> +        # Model selection technique.
> +        MODSEL = 'AIC'
> +
> +        # Run the analysis.
> +        relax_disp.Relax_disp(pipe_name=pipe_name, pipe_bundle=pipe_bundle, results_dir=ds.tmpdir, models=MODELS, grid_inc=GRID_INC, mc_sim_num=MC_NUM, modsel=MODSEL)
> +
> +
>      def test_r2eff_read(self):
>          """Test the operation of the relax_disp.r2eff_read user function."""
>
>
>
> _______________________________________________
> relax (http://www.nmr-relax.com)
>
> This is the relax-commits mailing list
> relax-commits@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-commits

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

This is the relax-devel mailing list
relax-devel@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-devel


Related Messages


Powered by MHonArc, Updated Mon Dec 09 18:20:08 2013