mailRe: Reduced spectral density mapping at three fields


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

Header


Content

Posted by Sebastien Morin on October 26, 2007 - 03:33:
Hi Ed,

Hera are patches for the consistency tests code. Even if the changes are relatively small and won;t normally affect the execution of the code, these are intended to be commited before the merging of the consistency tests branch into the main 1.2 branch. The patches I submitted recently (https://mail.gna.org/public/relax-devel/2007-10/msg00006.html) are now replaced by modified patches made on revision 3375 of line 1.2.

Here are the commit messages for the attached patches.

===================================================
Application of a patch by Sebastien Morin (sebastien dot morin dot 1 at ulaval dot ca) that changes the default CSA value so it's consistent with the rest of relax.

The patch 'patch_1.2-r3375_consistency_branch__CSA' changes the default CSA value from -170 to -172 ppm in the file 'specific_fns/consistency_tests.py'.

This change follows the one at : http://svn.gna.org/viewcvs/relax/1.2/specific_fns/jw_mapping.py?rev=3354&r1=3353&r2=3354&view=diff for jw_mapping from which the code for consistency tests originated.
===================================================


===================================================
Application of a patch by Sebastien Morin (sebastien dot morin dot 1 at ulaval dot ca) that complements information given to users on consistency testing.

The patch 'patch_1.2-r3375_consistency_branch__docstring' adds some text in docstrings or comments of files 'maths_fns/consistency_tests.py' and 'specific_fns/consistency_tests.py' to help users understand why and how use the consistency tests.
===================================================


===================================================
Application of a patch by Sebastien Morin (sebastien dot morin dot 1 at ulaval dot ca) that corrects a typo.

The patch 'patch_1.2-r3375_consistency_branch__typo' corrects a typo in function 'set()' of file 'specific_fns/consistency_tests.py' where 'csa' was written twice instead of first 'csa' and then 'r'.

This change follows the one at : http://svn.gna.org/viewcvs/relax/1.2/specific_fns/jw_mapping.py?rev=3348&r1=3343&r2=3348 for jw_mapping from which the code for consistency tests originated.

This was first reported for the jw_mapping code (bug #9562).
===================================================


Let me know if something misses...

Regards


Séb  :)





Edward d'Auvergne wrote:
Hi,

Prior to me committing these patches, would you be able to write the
full commit message for these so I can just cut and paste them?  For
example links to posts or previous commits for the CSA value change
would be useful for people in the future to back track the origin.
And maybe the third patch pointing to the bug report where this was
fixed in the code the consistency test code originated from.  The
fuller the description, the easier it is for me to generate summaries
of changes in the main lines, i.e. in the CHANGES file.  Ideally the
first line should be the description that goes into this CHANGES file,
assuming the individual change is worthy to be noted there.

Thanks,

Edward


On 10/22/07, Sebastien Morin <sebastien.morin.1@xxxxxxxxx> wrote:
  
 Hi Ed

 I've checked in the consistency tests code and it seems almost ready to be
merged to the main code for line 1.2.

 I say "almost" since I have 3 patches for solving some details...


 1.
patch_1.2-r3370_consistency_branch__maths_fns_-_consistency__CSA

     Changes the default CSA value from -170 to -172 ppm.

 2.
patch_1.2-r3370_consistency_branch__maths_fns_-_consistency__docstring

     Adds some text in docstrings or comments.

 3.
patch_1.2-r3370_consistency_branch__maths_fns_-_consistency__typo

     Corrects a typo where 'csa' was written instead of 'r'.


 Thanks for merging this code.

 I think the next steps will be :

 a) to add the code to the 1.3 line ;

 b) to modify the code so datasets from different magnetic fields (at least
two) can be input at once and correlation plots made automatically as long
as correlation, skewness and kurtosis coefficients calculated also
automatically...

 Cheers


 Sébastien  :)







 Edward d'Auvergne wrote:
 On 10/16/07, Sebastien Morin <sebastien.morin.1@xxxxxxxxx> wrote:


 Hi Daniel

 Calculations for the reduced spectral density mapping need only the R1, R2
and NOE at one field. R1, R2 and NOE are 3 variables you measure and you
extract 3 parameters from them. This is only a simple calculation using in
relax the equations that follow :

 j0 = -1.5 / (3.0*d + c) * (0.5*r1 - r2 + 0.6*sigma_noe)
 jwx = 1.0 / (3.0*d + c) * (r1 - 1.4*sigma_noe)
 jwh = sigma_noe / (5.0*d)

 where j0, jwx and jwh are, respectively, the spectral density at the zero
frequency, at the nitrogen frequency (in the special case where you work
with 15N relaxation) and at the apparent proton frequency (sometimes called
J(wH) or J(0.87wH) ).

 The other constants and variables are :

 c = CSA constant
 d = dipolar constant
 sigma_noe = cross-relaxation rate (calculated using NOE and R1)

 That said, you can extract spectral densities using data from different
magnetic fields at the same time. This only changes the obtained value for
J(0), as J(wN) and J(wH) are field dependent... For example, if you have
data at three fields, you would get 1 value for J(0), 3 values for J(wN) and
3 values for J(wH). This approach is not yet implemented in relax, but it
could be something useful. In fact, it's something I personally would like
to contribute when I have time, maybe this fall...

 This description is exact. There are actually a number of
methodologies available for determining J(0) using multiple field
strength data but I have never had the chance to implement these in
relax. The addition of any new type of analysis to relax would be
almost guaranteed to be accepted though. Daniel, the link that Seb
gave in his post
(https://mail.gna.org/public/relax-users/2006-11/msg00019.html)
goes
into much more detail into all of this.




 However, calculating J(0) using different fields in separated calculations
is something useful you may want to do prior to any calculation using
multiple field data. The reason is that J(0) should be field independent, in
cases where us-ms motions (Rex in the model-free language) are not present.
Thus, calculating J(0) helps you assess the quality of your data. This is
quite important as different factors may influence the consistency of your
data acquired at different magnetic fields...

 A part of relax is specially designed to do 3 different consistency tests :
J(0), Fn and FR2. Those consistency tests are implemented in a special
branch of relax which contains, apart from that, all the same functions. A
sample script is also available as for other functions within relax. You can
get that version of the program with svn by typing :

 svn co
http://svn.gna.org/svn/relax/branches/consistency_tests_1.2/
.

 This branch is likely to be incorporated into the 1.2 line soonish.
These consistency tests will be quite useful especially prior to
reduced spectral density mapping using data at multiple field
strengths to determine a single J(0) value. Seb, what is the status
of this code? Is it now complete? Or do you thing that more testing
required? I will probably try to release a new version of relax soon,
as this is long overdue, and then hopefully we can get your code in
shape for merging for the next version.

Regards,

Edward



 --
 ______________________________________
 _______________________________________________
 | |
 || Sebastien Morin ||
 ||| Etudiant au PhD en biochimie |||
 |||| Laboratoire de resonance magnetique nucleaire ||||
||||| Dr Stephane Gagne |||||
 |||| CREFSIP (Universite Laval, Quebec, CANADA) ||||
 ||| 1-418-656-2131 #4530 |||
 || ||
 |_______________________________________________|
 ______________________________________


Index: specific_fns/consistency_tests.py
===================================================================
--- specific_fns/consistency_tests.py   (revision 3370)
+++ specific_fns/consistency_tests.py   (working copy)
@@ -225,7 +225,7 @@
         |                                       |               |
                  |
         | Bond length                           | 'r'           | 1.02 *
1e-10                |
         |                                       |               |
                  |
-        | CSA                                   | 'csa'         | -170 *
1e-6                 |
+        | CSA                                   | 'csa'         | -172 *
1e-6                 |
         |                                       |               |
                  |
         | Angle Theta                           | 'orientation' | 15.7
                  |
         |                                       |               |
                  |
@@ -240,7 +240,7 @@

         # CSA.
         if param == 'CSA':
-            return -170 * 1e-6
+            return -172 * 1e-6

         # Angle Theta
         if param == 'orientation':

Index: maths_fns/consistency_tests.py
===================================================================
--- maths_fns/consistency_tests.py      (revision 3370)
+++ maths_fns/consistency_tests.py      (working copy)
@@ -37,9 +37,14 @@

         This code calculates three functions for each residue. When
comparing datasets from
         different magnetic field, the value should be the same for each
function as these are field
-        field independent. The J(0) function is the spectral density at the
zero frequency and is
-        obtained using a reduced spectral density approach. The F_eta and
F_R2 functions are the
+        independent. The J(0) function is the spectral density at the zero
frequency and is obtained
+        using a reduced spectral density approach. The F_eta and F_R2
functions are the
         consistency functions proposed by Fushman D. et al. (1998) JACS,
120: 10947-10952.
+
+        To assess the consistency of its datasets, one should first
calculate those values (J(0),
+        F_eta and F_R2) for each field. Then, the user should compare
values obtained for different
+        magnetic fields. Comparisons could proceed using correlation plots
and the user could also
+        calculate correlation, skewness and kurtosis coefficients.
         """

         # Initialise the data container.
@@ -109,6 +114,9 @@
         # Calculate P_2.
         # p_2 is a second rank Legendre polynomial as p_2(x) = 0.5 * (3 *
(x ** 2) -1)
         # where x is the cosine of the angle Theta when expressed in
radians.
+        #
+        # Note that the angle Theta (called 'orientation' in relax) is the
angle between the 15N-1H
+        # vector and the principal axis of the 15N chemical shift tensor.
         p_2 = 0.5 * ((3.0 * (cos(orientation * pi / 180)) ** 2) -1)

         # Calculate eta.
Index: specific_fns/consistency_tests.py
===================================================================
--- specific_fns/consistency_tests.py   (revision 3370)
+++ specific_fns/consistency_tests.py   (working copy)
@@ -417,8 +417,8 @@
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

         In consistency testing, only four values can be set, the bond
length, CSA, angle
-        Theta and correlation time values.  These must be set prior to the
calculation
-        of consistency functions.
+        Theta ('orientation') and correlation time values. These must be
set prior to the
+        calculation of consistency functions.

         """


Index: specific_fns/consistency_tests.py
===================================================================
--- specific_fns/consistency_tests.py   (revision 3370)
+++ specific_fns/consistency_tests.py   (working copy)
@@ -447,7 +447,7 @@
                 value.append(self.default_value('tc'))

             # Initilise data.
-            if not hasattr(self.relax.data.res[self.run][index], 'csa') or
not hasattr(self.relax.data.res[self.run][index], 'csa') or not
hasattr(self.relax.data.res[self.run][index], 'orientation') or not
hasattr(self.relax.data.res[self.run][index], 'tc'):
+            if not hasattr(self.relax.data.res[self.run][index], 'csa') or
not hasattr(self.relax.data.res[self.run][index], 'r') or not
hasattr(self.relax.data.res[self.run][index], 'orientation') or not
hasattr(self.relax.data.res[self.run][index], 'tc'):
                 self.data_init(self.relax.data.res[self.run][index])

             # CSA, bond length, angle Theta and correlation time.



    

  

-- 
Sebastien Morin
Etudiant au PhD en biochimie
Laboratoire de resonance magnetique nucleaire
Dr Stephane Gagne
CREFSIP (Universite Laval, Quebec, CANADA)
1-418-656-2131 #4530
Index: specific_fns/consistency_tests.py
===================================================================
--- specific_fns/consistency_tests.py   (revision 3375)
+++ specific_fns/consistency_tests.py   (working copy)
@@ -225,7 +225,7 @@
         |                                       |               |            
                 |
         | Bond length                           | 'r'           | 1.02 * 
1e-10                |
         |                                       |               |            
                 |
-        | CSA                                   | 'csa'         | -170 * 
1e-6                 |
+        | CSA                                   | 'csa'         | -172 * 
1e-6                 |
         |                                       |               |            
                 |
         | Angle Theta                           | 'orientation' | 15.7       
                 |
         |                                       |               |            
                 |
@@ -240,7 +240,7 @@
 
         # CSA.
         if param == 'CSA':
-            return -170 * 1e-6
+            return -172 * 1e-6
 
         # Angle Theta
         if param == 'orientation':
Index: maths_fns/consistency_tests.py
===================================================================
--- maths_fns/consistency_tests.py      (revision 3375)
+++ maths_fns/consistency_tests.py      (working copy)
@@ -37,9 +37,14 @@
 
         This code calculates three functions for each residue. When 
comparing datasets from
         different magnetic field, the value should be the same for each 
function as these are field
-        field independent. The J(0) function is the spectral density at the 
zero frequency and is
-        obtained using a reduced spectral density approach. The F_eta and 
F_R2 functions are the
+        independent. The J(0) function is the spectral density at the zero 
frequency and is obtained
+        using a reduced spectral density approach. The F_eta and F_R2 
functions are the
         consistency functions proposed by Fushman D. et al. (1998) JACS, 
120: 10947-10952.
+
+        To assess the consistency of its datasets, one should first 
calculate those values (J(0),
+        F_eta and F_R2) for each field. Then, the user should compare values 
obtained for different
+        magnetic fields. Comparisons could proceed using correlation plots 
and histograms, and the
+        user could also calculate correlation, skewness and kurtosis 
coefficients.
         """
 
         # Initialise the data container.
@@ -109,6 +114,9 @@
         # Calculate P_2.
         # p_2 is a second rank Legendre polynomial as p_2(x) = 0.5 * (3 * (x 
** 2) -1)
         # where x is the cosine of the angle Theta when expressed in radians.
+        #
+        # Note that the angle Theta (called 'orientation' in relax) is the 
angle between the 15N-1H
+        # vector and the principal axis of the 15N chemical shift tensor.
         p_2 = 0.5 * ((3.0 * (cos(orientation * pi / 180)) ** 2) -1)
 
         # Calculate eta.
Index: specific_fns/consistency_tests.py
===================================================================
--- specific_fns/consistency_tests.py   (revision 3375)
+++ specific_fns/consistency_tests.py   (working copy)
@@ -417,8 +417,8 @@
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
         In consistency testing, only four values can be set, the bond 
length, CSA, angle
-        Theta and correlation time values.  These must be set prior to the 
calculation
-        of consistency functions.
+        Theta ('orientation') and correlation time values. These must be set 
prior to the
+        calculation of consistency functions.
 
         """
 
Index: specific_fns/consistency_tests.py
===================================================================
--- specific_fns/consistency_tests.py   (revision 3375)
+++ specific_fns/consistency_tests.py   (working copy)
@@ -447,7 +447,7 @@
                 value.append(self.default_value('tc'))
 
             # Initilise data.
-            if not hasattr(self.relax.data.res[self.run][index], 'csa') or 
not hasattr(self.relax.data.res[self.run][index], 'csa') or not 
hasattr(self.relax.data.res[self.run][index], 'orientation') or not 
hasattr(self.relax.data.res[self.run][index], 'tc'):
+            if not hasattr(self.relax.data.res[self.run][index], 'csa') or 
not hasattr(self.relax.data.res[self.run][index], 'r') or not 
hasattr(self.relax.data.res[self.run][index], 'orientation') or not 
hasattr(self.relax.data.res[self.run][index], 'tc'):
                 self.data_init(self.relax.data.res[self.run][index])
 
             # CSA, bond length, angle Theta and correlation time.

Related Messages


Powered by MHonArc, Updated Fri Oct 26 11:03:54 2007