mailr22414 - /trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py


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

Header


Content

Posted by tlinnet on March 06, 2014 - 17:11:
Author: tlinnet
Date: Thu Mar  6 17:11:18 2014
New Revision: 22414

URL: http://svn.gna.org/viewcvs/relax?rev=22414&view=rev
Log:
Added unit test for return_offset_data.

Regarding sr #3124, (https://gna.org/support/index.php?3124) - Grace graphs 
production for R1rho analysis with R2_eff as function of Omega_eff.

This is development according to thread 
http://thread.gmane.org/gmane.science.nmr.relax.devel/5157.

Modified:
    
trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py

Modified: 
trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py?rev=22414&r1=22413&r2=22414&view=diff
==============================================================================
--- 
trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py  
      (original)
+++ 
trunk/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py  
      Thu Mar  6 17:11:18 2014
@@ -25,9 +25,11 @@
 
 # relax module imports.
 from data_store import Relax_data_store; ds = Relax_data_store()
+from math import atan, pi
 from pipe_control import state
+from pipe_control.mol_res_spin import get_spin_ids, return_spin
 from specific_analyses.relax_disp.checks import get_times
-from specific_analyses.relax_disp.disp_data import count_relax_times, 
find_intensity_keys, get_curve_type, has_exponential_exp_type, loop_exp_frq, 
loop_exp_frq_offset, loop_exp_frq_offset_point, 
loop_exp_frq_offset_point_time, loop_time
+from specific_analyses.relax_disp.disp_data import count_relax_times, 
find_intensity_keys, get_curve_type, has_exponential_exp_type, loop_exp_frq, 
loop_exp_frq_offset, loop_exp_frq_offset_point, 
loop_exp_frq_offset_point_time, loop_time, return_offset_data, 
return_spin_lock_nu1
 from status import Status; status = Status()
 from test_suite.unit_tests.base_classes import UnitTestCase
 
@@ -676,3 +678,72 @@
                 count += 1
 
 
+    def test_return_offset_data(self):
+        """Unit test of the return_offset_data() function for R1rho setup.
+
+        This uses the data of the saved state attached to U{bug 
#21344<https://gna.org/bugs/?21344>}.
+        """
+
+        # Load the state.
+        statefile = status.install_path + 
sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'bug_21344_trunc.bz2'
+        state.load_state(statefile, force=True)
+
+        # Get the field count
+        field_count = cdp.spectrometer_frq_count
+
+        # Get the spin_lock_field points
+        spin_lock_nu1 = return_spin_lock_nu1(ref_flag=False)
+
+        # Initialize data containers
+        all_spin_ids = get_spin_ids()
+
+        # Containers for only selected spins
+        cur_spin_ids = []
+        cur_spins = []
+        for curspin_id in all_spin_ids:
+            # Get the spin
+            curspin = return_spin(curspin_id)
+
+            # Check if is selected
+            if curspin.select == True:
+                cur_spin_ids.append(curspin_id)
+                cur_spins.append(curspin)
+
+        # Get the spectometer frequency
+        sfrq = cdp.spectrometer_frq_list[0]
+
+        # In MHz
+        yOBS = 81.050
+        # In ppm
+        yCAR = 118.078
+        centerPPM_N15 = yCAR
+
+        # Gyromagnetic ratios
+        g1H = 26.7522212 * 1e7
+        g15N = -2.7126 * 1e7
+
+        # The offset and R1 data.
+        chemical_shifts, offsets, tilt_angles = 
return_offset_data(spins=cur_spins, spin_ids=cur_spin_ids, 
field_count=field_count, fields=spin_lock_nu1)
+        
+        # Loop over the index of spins, then exp_type, frq, offset
+        print("Printing the following")    
+        print("exp_type curspin_id frq offset{ppm} 
offsets[ei][si][mi][oi]{rad/s} ei mi oi si di cur_spin.chemical_shift{ppm} 
chemical_shifts[ei][si][mi]{rad/s} spin_lock_nu1{Hz} 
tilt_angles[ei][si][mi][oi]{rad}")
+        for si in range(len(cur_spin_ids)):
+            curspin_id = cur_spin_ids[si]
+            cur_spin = cur_spins[si]
+            for exp_type, frq, offset, ei, mi, oi in 
loop_exp_frq_offset(return_indices=True):
+                # Loop over the dispersion points.
+                spin_lock_fields = spin_lock_nu1[ei][mi][oi]
+                for di in range(len(spin_lock_fields)):
+                    print("%-8s %-10s %11.1f %8.4f %12.5f %i  %i  %i  %i  %i 
%7.3f %12.5f %12.5f %12.5f"%(exp_type, curspin_id, frq, offset, 
offsets[ei][si][mi][oi], ei, mi, oi, si, di, cur_spin.chemical_shift, 
chemical_shifts[ei][si][mi], spin_lock_fields[di], 
tilt_angles[ei][si][mi][oi][di]))
+                    # Test chemical shift conversion
+                    self.assertEqual(chemical_shifts[ei][si][mi], 
cur_spin.chemical_shift * 2.0 * pi * sfrq / g1H * g15N * 1e-6)
+                    # Test the offset conversion
+                    self.assertEqual(offsets[ei][si][mi][oi], offset * 2.0 * 
pi * sfrq / g1H * g15N * 1e-6)
+                    # Test the tiltangle
+                    c_omega1 = spin_lock_fields[di] * 2.0 * pi
+                    c_Delta_omega = chemical_shifts[ei][si][mi] - 
offsets[ei][si][mi][oi]
+                    c_theta = atan(c_omega1 / c_Delta_omega)
+                    self.assertEqual(tilt_angles[ei][si][mi][oi][di], 
c_theta)
+
+




Related Messages


Powered by MHonArc, Updated Thu Mar 06 17:20:02 2014