Author: bugman Date: Mon Oct 28 17:32:16 2013 New Revision: 21290 URL: http://svn.gna.org/viewcvs/relax?rev=21290&view=rev Log: A GUI element for the insignificance level for the dispersion auto-analysis has been added. This defaults to 1.0. The user can input any number they wish. Checks were added for non-numerical input. Modified: branches/relax_disp/gui/analyses/auto_relax_disp.py Modified: branches/relax_disp/gui/analyses/auto_relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/gui/analyses/auto_relax_disp.py?rev=21290&r1=21289&r2=21290&view=diff ============================================================================== --- branches/relax_disp/gui/analyses/auto_relax_disp.py (original) +++ branches/relax_disp/gui/analyses/auto_relax_disp.py Mon Oct 28 17:32:16 2013 @@ -41,7 +41,7 @@ from gui.fonts import font from gui.message import error_message, Missing_data from gui import paths -from gui.string_conv import gui_to_bool, gui_to_int, gui_to_str, str_to_gui +from gui.string_conv import float_to_gui, gui_to_bool, gui_to_float, gui_to_int, gui_to_str, str_to_gui from gui.uf_objects import Uf_storage; uf_store = Uf_storage() from gui.wizards.peak_intensity import Peak_intensity_wizard from lib.text.gui import dw, dwH, i0, kex, padw2, phi_ex, phi_exB, phi_exC, r1, r1rho, r1rho_prime, r2, r2a, r2b, r2eff @@ -119,6 +119,7 @@ ds.relax_gui.analyses[data_index].mc_sim_num = None ds.relax_gui.analyses[data_index].pre_run_dir = None ds.relax_gui.analyses[data_index].mc_sim_all_models = False + ds.relax_gui.analyses[data_index].insignificance = 1.0 ds.relax_gui.analyses[data_index].save_dir = self.gui.launch_dir # Set the default dispersion models based on the experiment type. @@ -295,6 +296,13 @@ data.mc_sim_num = gui_to_int(self.mc_sim_num.GetValue()) data.mc_sim_all_models = self.mc_sim_all_models.GetValue() + # The insignificance level. + data.insignificance = self.insignificance.GetValue() + try: + data.insignificance = gui_to_float(data.insignificance) + except: + missing.append("The insignificance level must be a number.") + # Optimisation precision. data.opt_func_tol = self.opt_func_tol data.opt_max_iterations = self.opt_max_iterations @@ -355,6 +363,10 @@ # The MC simulation settings. self.mc_sim_num = Spin_ctrl(box, self, text="Monte Carlo simulation number:", default=500, min=1, max=100000, tooltip="This is the number of Monte Carlo simulations performed for error propagation and analysis. For best results, at least 500 is recommended.", width_text=self.width_text, width_button=self.width_button, spacer=self.spacer_horizontal) self.mc_sim_all_models = Boolean_ctrl(box, self, text="Per model error analysis:", default=False, tooltip="A flag which if True will cause Monte Carlo simulations to be performed for each individual model. Otherwise Monte Carlo simulations will be reserved for the final model.", width_text=self.width_text, width_button=self.width_button, spacer=self.spacer_horizontal) + + # The insignificance cutoff. + tooltip = "The %s/%s value in rad/s by which to judge insignificance. If the maximum difference between two points on all dispersion curves for a spin is less than this value, that spin will be deselected. This does not affect the '%s' model. Set this value to 0.0 to use all data." % (r2eff, r1rho, MODEL_NOREX) + self.insignificance = Text_ctrl(box, self, text="Insignificance level:", default="1.0", tooltip=tooltip, button=False, width_text=self.width_text, width_button=self.width_button, spacer=self.spacer_horizontal) # Stretchable spacing (with a minimal space). box.AddSpacer(30) @@ -604,6 +616,16 @@ self.data.mc_sim_all_models = self.mc_sim_all_models.GetValue() elif hasattr(self.data, 'mc_sim_all_models'): self.mc_sim_all_models.SetValue(bool(self.data.mc_sim_all_models)) + + # The insignificance level. + if upload: + self.data.insignificance = self.insignificance.GetValue() + try: + self.data.insignificance = gui_to_float(self.data.insignificance) + except: + pass + elif hasattr(self.data, 'insignificance'): + self.insignificance.SetValue(float_to_gui(self.data.insignificance)) # The results directory. if upload: @@ -673,7 +695,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, 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) # Alias the relax data store data. data = ds.relax_gui.analyses[self.data_index]