Hi Edward.

If i use the function:

    for exp_type, frq, offset, point, time, ei, mi, oi, di, ti in
specific_analyses.relax_disp.disp_data.loop_exp_frq_offset_point_time(return_indices=True):
        print exp_type, frq, offset, point, time, ei, mi, oi, di, ti

Where i guess that:
ei = experiment index
mi = frequency index
oi = offset index
di = dispersion index
ti = time index

SQ CPMG 499862140.0 0.0 50.0 0.04 0 0 0 0 0
SQ CPMG 499862140.0 0.0 50.0 0.06 0 0 0 0 1
SQ CPMG 499862140.0 0.0 100.0 0.04 0 0 0 1 0
SQ CPMG 499862140.0 0.0 100.0 0.06 0 0 0 1 1
SQ CPMG 499862140.0 0.0 150.0 0.04 0 0 0 2 0
SQ CPMG 499862140.0 0.0 150.0 0.06 0 0 0 2 1
SQ CPMG 499862140.0 0.0 200.0 0.04 0 0 0 3 0
SQ CPMG 499862140.0 0.0 200.0 0.06 0 0 0 3 1
SQ CPMG 499862140.0 0.0 250.0 0.04 0 0 0 4 0
SQ CPMG 499862140.0 0.0 250.0 0.06 0 0 0 4 1
SQ CPMG 499862140.0 0.0 300.0 0.04 0 0 0 5 0
SQ CPMG 499862140.0 0.0 300.0 0.06 0 0 0 5 1
SQ CPMG 499862140.0 0.0 350.0 0.04 0 0 0 6 0
SQ CPMG 499862140.0 0.0 350.0 0.06 0 0 0 6 1
SQ CPMG 499862140.0 0.0 400.0 0.04 0 0 0 7 0
SQ CPMG 499862140.0 0.0 400.0 0.06 0 0 0 7 1
SQ CPMG 499862140.0 0.0 450.0 0.04 0 0 0 8 0
SQ CPMG 499862140.0 0.0 450.0 0.06 0 0 0 8 1
SQ CPMG 499862140.0 0.0 500.0 0.04 0 0 0 9 0
SQ CPMG 499862140.0 0.0 500.0 0.06 0 0 0 9 1
SQ CPMG 499862140.0 0.0 550.0 0.04 0 0 0 10 0
SQ CPMG 499862140.0 0.0 550.0 0.06 0 0 0 10 1
SQ CPMG 499862140.0 0.0 600.0 0.04 0 0 0 11 0
SQ CPMG 499862140.0 0.0 600.0 0.06 0 0 0 11 1
SQ CPMG 499862140.0 0.0 650.0 0.04 0 0 0 12 0
SQ CPMG 499862140.0 0.0 650.0 0.06 0 0 0 12 1
SQ CPMG 499862140.0 0.0 700.0 0.04 0 0 0 13 0
SQ CPMG 499862140.0 0.0 700.0 0.06 0 0 0 13 1
SQ CPMG 499862140.0 0.0 800.0 0.04 0 0 0 14 0
SQ CPMG 499862140.0 0.0 800.0 0.06 0 0 0 14 1
SQ CPMG 499862140.0 0.0 900.0 0.04 0 0 0 15 0
SQ CPMG 499862140.0 0.0 900.0 0.06 0 0 0 15 1
SQ CPMG 499862140.0 0.0 1000.0 0.04 0 0 0 16 0
SQ CPMG 499862140.0 0.0 1000.0 0.06 0 0 0 16 1
SQ CPMG 599890858.7 0.0 33.333 0.04 0 1 0 0 0
SQ CPMG 599890858.7 0.0 33.333 0.06 0 1 0 0 1
SQ CPMG 599890858.7 0.0 66.667 0.04 0 1 0 1 0
SQ CPMG 599890858.7 0.0 66.667 0.06 0 1 0 1 1
SQ CPMG 599890858.7 0.0 100.0 0.04 0 1 0 2 0
SQ CPMG 599890858.7 0.0 100.0 0.06 0 1 0 2 1
SQ CPMG 599890858.7 0.0 133.333 0.04 0 1 0 3 0
SQ CPMG 599890858.7 0.0 133.333 0.06 0 1 0 3 1
SQ CPMG 599890858.7 0.0 166.667 0.04 0 1 0 4 0
SQ CPMG 599890858.7 0.0 166.667 0.06 0 1 0 4 1
SQ CPMG 599890858.7 0.0 200.0 0.04 0 1 0 5 0
SQ CPMG 599890858.7 0.0 200.0 0.06 0 1 0 5 1
SQ CPMG 599890858.7 0.0 233.333 0.04 0 1 0 6 0
SQ CPMG 599890858.7 0.0 233.333 0.06 0 1 0 6 1
SQ CPMG 599890858.7 0.0 266.667 0.04 0 1 0 7 0
SQ CPMG 599890858.7 0.0 266.667 0.06 0 1 0 7 1
SQ CPMG 599890858.7 0.0 300.0 0.04 0 1 0 8 0
SQ CPMG 599890858.7 0.0 300.0 0.06 0 1 0 8 1
SQ CPMG 599890858.7 0.0 333.333 0.04 0 1 0 9 0
SQ CPMG 599890858.7 0.0 333.333 0.06 0 1 0 9 1
SQ CPMG 599890858.7 0.0 366.667 0.04 0 1 0 10 0
SQ CPMG 599890858.7 0.0 366.667 0.06 0 1 0 10 1
SQ CPMG 599890858.7 0.0 400.0 0.04 0 1 0 11 0
SQ CPMG 599890858.7 0.0 400.0 0.06 0 1 0 11 1
SQ CPMG 599890858.7 0.0 466.667 0.04 0 1 0 12 0
SQ CPMG 599890858.7 0.0 466.667 0.06 0 1 0 12 1
SQ CPMG 599890858.7 0.0 533.333 0.04 0 1 0 13 0
SQ CPMG 599890858.7 0.0 533.333 0.06 0 1 0 13 1
SQ CPMG 599890858.7 0.0 666.667 0.04 0 1 0 14 0
SQ CPMG 599890858.7 0.0 666.667 0.06 0 1 0 14 1
SQ CPMG 599890858.7 0.0 866.667 0.04 0 1 0 15 0
SQ CPMG 599890858.7 0.0 866.667 0.06 0 1 0 15 1
SQ CPMG 599890858.7 0.0 1000.0 0.04 0 1 0 16 0
SQ CPMG 599890858.7 0.0 1000.0 0.06 0 1 0 16 1

Then we see that the dispersion point of 50.0 exist for time 0.04 and 0.06.
That is not true, this point only exists for time point 0.04

Maybe I am reading your suggestion a little wrong.

I am a little un-sure if relax stores the data in the wrong way, and
this should be handled.
Or if the problem is the "checks" before the calculation.

And then I guess that there are some looping functions which collect
the data, before
doing a calculation.






2014-02-18 15:50 GMT+01:00 Edward d'Auvergne <[email protected]>:
> Ah, that's the problem.  You'll need to replace this with one of the
> relaxation dispersion loops, have a look at the loop_*() functions in
> specific_analyses.relax_disp.disp_data.  You could for example use the
> loop_exp_frq_offset_point() and then count the time points for each of
> these iterations.  This is only one of many alternatives.
>
> If you feel more adventurous, you could make the count_relax_times()
> function dependent on ei, mi, oi, and di (see the module docstring for
> a description of this:
> http://www.nmr-relax.com/api/3.1/specific_analyses.relax_disp.disp_data-module.html).
>  You would then have to delete the use of loop_time() and do something
> as in the insignificance() function.
>
> There are other ways too.  The key is to loop over each experiment
> collection of {ei, mi, oi, di} and check the times for each.  If there
> is only one time for the experiment block, then this is the 2-point
> calculation.  If there is more, then exponential curve fitting is
> needed.  If one block of {ei, mi, oi, di} is 2-point and another is
> exponential, then relax will fail.  But this type of data combination
> is very unlikely to ever be encountered and we can deal with that when
> a user complains ;)
>
> Anyway, have a look at specific_analyses.relax_disp.disp_data for
> inspiration, as all the code you need to write can be copied from
> various functions of that module.  The logic you need is repeated in
> about 10 functions there.  I hope this helps.
>
> Regards,
>
> Edward
>
>
>
>
> On 18 February 2014 15:35, Troels Emtekær Linnet <[email protected]> 
> wrote:
>> Hi Edward.
>>
>> Do you have a feeling for how much modification of relax is needed?
>>
>> There is a dependency check, that the length of cdp.relax_time_list is
>> not larger than 1.
>>
>> Is it within range to allow more than one delay time?
>>
>> Best
>> Troels
>>
>> 2014-02-18 14:21 GMT+01:00 Edward d'Auvergne <[email protected]>:
>>> Hi Troels,
>>>
>>> I would then recommend you create 2 tests, as it looks to me like the
>>> fundamental issues are the same - that the detection of 2-point verses
>>> full exponential curves is not functioning correctly.  The two tests,
>>> once the bug is fixed, will the make sure that both these errors will
>>> never again be seen by relax users!
>>>
>>> Cheers,
>>>
>>> Edward
>>>
>>>
>>>
>>> On 18 February 2014 12:40, Troels Emtekær Linnet <[email protected]> 
>>> wrote:
>>>> If the systemtest is modified to:
>>>>
>>>>         self.interpreter.calc(verbosity=1)
>>>>
>>>> The error is:
>>>>
>>>> Traceback (most recent call last):
>>>>   File 
>>>> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/test_suite/system_tests/relax_disp.py",
>>>> line 278, in test_bug_21665_cpmg_two_fields_two_delaytimes_fail
>>>>     self.interpreter.calc(verbosity=1)
>>>>   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 'SQ CPMG' is not of the fixed
>>>> relaxation time period data type.
>>>>
>>>>
>>>> 2014-02-18 12:24 GMT+01:00 Troels Emtekær Linnet <[email protected]>:
>>>>> Hi Edward.
>>>>>
>>>>> The systemtest is now implemented.
>>>>> I think this bug is related to:
>>>>> bug #21344 (https://gna.org/bugs/?21344): Handling of in sparse
>>>>> acquired R1rho dataset with missing combinations of time and spin-lock
>>>>> field strengths.
>>>>>
>>>>> The output of the systemtest gives:
>>>>> ------------
>>>>> Fitting to spin :2@N, frequency 499862140.0 and dispersion point 50.0
>>>>> ---------------------------------------------------------------------
>>>>>
>>>>> Unconstrained grid search size: 9 (constraints may decrease this size).
>>>>>
>>>>> Traceback (most recent call last):
>>>>>   File 
>>>>> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/test_suite/system_tests/relax_disp.py",
>>>>> line 281, in test_bug_21665_cpmg_two_fields_two_delaytimes_fail
>>>>>     relax_disp.Relax_disp(pipe_name="compare_128_FT_R2eff",
>>>>> pipe_bundle="cpmg_disp_sod1d90a", results_dir=self.tmpdir,
>>>>> models=['R2eff'], grid_inc=3, mc_sim_num=5, modsel='AIC',
>>>>> pre_run_dir=None, insignificance=1.0, numeric_only=False,
>>>>> mc_sim_all_models=False, eliminate=True)
>>>>>   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 451, in run
>>>>>     self.optimise(model=model)
>>>>>   File 
>>>>> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/auto_analyses/relax_disp.py",
>>>>> line 350, in optimise
>>>>>     self.interpreter.grid_search(inc=self.grid_inc)
>>>>>   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 152, in grid_search
>>>>>     grid_search(lower=lower, upper=upper, inc=inc,
>>>>> constraints=constraints, verbosity=verbosity)
>>>>>   File 
>>>>> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/api.py",
>>>>> line 1093, in grid_search
>>>>>     self.minimise(min_algor='grid', lower=lower, upper=upper, inc=inc,
>>>>> constraints=constraints, verbosity=verbosity, sim_index=sim_index)
>>>>>   File 
>>>>> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/api.py",
>>>>> line 1142, in minimise
>>>>>     self._minimise_r2eff(min_algor=min_algor, min_options=min_options,
>>>>> func_tol=func_tol, grad_tol=grad_tol, max_iterations=max_iterations,
>>>>> constraints=constraints, scaling=scaling, verbosity=verbosity,
>>>>> sim_index=sim_index, lower=lower, upper=upper, inc=inc)
>>>>>   File 
>>>>> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/api.py",
>>>>> line 382, in _minimise_r2eff
>>>>>     values.append(average_intensity(spin=spin, exp_type=exp_type,
>>>>> frq=frq, offset=offset, point=point, time=time, sim_index=sim_index))
>>>>>   File 
>>>>> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/disp_data.py",
>>>>> line 114, in average_intensity
>>>>>     int_keys = find_intensity_keys(exp_type=exp_type, frq=frq,
>>>>> offset=offset, point=point, time=time)
>>>>>   File 
>>>>> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/disp_data.py",
>>>>> line 347, in find_intensity_keys
>>>>>     raise RelaxError("No intensity data could be found corresponding
>>>>> to the spectrometer frequency of %s MHz, dispersion point of %s and
>>>>> relaxation time of %s s." % (frq*1e-6, point, time))
>>>>> RelaxError: RelaxError: No intensity data could be found corresponding
>>>>> to the spectrometer frequency of 499.86214 MHz, dispersion point of
>>>>> 50.0 and relaxation time of 0.06 s.
>>>>>
>>>>> -----------------------------
>>>>>
>>>>> This is true.
>>>>> For the relaxation time of 0.06 s, there is no dispersion point of 50.0.
>>>>>
>>>>> Best
>>>>> Troels
>>>>>
>>>>> 2014-02-18 12:19 GMT+01:00  <[email protected]>:
>>>>>> Author: tlinnet
>>>>>> Date: Tue Feb 18 12:19:41 2014
>>>>>> New Revision: 22198
>>>>>>
>>>>>> URL: http://svn.gna.org/viewcvs/relax?rev=22198&view=rev
>>>>>> Log:
>>>>>> Added systemtest to catch bug: relax -s 
>>>>>> Relax_disp.test_bug_21665_cpmg_two_fields_two_delaytimes_fail
>>>>>>
>>>>>> Regarding bug #21665, (https://gna.org/bugs/?21665) - Running a CPMG 
>>>>>> analysis with two fields at two delay times.
>>>>>>
>>>>>> 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=22198&r1=22197&r2=22198&view=diff
>>>>>> ==============================================================================
>>>>>> --- trunk/test_suite/system_tests/relax_disp.py (original)
>>>>>> +++ trunk/test_suite/system_tests/relax_disp.py Tue Feb 18 12:19:41 2014
>>>>>> @@ -264,6 +264,21 @@
>>>>>>          relax_disp.Relax_disp.opt_max_iterations = 1000
>>>>>>          relax_disp.Relax_disp(pipe_name="origin - relax_disp (Thu Jan  
>>>>>> 2 13:46:44 2014)", pipe_bundle="relax_disp (Thu Jan  2 13:46:44 2014)", 
>>>>>> results_dir=self.tmpdir, models=['R2eff', 'No Rex', 'CR72', 'NS CPMG 
>>>>>> 2-site expanded'], grid_inc=3, mc_sim_num=5, modsel='AIC', 
>>>>>> pre_run_dir=None, insignificance=1.0, numeric_only=False, 
>>>>>> mc_sim_all_models=False, eliminate=True)
>>>>>>
>>>>>> +
>>>>>> +    def test_bug_21665_cpmg_two_fields_two_delaytimes_fail(self):
>>>>>> +        """U{Bug #21665<https://gna.org/bugs/?21665>} catch, the 
>>>>>> failure due to a a CPMG analysis recorded at two fields at two delay 
>>>>>> times."""
>>>>>> +
>>>>>> +        # Clear the data store.
>>>>>> +        self.interpreter.reset()
>>>>>> +
>>>>>> +        # Load the state.
>>>>>> +        state = status.install_path + 
>>>>>> sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'bug_21665.bz2'
>>>>>> +        self.interpreter.state.load(state, force=True)
>>>>>> +
>>>>>> +        # Execute the auto-analysis (fast).
>>>>>> +        relax_disp.Relax_disp.opt_func_tol = 1e-5
>>>>>> +        relax_disp.Relax_disp.opt_max_iterations = 1000
>>>>>> +        relax_disp.Relax_disp(pipe_name="compare_128_FT_R2eff", 
>>>>>> pipe_bundle="cpmg_disp_sod1d90a", results_dir=self.tmpdir, 
>>>>>> models=['R2eff'], grid_inc=3, mc_sim_num=5, modsel='AIC', 
>>>>>> pre_run_dir=None, insignificance=1.0, numeric_only=False, 
>>>>>> mc_sim_all_models=False, eliminate=True)
>>>>>>
>>>>>>
>>>>>>      def test_curve_type_cpmg_fixed_time(self):
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> relax (http://www.nmr-relax.com)
>>>>>>
>>>>>> This is the relax-commits mailing list
>>>>>> [email protected]
>>>>>>
>>>>>> 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
>>>> [email protected]
>>>>
>>>> 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

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

This is the relax-devel mailing list
[email protected]

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

Reply via email to