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 10, 2013 - 09:35:
Uf...

There was the error:

                # Set the relaxation times (in s).
                self.interpreter.relax_fit.relax_time(time=time_sl, spectrum_id=sp_id)
was used instead of:
                # Set the relaxation times (in s).
                self.interpreter.relax_disp.relax_time(spectrum_id=sp_id, time=time_sl)


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

That's exactly the point of failure.  Maybe it would be useful to
create one or two simple unit tests for the get_curve_type() function,
using some of the data in the current data pipe where your script is
failing.  The problem is that for the experiment ID being sent into
it, it can only find one matching relaxation time.  Are you sure that
all data is loaded correctly?

Regards,

Edward



On 10 December 2013 09:19, Troels Emtekær Linnet <tlinnet@xxxxxxxxxxxxx> wrote:
> Hi Edward.
>
> The function: has_exponential_exp_type() is returning
> False, as the get_curve_type(id) is returning: fixed time
>
> So that test look good enough for me?
>
> Is it the: fixed time which is a problem?
>
> Best
> Troels
>
>
>
> 2013/12/10 Troels Emtekær Linnet <tlinnet@xxxxxxxxxxxxx>
>>
>> Hi Edward.
>>
>> I will try to look into it today.
>>
>> Best
>> Troels
>>
>>
>> 2013/12/9 Edward d'Auvergne <edward@xxxxxxxxxxxxx>
>>>
>>> Hi Troels,
>>>
>>> Note that I will soon release relax 3.1.1 with all of the recent fixes
>>> (possibly tomorrow).  This includes the 'NS MMQ 3-site', 'NS MMQ
>>> 3-site linear', 'NS R1rho 3-site', and 'NS R1rho 3-site linear'
>>> dispersion models which are now implemented, tested, and find similar
>>> results to Dmitry Korzhnev's cpmg_fit software.  If the test is not
>>> functional by then, I will disable it for the release.  It would be
>>> very useful to have fixed though as it looks like variable relaxation
>>> time data (SQ CPMG, MMQ CPMG, or R1rho) will all currently fail in the
>>> auto-analysis.  I've had a look and have another hint for you - the
>>> problem is that has_exponential_exp_type() function is not returning
>>> the correct answer ;)
>>>
>>> Regards,
>>>
>>> Edward
>>>
>>>
>>>
>>> On 9 December 2013 18:12, Edward d'Auvergne <edward@xxxxxxxxxxxxx> wrote:
>>> > Hi,
>>> >
>>> > This is a strange failure!  The auto-analysis should not be running
>>> > the calc user function for this.  That is the problem, you cannot run
>>> > the calc user function for non-constant relaxation time experiments.
>>> > The error message is the standard one to tell the user that.  The
>>> > grid_search and minimise user functions should be used instead (maybe
>>> > the error message can be modified to clarify this and include this
>>> > info).  But it is the auto-analysis that is running this.  So the
>>> > problem is there.  relax can of course handle variable relaxation
>>> > times for any dispersion data type.
>>> >
>>> > Regards,
>>> >
>>> > Edward
>>> >
>>> >
>>> >
>>> >
>>> > On 9 December 2013 18:02, Troels Emtekær Linnet <tlinnet@xxxxxxxxxxxxx>
>>> > wrote:
>>> >> 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 Tue Dec 10 10:00:08 2013