Author: bugman Date: Wed Jan 12 15:39:41 2011 New Revision: 12245 URL: http://svn.gna.org/viewcvs/relax?rev=12245&view=rev Log: Created the system test for checking the tm2 grid of model-free parameters. Added: 1.3/test_suite/system_tests/scripts/model_free/opt_setup_tm2_grid.py - copied, changed from r12243, 1.3/test_suite/system_tests/scripts/model_free/opt_setup_local_tm_10_S2_0_8_te_40.py Modified: 1.3/test_suite/system_tests/model_free.py Modified: 1.3/test_suite/system_tests/model_free.py URL: http://svn.gna.org/viewcvs/relax/1.3/test_suite/system_tests/model_free.py?rev=12245&r1=12244&r2=12245&view=diff ============================================================================== --- 1.3/test_suite/system_tests/model_free.py (original) +++ 1.3/test_suite/system_tests/model_free.py Wed Jan 12 15:39:41 2011 @@ -2070,6 +2070,51 @@ self.assertEqual(cdp.mol[0].res[1].spin[0].r, NH_BOND_LENGTH) + def test_tm2_grid(self): + """Test the optimisation of the tm2 model-free parameter grid.""" + + # Setup the data pipe for optimisation. + self.interpreter.run(script_file=status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'model_free'+sep+'opt_setup_tm2_grid.py') + + # The model-free parameters. + tm = [2e-9, 10e-9, 21e-9] + s2 = [0.2, 0.8, 0.95] + te = [2e-12, 40e-12, 1e-9] + + # Deselect all spins. + self.interpreter.deselect.spin() + + # Residue index. + res_index = 0 + + # Loop over te. + for te_index in range(3): + # Loop over s2. + for s2_index in range(3): + # Loop over tm. + for tm_index in range(3): + # Alias the relevent spin container. + spin = cdp.mol[0].res[res_index].spin[0] + + # Select the spin. + spin.select = True + + # Set up the initial model-free parameter values (bypass the grid search for speed). + spin.local_tm = tm[tm_index] - 1e-9 + spin.s2 = s2[s2_index] - 0.1 + spin.te = te[te_index] + 10e-12 + + # Minimise. + self.interpreter.minimise('newton', 'gmw', 'back') + + # Check the values. + self.value_test(spin, local_tm=tm[tm_index], s2=s2[s2_index], te=te[te_index], chi2=0.0) + + # Increment the residue index and deselect the spin. + res_index += 1 + spin.select = False + + def test_tylers_peptide(self): """Try a component of model-free analysis on Tyler Reddy's peptide data (truncated).""" Copied: 1.3/test_suite/system_tests/scripts/model_free/opt_setup_tm2_grid.py (from r12243, 1.3/test_suite/system_tests/scripts/model_free/opt_setup_local_tm_10_S2_0_8_te_40.py) URL: http://svn.gna.org/viewcvs/relax/1.3/test_suite/system_tests/scripts/model_free/opt_setup_tm2_grid.py?p2=1.3/test_suite/system_tests/scripts/model_free/opt_setup_tm2_grid.py&p1=1.3/test_suite/system_tests/scripts/model_free/opt_setup_local_tm_10_S2_0_8_te_40.py&r1=12243&r2=12245&rev=12245&view=diff ============================================================================== --- 1.3/test_suite/system_tests/scripts/model_free/opt_setup_local_tm_10_S2_0_8_te_40.py (original) +++ 1.3/test_suite/system_tests/scripts/model_free/opt_setup_tm2_grid.py Wed Jan 12 15:39:41 2011 @@ -1,29 +1,36 @@ -"""Script for setting up the data pipe for testing optimisation. - -The data set is: - S2 = 0.970. - te = 2048 ps. - Rex = 0.149 s^-1. -""" +"""Script for setting up the data pipe for testing optimisation.""" # Python module imports. from os import sep -import sys # relax module imports. from status import Status; status = Status() +# Create a data pipe. +pipe.create('tm2_grid', 'mf') + # Path of the files. -cdp.path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'model_free'+sep+'local_tm_10_S2_0.8_te_40' +path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'model_free'+sep+'tm2_grid' -# Create the single residue. -residue.create(res_num=5, res_name='GLU') +# Create the sequence. +molecule.create(mol_name='Polycarbonate') +for i in range(3*3*3): + spin.create(spin_num=1, spin_name='C1', res_num=i+1, res_name='Bisphenol_A', mol_name='Polycarbonate') + +# The proton frequencies in MHz. +frq = ['400', '500', '600', '700', '800', '900', '1000'] + +# Load the relaxation data. +for i in range(len(frq)): + relax_data.read('NOE', frq[i], float(frq[i])*1e6, 'noe.%s.out' % frq[i], dir=path, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7) + relax_data.read('R1', frq[i], float(frq[i])*1e6, 'r1.%s.out' % frq[i], dir=path, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7) + relax_data.read('R2', frq[i], float(frq[i])*1e6, 'r2.%s.out' % frq[i], dir=path, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7) # Setup other values. -value.set(1.02 * 1e-10, 'bond_length') -value.set(-172 * 1e-6, 'csa') -value.set('15N', 'heteronucleus') +value.set(1.20 * 1e-10, 'bond_length') +value.set(200 * 1e-6, 'csa') +value.set('13C', 'heteronucleus') value.set('1H', 'proton') # Select the model-free model.