mailr24026 - /branches/disp_spin_speed/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 June 17, 2014 - 13:07:
Author: tlinnet
Date: Tue Jun 17 13:07:40 2014
New Revision: 24026

URL: http://svn.gna.org/viewcvs/relax?rev=24026&view=rev
Log:
Replaced index to numpy array from example [0][si][mi][oi] to [0, si, mi, oi].

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=24026&r1=24025&r2=24026&view=diff
==============================================================================
--- branches/disp_spin_speed/target_functions/relax_disp.py     (original)
+++ branches/disp_spin_speed/target_functions/relax_disp.py     Tue Jun 17 
13:07:40 2014
@@ -263,39 +263,39 @@
                 for mi in range(self.NM):
                     # Fill the frequency.
                     frq = frqs[ei][si][mi]
-                    self.frqs[ei][si][mi][:] = frq
-                    self.frqs_squared[ei][si][mi][:] = frq**2
+                    self.frqs[ei, si, mi][:] = frq
+                    self.frqs_squared[ei, si, mi][:] = frq**2
                     frq_H = frqs_H[ei][si][mi]
-                    self.frqs_H[ei][si][mi][:] = frq_H
+                    self.frqs_H[ei, si, mi][:] = frq_H
 
                     # Fill the relaxation time.
-                    relax_time = relax_times[ei][mi]
-                    self.relax_times[ei][si][mi][:] = relax_time
+                    relax_time = relax_times[ei, mi]
+                    self.relax_times[ei, si, mi][:] = relax_time
 
                     # Fill r1.
                     r1_l = r1[si][mi]
-                    self.r1[ei][si][mi][:] = r1_l
+                    self.r1[ei, si, mi][:] = r1_l
 
                     # Fill chemical shift.
                     chemical_shift = chemical_shifts[ei][si][mi]
-                    self.chemical_shifts[ei][si][mi][:] = chemical_shift
+                    self.chemical_shifts[ei, si, mi][:] = chemical_shift
 
                     # The inverted relaxation delay.
                     if model in [MODEL_B14, MODEL_B14_FULL, MODEL_MMQ_CR72, 
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]:
-                        self.inv_relax_times[ei][si][mi][:] = 1.0 / 
relax_time
+                        self.inv_relax_times[ei, si, mi][:] = 1.0 / 
relax_time
 
                     # The number of offset data points.
                     if len(offset[ei][si][mi]):
-                        self.num_offsets[ei][si][mi] = 
len(self.offset[ei][si][mi])
+                        self.num_offsets[ei, si, mi] = len(self.offset[ei, 
si, mi])
                     else:
-                        self.num_offsets[ei][si][mi] = 0
+                        self.num_offsets[ei, si, mi] = 0
 
                     # Loop over offsets.
                     for oi in range(self.NO):
                         if cpmg_frqs != None and len(cpmg_frqs[ei][mi][oi]):
                             cpmg_frqs_list = cpmg_frqs[ei][mi][oi]
                             num_disp_points = len(cpmg_frqs_list)
-                            self.cpmg_frqs[ei][si][mi][oi][:num_disp_points] 
= cpmg_frqs_list
+                            self.cpmg_frqs[ei, si, mi, oi][:num_disp_points] 
= cpmg_frqs_list
 
                             for di in range(num_disp_points):
                                 cpmg_frq = cpmg_frqs[ei][mi][oi][di]
@@ -305,42 +305,42 @@
                                 # Normal value.
                                 else:
                                     power = int(round(cpmg_frq * relax_time))
-                                self.power[ei][si][mi][oi][di] = power
+                                self.power[ei, si, mi, oi, di] = power
 
                                 # Recalculate the tau_cpmg times to avoid 
any user induced truncation in the input files.
                                 if recalc_tau:
                                     tau_cpmg = 0.25 * relax_time / power
                                 else:
                                     tau_cpmg = 0.25 / frq
-                                self.tau_cpmg[ei][si][mi][oi][di] = tau_cpmg
+                                self.tau_cpmg[ei, si, mi, oi, di] = tau_cpmg
 
                         elif spin_lock_nu1 != None and 
len(spin_lock_nu1[ei][mi][oi]):
                             num_disp_points = len( spin_lock_nu1[ei][mi][oi] 
)
                         else:
                             num_disp_points = 0
 
-                        self.num_disp_points[ei][si][mi][oi] = 
num_disp_points
+                        self.num_disp_points[ei, si, mi, oi] = 
num_disp_points
 
                         # Get the values and errors.
-                        self.values[ei][si][mi][oi][:num_disp_points] = 
values[ei][si][mi][oi]
-                        self.errors[ei][si][mi][oi][:num_disp_points] = 
errors[ei][si][mi][oi]
-                        self.disp_struct[ei][si][mi][oi][:num_disp_points] = 
ones(num_disp_points)
+                        self.values[ei, si, mi, oi][:num_disp_points] = 
values[ei][si][mi][oi]
+                        self.errors[ei, si, mi, oi][:num_disp_points] = 
errors[ei][si][mi][oi]
+                        self.disp_struct[ei, si, mi, oi][:num_disp_points] = 
ones(num_disp_points)
 
                         # Loop over dispersion points.
                         for di in range(num_disp_points):
                             if missing[ei][si][mi][oi][di]:
                                 self.has_missing = True
-                                self.missing[ei][si][mi][oi][di] = 1.0
+                                self.missing[ei, si, mi, oi, di] = 1.0
 
                             # For R1rho data.
                             if model in MODEL_LIST_R1RHO_FULL and model != 
MODEL_NOREX:
-                                self.disp_struct[ei][si][mi][oi][di] = 1.0
+                                self.disp_struct[ei, si, mi, oi, di] = 1.0
                                 # Get the tilt angles.
-                                self.tilt_angles[ei][si][mi][oi][di] = 
tilt_angles[ei][si][mi][oi][di]
-                                self.offset[ei][si][mi][oi] = 
offset[ei][si][mi][oi]
+                                self.tilt_angles[ei, si, mi, oi, di] = 
tilt_angles[ei][si][mi][oi][di]
+                                self.offset[ei, si, mi, oi] = 
offset[ei][si][mi][oi]
                                 ## Convert the spin-lock data to rad.s^-1.
-                                self.spin_lock_omega1[ei][si][mi][oi][di] = 
2.0 * pi * spin_lock_nu1[ei][mi][oi][di]
-                                
self.spin_lock_omega1_squared[ei][si][mi][oi][di] = 
self.spin_lock_omega1[ei][si][mi][oi][di] ** 2
+                                self.spin_lock_omega1[ei, si, mi, oi, di] = 
2.0 * pi * spin_lock_nu1[ei][mi][oi][di]
+                                self.spin_lock_omega1_squared[ei, si, mi, 
oi, di] = self.spin_lock_omega1[ei, si, mi, oi, di] ** 2
 
         # Create the structure for holding the back-calculated R2eff values 
(matching the dimensions of the values structure).
         self.back_calc = deepcopy(self.values)
@@ -695,10 +695,10 @@
                     r20_index = mi + ei*self.num_frq + 
si*self.num_frq*self.num_exp
 
                     # Convert dw from ppm to rad/s.
-                    dw_AB_frq = dw_AB[si] * self.frqs[ei][si][mi][0][0]
-                    dw_AC_frq = dw_AC[si] * self.frqs[ei][si][mi][0][0]
-                    dwH_AB_frq = dwH_AB[si] * self.frqs_H[ei][si][mi][0][0]
-                    dwH_AC_frq = dwH_AC[si] * self.frqs_H[ei][si][mi][0][0]
+                    dw_AB_frq = dw_AB[si] * self.frqs[ei, si, mi, 0, 0]
+                    dw_AC_frq = dw_AC[si] * self.frqs[ei, si, mi, 0, 0]
+                    dwH_AB_frq = dwH_AB[si] * self.frqs_H[ei, si, mi, 0, 0]
+                    dwH_AC_frq = dwH_AC[si] * self.frqs_H[ei, si, mi, 0, 0]
 
                     # Alias the dw frequency combinations.
                     aliased_dwH_AB = 0.0
@@ -727,15 +727,15 @@
                         aliased_dwH_AC = dw_AC_frq
 
                     # Back calculate the R2eff values for each experiment 
type.
-                    self.r2eff_ns_mmq[ei](M0=self.M0, m1=self.m1, 
m2=self.m2, R20A=R20A[r20_index], R20B=R20B[r20_index], R20C=R20C[r20_index], 
pA=pA, pB=pB, pC=pC, dw_AB=aliased_dw_AB, dw_AC=aliased_dw_AC, 
dwH_AB=aliased_dwH_AB, dwH_AC=aliased_dwH_AC, k_AB=k_AB, k_BA=k_BA, 
k_BC=k_BC, k_CB=k_CB, k_AC=k_AC, k_CA=k_CA, 
inv_tcpmg=self.inv_relax_times[ei][si][mi][0], 
tcp=self.tau_cpmg[ei][si][mi][0], back_calc=self.back_calc[ei][si][mi][0], 
num_points=self.num_disp_points[ei][si][mi][0], 
power=self.power[ei][si][mi][0])
+                    self.r2eff_ns_mmq[ei](M0=self.M0, m1=self.m1, 
m2=self.m2, R20A=R20A[r20_index], R20B=R20B[r20_index], R20C=R20C[r20_index], 
pA=pA, pB=pB, pC=pC, dw_AB=aliased_dw_AB, dw_AC=aliased_dw_AC, 
dwH_AB=aliased_dwH_AB, dwH_AC=aliased_dwH_AC, k_AB=k_AB, k_BA=k_BA, 
k_BC=k_BC, k_CB=k_CB, k_AC=k_AC, k_CA=k_CA, 
inv_tcpmg=self.inv_relax_times[ei, si, mi, 0], tcp=self.tau_cpmg[ei, si, mi, 
0], back_calc=self.back_calc[ei, si, mi, 0], 
num_points=self.num_disp_points[ei, si, mi, 0], power=self.power[ei, si, mi, 
0])
 
                     # For all missing data points, set the back-calculated 
value to the measured values so that it has no effect on the chi-squared 
value.
-                    for di in range(self.num_disp_points[ei][si][mi][0]):
-                        if self.missing[ei][si][mi][0][di]:
-                            self.back_calc[ei][si][mi][0][di] = 
self.values[ei][si][mi][0][di]
+                    for di in range(self.num_disp_points[ei, si, mi, 0]):
+                        if self.missing[ei, si, mi, 0, di]:
+                            self.back_calc[ei, si, mi, 0, di] = 
self.values[ei, si, mi, 0, di]
 
                     # Calculate and return the chi-squared value.
-                    chi2_sum += chi2(self.values[ei][si][mi][0], 
self.back_calc[ei][si][mi][0], self.errors[ei][si][mi][0])
+                    chi2_sum += chi2(self.values[ei, si, mi, 0], 
self.back_calc[ei, si, mi, 0], self.errors[ei, si, mi, 0])
 
         # Return the total chi-squared value.
         return chi2_sum
@@ -786,21 +786,21 @@
                 r20_index = mi + si*self.num_frq
 
                 # Convert dw from ppm to rad/s.
-                dw_AB_frq = dw_AB[si] * self.frqs[0][si][mi][0][0]
-                dw_AC_frq = dw_AC[si] * self.frqs[0][si][mi][0][0]
+                dw_AB_frq = dw_AB[si] * self.frqs[0, si, mi, 0, 0]
+                dw_AC_frq = dw_AC[si] * self.frqs[0, si, mi, 0, 0]
 
                 # Loop over the offsets.
-                for oi in range(self.num_offsets[0][si][mi]):
+                for oi in range(self.num_offsets[0][si, mi]):
                     # Back calculate the R2eff values for each experiment 
type.
-                    ns_r1rho_3site(M0=self.M0, matrix=self.matrix, 
r1rho_prime=r1rho_prime[r20_index], 
omega=self.chemical_shifts[0][si][mi][oi][0], 
offset=self.offset[0][si][mi][oi][0], r1=self.r1[0][si][mi][oi][0], pA=pA, 
pB=pB, pC=pC, dw_AB=dw_AB_frq, dw_AC=dw_AC_frq, k_AB=k_AB, k_BA=k_BA, 
k_BC=k_BC, k_CB=k_CB, k_AC=k_AC, k_CA=k_CA, 
spin_lock_fields=self.spin_lock_omega1[0][si][mi][oi], 
relax_time=self.relax_times[0][si][mi][oi], 
inv_relax_time=self.inv_relax_times[0][si][mi][oi], 
back_calc=self.back_calc[0][si][mi][oi], 
num_points=self.num_disp_points[0][si][mi][oi])
+                    ns_r1rho_3site(M0=self.M0, matrix=self.matrix, 
r1rho_prime=r1rho_prime[r20_index], omega=self.chemical_shifts[0, si, mi, oi, 
0], offset=self.offset[0, si, mi, oi, 0], r1=self.r1[0, si, mi, oi, 0], 
pA=pA, pB=pB, pC=pC, dw_AB=dw_AB_frq, dw_AC=dw_AC_frq, k_AB=k_AB, k_BA=k_BA, 
k_BC=k_BC, k_CB=k_CB, k_AC=k_AC, k_CA=k_CA, 
spin_lock_fields=self.spin_lock_omega1[0, si, mi, oi], 
relax_time=self.relax_times[0, si, mi, oi], 
inv_relax_time=self.inv_relax_times[0, si, mi, oi], 
back_calc=self.back_calc[0, si, mi, oi], num_points=self.num_disp_points[0, 
si, mi, oi])
 
                     # For all missing data points, set the back-calculated 
value to the measured values so that it has no effect on the chi-squared 
value.
-                    for di in range(self.num_disp_points[0][si][mi][oi]):
-                        if self.missing[0][si][mi][oi][di]:
-                            self.back_calc[0][si][mi][oi][di] = 
self.values[0][si][mi][oi][di]
+                    for di in range(self.num_disp_points[0, si, mi, oi]):
+                        if self.missing[0, si, mi, oi, di]:
+                            self.back_calc[0, si, mi, oi, di] = 
self.values[0, si, mi, oi, di]
 
                     # Calculate and return the chi-squared value.
-                    chi2_sum += chi2(self.values[0][si][mi][oi], 
self.back_calc[0][si][mi][oi], self.errors[0][si][mi][oi])
+                    chi2_sum += chi2(self.values[0, si, mi, oi], 
self.back_calc[0, si, mi, oi], self.errors[0, si, mi, oi])
 
         # Return the total chi-squared value.
         return chi2_sum
@@ -1071,19 +1071,19 @@
                 r20_index = mi + si*self.num_frq
 
                 # Convert phi_ex (or rex) from ppm^2 to (rad/s)^2.
-                rex_B_scaled = rex_B[si] * self.frqs_squared[0][si][mi][0][0]
-                rex_C_scaled = rex_C[si] * self.frqs_squared[0][si][mi][0][0]
+                rex_B_scaled = rex_B[si] * self.frqs_squared[0, si, mi, 0, 0]
+                rex_C_scaled = rex_C[si] * self.frqs_squared[0, si, mi, 0, 0]
 
                 # Back calculate the R2eff values.
-                r2eff_LM63_3site(r20=R20[r20_index], rex_B=rex_B_scaled, 
rex_C=rex_C_scaled, quart_kB=quart_kB, quart_kC=quart_kC, 
cpmg_frqs=self.cpmg_frqs[0][si][mi][0], 
back_calc=self.back_calc[0][si][mi][0], 
num_points=self.num_disp_points[0][si][mi][0])
+                r2eff_LM63_3site(r20=R20[r20_index], rex_B=rex_B_scaled, 
rex_C=rex_C_scaled, quart_kB=quart_kB, quart_kC=quart_kC, 
cpmg_frqs=self.cpmg_frqs[0, si, mi, 0], back_calc=self.back_calc[0, si, mi, 
0], num_points=self.num_disp_points[0, si, mi, 0])
 
                 # For all missing data points, set the back-calculated value 
to the measured values so that it has no effect on the chi-squared value.
-                for di in range(self.num_disp_points[0][si][mi][0]):
-                    if self.missing[0][si][mi][0][di]:
-                        self.back_calc[0][si][mi][0][di] = 
self.values[0][si][mi][0][di]
+                for di in range(self.num_disp_points[0, si, mi, 0]):
+                    if self.missing[0, si, mi, 0][di]:
+                        self.back_calc[0, si, mi, 0][di] = self.values[0, 
si, mi, 0][di]
 
                 # Calculate and return the chi-squared value.
-                chi2_sum += chi2(self.values[0][si][mi][0], 
self.back_calc[0][si][mi][0], self.errors[0][si][mi][0])
+                chi2_sum += chi2(self.values[0, si, mi, 0], 
self.back_calc[0, si, mi, 0], self.errors[0, si, mi, 0])
 
         # Return the total chi-squared value.
         return chi2_sum
@@ -1657,20 +1657,20 @@
                 r20_index = mi + si*self.num_frq
 
                 # Convert dw from ppm to rad/s.
-                dw_frq = dw[si] * self.frqs[0][si][mi][0][0]
+                dw_frq = dw[si] * self.frqs[0, si, mi, 0, 0]
 
                 # Loop over the offsets.
-                for oi in range(self.num_offsets[0][si][mi]):
+                for oi in range(self.num_offsets[0][si, mi]):
                     # Back calculate the R2eff values.
-                    ns_r1rho_2site(M0=self.M0, matrix=self.matrix, 
r1rho_prime=r1rho_prime[r20_index], 
omega=self.chemical_shifts[0][si][mi][oi][0], 
offset=self.offset[0][si][mi][oi][0], r1=self.r1[0][si][mi][oi][0], pA=pA, 
pB=pB, dw=dw_frq, k_AB=k_AB, k_BA=k_BA, 
spin_lock_fields=self.spin_lock_omega1[0][si][mi][oi], 
relax_time=self.relax_times[0][si][mi][oi], 
inv_relax_time=self.inv_relax_times[0][si][mi][oi], 
back_calc=self.back_calc[0][si][mi][oi], 
num_points=self.num_disp_points[0][si][mi][oi])
+                    ns_r1rho_2site(M0=self.M0, matrix=self.matrix, 
r1rho_prime=r1rho_prime[r20_index], omega=self.chemical_shifts[0, si, mi, oi, 
0], offset=self.offset[0, si, mi, oi, 0], r1=self.r1[0, si, mi, oi, 0], 
pA=pA, pB=pB, dw=dw_frq, k_AB=k_AB, k_BA=k_BA, 
spin_lock_fields=self.spin_lock_omega1[0, si, mi, oi], 
relax_time=self.relax_times[0, si, mi, oi], 
inv_relax_time=self.inv_relax_times[0, si, mi, oi], 
back_calc=self.back_calc[0, si, mi, oi], num_points=self.num_disp_points[0, 
si, mi, oi])
 
                     # For all missing data points, set the back-calculated 
value to the measured values so that it has no effect on the chi-squared 
value.
-                    for di in range(self.num_disp_points[0][si][mi][oi]):
-                        if self.missing[0][si][mi][oi][di]:
-                            self.back_calc[0][si][mi][oi][di] = 
self.values[0][si][mi][oi][di]
+                    for di in range(self.num_disp_points[0, si, mi, oi]):
+                        if self.missing[0, si, mi, oi, di]:
+                            self.back_calc[0, si, mi, oi, di] = 
self.values[0, si, mi, oi, di]
 
                     # Calculate and return the chi-squared value.
-                    chi2_sum += chi2(self.values[0][si][mi][oi], 
self.back_calc[0][si][mi][oi], self.errors[0][si][mi][oi])
+                    chi2_sum += chi2(self.values[0, si, mi, oi], 
self.back_calc[0, si, mi, oi], self.errors[0, si, mi, oi])
 
         # Return the total chi-squared value.
         return chi2_sum




Related Messages


Powered by MHonArc, Updated Tue Jun 17 13:20:03 2014