Author: bugman Date: Mon Sep 9 18:30:53 2013 New Revision: 20936 URL: http://svn.gna.org/viewcvs/relax?rev=20936&view=rev Log: Modified system test after inclusion of 1M GuHCl dataset. Progress sr #3071: https://gna.org/support/index.php?3071 - Implementation of Tollinger/Kay dispersion model (2001) Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax Troels E. Linnet provided this patch. Commit by: tlinnet _aaattt_ gmail_dot_com Signed-off-by: Edward d'Auvergne <edward@xxxxxxxxxxxxx> Modified: branches/relax_disp/test_suite/system_tests/relax_disp.py Modified: branches/relax_disp/test_suite/system_tests/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/test_suite/system_tests/relax_disp.py?rev=20936&r1=20935&r2=20936&view=diff ============================================================================== --- branches/relax_disp/test_suite/system_tests/relax_disp.py (original) +++ branches/relax_disp/test_suite/system_tests/relax_disp.py Mon Sep 9 18:30:53 2013 @@ -114,7 +114,7 @@ self.interpreter.value.copy(pipe_from='R2eff', pipe_to=model, param='r2eff') - def setup_kteilum_fmpoulsen_makke_cpmg_data(self, model=None): + def setup_kteilum_fmpoulsen_makke_cpmg_data(self, model=None, expfolder=None): """Set up the data for the test_kteilum_fmpoulsen_makke_cpmg_data_*() system tests. @keyword model: The name of the model which will be tested. @@ -122,7 +122,7 @@ """ # Create the data pipe and load the base data. - data_path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'KTeilum_FMPoulsen_MAkke_2006' + data_path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'KTeilum_FMPoulsen_MAkke_2006'+sep+expfolder self.interpreter.pipe.create(pipe_name='base pipe', pipe_type='relax_disp') self.interpreter.results.read(data_path+sep+'ini_setup_trunc') @@ -977,14 +977,14 @@ self.assertEqual(spin2[i], lines[i]) - def test_kteilum_fmpoulsen_makke_cpmg_data_to_cr72(self): + def test_kteilum_fmpoulsen_makke_cpmg_data_048m_guhcl_to_cr72(self): """Optimisation of Kaare Teilum, Flemming M Poulsen, Mikael Akke 2006 "acyl-CoA binding protein" CPMG data to the CR72 dispersion model. - This uses the data from paper at U{http://dx.doi.org/10.1073/pnas.0509100103}. This is CPMG data with a fixed relaxation time period. + This uses the data from paper at U{http://dx.doi.org/10.1073/pnas.0509100103}. This is CPMG data with a fixed relaxation time period. Experiment in 0.48 M GuHCl (guanidine hydrochloride). """ # Base data setup. - self.setup_kteilum_fmpoulsen_makke_cpmg_data(model='CR72') + self.setup_kteilum_fmpoulsen_makke_cpmg_data(model='CR72', expfolder="acbp_cpmg_disp_048MGuHCl_40C_041223") # Alias the spins. res61L = cdp.mol[0].res[0].spin[0] @@ -1015,14 +1015,14 @@ self.assertAlmostEqual(res61L.chi2, 65.99987828889657, 5) - def test_kteilum_fmpoulsen_makke_cpmg_data_to_cr72_full(self): + def test_kteilum_fmpoulsen_makke_cpmg_data_048m_guhcl_to_cr72_full(self): """Optimisation of Kaare Teilum, Flemming M Poulsen, Mikael Akke 2006 "acyl-CoA binding protein" CPMG data to the CR72 dispersion model. - This uses the data from paper at U{http://dx.doi.org/10.1073/pnas.0509100103}. This is CPMG data with a fixed relaxation time period. + This uses the data from paper at U{http://dx.doi.org/10.1073/pnas.0509100103}. This is CPMG data with a fixed relaxation time period. Experiment in 0.48 M GuHCl (guanidine hydrochloride). """ # Base data setup. - self.setup_kteilum_fmpoulsen_makke_cpmg_data(model='CR72 full') + self.setup_kteilum_fmpoulsen_makke_cpmg_data(model='CR72 full', expfolder="acbp_cpmg_disp_048MGuHCl_40C_041223") # Alias the spins. res61L = cdp.mol[0].res[0].spin[0] @@ -1056,12 +1056,57 @@ self.assertAlmostEqual(res61L.chi2, 65.99987828890289, 5) - def test_kteilum_fmpoulsen_makke_cpmg_data_to_tsmfk01(self): + def test_kteilum_fmpoulsen_makke_cpmg_data_048m_guhcl_to_tsmfk01(self): """Optimisation of Kaare Teilum, Flemming M Poulsen, Mikael Akke 2006 "acyl-CoA binding protein" CPMG data to the CR72 dispersion model. - This uses the data from paper at U{http://dx.doi.org/10.1073/pnas.0509100103}. This is CPMG data with a fixed relaxation time period. - - The comparison is to Figure 2. This dataset is the 0.48 M GuHCl, but similar results are expected. The reported results are expected to be in rad.s^-1. Conversion into relax stored values is preferably. + This uses the data from paper at U{http://dx.doi.org/10.1073/pnas.0509100103}. This is CPMG data with a fixed relaxation time period. Experiment in 0.48 M GuHCl (guanidine hydrochloride). + + Figure 3 shows the ln( k_a [s^-1]) for different concentrations of GuHCl. The precise values are: + + - [GuHCL][M] ln(k_a[s^-1]) k_a[s^-1] + - 0.483 0.89623903 2.4503699912708878 + - 0.545 1.1694838 + - 0.545 1.1761503 + - 0.622 1.294 + - 0.669 1.5176493 + - 0.722 1.6238791 + - 0.813 1.9395758 + - 1.011 2.3558415 10.547000429321157 + """ + + # Base data setup. + self.setup_kteilum_fmpoulsen_makke_cpmg_data(model='TSMFK01', expfolder="acbp_cpmg_disp_048MGuHCl_40C_041223") + + # Alias the spins. + res61L = cdp.mol[0].res[0].spin[0] + + # Set the initial parameter values. + res61L.r2a = [8] + res61L.dw = 6.5 + res61L.k_AB = 2.5 + + # 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" % ("Parameter", "Value (:61)")) + print("%-20s %20.15g" % ("R2A (600 MHz)", res61L.r2a[0])) + print("%-20s %20.15g" % ("dw", res61L.dw)) + print("%-20s %20.15g" % ("k_AB", res61L.k_AB)) + print("%-20s %20.15g\n" % ("chi2", res61L.chi2)) + + # Checks for residue :61. Reference values from paper + + self.assertAlmostEqual(res61L.k_AB, 2.45, 1) + + + def test_kteilum_fmpoulsen_makke_cpmg_data_101m_guhcl_to_tsmfk01(self): + """Optimisation of Kaare Teilum, Flemming M Poulsen, Mikael Akke 2006 "acyl-CoA binding protein" CPMG data to the CR72 dispersion model. + + This uses the data from paper at U{http://dx.doi.org/10.1073/pnas.0509100103}. This is CPMG data with a fixed relaxation time period. Experiment in 1.01 M GuHCl (guanidine hydrochloride). + + The comparison is to Figure 2, which is for dataset with 1 M GuHCl. The reported results are expected to be in rad.s^-1. Conversion into relax stored values is preferably. {Representative 15N CPMG relaxation dispersion curve measured on the cross peaks from residue L61 in folded ACBP at pH 5.3, 1 M GuHCl, and 40C.} 1. The dotted line represents a residue-specific fit of all parameters in Eq. 1. @@ -1069,16 +1114,28 @@ - dw = (2.45 +/- 0.09) * 10^3 s^{-1} - R2 = 8.0 +/- 0.5 s^{-1}. 2. The solid line represents a global fit of k_AB to all protein residues and a residue-specific fit of dw and R2.} - -.k_AB = 10.55 +/- 0.08 s^{-1} + - k_AB = 10.55 +/- 0.08 s^{-1} - dw = (2.44 +/- 0.08) * 10^3 s^{-1} - R2 = 8.4 +/- 0.3 s^{-1}. Conversion of paper results to relax results is performed by - dw(ppm) = dw(rad.s^-1) * 10^6 * 1/(2*pi) * (gyro1H/(gyro15N*spectrometer_freq)) = 2.45E3 * 1E6 / (2 * math.pi) * (26.7522212E7/(-2.7126E7 * 599.8908622E6)) = -6.41 ppm. + + Figure 3 shows the ln( k_a [s^-1]) for different concentrations of GuHCl. The precise values are: + + - [GuHCL][M] ln(k_a[s^-1]) k_a[s^-1] + - 0.483 0.89623903 2.4503699912708878 + - 0.545 1.1694838 + - 0.545 1.1761503 + - 0.622 1.294 + - 0.669 1.5176493 + - 0.722 1.6238791 + - 0.813 1.9395758 + - 1.011 2.3558415 10.547000429321157 """ # Base data setup. - self.setup_kteilum_fmpoulsen_makke_cpmg_data(model='TSMFK01') + self.setup_kteilum_fmpoulsen_makke_cpmg_data(model='TSMFK01', expfolder="acbp_cpmg_disp_101MGuHCl_40C_041223") # Alias the spins. res61L = cdp.mol[0].res[0].spin[0] @@ -1101,10 +1158,9 @@ # Checks for residue :61. Reference values from paper - self.assertAlmostEqual(res61L.r2a[0], 8.4, -1) - self.assertAlmostEqual(res61L.dw, 6.41, 2) + self.assertAlmostEqual(res61L.r2a[0], 8.4, 0) + self.assertAlmostEqual(res61L.dw, 6.41, 0) self.assertAlmostEqual(res61L.k_AB, 10.55, 0) - self.assertAlmostEqual(res61L.chi2, 60.0, 5) def test_m61_data_to_m61(self):