Author: tlinnet Date: Wed Jun 25 02:14:22 2014 New Revision: 24290 URL: http://svn.gna.org/viewcvs/relax?rev=24290&view=rev Log: Split systemtest test_tp02_data_to_ns_r1rho_2site into a setup and test part. Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis. Modified: branches/disp_spin_speed/test_suite/system_tests/relax_disp.py Modified: branches/disp_spin_speed/test_suite/system_tests/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/test_suite/system_tests/relax_disp.py?rev=24290&r1=24289&r2=24290&view=diff ============================================================================== --- branches/disp_spin_speed/test_suite/system_tests/relax_disp.py (original) +++ branches/disp_spin_speed/test_suite/system_tests/relax_disp.py Wed Jun 25 02:14:22 2014 @@ -689,6 +689,60 @@ self.interpreter.relax_disp.select_model(model=MODEL) # Calculate R2eff values self.interpreter.calc(verbosity=1) + + + def setup_tp02_data_to_ns_r1rho_2site(self, clustering=False): + """Setup data for the test of relaxation dispersion 'NS R1rho 2-site' model fitting against the 'TP02' test data.""" + + # Reset. + self.interpreter.reset() + + # Create the data pipe and load the base data. + data_path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'r1rho_off_res_tp02' + self.interpreter.state.load(data_path+sep+'r2eff_values') + + # The model data pipe. + model = 'NS R1rho 2-site' + pipe_name = "%s - relax_disp" % model + self.interpreter.pipe.copy(pipe_from='base pipe', pipe_to=pipe_name, bundle_to='relax_disp') + self.interpreter.pipe.switch(pipe_name=pipe_name) + + # Set the model. + self.interpreter.relax_disp.select_model(model=model) + + # Copy the data. + self.interpreter.value.copy(pipe_from='R2eff', pipe_to=pipe_name, param='r2eff') + + # Alias the spins. + spin1 = cdp.mol[0].res[0].spin[0] + spin2 = cdp.mol[0].res[1].spin[0] + + # The R20 keys. + r20_key1 = generate_r20_key(exp_type=EXP_TYPE_R1RHO, frq=500e6) + r20_key2 = generate_r20_key(exp_type=EXP_TYPE_R1RHO, frq=800e6) + + # Set the initial parameter values. + spin1.r2 = {r20_key1: 9.9963793866185, r20_key2: 15.0056724422684} + spin1.pA = 0.779782428085762 + spin1.dw = 7.57855284496424 + spin1.kex = 1116.7911285203 + spin2.r2 = {r20_key1: 11.9983346935434, r20_key2: 18.0076097513337} + spin2.pA = 0.826666229688602 + spin2.dw = 9.5732624231366 + spin2.kex = 1380.46162655657 + + # Low precision optimisation. + self.interpreter.minimise(min_algor='simplex', line_search=None, hessian_mod=None, hessian_type=None, func_tol=1e-05, grad_tol=None, max_iter=1000, constraints=True, scaling=True, verbosity=1) + + # Printout. + print("\n\nOptimised parameters:\n") + print("%-20s %-20s %-20s" % ("Parameter", "Value (:1)", "Value (:2)")) + print("%-20s %20.15g %20.15g" % ("R2 (500 MHz)", spin1.r2[r20_key1], spin2.r2[r20_key1])) + print("%-20s %20.15g %20.15g" % ("R2 (800 MHz)", spin1.r2[r20_key2], spin2.r2[r20_key2])) + print("%-20s %20.15g %20.15g" % ("pA", spin1.pA, spin2.pA)) + print("%-20s %20.15g %20.15g" % ("dw", spin1.dw, spin2.dw)) + print("%-20s %20.15g %20.15g" % ("kex", spin1.kex, spin2.kex)) + print("%-20s %20.15g %20.15g\n" % ("chi2", spin1.chi2, spin2.chi2)) def test_baldwin_synthetic(self): @@ -6013,24 +6067,8 @@ def test_tp02_data_to_ns_r1rho_2site(self, model=None): """Test the relaxation dispersion 'NS R1rho 2-site' model fitting against the 'TP02' test data.""" - # Reset. - self.interpreter.reset() - - # Create the data pipe and load the base data. - data_path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'r1rho_off_res_tp02' - self.interpreter.state.load(data_path+sep+'r2eff_values') - - # The model data pipe. - model = 'NS R1rho 2-site' - pipe_name = "%s - relax_disp" % model - self.interpreter.pipe.copy(pipe_from='base pipe', pipe_to=pipe_name, bundle_to='relax_disp') - self.interpreter.pipe.switch(pipe_name=pipe_name) - - # Set the model. - self.interpreter.relax_disp.select_model(model=model) - - # Copy the data. - self.interpreter.value.copy(pipe_from='R2eff', pipe_to=pipe_name, param='r2eff') + # Setup the data. + self.setup_tp02_data_to_ns_r1rho_2site() # Alias the spins. spin1 = cdp.mol[0].res[0].spin[0] @@ -6039,29 +6077,6 @@ # The R20 keys. r20_key1 = generate_r20_key(exp_type=EXP_TYPE_R1RHO, frq=500e6) r20_key2 = generate_r20_key(exp_type=EXP_TYPE_R1RHO, frq=800e6) - - # Set the initial parameter values. - spin1.r2 = {r20_key1: 9.9963793866185, r20_key2: 15.0056724422684} - spin1.pA = 0.779782428085762 - spin1.dw = 7.57855284496424 - spin1.kex = 1116.7911285203 - spin2.r2 = {r20_key1: 11.9983346935434, r20_key2: 18.0076097513337} - spin2.pA = 0.826666229688602 - spin2.dw = 9.5732624231366 - spin2.kex = 1380.46162655657 - - # Low precision optimisation. - self.interpreter.minimise(min_algor='simplex', line_search=None, hessian_mod=None, hessian_type=None, func_tol=1e-05, grad_tol=None, max_iter=1000, constraints=True, scaling=True, verbosity=1) - - # Printout. - print("\n\nOptimised parameters:\n") - print("%-20s %-20s %-20s" % ("Parameter", "Value (:1)", "Value (:2)")) - print("%-20s %20.15g %20.15g" % ("R2 (500 MHz)", spin1.r2[r20_key1], spin2.r2[r20_key1])) - print("%-20s %20.15g %20.15g" % ("R2 (800 MHz)", spin1.r2[r20_key2], spin2.r2[r20_key2])) - print("%-20s %20.15g %20.15g" % ("pA", spin1.pA, spin2.pA)) - print("%-20s %20.15g %20.15g" % ("dw", spin1.dw, spin2.dw)) - print("%-20s %20.15g %20.15g" % ("kex", spin1.kex, spin2.kex)) - print("%-20s %20.15g %20.15g\n" % ("chi2", spin1.chi2, spin2.chi2)) # Checks for residue :1. self.assertAlmostEqual(spin1.r2[r20_key1], 8.50207717367548, 4)