Author: tlinnet
Date: Wed Jun 18 09:25:45 2014
New Revision: 24062

URL: http://svn.gna.org/viewcvs/relax?rev=24062&view=rev
Log:
Implemented class function in target class, to return back_calc values as list 
of lists.

This is the back and forth conversion between the data structures implemented 
when gathering the data,
and the data send to the library function of higher dimensionality.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models 
for Clustered analysis.

Modified:
    branches/disp_spin_speed/target_functions/relax_disp.py

Modified: branches/disp_spin_speed/target_functions/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/target_functions/relax_disp.py?rev=24062&r1=24061&r2=24062&view=diff
==============================================================================
--- branches/disp_spin_speed/target_functions/relax_disp.py     (original)
+++ branches/disp_spin_speed/target_functions/relax_disp.py     Wed Jun 18 
09:25:45 2014
@@ -55,7 +55,7 @@
 from lib.errors import RelaxError
 from lib.float import isNaN
 from target_functions.chi2 import chi2, chi2_rankN
-from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_DQ, 
EXP_TYPE_CPMG_MQ, EXP_TYPE_CPMG_PROTON_MQ, EXP_TYPE_CPMG_PROTON_SQ, 
EXP_TYPE_CPMG_SQ, EXP_TYPE_CPMG_ZQ, EXP_TYPE_R1RHO, MODEL_B14, MODEL_B14_FULL, 
MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_IT99, MODEL_LIST_CPMG, 
MODEL_LIST_CPMG_FULL, MODEL_LIST_FULL, MODEL_LIST_MMQ, MODEL_LIST_MQ_CPMG, 
MODEL_LIST_R1RHO, MODEL_LIST_R1RHO_FULL, MODEL_LM63, MODEL_LM63_3SITE, 
MODEL_M61, MODEL_M61B, MODEL_MP05, MODEL_MMQ_CR72, MODEL_NOREX, 
MODEL_NS_CPMG_2SITE_3D, MODEL_NS_CPMG_2SITE_3D_FULL, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR, 
MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, MODEL_NS_MMQ_3SITE, 
MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_3SITE, 
MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_TAP03, MODEL_TP02, MODEL_TSMFK01
+from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_DQ, 
EXP_TYPE_CPMG_MQ, EXP_TYPE_CPMG_PROTON_MQ, EXP_TYPE_CPMG_PROTON_SQ, 
EXP_TYPE_CPMG_SQ, EXP_TYPE_CPMG_ZQ, EXP_TYPE_LIST_CPMG, EXP_TYPE_R1RHO, 
MODEL_B14, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, 
MODEL_IT99, MODEL_LIST_CPMG, MODEL_LIST_CPMG_FULL, MODEL_LIST_FULL, 
MODEL_LIST_MMQ, MODEL_LIST_MQ_CPMG, MODEL_LIST_R1RHO, MODEL_LIST_R1RHO_FULL, 
MODEL_LM63, MODEL_LM63_3SITE, MODEL_M61, MODEL_M61B, MODEL_MP05, 
MODEL_MMQ_CR72, MODEL_NOREX, MODEL_NS_CPMG_2SITE_3D, 
MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, 
MODEL_NS_CPMG_2SITE_STAR, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, 
MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, 
MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_TAP03, MODEL_TP02, 
MODEL_TSMFK01
 
 
 class Dispersion:
@@ -172,6 +172,9 @@
         self.num_frq = num_frq
         self.exp_types = exp_types
         self.scaling_matrix = scaling_matrix
+        self.values_orig = values
+        self.cpmg_frqs_orig = cpmg_frqs
+        self.spin_lock_nu1_orig = spin_lock_nu1
 
         ### Initialise higher order numpy structures.
         # Define the shape of all the numpy arrays.
@@ -1831,3 +1834,28 @@
 
         # Return the total chi-squared value.
         return chi2_rankN(self.values, self.back_calc, self.errors)
+
+    def get_back_calc(self):
+        """Class function to return back_calc as lists of lists.  Number of 
values in should match number of dispersion points or spin_lock.
+
+        @return:        back_calc in structure of list of lists.
+        @rtype:         float
+        """
+
+        back_calc_return = deepcopy(self.values_orig)
+
+        # Loop over experiments
+        for ei in range(self.NE):
+            exp_type = self.exp_types[ei]
+            for si in range(self.NS):
+                for mi in range(self.NM):
+                    for oi in range(self.NO):
+                        back_calc_return[ei][si][mi].append([])
+                        if exp_type in EXP_TYPE_LIST_CPMG:
+                            num = len(self.cpmg_frqs_orig[ei][mi][oi])
+                        else:
+                            num = len(self.spin_lock_nu1_orig[ei][mi][oi])
+                        back_calc_return[ei][si][mi][oi][:] = 
self.back_calc[ei, si, mi, oi, :num]
+
+        return back_calc_return
+


_______________________________________________
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