mailr25092 - /trunk/test_suite/system_tests/relax_disp.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by tlinnet on August 20, 2014 - 13:56:
Author: tlinnet
Date: Wed Aug 20 13:56:56 2014
New Revision: 25092

URL: http://svn.gna.org/viewcvs/relax?rev=25092&view=rev
Log:
Inserted system test Relax_disp.test_convert_no_rex_fit_r1, which test the 
return
for the function that will determine if models self.models in the relax_disp 
should be translated/corrected.

Modified:
    trunk/test_suite/system_tests/relax_disp.py

Modified: trunk/test_suite/system_tests/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/relax_disp.py?rev=25092&r1=25091&r2=25092&view=diff
==============================================================================
--- trunk/test_suite/system_tests/relax_disp.py (original)
+++ trunk/test_suite/system_tests/relax_disp.py Wed Aug 20 13:56:56 2014
@@ -31,12 +31,14 @@
 from auto_analyses import relax_disp
 from data_store import Relax_data_store; ds = Relax_data_store()
 import dep_check
+from lib.errors import RelaxError
 from lib.io import get_file_path
 from pipe_control.mol_res_spin import generate_spin_string, return_spin, 
spin_loop
 from specific_analyses.relax_disp.checks import check_missing_r1
 from specific_analyses.relax_disp.data import generate_r20_key, 
get_curve_type, has_r1rho_exp_type, loop_exp_frq, loop_exp_frq_offset_point, 
return_grace_file_name_ini, return_param_key_from_data
 from specific_analyses.relax_disp.data import INTERPOLATE_DISP, 
INTERPOLATE_OFFSET, X_AXIS_DISP, X_AXIS_W_EFF, X_AXIS_THETA, Y_AXIS_R2_R1RHO, 
Y_AXIS_R2_EFF
-from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_DQ, 
EXP_TYPE_CPMG_MQ, EXP_TYPE_CPMG_PROTON_MQ, EXP_TYPE_CPMG_PROTON_SQ, 
EXP_TYPE_CPMG_SQ, EXP_TYPE_CPMG_ZQ, EXP_TYPE_R1RHO, MODEL_B14_FULL, 
MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_DPL94_FIT_R1, MODEL_IT99, 
MODEL_LM63, MODEL_M61B, MODEL_MP05, MODEL_MP05_FIT_R1, MODEL_NOREX, 
MODEL_NOREX_R1RHO, MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_CPMG_2SITE_3D_FULL, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR_FULL, 
MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_PARAMS, MODEL_R2EFF, 
MODEL_TP02, MODEL_TP02_FIT_R1, MODEL_TAP03, MODEL_TAP03_FIT_R1
+from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_DQ, 
EXP_TYPE_CPMG_MQ, EXP_TYPE_CPMG_PROTON_MQ, EXP_TYPE_CPMG_PROTON_SQ, 
EXP_TYPE_CPMG_SQ, EXP_TYPE_CPMG_ZQ, EXP_TYPE_R1RHO, MODEL_B14_FULL, 
MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_DPL94_FIT_R1, MODEL_IT99, 
MODEL_LIST_ANALYTIC_CPMG, MODEL_LIST_NUMERIC_CPMG, MODEL_LM63, MODEL_M61, 
MODEL_M61B, MODEL_MP05, MODEL_MP05_FIT_R1, MODEL_NOREX, MODEL_NOREX_R1RHO, 
MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_CPMG_2SITE_3D_FULL, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR_FULL, 
MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_NS_R1RHO_3SITE, 
MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_PARAMS, MODEL_R2EFF, MODEL_TP02, 
MODEL_TP02_FIT_R1, MODEL_TAP03, MODEL_TAP03_FIT_R1
+from specific_analyses.relax_disp.model import convert_no_rex_fit_r1
 from status import Status; status = Status()
 from test_suite.system_tests.base_classes import SystemTestCase
 
@@ -1387,6 +1389,191 @@
         # Check R1.
         check_missing_r1_return = check_missing_r1(model=MODEL_DPL94)
         self.assertEqual(check_missing_r1_return, False)
+
+
+    def test_convert_no_rex_fit_r1(self):
+        """Test of 
specific_analyses.relax_disp.model.convert_no_rex_fit_r1() function."""
+
+        # Set up some spins.
+        self.setup_missing_r1_spins()
+
+        # Set variables.
+        exp_type = 'R1rho'
+        frq = 800.1 * 1E6
+
+        spectrum_id='test'
+
+        # Set an experiment type to the pipe.
+        self.interpreter.relax_disp.exp_type(spectrum_id=spectrum_id, 
exp_type=exp_type)
+
+        # Set a frequency to loop through.
+        self.interpreter.spectrometer.frequency(id=spectrum_id, frq=frq, 
units='Hz')
+
+        ##### Test the translations, if R1 is not present.
+
+        # First check that CPMG models are not converted.
+
+        ## First check analytic.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX] + MODEL_LIST_ANALYTIC_CPMG
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, self_models)
+
+        ## First check numeric.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX] + MODEL_LIST_NUMERIC_CPMG
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, self_models)
+
+        # Then check the R1ho models which is available through the GUI.
+
+        ## Check for a normal 2 site setup.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_DPL94, MODEL_TP02, 
MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, 
MODEL_NOREX_R1RHO_FIT_R1, MODEL_DPL94_FIT_R1, MODEL_TP02_FIT_R1, 
MODEL_TAP03_FIT_R1, MODEL_MP05_FIT_R1, MODEL_NS_R1RHO_2SITE_FIT_R1])
+
+        ## Check for a 2 site setup, including a 3 site, which should not be 
able to translate.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_DPL94, MODEL_TP02, 
MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_3SITE_LINEAR]
+
+        ### This call should raise a RelaxError, since R1 is missing, and 
MODEL_NS_R1RHO_3SITE_LINEAR cannot be translated to a model where R1 is 
fitted.
+        with self.assertRaises(RelaxError):
+            convert_no_rex_fit_r1(self_models=self_models)
+
+        ## Check for a 2 site setup, where both MODEL_NOREX and 
MODEL_NOREX_R1RHO are sent to auto_analyses.
+        ## This should not be possible through the GUI, but could be wished 
to do through scripting.
+        ## This should just make a conversion to the 'R1 fit' models, and 
keep MODEL_NOREX.
+
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NOREX_R1RHO, 
MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NOREX_R1RHO_FIT_R1, MODEL_DPL94_FIT_R1, MODEL_TP02_FIT_R1, 
MODEL_TAP03_FIT_R1, MODEL_MP05_FIT_R1, MODEL_NS_R1RHO_2SITE_FIT_R1])
+
+        ## Check again with MODEL_NOREX_R1RHO_FIT_R1.
+
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NOREX_R1RHO_FIT_R1, 
MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NOREX_R1RHO_FIT_R1, MODEL_DPL94_FIT_R1, MODEL_TP02_FIT_R1, 
MODEL_TAP03_FIT_R1, MODEL_MP05_FIT_R1, MODEL_NS_R1RHO_2SITE_FIT_R1])
+
+        ## Now check if there is a mix of On-resonance and Off-resonance 
models.
+        ## This should insert 'MODEL_NOREX_R1RHO', if it is not present.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_M61, MODEL_DPL94, 
MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NOREX_R1RHO_FIT_R1, MODEL_M61, MODEL_DPL94_FIT_R1, MODEL_TP02_FIT_R1, 
MODEL_TAP03_FIT_R1, MODEL_MP05_FIT_R1, MODEL_NS_R1RHO_2SITE_FIT_R1])
+
+        ##### Test the translations, if R1 is present.
+
+        ## The path to the data files.
+        data_path = status.install_path + 
sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'Kjaergaard_et_al_2013'
+
+        ## Now load some R1 data.
+        self.interpreter.relax_data.read(ri_id='R1', ri_type='R1', 
frq=cdp.spectrometer_frq_list[0], file='R1_fitted_values.txt', dir=data_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)
+
+        # First check that CPMG models are not converted.
+
+        ## First check analytic.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX] + MODEL_LIST_ANALYTIC_CPMG
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, self_models)
+
+        ## First check numeric.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX] + MODEL_LIST_NUMERIC_CPMG
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, self_models)
+
+        # Then check the R1ho models which is available through the GUI.
+
+        ## Check for a normal 2 site setup.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_DPL94, MODEL_TP02, 
MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, 
MODEL_NOREX_R1RHO, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, 
MODEL_NS_R1RHO_2SITE])
+
+        ## Check for a 2 site setup, including a 3 site.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_DPL94, MODEL_TP02, 
MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_3SITE_LINEAR]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, 
MODEL_NOREX_R1RHO, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, 
MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_3SITE_LINEAR])
+
+        ## Check for a 2 site setup, where both MODEL_NOREX and 
MODEL_NOREX_R1RHO are sent to auto_analyses.
+        ## This should not be possible through the GUI, but could be wished 
to do through scripting.
+        ## This should just make a conversion to the 'R1 fit' models, and 
keep MODEL_NOREX.
+
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NOREX_R1RHO, 
MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NOREX_R1RHO, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, 
MODEL_NS_R1RHO_2SITE])
+
+        ## Check again with MODEL_NOREX_R1RHO_FIT_R1.
+
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_NOREX_R1RHO_FIT_R1, 
MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NOREX_R1RHO_FIT_R1, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, 
MODEL_NS_R1RHO_2SITE])
+
+        ## Now check if there is a mix of On-resonance and Off-resonance 
models.
+        ## This should insert 'MODEL_NOREX_R1RHO', if it is not present.
+        ### Setup the models, which is available through the GUI.
+        self_models = [MODEL_R2EFF, MODEL_NOREX, MODEL_M61, MODEL_DPL94, 
MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE]
+
+        ### Get the return after the conversion.
+        self_models_return = convert_no_rex_fit_r1(self_models=self_models)
+
+        ### Check that the models have been translated correctly.
+        self.assertEqual(self_models_return, [MODEL_R2EFF, MODEL_NOREX, 
MODEL_NOREX_R1RHO, MODEL_M61, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, 
MODEL_MP05, MODEL_NS_R1RHO_2SITE])
 
 
     def test_cpmg_synthetic_b14_to_ns3d_cluster(self):




Related Messages


Powered by MHonArc, Updated Wed Aug 20 14:20:02 2014