This is a much cleaner logic! I would suggest improving the comment: # If this is the final model selection round, check which models have been tested.
to: # If this is the final model selection round, find which models have been optimised. And to simplify the code, spin.model does not need to aliased as spin_model. You could also set models_tested to the model in write_results() when it is not the final round and remove the model argument from the write_results_test() method. Cheers, Edward On 5 August 2014 13:52, <[email protected]> wrote: > Author: tlinnet > Date: Tue Aug 5 13:52:21 2014 > New Revision: 24948 > > URL: http://svn.gna.org/viewcvs/relax?rev=24948&view=rev > Log: > Added function to auto_analysis, to test if it give meaning to write and plot > out the parameter. > > sr #3135(https://gna.org/support/?3135): Optimisation of the R1 relaxation > rate for the off-resonance R1rho relaxation dispersion models. > > Modified: > branches/R1_fitting/auto_analyses/relax_disp.py > > Modified: branches/R1_fitting/auto_analyses/relax_disp.py > URL: > http://svn.gna.org/viewcvs/relax/branches/R1_fitting/auto_analyses/relax_disp.py?rev=24948&r1=24947&r2=24948&view=diff > ============================================================================== > --- branches/R1_fitting/auto_analyses/relax_disp.py (original) > +++ branches/R1_fitting/auto_analyses/relax_disp.py Tue Aug 5 13:52:21 > 2014 > @@ -563,6 +563,18 @@ > # Printout. > section(file=sys.stdout, text="Results writing", prespace=2) > > + # If this is the final model selection round, check which models > have been tested. > + if model == None: > + models_tested = [] > + for spin, spin_id in spin_loop(return_id=True, skip_desel=True): > + spin_model = spin.model > + > + # Add to list, if not in already. > + if spin_model not in models_tested: > + models_tested.append(spin_model) > + else: > + models_tested = None > + > # Exponential curves. > if model == 'R2eff' and has_exponential_exp_type(): > > self.interpreter.relax_disp.plot_exp_curves(file='intensities.agr', dir=path, > force=True) # Average peak intensities. > @@ -620,11 +632,8 @@ > self.interpreter.grace.write(x_data_type='res_num', > y_data_type='r1_fit', file='r1_fit.agr', dir=path, force=True) > > # The pA and pB parameters. > - if model in [None] + MODEL_PARAM_PA: > - self.interpreter.value.write(param='pA', file='pA.out', > dir=path, force=True) > - self.interpreter.value.write(param='pB', file='pB.out', > dir=path, force=True) > - self.interpreter.grace.write(x_data_type='res_num', > y_data_type='pA', file='pA.agr', dir=path, force=True) > - self.interpreter.grace.write(x_data_type='res_num', > y_data_type='pB', file='pB.agr', dir=path, force=True) > + self.write_results_test(path=path, model=model, > models_tested=models_tested, param='pA', model_param_list=MODEL_PARAM_PA) > + self.write_results_test(path=path, model=model, > models_tested=models_tested, param='pB', model_param_list=MODEL_PARAM_PA) > > # The pC parameter. > if model in [None] + MODEL_PARAM_PB: > @@ -703,3 +712,38 @@ > # Finally save the results. This is last to allow the continuation > of an interrupted analysis while ensuring that all results files have been > created. > self.interpreter.results.write(file='results', dir=path, force=True) > > + > + def write_results_test(self, path=None, model=None, models_tested=None, > param=None, model_param_list=None): > + """Create a set of results, text and Grace files for the current > data pipe. > + > + @keyword path: The directory to place the files into. > + @type path: str > + @keyword model: The model tested. > + @type path: None or str > + @keyword model_tested: List of models tested, if the pipe is > final. > + @type model_tested: None or list of str. > + @keyword param: The param to write out. > + @type param: None or list of str. > + @keyword model_param_list: The list of models which support the > parameter. > + @type model_param_list: list of str > + """ > + > + # If the model is in the list of models which support the parameter. > + write_result = False > + if model != None and model in model_param_list: > + write_result = True > + > + # If this is the final pipe, then check if the model has been tested > at any time. > + elif model == None: > + # Loop through all tested models. > + for model_tested in models_tested: > + # If one of the models tested has a parameter which belong > in the list of models which support the parameter, then write it out. > + if model_tested in model_param_list: > + # Set flag to write out, and then break > + write_result = True > + break > + > + # Write results if some of the models supports the parameter. > + if write_result: > + self.interpreter.value.write(param=param, file='%s.out'%param, > dir=path, force=True) > + self.interpreter.grace.write(x_data_type='res_num', > y_data_type=param, file='%s.agr'%param, dir=path, force=True) > > > _______________________________________________ > relax (http://www.nmr-relax.com) > > This is the relax-commits mailing list > [email protected] > > To unsubscribe from this list, get a password > reminder, or change your subscription options, > visit the list information page at > https://mail.gna.org/listinfo/relax-commits _______________________________________________ relax (http://www.nmr-relax.com) This is the relax-devel mailing list [email protected] To unsubscribe from this list, get a password reminder, or change your subscription options, visit the list information page at https://mail.gna.org/listinfo/relax-devel

