Author: tlinnet Date: Wed Jun 11 19:37:37 2014 New Revision: 23848 URL: http://svn.gna.org/viewcvs/relax?rev=23848&view=rev Log: Modified profiling script for the B14 model. Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis. Modified: branches/disp_spin_speed/test_suite/shared_data/dispersion/profiling/profiling_b14.py Modified: branches/disp_spin_speed/test_suite/shared_data/dispersion/profiling/profiling_b14.py URL: http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/test_suite/shared_data/dispersion/profiling/profiling_b14.py?rev=23848&r1=23847&r2=23848&view=diff ============================================================================== --- branches/disp_spin_speed/test_suite/shared_data/dispersion/profiling/profiling_b14.py (original) +++ branches/disp_spin_speed/test_suite/shared_data/dispersion/profiling/profiling_b14.py Wed Jun 11 19:37:37 2014 @@ -45,7 +45,7 @@ # relax module imports. from lib.physical_constants import g1H, g15N -from lib.dispersion.cr72 import r2eff_CR72 +from lib.dispersion.b14 import r2eff_B14 from target_functions.chi2 import chi2 from target_functions.relax_disp import Dispersion from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_SQ, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_STAR_FULL @@ -55,7 +55,7 @@ def main(): if True: # Nr of iterations. - nr_iter = 1 + nr_iter = 100 # Print statistics. verbose = True @@ -144,10 +144,12 @@ # Required data structures. self.relax_times = self.fields / (100 * 100. *1E6 ) + self.inv_relax_times = 1.0 / self.relax_times self.ncycs = [] self.points = [] self.value = [] self.error = [] + self.tau_cpmg_list = [] for i in range(len(self.fields)): ncyc = arange(2, 1000. * self.relax_times[i], 4) #ncyc = arange(2, 42, 2) @@ -155,6 +157,9 @@ print("sfrq: ", self.fields[i], "number of cpmg frq", len(ncyc), ncyc) cpmg_point = ncyc / self.relax_times[i] + tau_cpmg = 0.25 / cpmg_point + + self.tau_cpmg_list.append(list(tau_cpmg)) self.points.append(list(cpmg_point)) self.value.append([2.0]*len(cpmg_point)) @@ -194,6 +199,9 @@ dw = self.params[end_index[1]:end_index[2]] pA = self.params[end_index[2]] kex = self.params[end_index[2]+1] + pB = 1.0 - pA + k_BA = pA * kex + k_AB = pB * kex # Initialise the data structures for the target function. exp_types = [] @@ -275,7 +283,8 @@ back_calc = array([0.0]*len(cpmg_frqs[ei][mi][oi])) # Initialise call to function. - r2eff_CR72(r20a=r20a, r20b=r20b, pA=pA, dw=dw_frq, kex=kex, cpmg_frqs=array(cpmg_frqs[ei][mi][oi]), back_calc=back_calc, num_points=len(back_calc)) + #r2eff_B14(r20a=r20a, r20b=r20b, pA=pA, dw=dw_frq, kex=kex, k_AB=None, k_BA=None, cpmg_frqs=array(cpmg_frqs[ei][mi][oi]), back_calc=back_calc, num_points=len(back_calc)) + r2eff_B14(r20a=r20a, r20b=r20b, pA=pA, pB=pB, dw=dw_frq, kex=kex, k_AB=k_AB, k_BA=k_BA, ncyc=array(self.ncycs[mi]), inv_tcpmg=self.inv_relax_times[mi], tcp=array(self.tau_cpmg_list[mi]), back_calc=back_calc, num_points=len(back_calc)) for oi in range(len(self.offset)): for di in range(len(self.points[mi])): @@ -420,11 +429,11 @@ """ # Return chi2 value. - chi2 = self.model.func_CR72_full(params) + chi2 = self.model.func_B14_full(params) return chi2 -def single(num_spins=1, model=MODEL_CR72_FULL, iter=None): +def single(num_spins=1, model=MODEL_B14_FULL, iter=None): """Calculate for a single spin. @keyword num_spins: Number of spins in the cluster. @@ -446,7 +455,7 @@ print("chi2 single:", chi2) -def cluster(num_spins=100, model=MODEL_CR72_FULL, iter=None): +def cluster(num_spins=100, model=MODEL_B14_FULL, iter=None): """Calculate for a number of clustered spins. @keyword num_spins: Number of spins in the cluster. @@ -473,7 +482,7 @@ main() def test_reshape(): - C1 = Profile(num_spins=1, model=MODEL_CR72_FULL, r2a=5.0, r2b=10.0, dw=3.0, pA=0.9, kex=1000.0, spins_params=['r2a', 'r2b', 'dw', 'pA', 'kex']) + C1 = Profile(num_spins=1, model=MODEL_B14_FULL, r2a=5.0, r2b=10.0, dw=3.0, pA=0.9, kex=1000.0, spins_params=['r2a', 'r2b', 'dw', 'pA', 'kex']) end_index = C1.model.end_index #print("end_index:", end_index) num_spins = C1.model.num_spins