mailr24928 - /branches/R1_fitting/target_functions/relax_disp.py


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

Header


Content

Posted by tlinnet on August 04, 2014 - 16:27:
Author: tlinnet
Date: Mon Aug  4 16:27:42 2014
New Revision: 24928

URL: http://svn.gna.org/viewcvs/relax?rev=24928&view=rev
Log:
Modified target function func_DPL94_fit_r1(), to unpack fitted parameters 
correct.

sr #3135(https://gna.org/support/?3135): Optimisation of the R1 relaxation 
rate for the off-resonance R1rho relaxation dispersion models.

Modified:
    branches/R1_fitting/target_functions/relax_disp.py

Modified: branches/R1_fitting/target_functions/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/R1_fitting/target_functions/relax_disp.py?rev=24928&r1=24927&r2=24928&view=diff
==============================================================================
--- branches/R1_fitting/target_functions/relax_disp.py  (original)
+++ branches/R1_fitting/target_functions/relax_disp.py  Mon Aug  4 16:27:42 
2014
@@ -55,7 +55,7 @@
 from lib.errors import RelaxError
 from lib.float import isNaN
 from target_functions.chi2 import 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_LIST_CPMG, EXP_TYPE_R1RHO, 
MODEL_B14, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, 
MODEL_DPL94_FIT_R1, MODEL_IT99, MODEL_LIST_CPMG, MODEL_LIST_FULL, 
MODEL_LIST_MMQ, MODEL_LIST_MQ_CPMG, MODEL_LIST_NUMERIC, 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_DPL94_FIT_R1, MODEL_IT99, MODEL_LIST_CPMG, MODEL_LIST_FULL, 
MODEL_LIST_MMQ, MODEL_LIST_MQ_CPMG, MODEL_LIST_NUMERIC, MODEL_LIST_R1RHO, 
MODEL_LIST_R1RHO_FULL, MODEL_LIST_R1RHO_FIT_R1, 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:
@@ -238,6 +238,7 @@
         self.nm_no_nd_ones = ones([self.NM, self.NO, self.ND], float64)
 
         # Structure of r20a and r20b. The full and outer dimensions 
structures.
+        self.r1_struct = deepcopy(numpy_array_zeros)
         self.r1rho_prime_struct = deepcopy(numpy_array_zeros)
         self.r20_struct = deepcopy(numpy_array_zeros)
         self.r20a_struct = deepcopy(numpy_array_zeros)
@@ -392,8 +393,18 @@
         # Initialise the post spin parameter indices.
         self.end_index = []
 
-        # The spin and frequency dependent R2 parameters.
-        self.end_index.append(self.NE * self.NS * self.NM)
+        # The spin and frequency dependent R1 and R2 parameters, for models 
which fit R1.
+        if model in MODEL_LIST_R1RHO_FIT_R1:
+            # The spin and frequency dependent R1 parameters.
+            self.end_index.append(self.NE * self.NS * self.NM)
+            # The spin and frequency dependent R2 parameters.
+            self.end_index.append(self.end_index[-1] + self.NE * self.NS * 
self.NM)
+
+        # For all other models.
+        else:
+            # The spin and frequency dependent R2 parameters.
+            self.end_index.append(self.NE * self.NS * self.NM)
+
         if model in [MODEL_B14_FULL, MODEL_CR72_FULL, 
MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_STAR_FULL]:
             self.end_index.append(2 * self.NE * self.NS * self.NM)
 
@@ -1037,12 +1048,15 @@
 
         # Unpack the parameter values.
         r1 = params[:self.end_index[0]]
-        r1rho_prime = params[:self.end_index[0]]
-        phi_ex = params[self.end_index[0]:self.end_index[1]]
-        kex = params[self.end_index[1]]
+        r1rho_prime = params[self.end_index[0]:self.end_index[1]]
+        phi_ex = params[self.end_index[1]:self.end_index[2]]
+        kex = params[self.end_index[2]]
+
+        # Reshape R1 to per experiment, spin and frequency.
+        self.r1_struct[:] = multiply.outer( r1.reshape(self.NE, self.NS, 
self.NM), self.no_nd_ones )
 
         # Calculate and return the chi-squared value.
-        return self.calc_DPL94(R1=self.r1, r1rho_prime=r1rho_prime, 
phi_ex=phi_ex, kex=kex)
+        return self.calc_DPL94(R1=self.r1_struct, r1rho_prime=r1rho_prime, 
phi_ex=phi_ex, kex=kex)
 
 
     def func_IT99(self, params):




Related Messages


Powered by MHonArc, Updated Mon Aug 04 16:40:02 2014