Hi Edward. As you may have noticed, 1/3 of the code is iterating over the same theme.
The best thing would be to device a custom iterator function. Like pymol: http://www.pymolwiki.org/index.php/Iterate Then a general write statistics "to file", and a new grace plot function, to plot from these files. But I don't have time to look into this at the moment. Best Troels 2014-09-26 17:40 GMT+02:00 Edward d'Auvergne <[email protected]>: > Hi Troels, > > To help future users of your analysis, to better document it, and to > help future developers maintain it, you should try to include full > docstrings including epydoc documentation of all arguments for all the > methods of your auto-analysis. > > Cheers, > > Edward > > > On 26 September 2014 17:29, <[email protected]> wrote: > > Author: tlinnet > > Date: Fri Sep 26 17:29:39 2014 > > New Revision: 26065 > > > > URL: http://svn.gna.org/viewcvs/relax?rev=26065&view=rev > > Log: > > Implemented getting the statistics for parameters and comparing to init > NI. > > > > Task #7826 (https://gna.org/task/index.php?7826): Write an python class > for the repeated analysis of dispersion data. > > > > Modified: > > trunk/auto_analyses/relax_disp_repeat_cpmg.py > > > > Modified: trunk/auto_analyses/relax_disp_repeat_cpmg.py > > URL: > http://svn.gna.org/viewcvs/relax/trunk/auto_analyses/relax_disp_repeat_cpmg.py?rev=26065&r1=26064&r2=26065&view=diff > > > ============================================================================== > > --- trunk/auto_analyses/relax_disp_repeat_cpmg.py (original) > > +++ trunk/auto_analyses/relax_disp_repeat_cpmg.py Fri Sep 26 > 17:29:39 2014 > > @@ -1943,6 +1943,94 @@ > > plt.show() > > > > > > + def get_min_stat_dic(self, list_r2eff_dics=None, > list_glob_ini=None): > > + > > + # Loop over the result dictionaries: > > + res_dic = {} > > + for i, min_dic in enumerate(list_r2eff_dics): > > + # Let the reference dic be initial dic > > + min_dic_ref = list_r2eff_dics[0] > > + method_ref = min_dic_ref['method'] > > + res_dic['method_ref'] = method_ref > > + glob_ini_ref = list_glob_ini[0] > > + res_dic['glob_ini_ref'] = str(glob_ini_ref) > > + selection = min_dic_ref['selection'] > > + res_dic['selection'] = selection > > + params_list = > min_dic_ref[str(glob_ini_ref)]['params']['params_list'] > > + res_dic['params_list'] = params_list > > + > > + # Loop over params > > + for j, param in enumerate(params_list): > > + res_dic[param] = {} > > + > > + # Let the reference param array be the initial glob. > > + param_arr_ref = > min_dic_ref[str(glob_ini_ref)]['params'][param] > > + res_dic[param]['param_arr_ref'] = param_arr_ref > > + > > + # Get the current method > > + method_cur = min_dic['method'] > > + > > + res_dic[param][method_cur] = {} > > + res_dic[param][method_cur]['method'] = method_cur > > + res_dic[param][method_cur]['sampling_sparseness'] = [] > > + res_dic[param][method_cur]['glob_ini'] = [] > > + > > + # Other stats. > > + res_dic[param][method_cur]['r_xy'] = [] > > + res_dic[param][method_cur]['a'] = [] > > + > > + # Now loop over glob_ini: > > + for glob_ini in list_glob_ini: > > + # Get the array, if it exists. > > + if str(glob_ini) not in min_dic: > > + continue > > + > > + # Get the data. > > + param_arr = min_dic[str(glob_ini)]['params'][param] > > + > > + # This require that all number of points are equal. > > + # If they are not of same length, then dont even > bother to continue. > > + if len(param_arr) != len(param_arr_ref): > > + continue > > + > > + # Store x > > + sampling_sparseness = float(glob_ini) / > float(glob_ini_ref) * 100. > > + > res_dic[param][method_cur]['sampling_sparseness'].append(sampling_sparseness) > > + > res_dic[param][method_cur]['glob_ini'].append(glob_ini) > > + > > + # Store to result dic. > > + res_dic[param][method_cur][str(glob_ini)] = {} > > + > res_dic[param][method_cur][str(glob_ini)]['sampling_sparseness'] = > sampling_sparseness > > + > res_dic[param][method_cur][str(glob_ini)]['param_arr'] = param_arr > > + > > + # With intercept at axis. > > + # Calculate sample correlation coefficient, measure > of goodness-of-fit of linear regression > > + x = param_arr_ref > > + x_m = mean(x) > > + y = param_arr > > + y_m = mean(y) > > + > > + # Without intercept. > > + a = sum(x*y) / sum(x**2) > > + r_xy = sum(x*y) / sqrt(sum(x**2) * sum(y**2)) > > + > > + print(param, method_ref, method_cur, > sampling_sparseness, glob_ini, r_xy**2, a) > > + > > + # Store to result dic. > > + res_dic[param][method_cur][str(glob_ini)]['r_xy'] = > r_xy > > + res_dic[param][method_cur]['r_xy'].append(r_xy) > > + res_dic[param][method_cur][str(glob_ini)]['a'] = a > > + res_dic[param][method_cur]['a'].append(a) > > + > > + res_dic[param][method_cur]['sampling_sparseness'] = > asarray(res_dic[param][method_cur]['sampling_sparseness']) > > + res_dic[param][method_cur]['glob_ini'] = > asarray(res_dic[param][method_cur]['glob_ini']) > > + > > + res_dic[param][method_cur]['r_xy'] = > asarray(res_dic[param][method_cur]['r_xy']) > > + res_dic[param][method_cur]['a'] = > asarray(res_dic[param][method_cur]['a']) > > + > > + return res_dic > > + > > + > > def interpreter_start(self): > > # Load the interpreter. > > self.interpreter = Interpreter(show_script=False, > raise_relax_error=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 > _______________________________________________ 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

