mailr25219 - /trunk/specific_analyses/relax_disp/data.py


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

Header


Content

Posted by tlinnet on August 22, 2014 - 15:22:
Author: tlinnet
Date: Fri Aug 22 15:22:36 2014
New Revision: 25219

URL: http://svn.gna.org/viewcvs/relax?rev=25219&view=rev
Log:
Fix for interpolating time points, when producing xmgrace files for CPMG 
experiments.

bug #22461(https://gna.org/bugs/?22461): NS R1rho 2-site_fit_r1 has extremely 
high chi2 value in systemtest Relax_disp.test_r1rho_kjaergaard_missing_r1.

Modified:
    trunk/specific_analyses/relax_disp/data.py

Modified: trunk/specific_analyses/relax_disp/data.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/data.py?rev=25219&r1=25218&r2=25219&view=diff
==============================================================================
--- trunk/specific_analyses/relax_disp/data.py  (original)
+++ trunk/specific_analyses/relax_disp/data.py  Fri Aug 22 15:22:36 2014
@@ -52,7 +52,7 @@
 
 # Python module imports.
 from math import cos, pi, sin, sqrt
-from numpy import array, concatenate, float64, int32, ones, unique, zeros
+from numpy import array, concatenate, float64, int32, max, ones, unique, 
zeros
 from os import F_OK, access
 from os.path import expanduser
 from random import gauss
@@ -804,29 +804,41 @@
     # Interpolate the CPMG frequencies (numeric models).
     if spin.model in MODEL_LIST_NUMERIC_CPMG or spin.model in [MODEL_B14, 
MODEL_B14_FULL]:
         cpmg_frqs = return_cpmg_frqs(ref_flag=False)
-        relax_times = return_relax_times()
         if cpmg_frqs != None and len(cpmg_frqs[0][0]):
             cpmg_frqs_new = []
+            relax_times_new = []
             for ei in range(len(cpmg_frqs)):
                 # Add a new dimension.
                 cpmg_frqs_new.append([])
+                relax_times_new.append([])
 
                 # Then loop over the spectrometer frequencies.
                 for mi in range(len(cpmg_frqs[ei])):
                     # Add a new dimension.
                     cpmg_frqs_new[ei].append([])
+                    relax_times_new[ei].append([])
 
                     # Finally the offsets.
                     for oi in range(len(cpmg_frqs[ei][mi])):
                         # Add a new dimension.
                         cpmg_frqs_new[ei][mi].append([])
+                        relax_times_new[ei][mi].append([])
 
                         # No data.
                         if not len(cpmg_frqs[ei][mi][oi]):
                             continue
 
+                        # There is no way to interpolate the time points 
correct.
+                        # The best suggestion is to concatenate all values 
at original offset, and then make a unique list.
+                        relax_time_temp = array([])
+                        for di_o, times in 
enumerate(relax_times[ei][mi][oi]):
+                            relax_time_temp = concatenate( (relax_time_temp, 
times) )
+
+                        # Make a unique list.
+                        relax_time_temp = unique(relax_time_temp)
+
                         # The minimum frequency unit.
-                        min_frq = 1.0 / relax_times[ei][mi]
+                        min_frq = 1.0 / max(relax_time_temp)
                         max_frq = max(cpmg_frqs[ei][mi][oi]) + 
round(extend_hz / min_frq) * min_frq
                         num_points = int(round(max_frq / min_frq))
 
@@ -834,6 +846,7 @@
                         for di in range(num_points):
                             point = (di + 1) * min_frq
                             cpmg_frqs_new[ei][mi][oi].append(point)
+                            
relax_times_new[ei][mi][oi].append(relax_time_temp)
 
                         # Convert to a numpy array.
                         cpmg_frqs_new[ei][mi][oi] = 
array(cpmg_frqs_new[ei][mi][oi], float64)
@@ -843,28 +856,42 @@
         cpmg_frqs = return_cpmg_frqs(ref_flag=False)
         if cpmg_frqs != None and len(cpmg_frqs[0][0]):
             cpmg_frqs_new = []
+            relax_times_new = []
             for ei in range(len(cpmg_frqs)):
                 # Add a new dimension.
                 cpmg_frqs_new.append([])
+                relax_times_new.append([])
 
                 # Then loop over the spectrometer frequencies.
                 for mi in range(len(cpmg_frqs[ei])):
                     # Add a new dimension.
                     cpmg_frqs_new[ei].append([])
+                    relax_times_new[ei].append([])
 
                     # Finally the offsets.
                     for oi in range(len(cpmg_frqs[ei][mi])):
                         # Add a new dimension.
                         cpmg_frqs_new[ei][mi].append([])
+                        relax_times_new[ei][mi].append([])
 
                         # No data.
                         if not len(cpmg_frqs[ei][mi][oi]):
                             continue
+
+                        # There is no way to interpolate the time points 
correct.
+                        # The best suggestion is to concatenate all values 
at original offset, and then make a unique list.
+                        relax_time_temp = array([])
+                        for di_o, times in 
enumerate(relax_times[ei][mi][oi]):
+                            relax_time_temp = concatenate( (relax_time_temp, 
times) )
+
+                        # Make a unique list.
+                        relax_time_temp = unique(relax_time_temp)
 
                         # Interpolate (adding the extended amount to the 
end).
                         for di in range(num_points):
                             point = (di + 1) * 
(max(cpmg_frqs[ei][mi][oi])+extend_hz) / num_points
                             cpmg_frqs_new[ei][mi][oi].append(point)
+                            
relax_times_new[ei][mi][oi].append(relax_time_temp)
 
                         # Convert to a numpy array.
                         cpmg_frqs_new[ei][mi][oi] = 
array(cpmg_frqs_new[ei][mi][oi], float64)




Related Messages


Powered by MHonArc, Updated Fri Aug 22 15:40:02 2014