mailr8903 - in /branches/bmrb: ./ specific_fns/n_state_model.py test_suite/system_tests/n_state_model.py


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

Header


Content

Posted by edward on March 05, 2009 - 09:53:
Author: bugman
Date: Thu Mar  5 09:53:37 2009
New Revision: 8903

URL: http://svn.gna.org/viewcvs/relax?rev=8903&view=rev
Log:
Merged revisions 8900-8902 via svnmerge from 
svn+ssh://bugman@xxxxxxxxxxx/svn/relax/1.3

........
  r8900 | bugman | 2009-03-04 15:33:51 +0100 (Wed, 04 Mar 2009) | 6 lines
  
  Changed the way the Q-factor is calculated.
  
  The Q-factor is now calculated as Clore's R-factor divided by N.  This now 
matches the Pales default
  mode.
........
  r8901 | bugman | 2009-03-04 15:37:49 +0100 (Wed, 04 Mar 2009) | 3 lines
  
  Both Q-factors are now being calculated.
........
  r8902 | bugman | 2009-03-04 17:17:28 +0100 (Wed, 04 Mar 2009) | 3 lines
  
  Changed the Q-factors tested in the system tests.
........

Modified:
    branches/bmrb/   (props changed)
    branches/bmrb/specific_fns/n_state_model.py
    branches/bmrb/test_suite/system_tests/n_state_model.py

Propchange: branches/bmrb/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Thu Mar  5 09:53:37 2009
@@ -1,1 +1,1 @@
-/1.3:1-8898
+/1.3:1-8902

Modified: branches/bmrb/specific_fns/n_state_model.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/bmrb/specific_fns/n_state_model.py?rev=8903&r1=8902&r2=8903&view=diff
==============================================================================
--- branches/bmrb/specific_fns/n_state_model.py (original)
+++ branches/bmrb/specific_fns/n_state_model.py Thu Mar  5 09:53:37 2009
@@ -730,6 +730,7 @@
 
         # Q-factor list.
         cdp.q_factors_rdc = []
+        cdp.q_factors_rdc_norm2 = []
 
         # Loop over the alignments.
         for i in xrange(len(cdp.align_tensors)):
@@ -738,6 +739,8 @@
             sse = 0.0
 
             # Spin loop.
+            dj = None
+            N = 0
             for spin in spin_loop():
                 # Skip deselected spins.
                 if not spin.select:
@@ -750,19 +753,44 @@
                 # Sum of squares.
                 sse = sse + (spin.rdc[i] - spin.rdc_bc[i])**2
 
-                # Sum the RDCs squared (for normalisation).
+                # Sum the RDCs squared (for one type of normalisation).
                 D2_sum = D2_sum + spin.rdc[i]**2
 
+                # Gyromagnetic ratios.
+                gx = return_gyromagnetic_ratio(spin.heteronuc_type)
+                gh = return_gyromagnetic_ratio(spin.proton_type)
+
+                # Calculate the RDC dipolar constant (in Hertz, and the 3 
comes from the alignment tensor), and append it to the list.
+                dj_new = 3.0/(2.0*pi) * dipolar_constant(gx, gh, spin.r)
+                if dj and dj_new != dj:
+                    raise RelaxError, "All the RDCs must come from the same 
nucleus type."
+                else:
+                    dj = dj_new
+
+                # Increment the number of data sets.
+                N = N + 1
+
+            # Normalisation factor of 2Da^2(4 + 3R)/5.
+            D = dj * cdp.align_tensors[i].tensor_diag
+            Da = 1.0/3.0 * (D[2,2] - (D[0,0]+D[1,1])/2.0)
+            Dr = 1.0/3.0 * (D[0,0] - D[1,1])
+            R = Dr / Da
+            norm = 2.0 * (Da)**2 * (4.0 + 3.0*R**2)/5.0
+
             # The Q-factor for the alignment.
-            Q = sqrt(sse / D2_sum)
+            Q = sqrt(sse / N / norm)
             cdp.q_factors_rdc.append(Q)
+            cdp.q_factors_rdc_norm2.append(sqrt(sse / D2_sum))
 
         # The total Q-factor.
         cdp.q_rdc = 0.0
+        cdp.q_rdc_norm2 = 0.0
         for Q in cdp.q_factors_rdc:
             cdp.q_rdc = cdp.q_rdc + Q**2
-        cdp.q_rdc = cdp.q_rdc / len(cdp.q_factors_rdc)
-        cdp.q_rdc = sqrt(cdp.q_rdc)
+        for Q in cdp.q_factors_rdc_norm2:
+            cdp.q_rdc_norm2 = cdp.q_rdc_norm2 + Q**2
+        cdp.q_rdc = sqrt(cdp.q_rdc / len(cdp.q_factors_rdc))
+        cdp.q_rdc_norm2 = sqrt(cdp.q_rdc_norm2 / 
len(cdp.q_factors_rdc_norm2))
 
 
     def __q_factors_pcs(self):

Modified: branches/bmrb/test_suite/system_tests/n_state_model.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/bmrb/test_suite/system_tests/n_state_model.py?rev=8903&r1=8902&r2=8903&view=diff
==============================================================================
--- branches/bmrb/test_suite/system_tests/n_state_model.py (original)
+++ branches/bmrb/test_suite/system_tests/n_state_model.py Thu Mar  5 
09:53:37 2009
@@ -131,7 +131,7 @@
         self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.000152207413184)
         self.assertAlmostEqual(cdp.chi2, 783.530808266)
         self.assertAlmostEqual(cdp.q_pcs, 0.063345784112045375)
-        self.assertAlmostEqual(cdp.q_rdc, 0.15076645625705937)
+        self.assertAlmostEqual(cdp.q_rdc, 0.084926009099013003)
 
 
     def test_align_fit_pcs(self):
@@ -227,7 +227,7 @@
         self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.00029833)
         self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.00015125)
         self.assertAlmostEqual(cdp.chi2, 23.5877482365)                 # 
Pales: 23.709
-        self.assertAlmostEqual(cdp.q_rdc, 0.14049691097282743/2.)       # 
Pales (Q Saupe): 0.079
+        self.assertAlmostEqual(cdp.q_rdc, 0.078460000413257444)       # 
Pales (Q Saupe): 0.079
 
 
     def test_lactose_n_state(self):




Related Messages


Powered by MHonArc, Updated Thu Mar 05 10:20:05 2009