mailRe: r26065 - /trunk/auto_analyses/relax_disp_repeat_cpmg.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Troels Emtekær Linnet on September 26, 2014 - 17:47:
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 <edward@xxxxxxxxxxxxx>:

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,  <tlinnet@xxxxxxxxxxxxx> 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
relax-commits@xxxxxxx

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
relax-devel@xxxxxxx

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



Related Messages


Powered by MHonArc, Updated Fri Sep 26 19:00:19 2014