Author: bugman Date: Thu Aug 21 11:23:28 2014 New Revision: 25159 URL: http://svn.gna.org/viewcvs/relax?rev=25159&view=rev Log: Merged revisions 25152-25158 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r25152 | bugman | 2014-08-21 10:37:38 +0200 (Thu, 21 Aug 2014) | 3 lines Created the MODEL_LIST_FIT_R1 variable to keep track of dispersion models with R1 fitting support. ........ r25153 | bugman | 2014-08-21 10:40:26 +0200 (Thu, 21 Aug 2014) | 6 lines The is_r1_optimised() function now checks MODEL_LIST_FIT_R1. If the model is not in MODEL_LIST_FIT_R1, i.e. R1 optimisation is not supported, then the function will return False. ........ r25154 | bugman | 2014-08-21 10:42:58 +0200 (Thu, 21 Aug 2014) | 5 lines Bug fix for the updating of the Model_class.params list with 'r1'. The is_r1_optimised() function needs to be called! ........ r25155 | bugman | 2014-08-21 10:59:02 +0200 (Thu, 21 Aug 2014) | 3 lines Removed some unused imports to allow the test_variables unit tests to pass. ........ r25156 | bugman | 2014-08-21 11:05:12 +0200 (Thu, 21 Aug 2014) | 5 lines Removed all of the MODEL_*_FIT_R1 from the remaining unit tests. These are for the tests of the specific_analyses.relax_disp.model module. ........ r25157 | bugman | 2014-08-21 11:08:52 +0200 (Thu, 21 Aug 2014) | 5 lines Fix for the test_nesting_param_5 unit test. The 'r1' parameter is now dynamic and hence will not be present in the initial list. ........ r25158 | bugman | 2014-08-21 11:21:12 +0200 (Thu, 21 Aug 2014) | 5 lines One final fix for the Model_class.params list with 'r1'. The is_r1_optimised() function is now called with the model name argument, as required. ........ Modified: branches/frame_order_cleanup/ (props changed) branches/frame_order_cleanup/specific_analyses/relax_disp/data.py branches/frame_order_cleanup/specific_analyses/relax_disp/model.py branches/frame_order_cleanup/specific_analyses/relax_disp/variables.py branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py Propchange: branches/frame_order_cleanup/ ------------------------------------------------------------------------------ --- svnmerge-integrated (original) +++ svnmerge-integrated Thu Aug 21 11:23:28 2014 @@ -1 +1 @@ -/trunk:1-25150 +/trunk:1-25158 Modified: branches/frame_order_cleanup/specific_analyses/relax_disp/data.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/specific_analyses/relax_disp/data.py?rev=25159&r1=25158&r2=25159&view=diff ============================================================================== --- branches/frame_order_cleanup/specific_analyses/relax_disp/data.py (original) +++ branches/frame_order_cleanup/specific_analyses/relax_disp/data.py Thu Aug 21 11:23:28 2014 @@ -79,7 +79,7 @@ from pipe_control import value import specific_analyses from specific_analyses.relax_disp.checks import check_exp_type, check_interpolate_offset_cpmg_model, check_missing_r1, check_mixed_curve_types -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_DESC_CPMG_DQ, EXP_TYPE_DESC_CPMG_MQ, EXP_TYPE_DESC_CPMG_PROTON_MQ, EXP_TYPE_DESC_CPMG_PROTON_SQ, EXP_TYPE_DESC_CPMG_SQ, EXP_TYPE_DESC_CPMG_ZQ, EXP_TYPE_DESC_R1RHO, EXP_TYPE_LIST, EXP_TYPE_LIST_CPMG, EXP_TYPE_LIST_R1RHO, EXP_TYPE_R1RHO, MODEL_B14, MODEL_B14_FULL, MODEL_DPL94, MODEL_LIST_MMQ, MODEL_LIST_NUMERIC_CPMG, MODEL_LIST_R1RHO_FULL, MODEL_LIST_R1RHO_ON_RES, MODEL_LIST_R1RHO_OFF_RES, MODEL_MP05, MODEL_NS_R1RHO_2SITE, MODEL_PARAMS, MODEL_R2EFF, MODEL_TAP03, MODEL_TP02, PARAMS_R20 +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_DESC_CPMG_DQ, EXP_TYPE_DESC_CPMG_MQ, EXP_TYPE_DESC_CPMG_PROTON_MQ, EXP_TYPE_DESC_CPMG_PROTON_SQ, EXP_TYPE_DESC_CPMG_SQ, EXP_TYPE_DESC_CPMG_ZQ, EXP_TYPE_DESC_R1RHO, EXP_TYPE_LIST, EXP_TYPE_LIST_CPMG, EXP_TYPE_LIST_R1RHO, EXP_TYPE_R1RHO, MODEL_B14, MODEL_B14_FULL, MODEL_DPL94, MODEL_LIST_FIT_R1, MODEL_LIST_MMQ, MODEL_LIST_NUMERIC_CPMG, MODEL_LIST_R1RHO_FULL, MODEL_LIST_R1RHO_ON_RES, MODEL_LIST_R1RHO_OFF_RES, MODEL_MP05, MODEL_NS_R1RHO_2SITE, MODEL_PARAMS, MODEL_R2EFF, MODEL_TAP03, MODEL_TP02, PARAMS_R20 from stat import S_IRWXU, S_IRGRP, S_IROTH from os import chmod, sep @@ -1026,6 +1026,10 @@ @return: True if the R1 values should be optimised, False if loaded values should be used instead. @rtype: bool """ + + # Return False for all models which do not support R1 optimisation. + if model not in MODEL_LIST_FIT_R1: + return False # Firstly use the R1 fit flag as an override. if hasattr(cdp, 'r1_fit'): Modified: branches/frame_order_cleanup/specific_analyses/relax_disp/model.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/specific_analyses/relax_disp/model.py?rev=25159&r1=25158&r2=25159&view=diff ============================================================================== --- branches/frame_order_cleanup/specific_analyses/relax_disp/model.py (original) +++ branches/frame_order_cleanup/specific_analyses/relax_disp/model.py Thu Aug 21 11:23:28 2014 @@ -58,7 +58,7 @@ # model parameters. self.params = MODEL_PARAMS[self.model] - if is_r1_optimised and 'r1' not in self.params: + if is_r1_optimised(model=model) and 'r1' not in self.params: self.params.insert(0, 'r1') # model number of parameters. Modified: branches/frame_order_cleanup/specific_analyses/relax_disp/variables.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/specific_analyses/relax_disp/variables.py?rev=25159&r1=25158&r2=25159&view=diff ============================================================================== --- branches/frame_order_cleanup/specific_analyses/relax_disp/variables.py (original) +++ branches/frame_order_cleanup/specific_analyses/relax_disp/variables.py Thu Aug 21 11:23:28 2014 @@ -407,6 +407,9 @@ MODEL_LIST_DW_MIX_QUADRUPLE = [MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR] """Models using parameters with mixed dw, and has four variables. For example with both dw_AB, dw_BC, dwH_AB and dwH_BC.""" + +# The models which currently support R1 fitting via target function switching. +MODEL_LIST_FIT_R1 = [MODEL_NOREX_R1RHO, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE] # The defined models, which is used for nesting. Modified: branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py?rev=25159&r1=25158&r2=25159&view=diff ============================================================================== --- branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py (original) +++ branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_model.py Thu Aug 21 11:23:28 2014 @@ -21,8 +21,8 @@ # relax module imports. from specific_analyses.relax_disp.model import nesting_model, nesting_param, sort_models -from specific_analyses.relax_disp.variables import MODEL_B14, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94_FIT_R1, MODEL_IT99, MODEL_MMQ_CR72, MODEL_LM63, MODEL_LM63_3SITE, MODEL_MP05_FIT_R1, MODEL_NOREX, MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_CPMG_2SITE_3D, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_R2EFF, MODEL_TAP03_FIT_R1, MODEL_TP02_FIT_R1, MODEL_TSMFK01 -from specific_analyses.relax_disp.variables import MODEL_PARAMS_B14_FULL, MODEL_PARAMS_CR72, MODEL_PARAMS_CR72_FULL, MODEL_PARAMS_LM63, MODEL_PARAMS_LM63_3SITE, MODEL_PARAMS_MMQ_CR72, MODEL_PARAMS_MP05_FIT_R1, MODEL_PARAMS_NS_MMQ_2SITE, MODEL_PARAMS_NS_MMQ_3SITE, MODEL_PARAMS_NS_MMQ_3SITE_LINEAR, MODEL_PARAMS_NS_R1RHO_2SITE, MODEL_PARAMS_NS_R1RHO_3SITE, MODEL_PARAMS_NS_R1RHO_3SITE_LINEAR, MODEL_PARAMS_TAP03_FIT_R1 +from specific_analyses.relax_disp.variables import MODEL_B14, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_IT99, MODEL_MMQ_CR72, MODEL_LM63, MODEL_LM63_3SITE, MODEL_MP05, MODEL_NOREX, MODEL_NOREX_R1RHO, MODEL_NS_CPMG_2SITE_3D, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_R2EFF, MODEL_TAP03, MODEL_TP02, MODEL_TSMFK01 +from specific_analyses.relax_disp.variables import MODEL_PARAMS_B14_FULL, MODEL_PARAMS_CR72, MODEL_PARAMS_CR72_FULL, MODEL_PARAMS_LM63, MODEL_PARAMS_LM63_3SITE, MODEL_PARAMS_MMQ_CR72, MODEL_PARAMS_MP05, MODEL_PARAMS_NS_MMQ_2SITE, MODEL_PARAMS_NS_MMQ_3SITE, MODEL_PARAMS_NS_MMQ_3SITE_LINEAR, MODEL_PARAMS_NS_R1RHO_2SITE, MODEL_PARAMS_NS_R1RHO_3SITE, MODEL_PARAMS_NS_R1RHO_3SITE_LINEAR, MODEL_PARAMS_TAP03 from test_suite.unit_tests.base_classes import UnitTestCase @@ -337,13 +337,13 @@ def test_nesting_model_r1rho_1(self): """Unit test of function nesting_model, which determine which model to nest from, testing for R1rho experiments.""" - ## Test MODEL_MP05_FIT_R1 model request, when models are all R1rho models with fitted R1. - # Define all the models tested in the analysis. - self_models = [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] - - # Define which current model is selected - model = MODEL_MP05_FIT_R1 - model_nest = MODEL_TAP03_FIT_R1 + ## Test MODEL_MP05 model request, when models are all R1rho models with fitted R1. + # Define all the models tested in the analysis. + self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE] + + # Define which current model is selected + model = MODEL_MP05 + model_nest = MODEL_TAP03 print("self.models is:", self_models) print("Current model to analyse is:", model) @@ -356,12 +356,12 @@ def test_nesting_model_r1rho_2(self): """Unit test of function nesting_model, which determine which model to nest from, testing for R1rho experiments.""" - ## Test MODEL_TP02_FIT_R1 model request, when models are all R1rho models with fitted R1, and MODEL_NS_R1RHO_2SITE_FIT_R1 was fitted first. - # Define all the models tested in the analysis. - self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_TP02_FIT_R1] - - # Define which current model is selected - model = MODEL_TP02_FIT_R1 + ## Test MODEL_TP02 model request, when models are all R1rho models with fitted R1, and MODEL_NS_R1RHO_2SITE was fitted first. + # Define all the models tested in the analysis. + self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO, MODEL_R2EFF, MODEL_NOREX_R1RHO, MODEL_NS_R1RHO_2SITE, MODEL_TP02] + + # Define which current model is selected + model = MODEL_TP02 model_nest = None print("self.models is:", self_models) @@ -375,12 +375,12 @@ def test_nesting_model_r1rho_3(self): """Unit test of function nesting_model, which determine which model to nest from, testing for R1rho experiments.""" - ## Test MODEL_DPL94_FIT_R1 model request, when models are all R1rho models with fitted R1, and MODEL_NS_R1RHO_2SITE_FIT_R1 was fitted first. - # Define all the models tested in the analysis. - self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_DPL94_FIT_R1] - - # Define which current model is selected - model = MODEL_DPL94_FIT_R1 + ## Test MODEL_DPL94 model request, when models are all R1rho models with fitted R1, and MODEL_NS_R1RHO_2SITE was fitted first. + # Define all the models tested in the analysis. + self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO, MODEL_NS_R1RHO_2SITE, MODEL_DPL94] + + # Define which current model is selected + model = MODEL_DPL94 model_nest = None print("self.models is:", self_models) @@ -394,12 +394,12 @@ def test_nesting_model_r1rho_4(self): """Unit test of function nesting_model, which determine which model to nest from, testing for R1rho experiments.""" - ## Test MODEL_TP02_FIT_R1 model request, when model are all R1rho models with fitted R1, and MODEL_DPL94_FIT_R1 was fitted first. - # Define all the models tested in the analysis. - self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, MODEL_DPL94_FIT_R1, MODEL_TP02_FIT_R1] - - # Define which current model is selected - model = MODEL_TP02_FIT_R1 + ## Test MODEL_TP02 model request, when model are all R1rho models with fitted R1, and MODEL_DPL94 was fitted first. + # Define all the models tested in the analysis. + self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO, MODEL_DPL94, MODEL_TP02] + + # Define which current model is selected + model = MODEL_TP02 model_nest = None print("self.models is:", self_models) @@ -509,20 +509,19 @@ """Unit test of function nesting_param, which determine how model parameters are converted for nesting.""" # Define parameters - model_params = MODEL_PARAMS_TAP03_FIT_R1 - nested_model_params = MODEL_PARAMS_MP05_FIT_R1 - - # Get the dictionary of parameter conversion. - par_dic = nesting_param(model_params=model_params, nested_model_params=nested_model_params) - - # Test the number of elements in the dictionary. - self.assertEqual(len(par_dic), len(model_params)) - - print("model parameters", model_params) - print("nested_model_params", nested_model_params) - - # Test content of dictionary. - self.assertEqual(par_dic['r1'], 'r1') + model_params = MODEL_PARAMS_TAP03 + nested_model_params = MODEL_PARAMS_MP05 + + # Get the dictionary of parameter conversion. + par_dic = nesting_param(model_params=model_params, nested_model_params=nested_model_params) + + # Test the number of elements in the dictionary. + self.assertEqual(len(par_dic), len(model_params)) + + print("model parameters", model_params) + print("nested_model_params", nested_model_params) + + # Test content of dictionary. self.assertEqual(par_dic['r2'], 'r2') self.assertEqual(par_dic['pA'], 'pA') self.assertEqual(par_dic['dw'], 'dw') @@ -670,8 +669,8 @@ ## Test sort of models, when models are all R1rho models with fitted R1. # Define all the models tested in the analysis. - self_models = [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] - expected_result = [MODEL_R2EFF, MODEL_NOREX_R1RHO_FIT_R1, MODEL_MP05_FIT_R1, MODEL_TAP03_FIT_R1, MODEL_TP02_FIT_R1, MODEL_DPL94_FIT_R1, MODEL_NS_R1RHO_2SITE_FIT_R1] + self_models = [MODEL_R2EFF, MODEL_NOREX_R1RHO, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, MODEL_MP05, MODEL_NS_R1RHO_2SITE] + expected_result = [MODEL_R2EFF, MODEL_NOREX_R1RHO, MODEL_MP05, MODEL_TAP03, MODEL_TP02, MODEL_DPL94, MODEL_NS_R1RHO_2SITE] # Test the return. self.assertEqual(sort_models(models=self_models), expected_result) Modified: branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py?rev=25159&r1=25158&r2=25159&view=diff ============================================================================== --- branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py (original) +++ branches/frame_order_cleanup/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py Thu Aug 21 11:23:28 2014 @@ -20,7 +20,7 @@ ############################################################################### # relax module imports. -from specific_analyses.relax_disp.variables import MODEL_B14, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94_FIT_R1, MODEL_IT99, MODEL_MMQ_CR72, MODEL_LM63, MODEL_LM63_3SITE, MODEL_MP05_FIT_R1, MODEL_NOREX, MODEL_NOREX_R1RHO_FIT_R1, MODEL_NS_CPMG_2SITE_3D, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_2SITE_FIT_R1, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_R2EFF, MODEL_TAP03_FIT_R1, MODEL_TP02_FIT_R1, MODEL_TSMFK01 +from specific_analyses.relax_disp.variables import MODEL_CR72, MODEL_MMQ_CR72, MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_R1RHO_3SITE from specific_analyses.relax_disp.variables import MODEL_EXP_TYPE, MODEL_EQ, MODEL_PARAMS, MODEL_SITES, MODEL_YEAR from test_suite.unit_tests.base_classes import UnitTestCase