mailr27043 - /branches/nmrglue/test_suite/system_tests/nmrglue.py


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

Header


Content

Posted by tlinnet on December 09, 2014 - 14:47:
Author: tlinnet
Date: Tue Dec  9 14:47:56 2014
New Revision: 27043

URL: http://svn.gna.org/viewcvs/relax?rev=27043&view=rev
Log:
Expanded systemtest Nmrglue.setup_plot_correlation, to plot peak intensities 
on correlation plot.

Task #7873 (https://gna.org/task/index.php?7873): Write wrapper function to 
nmrglue, to read .ft2 files and process them.
Homepage: http://www.nmrglue.com/
Link to nmrglue discussion: 
https://groups.google.com/forum/#!forum/nmrglue-discuss
The code is develop at Github: https://github.com/jjhelmus/nmrglue/
Google code: https://code.google.com/p/nmrglue/
Documentation: http://nmrglue.readthedocs.org/en/latest/index.html

Modified:
    branches/nmrglue/test_suite/system_tests/nmrglue.py

Modified: branches/nmrglue/test_suite/system_tests/nmrglue.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/nmrglue/test_suite/system_tests/nmrglue.py?rev=27043&r1=27042&r2=27043&view=diff
==============================================================================
--- branches/nmrglue/test_suite/system_tests/nmrglue.py (original)
+++ branches/nmrglue/test_suite/system_tests/nmrglue.py Tue Dec  9 14:47:56 
2014
@@ -33,6 +33,7 @@
 from lib.io import file_root, get_file_list
 from lib.statistics import linear_corr, linear_corr_intercept
 from pipe_control.nmrglue import plot_contour, plot_hist
+from pipe_control.mol_res_spin import spin_loop
 from status import Status; status = Status()
 from test_suite.system_tests.base_classes import SystemTestCase
 from extern import nmrglue
@@ -209,11 +210,15 @@
         # Define folder to all ft files.
         ft2_folder_1 = base_path +sep+ 'cpmg_disp_sod1d90a_060518' +sep+ 
'cpmg_disp_sod1d90a_060518_normal.fid' +sep+ 'ft2_data'
         ft2_folder_2 = base_path +sep+ 'cpmg_disp_sod1d90a_060521' +sep+ 
'cpmg_disp_sod1d90a_060521_normal.fid' +sep+ 'ft2_data'
+        peak_folder_1 = base_path +sep+ 'cpmg_disp_sod1d90a_060518' +sep+ 
'cpmg_disp_sod1d90a_060518_normal.fid' +sep+ 'analysis_FT' +sep+ 'ser_files'
+        peak_folder_2 = base_path +sep+ 'cpmg_disp_sod1d90a_060521' +sep+ 
'cpmg_disp_sod1d90a_060521_normal.fid' +sep+ 'analysis_FT' +sep+ 'ser_files'
 
         # Get the file list matching a glob pattern for the reference.
-        ref_500 = '128_*_FT.ft2'
+        ref_NI = 128
+        ref_MET = 'FT'
+        ref_500 = '%i_*_%s.ft2' % (ref_NI, ref_MET)
         ref_500_id = 'ref_500'
-        ref_600 = '128_*_FT.ft2'
+        ref_600 = '%i_*_%s.ft2' % (ref_NI, ref_MET)
         ref_600_id = 'ref_600'
 
         # Get the file lists.
@@ -221,9 +226,11 @@
         self.interpreter.io.file_list(glob=ref_600, dir=ft2_folder_2, 
id=ref_600_id)
 
         # Then get the file list for method.
-        met_500 = '126_*_MDD.ft2'
+        met_NI = 126
+        met_MET = 'MDD'
+        met_500 = '%i_*_%s.ft2' % (met_NI, met_MET)
         met_500_id = 'met_500'
-        met_600 = '126_*_MDD.ft2'
+        met_600 = '%i_*_%s.ft2' % (met_NI, met_MET)
         met_600_id = 'met_600'
 
         # Get the file lists.
@@ -234,6 +241,10 @@
         # First loop over the glob id.
         ids_ref = []
         ids_met = []
+        ids_ref_500 = []
+        ids_ref_600 = []
+        ids_met_500 = []
+        ids_met_600 = []
         for io_id in cdp.io_ids:
             # Get the directory
             io_dir = cdp.io_dir[io_id]
@@ -252,8 +263,50 @@
                 elif 'met_' in ng_id:
                     ids_met.append(ng_id)
 
+                # Assign id per sfrq to list
+                if ref_500_id in ng_id:
+                    ids_ref_500.append(ng_id)
+                elif ref_600_id in ng_id:
+                    ids_ref_600.append(ng_id)
+                elif met_500_id in ng_id:
+                    ids_met_500.append(ng_id)
+                elif met_600_id in ng_id:
+                    ids_met_600.append(ng_id)
+
                 # Read the spectrum data.
                 self.interpreter.spectrum.nmrglue_read(file=bname, 
dir=io_dir, nmrglue_id=ng_id)
+
+        # Create the spins.
+        self.interpreter.spectrum.read_spins(file=str(ref_NI) + '_' + 
ref_MET + '_trunc.ser', dir=peak_folder_1 + sep + ref_MET)
+        self.interpreter.spectrum.read_spins(file=str(ref_NI) + '_' + 
ref_MET + '_trunc.ser', dir=peak_folder_2 + sep + ref_MET)
+
+        # Then read spin intensities.
+        self.interpreter.spectrum.read_intensities(file=str(ref_NI) + '_' + 
ref_MET + '_trunc.ser', dir=peak_folder_1 + sep + ref_MET, 
spectrum_id=ids_ref_500, int_method='height', 
int_col=list(range(len(ids_ref_500))))
+        self.interpreter.spectrum.read_intensities(file=str(ref_NI) + '_' + 
ref_MET + '_trunc.ser', dir=peak_folder_2 + sep + ref_MET, 
spectrum_id=ids_ref_600, int_method='height', 
int_col=list(range(len(ids_ref_600))))
+
+        self.interpreter.spectrum.read_intensities(file=str(met_NI) + '_' + 
met_MET + '_trunc.ser', dir=peak_folder_1 + sep + met_MET, 
spectrum_id=ids_met_500, int_method='height', 
int_col=list(range(len(ids_met_500))))
+        self.interpreter.spectrum.read_intensities(file=str(met_NI) + '_' + 
met_MET + '_trunc.ser', dir=peak_folder_2 + sep + met_MET, 
spectrum_id=ids_met_600, int_method='height', 
int_col=list(range(len(ids_met_600))))
+
+        # Collect spin intensities
+        spin_int_ref = []
+        spin_int_met = []
+
+        # Loop over spins.
+        for spin, spin_id in spin_loop(return_id=True):
+            # Loop over ids.
+            for i_id in ids_ref_500 + ids_ref_600 + ids_met_500 + 
ids_met_600:
+                # Add int to ref.
+                if i_id in ids_ref_500 or i_id in ids_ref_600:
+                    #print "ref"
+                    spin_int_ref.append(spin.peak_intensity[i_id])
+                # Add int to met.
+                elif i_id in ids_met_500 or i_id in ids_met_600:
+                    #print "met"
+                    spin_int_met.append(spin.peak_intensity[i_id])
+
+        # Convert to numpy
+        spin_int_ref = array(spin_int_ref)
+        spin_int_met = array(spin_int_met)
 
         # Create an empty reference array.
         np_arr_ref = array([])
@@ -281,16 +334,17 @@
 
         line = array( [np_arr_ref.min(), np_arr_ref.max()] )
 
-        ax.plot(np_arr_ref, np_arr_met, '+', label='corr')
-        ax.plot(line, line, 'r-', label='corr')
-
         # Try get the linear correlation
         a, r_xy = linear_corr(x=np_arr_ref, y=np_arr_met)
         print(a, r_xy)
         a_int, b_int, r_xy_int = linear_corr_intercept(x=np_arr_ref, 
y=np_arr_met)
         print(a_int, r_xy, b_int)
 
-        ax.plot(np_arr_ref, np_arr_ref*a, 'g-', label='corr')
+        ax.plot(np_arr_ref, np_arr_ref*a, 'b-', linewidth=0.2, label='corr')
+
+        ax.plot(np_arr_ref, np_arr_met, 'b.', markersize=1.5, label='all 
int')
+        ax.plot(spin_int_ref, spin_int_met, 'r+', markersize=10, label='peak 
int')
+        ax.plot(line, line, 'g-', linewidth=0.5, label='corr')
 
         # Set text.
         ax.set_xlabel("All spectrum intensities for reference")




Related Messages


Powered by MHonArc, Updated Tue Dec 09 15:00:02 2014