mailr27757 - in /branches/frame_order_cleanup: ./ pipe_control/rdc.py test_suite/system_tests/pcs.py test_suite/system_tests/rdc.py


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

Header


Content

Posted by edward on March 03, 2015 - 17:03:
Author: bugman
Date: Tue Mar  3 17:03:47 2015
New Revision: 27757

URL: http://svn.gna.org/viewcvs/relax?rev=27757&view=rev
Log:
Merged revisions 27753-27756 via svnmerge from 
svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk

........
  r27753 | bugman | 2015-03-03 16:30:49 +0100 (Tue, 03 Mar 2015) | 3 lines
  
  Added more checks to the three Pcs.test_pcs_copy* system tests.
........
  r27754 | bugman | 2015-03-03 16:33:21 +0100 (Tue, 03 Mar 2015) | 3 lines
  
  Added more checks to the three Rdc.test_rdc_copy* system tests.
........
  r27755 | bugman | 2015-03-03 16:46:48 +0100 (Tue, 03 Mar 2015) | 7 lines
  
  Created the Rdc.test_calc_q_factors_no_tensor system test.
  
  This is to demonstrate a failure in the rdc.calc_q_factors user function 
when no alignment tensor is
  present.  In addition, the test is also triggering an earlier problem of 
spin isotope information
  being missing.  However the isotope is not required if the tensor is absent.
........
  r27756 | bugman | 2015-03-03 16:49:03 +0100 (Tue, 03 Mar 2015) | 7 lines
  
  Fixes for the rdc.calc_q_factors user function for when no alignment tensor 
is present.
  
  This was caught by the Rdc.test_calc_q_factors_no_tensor system test.  Now 
if no tensor is present,
  a warning is given and the 2Da^2(4 + 3R)/5 normalised Q factor is skipped.  
Also, if present but no
  spin isotope information is present, then RelaxSpinTypeError errors are 
raised.
........

Modified:
    branches/frame_order_cleanup/   (props changed)
    branches/frame_order_cleanup/pipe_control/rdc.py
    branches/frame_order_cleanup/test_suite/system_tests/pcs.py
    branches/frame_order_cleanup/test_suite/system_tests/rdc.py

Propchange: branches/frame_order_cleanup/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Mar  3 17:03:47 2015
@@ -1 +1 @@
-/trunk:1-27751
+/trunk:1-27756

Modified: branches/frame_order_cleanup/pipe_control/rdc.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/pipe_control/rdc.py?rev=27757&r1=27756&r2=27757&view=diff
==============================================================================
--- branches/frame_order_cleanup/pipe_control/rdc.py    (original)
+++ branches/frame_order_cleanup/pipe_control/rdc.py    Tue Mar  3 17:03:47 
2015
@@ -734,17 +734,29 @@
             else:
                 D2_sum = D2_sum + interatom.rdc[align_id]**2
 
-            # Gyromagnetic ratios.
-            g1 = periodic_table.gyromagnetic_ratio(spin1.isotope)
-            g2 = periodic_table.gyromagnetic_ratio(spin2.isotope)
+            # Skip the 2Da^2(4 + 3R)/5 normalised Q factor if no tensor is 
present.
+            if norm2_flag and not hasattr(cdp, 'align_tensors'):
+                warn(RelaxWarning("No alignment tensors are present, 
skipping the Q factor normalised with 2Da^2(4 + 3R)/5."))
+                norm2_flag = False
 
             # Skip the 2Da^2(4 + 3R)/5 normalised Q factor if pseudo-atoms 
are present.
-            if  norm2_flag and (is_pseudoatom(spin1) or 
is_pseudoatom(spin2)):
+            if norm2_flag and (is_pseudoatom(spin1) or is_pseudoatom(spin2)):
                 warn(RelaxWarning("Pseudo-atoms are present, skipping the Q 
factor normalised with 2Da^2(4 + 3R)/5."))
                 norm2_flag = False
 
             # Calculate the RDC dipolar constant (in Hertz, and the 3 comes 
from the alignment tensor), and append it to the list.
             if norm2_flag:
+                # Data checks.
+                if not hasattr(spin1, 'isotope'):
+                    raise RelaxSpinTypeError(spin_id=interatom.spin_id1)
+                if not hasattr(spin2, 'isotope'):
+                    raise RelaxSpinTypeError(spin_id=interatom.spin_id2)
+
+                # Gyromagnetic ratios.
+                g1 = periodic_table.gyromagnetic_ratio(spin1.isotope)
+                g2 = periodic_table.gyromagnetic_ratio(spin2.isotope)
+
+                # Calculate the dipolar constant.
                 dj_new = 3.0/(2.0*pi) * dipolar_constant(g1, g2, interatom.r)
                 if dj != None and dj_new != dj:
                     warn(RelaxWarning("The dipolar constant is not the same 
for all RDCs, skipping the Q factor normalised with 2Da^2(4 + 3R)/5."))

Modified: branches/frame_order_cleanup/test_suite/system_tests/pcs.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/system_tests/pcs.py?rev=27757&r1=27756&r2=27757&view=diff
==============================================================================
--- branches/frame_order_cleanup/test_suite/system_tests/pcs.py (original)
+++ branches/frame_order_cleanup/test_suite/system_tests/pcs.py Tue Mar  3 
17:03:47 2015
@@ -29,6 +29,7 @@
 from tempfile import mkdtemp
 
 # relax module imports.
+from data_store import Relax_data_store; ds = Relax_data_store()
 from pipe_control.mol_res_spin import count_spins, spin_loop
 from status import Status; status = Status()
 from test_suite.system_tests.base_classes import SystemTestCase
@@ -215,6 +216,10 @@
         self.interpreter.pcs.copy(pipe_from='orig', align_id='tb')
 
         # Checks.
+        self.assert_(hasattr(cdp, 'align_ids'))
+        self.assert_('tb' in cdp.align_ids)
+        self.assert_(hasattr(cdp, 'pcs_ids'))
+        self.assert_('tb' in cdp.pcs_ids)
         self.assertEqual(count_spins(), 26)
         self.assertEqual(len(cdp.interatomic), 0)
         i = 0
@@ -256,6 +261,11 @@
             [0.004, 0.008, 0.021, 0.029, 0.016, 0.010, 0.008, 0.003, 0.006, 
0.003, 0.007, 0.005, 0.001, 0.070, None, 0.025, 0.098, 0.054, 0.075, 0.065, 
None, 0.070, 0.015, 0.098, 0.120]
         ]
         for i in range(2):
+            print("\nChecking data pipe '%s'." % pipes[i])
+            self.assert_(hasattr(ds[pipes[i]], 'align_ids'))
+            self.assert_('tb' in ds[pipes[i]].align_ids)
+            self.assert_(hasattr(ds[pipes[i]], 'pcs_ids'))
+            self.assert_('tb' in ds[pipes[i]].pcs_ids)
             self.assertEqual(count_spins(), 25)
             self.assertEqual(len(cdp.interatomic), 0)
             j = 0
@@ -310,6 +320,11 @@
             [0.004, 0.008, 0.021, 0.029, 0.016, 0.010, 0.008, 0.003, 0.006, 
0.003, 0.007, 0.005, 0.001, 0.070, None, 0.025, 0.098, 0.054, 0.075, 0.065, 
None, 0.070, 0.015, 0.098, 0.120]
         ]
         for i in range(2):
+            print("\nChecking data pipe '%s'." % pipes[i])
+            self.assert_(hasattr(ds[pipes[i]], 'align_ids'))
+            self.assert_('tb' in ds[pipes[i]].align_ids)
+            self.assert_(hasattr(ds[pipes[i]], 'pcs_ids'))
+            self.assert_('tb' in ds[pipes[i]].pcs_ids)
             self.assertEqual(count_spins(), 25)
             self.assertEqual(len(cdp.interatomic), 0)
             j = 0

Modified: branches/frame_order_cleanup/test_suite/system_tests/rdc.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/system_tests/rdc.py?rev=27757&r1=27756&r2=27757&view=diff
==============================================================================
--- branches/frame_order_cleanup/test_suite/system_tests/rdc.py (original)
+++ branches/frame_order_cleanup/test_suite/system_tests/rdc.py Tue Mar  3 
17:03:47 2015
@@ -27,6 +27,7 @@
 from os import sep
 
 # relax module imports.
+from data_store import Relax_data_store; ds = Relax_data_store()
 from pipe_control.interatomic import interatomic_loop
 from pipe_control.mol_res_spin import count_spins
 from status import Status; status = Status()
@@ -36,8 +37,8 @@
 class Rdc(SystemTestCase):
     """Class for testing RDC operations."""
 
-    def test_rdc_copy(self):
-        """Test the operation of the rdc.copy user function."""
+    def test_calc_q_factors_no_tensor(self):
+        """Test the operation of the rdc.calc_q_factors user function when 
no alignment tensor is present."""
 
         # Create a data pipe.
         self.interpreter.pipe.create('orig', 'N-state')
@@ -54,6 +55,35 @@
         self.interpreter.rdc.read(align_id='tb', file='tb.txt', dir=dir, 
spin_id1_col=1, spin_id2_col=2, data_col=3, error_col=4)
         self.interpreter.sequence.display()
 
+        # Create back-calculated RDC values from the real values.
+        for interatom in interatomic_loop():
+            if hasattr(interatom, 'rdc'):
+                if not hasattr(interatom, 'rdc_bc'):
+                    interatom.rdc_bc = {}
+                interatom.rdc_bc['tb'] = interatom.rdc['tb'] + 1.0
+
+        # Q factors.
+        self.interpreter.rdc.calc_q_factors()
+
+
+    def test_rdc_copy(self):
+        """Test the operation of the rdc.copy user function."""
+
+        # Create a data pipe.
+        self.interpreter.pipe.create('orig', 'N-state')
+
+        # Data directory.
+        dir = status.install_path + 
sep+'test_suite'+sep+'shared_data'+sep+'align_data'+sep
+
+        # Load the spins.
+        self.interpreter.sequence.read(file='tb.txt', dir=dir, spin_id_col=1)
+        self.interpreter.sequence.attach_protons()
+        self.interpreter.sequence.display()
+
+        # Load the RDCs.
+        self.interpreter.rdc.read(align_id='tb', file='tb.txt', dir=dir, 
spin_id1_col=1, spin_id2_col=2, data_col=3, error_col=4)
+        self.interpreter.sequence.display()
+
         # The RDCs.
         rdcs = [ -26.2501958629, 9.93081766942, 7.26317614156, 
-1.24840526981, 5.31803314334, 14.0362909456, 1.33652530397, -1.6021670281]
 
@@ -68,6 +98,10 @@
         self.interpreter.rdc.copy(pipe_from='orig', align_id='tb')
 
         # Checks.
+        self.assert_(hasattr(cdp, 'align_ids'))
+        self.assert_('tb' in cdp.align_ids)
+        self.assert_(hasattr(cdp, 'rdc_ids'))
+        self.assert_('tb' in cdp.rdc_ids)
         self.assertEqual(count_spins(), 16)
         self.assertEqual(len(cdp.interatomic), 8)
         i = 0
@@ -124,6 +158,11 @@
             [ -26.2501958629, 9.93081766942, 7.26317614156, -1.24840526981, 
5.31803314334, 14.0362909456, -1.6021670281]
         ]
         for i in range(2):
+            print("\nChecking data pipe '%s'." % pipes[i])
+            self.assert_(hasattr(ds[pipes[i]], 'align_ids'))
+            self.assert_('tb' in ds[pipes[i]].align_ids)
+            self.assert_(hasattr(ds[pipes[i]], 'rdc_ids'))
+            self.assert_('tb' in ds[pipes[i]].rdc_ids)
             self.interpreter.pipe.switch(pipe_name=pipes[i])
             self.assertEqual(count_spins(), 14)
             self.assertEqual(len(cdp.interatomic), 7)
@@ -192,6 +231,11 @@
             [ -26.2501958629, 9.93081766942, 7.26317614156, -1.24840526981, 
5.31803314334, 14.0362909456, -1.6021670281]
         ]
         for i in range(2):
+            print("\nChecking data pipe '%s'." % pipes[i])
+            self.assert_(hasattr(ds[pipes[i]], 'align_ids'))
+            self.assert_('tb' in ds[pipes[i]].align_ids)
+            self.assert_(hasattr(ds[pipes[i]], 'rdc_ids'))
+            self.assert_('tb' in ds[pipes[i]].rdc_ids)
             self.interpreter.pipe.switch(pipe_name=pipes[i])
             self.assertEqual(count_spins(), 14)
             self.assertEqual(len(cdp.interatomic), 7)




Related Messages


Powered by MHonArc, Updated Tue Mar 03 17:20:02 2015