mailr22829 - /trunk/test_suite/system_tests/relax_disp.py


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

Header


Content

Posted by tlinnet on April 22, 2014 - 20:48:
Author: tlinnet
Date: Tue Apr 22 20:48:32 2014
New Revision: 22829

URL: http://svn.gna.org/viewcvs/relax?rev=22829&view=rev
Log:
Started implementation of error analysis bug.

Regarding bug #21954, (https://gna.org/bugs/index.php?21954) - Order of 
spectrum.error_analysis is important.

Modified:
    trunk/test_suite/system_tests/relax_disp.py

Modified: trunk/test_suite/system_tests/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/relax_disp.py?rev=22829&r1=22828&r2=22829&view=diff
==============================================================================
--- trunk/test_suite/system_tests/relax_disp.py (original)
+++ trunk/test_suite/system_tests/relax_disp.py Tue Apr 22 20:48:32 2014
@@ -3561,6 +3561,80 @@
         self.assertEqual(cdp.mol[0].res[2].spin[0].ri_data['R2eff.600'], 
7.2385)
 
 
+    def test_sod1wt_t25_bug_21954_order_error_analysis(self):
+        """Error analysis of SOD1-WT CPMG. From paper at 
U{http://dx.doi.org/10.1073/pnas.0907387106}.
+
+        Optimisation of Kaare Teilum, Melanie H. Smith, Eike Schulz, Lea C. 
Christensen, Gleb Solomentseva, Mikael Oliveberg, and Mikael Akkea 2009 
+        'SOD1-WT' CPMG data to the CR72 dispersion model.
+
+        This uses the data from paper at 
U{http://dx.doi.org/10.1073/pnas.0907387106}.  This is CPMG data with a fixed 
relaxation time period recorded at fields of 500 and 600MHz.
+        Data is for experiment at 25 degree Celcius.
+
+        bug #21954 U{https://gna.org/bugs/index.php?21954}: Order of 
spectrum.error_analysis is important.
+        """
+
+        # Base data setup.
+        pipe_name = 'base pipe'
+        pipe_type = 'relax_disp'
+        pipe_name_r2eff = "%s_R2eff"%(pipe_name)
+        select_spin_index = range(0,1)
+        self.setup_sod1wt_t25(pipe_name=pipe_name, pipe_type=pipe_type, 
pipe_name_r2eff=pipe_name_r2eff, select_spin_index=select_spin_index)
+
+        # Loop over spectrum ID, and sort them
+        spectrum_ids_A = []
+        spectrum_ids_B = []
+        for spectrum_id in cdp.spectrum_ids:
+            if "A" in spectrum_id:
+                spectrum_ids_A.append(spectrum_id)
+            elif "B" in spectrum_id:
+                spectrum_ids_B.append(spectrum_id)
+
+        # Loop over spin, first reset the error.
+        for spin, mol_name, resi, resn, spin_id in spin_loop(full_info=True, 
return_id=True, skip_desel=True):
+            for id_A in spectrum_ids_A:
+                spin.peak_intensity_err[id_A] = None
+            for id_B in spectrum_ids_B:
+                spin.peak_intensity_err[id_B] = None
+
+        # Perform error analysis
+        self.interpreter.spectrum.error_analysis(subset=spectrum_ids_A)
+        self.interpreter.spectrum.error_analysis(subset=spectrum_ids_B)
+
+        # Hold errors
+        Errors_A_B = []
+        for spin, mol_name, resi, resn, spin_id in spin_loop(full_info=True, 
return_id=True, skip_desel=True):
+            A_err = spin.peak_intensity_err[spectrum_ids_A[0]]  
+            B_err = spin.peak_intensity_err[spectrum_ids_B[0]]  
+            Errors_A_B.append([A_err, B_err])
+            # Reset errors
+            for id_A in spectrum_ids_A:
+                spin.peak_intensity_err[id_A] = None
+            for id_B in spectrum_ids_B:
+                spin.peak_intensity_err[id_B] = None
+
+        # Perform error analysis
+        self.interpreter.spectrum.error_analysis(subset=spectrum_ids_B)
+        self.interpreter.spectrum.error_analysis(subset=spectrum_ids_A)
+
+        # Hold errors
+        Errors_B_A = []
+        for spin, mol_name, resi, resn, spin_id in spin_loop(full_info=True, 
return_id=True, skip_desel=True):
+            A_err = spin.peak_intensity_err[spectrum_ids_A[0]]  
+            B_err = spin.peak_intensity_err[spectrum_ids_B[0]]  
+            Errors_B_A.append([A_err, B_err])
+            # Reset errors
+            for id_A in spectrum_ids_A:
+                spin.peak_intensity_err[id_A] = None
+            for id_B in spectrum_ids_B:
+                spin.peak_intensity_err[id_B] = None
+
+        for i in range(len(Errors_A_B)):
+            Error_A_B = Errors_A_B[i]
+            Error_B_A = Errors_B_A[i]
+            self.assertAlmostEqual(Error_A_B[0], Error_B_A[0], 4)
+            self.assertAlmostEqual(Error_A_B[1], Error_B_A[1], 4)
+
+
     def test_sod1wt_t25_to_cr72(self):
         """Optimisation of SOD1-WT CPMG. From paper at 
U{http://dx.doi.org/10.1073/pnas.0907387106}.
 




Related Messages


Powered by MHonArc, Updated Tue Apr 22 21:20:03 2014