mailr24644 - in /branches/disp_spin_speed: lib/dispersion/ns_mmq_3site.py 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 July 22, 2014 - 17:53:
Author: tlinnet
Date: Tue Jul 22 17:53:43 2014
New Revision: 24644

URL: http://svn.gna.org/viewcvs/relax?rev=24644&view=rev
Log:
For model ns mmq 3site, moved the parameter conversion of dw_AB from target 
function to lib function.

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

Modified:
    branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py
    branches/disp_spin_speed/target_functions/relax_disp.py

Modified: branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py?rev=24644&r1=24643&r2=24644&view=diff
==============================================================================
--- branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py     (original)
+++ branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py     Tue Jul 22 
17:53:43 2014
@@ -210,7 +210,7 @@
     return matrix
 
 
-def r2eff_ns_mmq_3site_mq(M0=None, F_vector=array([1, 0, 0], float64), 
R20A=None, R20B=None, R20C=None, pA=None, pB=None, dw_AB=None, dw_AC=None, 
dwH_AB=None, dwH_AC=None, kex_AB=None, kex_BC=None, kex_AC=None, 
inv_tcpmg=None, tcp=None, back_calc=None, num_points=None, power=None):
+def r2eff_ns_mmq_3site_mq(M0=None, F_vector=array([1, 0, 0], float64), 
R20A=None, R20B=None, R20C=None, pA=None, pB=None, dw_AB=None, dw_BC=None, 
dwH_AB=None, dwH_BC=None, kex_AB=None, kex_BC=None, kex_AC=None, 
inv_tcpmg=None, tcp=None, back_calc=None, num_points=None, power=None):
     """The 3-site numerical solution to the Bloch-McConnell equation for MQ 
data.
 
     The notation used here comes from:
@@ -240,12 +240,12 @@
     @type pB:               float
     @keyword dw_AB:         The chemical exchange difference between states 
A and B in rad/s.
     @type dw_AB:            numpy float array of rank [NS][NM][NO][ND]
-    @keyword dw_AC:         The chemical exchange difference between states 
A and C in rad/s.
-    @type dw_AC:            numpy float array of rank [NS][NM][NO][ND]
+    @keyword dw_BC:         The chemical exchange difference between states 
B and C in rad/s.
+    @type dw_BC:            numpy float array of rank [NS][NM][NO][ND]
     @keyword dwH_AB:        The proton chemical exchange difference between 
states A and B in rad/s.
     @type dwH_AB:           numpy float array of rank [NS][NM][NO][ND]
-    @keyword dwH_AC:        The proton chemical exchange difference between 
states A and C in rad/s.
-    @type dwH_AC:           numpy float array of rank [NS][NM][NO][ND]
+    @keyword dwH_BC:        The proton chemical exchange difference between 
states B and C in rad/s.
+    @type dwH_BC:           numpy float array of rank [NS][NM][NO][ND]
     @keyword kex_AB:        The exchange rate between sites A and B for 
3-site exchange with kex_AB = k_AB + k_BA (rad.s^-1)
     @type kex_AB:           float
     @keyword kex_BC:        The exchange rate between sites A and C for 
3-site exchange with kex_AC = k_AC + k_CA (rad.s^-1)
@@ -265,6 +265,8 @@
     """
 
     # Once off parameter conversions.
+    dw_AC = dw_AB + dw_BC
+    dwH_AC = dwH_AB + dwH_BC
     pC = 1.0 - pA - pB
     pA_pB = pA + pB
     pA_pC = pA + pC
@@ -397,7 +399,7 @@
                         back_calc[si, mi, oi, i]= -inv_tcpmg[si, mi, oi, i] 
* log(Mx / pA)
 
 
-def r2eff_ns_mmq_3site_sq_dq_zq(M0=None, F_vector=array([1, 0, 0], float64), 
R20A=None, R20B=None, R20C=None, pA=None, pB=None, dw_AB=None, dw_AC=None, 
dwH_AB=None, dwH_AC=None, kex_AB=None, kex_BC=None, kex_AC=None, 
inv_tcpmg=None, tcp=None, back_calc=None, num_points=None, power=None):
+def r2eff_ns_mmq_3site_sq_dq_zq(M0=None, F_vector=array([1, 0, 0], float64), 
R20A=None, R20B=None, R20C=None, pA=None, pB=None, dw_AB=None, dw_BC=None, 
dwH_AB=None, dwH_BC=None, kex_AB=None, kex_BC=None, kex_AC=None, 
inv_tcpmg=None, tcp=None, back_calc=None, num_points=None, power=None):
     """The 3-site numerical solution to the Bloch-McConnell equation for SQ, 
ZQ, and DQ data.
 
     The notation used here comes from:
@@ -423,12 +425,12 @@
     @type pB:               float
     @keyword dw_AB:         The combined chemical exchange difference 
between states A and B in rad/s.  It should be set to dwH for 1H SQ data, dw 
for heteronuclear SQ data, dwH-dw for ZQ data, and dwH+dw for DQ data.
     @type dw_AB:            numpy float array of rank [NS][NM][NO][ND]
-    @keyword dw_AC:         The combined chemical exchange difference 
between states A and C in rad/s.  It should be set to dwH for 1H SQ data, dw 
for heteronuclear SQ data, dwH-dw for ZQ data, and dwH+dw for DQ data.
-    @type dw_AC:            numpy float array of rank [NS][NM][NO][ND]
+    @keyword dw_BC:         The combined chemical exchange difference 
between states B and C in rad/s.  It should be set to dwH for 1H SQ data, dw 
for heteronuclear SQ data, dwH-dw for ZQ data, and dwH+dw for DQ data.
+    @type dw_BC:            numpy float array of rank [NS][NM][NO][ND]
     @keyword dwH_AB:        Unused - this is simply to match the 
r2eff_mmq_3site_mq() function arguments.
     @type dwH_AB:           numpy float array of rank [NS][NM][NO][ND]
-    @keyword dwH_AC:        Unused - this is simply to match the 
r2eff_mmq_3site_mq() function arguments.
-    @type dwH_AC:           numpy float array of rank [NS][NM][NO][ND]
+    @keyword dwH_BC:        Unused - this is simply to match the 
r2eff_mmq_3site_mq() function arguments.
+    @type dwH_BC:           numpy float array of rank [NS][NM][NO][ND]
     @keyword kex_AB:        The exchange rate between sites A and B for 
3-site exchange with kex_AB = k_AB + k_BA (rad.s^-1)
     @type kex_AB:           float
     @keyword kex_BC:        The exchange rate between sites A and C for 
3-site exchange with kex_AC = k_AC + k_CA (rad.s^-1)
@@ -448,6 +450,7 @@
     """
 
     # Once off parameter conversions.
+    dw_AC = dw_AB + dw_BC
     pC = 1.0 - pA - pB
     pA_pB = pA + pB
     pA_pC = pA + pC

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=24644&r1=24643&r2=24644&view=diff
==============================================================================
--- branches/disp_spin_speed/target_functions/relax_disp.py     (original)
+++ branches/disp_spin_speed/target_functions/relax_disp.py     Tue Jul 22 
17:53:43 2014
@@ -244,10 +244,9 @@
         self.dw_struct = deepcopy(numpy_array_zeros)
         self.dwH_struct = deepcopy(numpy_array_zeros)
         self.dw_AB_struct = deepcopy(numpy_array_zeros)
-        self.dw_AC_struct = deepcopy(numpy_array_zeros)
         self.dw_BC_struct = deepcopy(numpy_array_zeros)
         self.dwH_AB_struct = deepcopy(numpy_array_zeros)
-        self.dwH_AC_struct = deepcopy(numpy_array_zeros)
+        self.dwH_BC_struct = deepcopy(numpy_array_zeros)
         self.phi_ex_struct = deepcopy(numpy_array_zeros)
         self.phi_ex_B_struct = deepcopy(numpy_array_zeros)
         self.phi_ex_C_struct = deepcopy(numpy_array_zeros)
@@ -693,15 +692,11 @@
         @rtype:             float
         """
 
-        # Once off parameter conversions.
-        dw_AC = dw_AB + dw_BC
-        dwH_AC = dwH_AB + dwH_BC
-
         # Convert dw from ppm to rad/s. Use the out argument, to pass 
directly to structure.
         multiply( multiply.outer( dw_AB.reshape(1, self.NS), 
self.nm_no_nd_ones ), self.frqs, out=self.dw_AB_struct )
-        multiply( multiply.outer( dw_AC.reshape(1, self.NS), 
self.nm_no_nd_ones ), self.frqs, out=self.dw_AC_struct )
+        multiply( multiply.outer( dw_BC.reshape(1, self.NS), 
self.nm_no_nd_ones ), self.frqs, out=self.dw_BC_struct )
         multiply( multiply.outer( dwH_AB.reshape(1, self.NS), 
self.nm_no_nd_ones ), self.frqs_H, out=self.dwH_AB_struct )
-        multiply( multiply.outer( dwH_AC.reshape(1, self.NS), 
self.nm_no_nd_ones ), self.frqs_H, out=self.dwH_AC_struct )
+        multiply( multiply.outer( dwH_BC.reshape(1, self.NS), 
self.nm_no_nd_ones ), self.frqs_H, out=self.dwH_BC_struct )
 
         # Reshape R20A and R20B to per experiment, spin and frequency.
         self.r20a_struct[:] = multiply.outer( R20A.reshape(self.NE, self.NS, 
self.NM), self.no_nd_ones )
@@ -714,38 +709,38 @@
             r20b = self.r20b_struct[ei]
             r20c = self.r20b_struct[ei]
             dw_AB_frq = self.dw_AB_struct[ei]
-            dw_AC_frq = self.dw_AC_struct[ei]
+            dw_BC_frq = self.dw_BC_struct[ei]
             dwH_AB_frq = self.dwH_AB_struct[ei]
-            dwH_AC_frq = self.dwH_AC_struct[ei]
+            dwH_BC_frq = self.dwH_BC_struct[ei]
 
             # Alias the dw frequency combinations.
             aliased_dwH_AB = 0.0 * self.dwH_AB_struct[ei]
-            aliased_dwH_AC = 0.0 * self.dwH_AC_struct[ei]
+            aliased_dwH_BC = 0.0 * self.dwH_BC_struct[ei]
             if self.exp_types[ei] == EXP_TYPE_CPMG_SQ:
                 aliased_dw_AB = dw_AB_frq
-                aliased_dw_AC = dw_AC_frq
+                aliased_dw_BC = dw_BC_frq
             elif self.exp_types[ei] == EXP_TYPE_CPMG_PROTON_SQ:
                 aliased_dw_AB = dwH_AB_frq
-                aliased_dw_AC = dwH_AC_frq
+                aliased_dw_BC = dwH_BC_frq
             elif self.exp_types[ei] == EXP_TYPE_CPMG_DQ:
                 aliased_dw_AB = dw_AB_frq + dwH_AB_frq
-                aliased_dw_AC = dw_AC_frq + dwH_AC_frq
+                aliased_dw_BC = dw_BC_frq + dwH_BC_frq
             elif self.exp_types[ei] == EXP_TYPE_CPMG_ZQ:
                 aliased_dw_AB = dw_AB_frq - dwH_AB_frq
-                aliased_dw_AC = dw_AC_frq - dwH_AC_frq
+                aliased_dw_BC = dw_BC_frq - dwH_BC_frq
             elif self.exp_types[ei] == EXP_TYPE_CPMG_MQ:
                 aliased_dw_AB = dw_AB_frq
-                aliased_dw_AC = dw_AC_frq
+                aliased_dw_BC = dw_BC_frq
                 aliased_dwH_AB = dwH_AB_frq
-                aliased_dwH_AC = dwH_AC_frq
+                aliased_dwH_BC = dwH_BC_frq
             elif self.exp_types[ei] == EXP_TYPE_CPMG_PROTON_MQ:
                 aliased_dw_AB = dwH_AB_frq
-                aliased_dw_AC = dwH_AC_frq
+                aliased_dw_BC = dwH_BC_frq
                 aliased_dwH_AB = dw_AB_frq
-                aliased_dwH_AC = dw_AC_frq
+                aliased_dwH_BC = dw_BC_frq
 
             # Back calculate the R2eff values for each experiment type.
-            self.r2eff_ns_mmq[ei](M0=self.M0, R20A=r20a, R20B=r20b, 
R20C=r20c, pA=pA, pB=pB, dw_AB=aliased_dw_AB, dw_AC=aliased_dw_AC, 
dwH_AB=aliased_dwH_AB, dwH_AC=aliased_dwH_AC, kex_AB=kex_AB, kex_BC=kex_BC, 
kex_AC=kex_AC, inv_tcpmg=self.inv_relax_times[ei], tcp=self.tau_cpmg[ei], 
back_calc=self.back_calc[ei], num_points=self.num_disp_points[ei], 
power=self.power[ei])
+            self.r2eff_ns_mmq[ei](M0=self.M0, R20A=r20a, R20B=r20b, 
R20C=r20c, pA=pA, pB=pB, dw_AB=aliased_dw_AB, dw_BC=aliased_dw_BC, 
dwH_AB=aliased_dwH_AB, dwH_BC=aliased_dwH_BC, kex_AB=kex_AB, kex_BC=kex_BC, 
kex_AC=kex_AC, inv_tcpmg=self.inv_relax_times[ei], tcp=self.tau_cpmg[ei], 
back_calc=self.back_calc[ei], num_points=self.num_disp_points[ei], 
power=self.power[ei])
 
         # Clean the data for all values, which is left over at the end of 
arrays.
         self.back_calc = self.back_calc*self.disp_struct




Related Messages


Powered by MHonArc, Updated Tue Jul 22 18:00:02 2014