Author: tlinnet
Date: Mon Feb 24 14:20:43 2014
New Revision: 22284

URL: http://svn.gna.org/viewcvs/relax?rev=22284&view=rev
Log:
Expanded the loop_time function to optional take the spectrometer frequency as 
input for restricting looping.

Regarding bug #21665, (https://gna.org/bugs/?21665) - Running a CPMG analysis 
with two fields at two delay times.

Modified:
    trunk/specific_analyses/relax_disp/disp_data.py

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=22284&r1=22283&r2=22284&view=diff
==============================================================================
--- trunk/specific_analyses/relax_disp/disp_data.py (original)
+++ trunk/specific_analyses/relax_disp/disp_data.py Mon Feb 24 14:20:43 2014
@@ -873,7 +873,7 @@
                 # Then the dispersion points.
                 for point, di in loop_point(exp_type=exp_type, frq=frq, 
offset=offset, return_indices=True):
                     # Finally the relaxation times.
-                    for time, ti in loop_time(return_indices=True):
+                    for time, ti in loop_time(frq=frq, return_indices=True):
                         # Yield the data.
                         if return_indices:
                             yield exp_type, frq, offset, point, time, ei, mi, 
oi, di, ti
@@ -1281,9 +1281,13 @@
         yield id
 
 
-def loop_time(return_indices=False):
+def loop_time(exp_type=None, frq=None, return_indices=False):
     """Generator method for looping over the relaxation times.
 
+    @keyword exp_type:          The experiment type.
+    @type exp_type:             str
+    @keyword frq:               The spectrometer frequency in Hz.
+    @type frq:                  float
     @keyword return_indices:    A flag which if True will cause the relaxation 
time index to be returned as well.
     @type return_indices:       bool
     @return:                    The relaxation time.
@@ -1296,6 +1300,28 @@
     # Loop over the time points.
     if hasattr(cdp, 'relax_time_list'):
         for time in cdp.relax_time_list:
+            # Find a matching experiment ID.
+            found = False
+            for id in cdp.exp_type.keys():
+                # Skip non-matching experiments.
+                if exp_type != None and cdp.exp_type[id] != exp_type:
+                    continue
+
+                # Skip non-matching spectrometer frequencies.
+                if frq != None and hasattr(cdp, 'spectrometer_frq') and 
cdp.spectrometer_frq[id] != frq:
+                    continue
+
+                if time != cdp.relax_times[id]:
+                    continue
+
+                # Found.
+                found = True
+                break
+
+            # No data.
+            if not found:
+                continue
+
             # Increment the index.
             ti += 1
 


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

This is the relax-commits mailing list
relax-commits@gna.org

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

Reply via email to