Hi, Firstly, for the change to the loop_time() function, you should consider also sending in the experiment type, the offset, and the dispersion point. In all these cases, that information is available, so it should be used. For example if you are analysing a combination of data types simultaneously (SQ CPMG, DQ CPMG, R1rho), you will not have the same relaxation time for each. For different spin-lock or 180 degree pulse offsets and even different dispersion points, the time may also be different. You may find that this solves the other problems later on. As for the check_exp_type_fixed_time(), this does appear to be the source of the second system test failure. I would, however, suggest a different approach. First loop over the experiment types, spectrometer frequencies, offsets, and dispersion points. Then, inside this one loop_*() function, call the loop_time() with these values as arguments and count the number of time points for that combination of four metadata values. Even better would be to modify the count_relax_times() function to accept these 4 metadata points and to count the time points for each combination, raising the RelaxError when the count of one set is greater than 1. Alternatively, the get_times() function in that specific_analyses.relax_disp.checks module could be completely overhauled. Actually, that is probably the cause of all these headaches. So maybe you should kill it and replace it with a loop_*() loop and a count_relax_times() call all over that module. What do you think? Cheers, Edward On 24 February 2014 18:40, Troels Emtekær Linnet <tlinnet@xxxxxxxxxxxxx> wrote:
Hi Edward. ./relax -s Relax_disp.test_bug_21665_cpmg_two_fields_two_delaytimes_fail_relax_disp is now passing the test until now. But I am unsure how to handle: ./relax -s Relax_disp.test_bug_21665_cpmg_two_fields_two_delaytimes_fail_calc 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. ------ The code is: def check_exp_type_fixed_time(): """Check that only fixed time experiment types have been set up. @raises RelaxError: If exponential curves are present. """ # Get the times. times = get_times() # Loop over all experiment types. for exp_type in times: if len(times[exp_type]) > 1: raise RelaxError("The experiment '%s' is not of the fixed relaxation time period data type." % exp_type) And return {'SQ CPMG': [0.040000000000000001, 0.059999999999999998]} Should I modify the code to loop over all spectra IDs, and count the number of times insted for each spectrum? ---------- Forwarded message ---------- From: <tlinnet@xxxxxxxxxxxxx> Date: 2014-02-24 18:28 GMT+01:00 Subject: r22294 - in /trunk/specific_analyses/relax_disp: api.py disp_data.py To: relax-commits@xxxxxxx Author: tlinnet Date: Mon Feb 24 18:28:11 2014 New Revision: 22294 URL: http://svn.gna.org/viewcvs/relax?rev=22294&view=rev Log: Replacing looping over time points from cdp.relax_time_list to loop_time(frq=frq). Regarding bug #21665, (https://gna.org/bugs/?21665) - Running a CPMG analysis with two fields at two delay times. loop_time has been modified to accept spectrometer frequency as input to restrict the looping. Modified: trunk/specific_analyses/relax_disp/api.py trunk/specific_analyses/relax_disp/disp_data.py Modified: trunk/specific_analyses/relax_disp/api.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/api.py?rev=22294&r1=22293&r2=22294&view=diff ============================================================================== --- trunk/specific_analyses/relax_disp/api.py (original) +++ trunk/specific_analyses/relax_disp/api.py Mon Feb 24 18:28:11 2014 @@ -149,7 +149,7 @@ values = [] errors = [] times = [] - for time in cdp.relax_time_list: + for time in loop_time(frq=frq): # The data. values.append(average_intensity(spin=spin, exp_type=exp_type, frq=frq, offset=offset, point=point, time=time)) errors.append(average_intensity(spin=spin, exp_type=exp_type, frq=frq, offset=offset, point=point, time=time, error=True)) @@ -378,7 +378,7 @@ values = [] errors = [] times = [] - for time in cdp.relax_time_list: + for time in loop_time(frq=frq): values.append(average_intensity(spin=spin, exp_type=exp_type, frq=frq, offset=offset, point=point, time=time, sim_index=sim_index)) errors.append(average_intensity(spin=spin, exp_type=exp_type, frq=frq, offset=offset, point=point, time=time, error=True)) times.append(time) @@ -1373,7 +1373,7 @@ # Generate the data structure to return. errors = [] - for time in cdp.relax_time_list: + for time in loop_time(frq=frq): errors.append(average_intensity(spin=spin, exp_type=exp_type, frq=frq, offset=offset, point=point, time=time, error=True)) # All other models. @@ -1597,7 +1597,7 @@ # Loop over each time point. ti = 0 - for time in loop_time(): + for time in loop_time(frq=frq): # Get the intensity keys. int_keys = find_intensity_keys(exp_type=exp_type, frq=frq, point=point, time=time) Modified: trunk/specific_analyses/relax_disp/disp_data.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/disp_data.py?rev=22294&r1=22293&r2=22294&view=diff ============================================================================== --- trunk/specific_analyses/relax_disp/disp_data.py (original) +++ trunk/specific_analyses/relax_disp/disp_data.py Mon Feb 24 18:28:11 2014 @@ -1930,7 +1930,7 @@ set_labels.append("Spin %s" % id) # Loop over the relaxation time periods. - for time in cdp.relax_time_list: + for time in loop_time(frq=frq): # The key. keys = find_intensity_keys(exp_type=exp_type, frq=frq, point=point, time=time) _______________________________________________ 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