Author: bugman Date: Thu Aug 21 17:27:39 2014 New Revision: 25179 URL: http://svn.gna.org/viewcvs/relax?rev=25179&view=rev Log: Merged revisions 25175-25176 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r25175 | bugman | 2014-08-21 17:05:48 +0200 (Thu, 21 Aug 2014) | 6 lines Added the R1 parameter fitting GUI element to the dispersion GUI tab. This is a simple Boolean toggle element that allows the R1 optimisation to be turned on. The value is passed into the auto-analysis. ........ r25176 | bugman | 2014-08-21 17:07:04 +0200 (Thu, 21 Aug 2014) | 6 lines Added the r1_fit argument to the relaxation dispersion auto-analysis. When this is True, the relax_disp.r1_fit user function will be called to turn R1 parameter fitting on. ........ Modified: branches/frame_order_cleanup/ (props changed) branches/frame_order_cleanup/auto_analyses/relax_disp.py branches/frame_order_cleanup/gui/analyses/auto_relax_disp.py Propchange: branches/frame_order_cleanup/ ------------------------------------------------------------------------------ --- svnmerge-integrated (original) +++ svnmerge-integrated Thu Aug 21 17:27:39 2014 @@ -1 +1 @@ -/trunk:1-25173 +/trunk:1-25173,25175-25176 Modified: branches/frame_order_cleanup/auto_analyses/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/auto_analyses/relax_disp.py?rev=25179&r1=25178&r2=25179&view=diff ============================================================================== --- branches/frame_order_cleanup/auto_analyses/relax_disp.py (original) +++ branches/frame_order_cleanup/auto_analyses/relax_disp.py Thu Aug 21 17:27:39 2014 @@ -51,7 +51,7 @@ opt_func_tol = 1e-25 opt_max_iterations = int(1e7) - def __init__(self, pipe_name=None, pipe_bundle=None, results_dir=None, models=[MODEL_R2EFF], grid_inc=11, mc_sim_num=500, exp_mc_sim_num=None, modsel='AIC', pre_run_dir=None, optimise_r2eff=False, insignificance=0.0, numeric_only=False, mc_sim_all_models=False, eliminate=True, set_grid_r20=False): + def __init__(self, pipe_name=None, pipe_bundle=None, results_dir=None, models=[MODEL_R2EFF], grid_inc=11, mc_sim_num=500, exp_mc_sim_num=None, modsel='AIC', pre_run_dir=None, optimise_r2eff=False, insignificance=0.0, numeric_only=False, mc_sim_all_models=False, eliminate=True, set_grid_r20=False, r1_fit=False): """Perform a full relaxation dispersion analysis for the given list of models. @keyword pipe_name: The name of the data pipe containing all of the data for the analysis. @@ -84,6 +84,7 @@ @type eliminate: bool @keyword set_grid_r20: A flag which if True will set the grid R20 values from the minimum R2eff values through the r20_from_min_r2eff user function. This will speed up the grid search with a factor GRID_INC^(Nr_spec_freq). For a CPMG experiment with two fields and standard GRID_INC=21, the speed-up is a factor 441. @type set_grid_r20: bool + @keyword r1_fit: A flag which if True will activate R1 parameter fitting via relax_disp.r1_fit for the models that support it. If False, then the relax_disp.r1_fit user function will not be called. """ # Printout. @@ -112,6 +113,7 @@ self.numeric_only = numeric_only self.mc_sim_all_models = mc_sim_all_models self.eliminate = eliminate + self.r1_fit = r1_fit # No results directory, so default to the current directory. if not self.results_dir: @@ -529,6 +531,11 @@ if MODEL_R2EFF in self.models: self.error_analysis() + # R1 parameter fitting. + if self.r1_fit: + subtitle(file=sys.stdout, text="R1 parameter optimisation activation", prespace=3) + self.interpreter.relax_disp.r1_fit(fit=self.r1_fit) + # Loop over the models. self.model_pipes = [] for model in self.models: Modified: branches/frame_order_cleanup/gui/analyses/auto_relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/gui/analyses/auto_relax_disp.py?rev=25179&r1=25178&r2=25179&view=diff ============================================================================== --- branches/frame_order_cleanup/gui/analyses/auto_relax_disp.py (original) +++ branches/frame_order_cleanup/gui/analyses/auto_relax_disp.py Thu Aug 21 17:27:39 2014 @@ -114,6 +114,7 @@ ds.relax_gui.analyses[data_index].pipe_bundle = pipe_bundle # Initialise the variables. + ds.relax_gui.analyses[data_index].r1_fit = False ds.relax_gui.analyses[data_index].numeric_only = False ds.relax_gui.analyses[data_index].grid_inc = None ds.relax_gui.analyses[data_index].mc_sim_num = None @@ -286,6 +287,9 @@ if model != MODEL_NOREX and model in MODEL_LIST_R1RHO and not has_r1rho_exp_type(): model_mismatch.append([model, 'R1rho']) + # The R1 parameter fitting flag. + data.r1_fit = self.r1_fit.GetValue() + # The numeric only solution. data.numeric_only = self.numeric_only.GetValue() @@ -352,6 +356,10 @@ # Add the dispersion models GUI element, with spacing. self.model_field = Disp_model_list(self, box) self.model_field.set_value(self.data.disp_models) + + # R1 parameter optimisation. + tooltip = "Toggle the optimisation of the off-resonance R1 parameter.\n\nThis allows the optimisation of R1 values to be turned on an off for the relaxation dispersion dispersion models. If turned off, the current values of R1 will be fixed. Otherwise the R1 values will be added to the model parameter set. For models which do not support the R1 parameter for off-resonance effects, this setting will have no effect." + self.r1_fit = Boolean_ctrl(box, self, text="R1 parameter optimisation:", default=False, tooltip=tooltip, width_text=self.width_text, width_button=self.width_button, spacer=self.spacer_horizontal) # The numeric only solution. tooltip = "The class of models to use in the final model selection.\n\nThe default of False allows all dispersion models to be compared for statistical significance in the analysis (no exchange, the analytic models and the numeric models). The value of True will activate a pure numeric solution - the analytic models will be optimised, as they are very useful for replacing the grid search for the numeric models, but the final model selection will not include them." @@ -596,6 +604,12 @@ @keyword upload: A flag which if True will cause the frame to send data to the relax data store. If False, data will be downloaded from the relax data store to update the frame. @type upload: bool """ + + # The R1 parameter fitting flag. + if upload: + self.data.r1_fit = self.r1_fit.GetValue() + elif hasattr(self.data, 'r1_fit'): + self.r1_fit.SetValue(bool(self.data.r1_fit)) # The numeric solution only flag. if upload: @@ -699,7 +713,7 @@ Relax_disp.opt_max_iterations = self.data.opt_max_iterations # Execute. - Relax_disp(pipe_name=self.data.pipe_name, pipe_bundle=self.data.pipe_bundle, results_dir=self.data.save_dir, models=self.data.models, grid_inc=self.data.inc, mc_sim_num=self.data.mc_sim_num, pre_run_dir=self.data.pre_run_dir, mc_sim_all_models=self.data.mc_sim_all_models, insignificance=self.data.insignificance, numeric_only=self.data.numeric_only) + Relax_disp(pipe_name=self.data.pipe_name, pipe_bundle=self.data.pipe_bundle, results_dir=self.data.save_dir, models=self.data.models, grid_inc=self.data.inc, mc_sim_num=self.data.mc_sim_num, pre_run_dir=self.data.pre_run_dir, mc_sim_all_models=self.data.mc_sim_all_models, insignificance=self.data.insignificance, numeric_only=self.data.numeric_only, r1_fit=self.data.r1_fit) # Alias the relax data store data. data = ds.relax_gui.analyses[self.data_index]