mailRe: Consistency tests


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

Header


Content

Posted by Sébastien Morin on July 09, 2007 - 19:32:
Hi Ed

Tell me if this works better. I'm now using the mail server directly from the
internet GUI... (not with Thuderbird).

If this does not work neither, maybe we could try with the task...

Ciao !


Sébastien


Selon Edward d'Auvergne <edward.dauvergne@xxxxxxxxx>, 09.07.2007:

I've tried cutting an pasting the patch but I get the following:

edau@klymene:/media/usbdisk/relax/branches/consistency_tests_1.2>
patch -p0 < patch
patching file prompt/consistency_tests.py
Hunk #2 FAILED at 26.
Hunk #3 FAILED at 40.
Hunk #4 FAILED at 49.
Hunk #5 FAILED at 74.
4 out of 5 hunks FAILED -- saving rejects to file
prompt/consistency_tests.py.rej
edau@klymene:/media/usbdisk/relax/branches/consistency_tests_1.2>

I don't know why, but thunderbird is destroying the attachment.  The
failed 'hunks' are the wrapped lines.  Maybe there is a way to prevent
thunderbird from doing this.  Otherwise using another email client (or
webmail) may work.  I could also create a task for this consistency
test work and these could be attached to the task.  It's best that,
for the record, the files are located within the permanent relax
infrastructure.

Cheers,

Edward




On 7/9/07, Sebastien Morin <sebastien.morin.1@xxxxxxxxx> wrote:
Hi again !

Here is again the first patch for the file 'prompt/consistency_tests.py'.

I modified the header for the copyrights.

Also, the former patches were not copied-pasted, but attached using
Thunderbird after their creation using a command like 'svn diff > patch'
under Linux. When I send those kinds of files as attachment, I usually
see them as text in the e-mail, but also as an attachment that can be
save. Tell me if it is okay and if it is still a problem, I'll put them
on my lab's website...

Cheers


Séb :)



Edward d'Auvergne wrote:
Hi,

Just add some text such as 'Copyright (C) 2007 Sebastien Morin
<sebastien.morin.1 at ulaval.ca>' underneath the already existent
copyright text.  The can be changed later, for example I can give you
a ???@nmr-relax.com email address which is an alias for any other
email address (once voted in as a relax developer).  Could you add
this and then resend the patches?  Ta.  If they are attached rather
than cut and paste that would be much easier for applying the patches
(as email wraps lines).  Also, maybe responding to your original posts
will allow the patches to be more easily tracked in the mailing list
https://mail.gna.org/public/relax-devel/.

Cheers,

Edward


On 7/9/07, Sebastien Morin <sebastien.morin.1@xxxxxxxxx> wrote:
Hi !

I'm about to create the patches to merge the consistency tests code 
into
the 1.2 branch.

However, I have one question. How do I treat the copyrights ? Do I 
leave
the original author from which I copied the code and then modified it 
or
do I had my name to the code headers..?

Thanks !


Sébastien  :)




Edward d'Auvergne wrote:
Oh, I've committed your patch at



http://maple.rsvs.ulaval.ca/mediawiki/index.php/Patch_consistency_tests_2007-06-26


as revision r3324, applying it to the 1.2 branch.  I've carefully
checked the code and none of the changes are detrimental or could
affect the stability of the stable 1.2 relax codebase.  Note however
that the code in the branch will not run as the consistency_test.py
files are still identical copies of the jw_mapping.py files.

Cheers,

Edward


On 7/9/07, Edward d'Auvergne <edward.dauvergne@xxxxxxxxx> wrote:
Hi,

I've now created two branches within the relax repository for you to
play with.  The first is a copy of the 1.2 line and is located at
svn.gna.org/svn/relax/branches/consistency_tests_1.2/.  The second 
is
a copy of the 1.3 line and is located at
svn.gna.org/svn/relax/branches/consistency_tests_1.3/.  I've
initially
used 'svn cp' to create the 5 consistency_tests.py files as 
described
in https://mail.gna.org/public/relax-devel/2007-07/msg00001.html
(Message-id:
<7f080ed10707090251ve1c4a8fl7f8618843e5c9459@xxxxxxxxxxxxxx>).
 Would you be able to create patches for these files (in the 1.2 
line
first, no need to worry about the 1.3 line yet), and then post the
individual patches as text file attachments to the mailing list?
Thanks.  I will then be able to commit these patches individually,
checking them in fine detail.

Things to note in creating the patches from the code at
http://maple.rsvs.ulaval.ca/mediawiki/index.php/Relax_development
include the copyright preservation, a number of integers in
'maths_fns/consistency_tests.py' which should be floating point
numbers (just add '.0' to the end of the number), the addition of
Grace plots as an output in the 
'sample_scripts/consistency_tests.py'
script to be able to create a picture similar to that on your relax
development site, maybe only allowing 'Tc' and 'tc' in the
return_data_name() function and not 'TC', and 'degrees' instead of
'degree' in the return_units() function.

One bug includes:

             setattr(self.relax.data.res[self.run][index], 'csa',
float(value[0]))
             setattr(self.relax.data.res[self.run][index], 'r',
float(value[1]))
+            setattr(self.relax.data.res[self.run][index],
'orientation', float(value[1]))
+            setattr(self.relax.data.res[self.run][index], 'tc',
float(value[1]))

value[1] has been used twice.  I have a feeling there is another bug
somewhere where an index has been repeated a few times when it 
should
be different indices, but I can't find it at the moment.  The
individual patches should help.  Finally, I have a feeling that 
there
is unused code which can be deleted as it is a relic from the copy 
of
the J(w) mapping code and is not needed.  For the 1.3 line code I
would recommend that identical functions are shifted into files such
as 'specific_fns/base_class.py', but for the 1.2 line code I would
prefer the duplication as this means that the current stable code
base
remains stable.

Cheers,

Edward



On 6/26/07, Sebastien Morin <sebastien.morin.1@xxxxxxxxx> wrote:
Hi,

I started working on implementing the consistency tests last week
before
the last post was made and, hence, I worked on repository line 1.2
(revision 3303).

I implemented the consistency tests as a new type of run ('ct')
similar
to the one for Jw mapping.

The calculations are made for J(0), F_eta and F_R2 separately
for each
magnetic field (one at a time). The output results file is
similar to
the one for Jw mapping. The user then needs to plot them and
look for
consistency with its own criteria (calculation correlation
coefficients,  mean ratios and standard deviations, etc).

Please look at the followinr URL for a listing of the
modifications to
old files and also necessary new files.

http://maple.rsvs.ulaval.ca/mediawiki/index.php/Relax_development

The file 'sample_scripts/consistency_tests.py' should be useful to
understand how the new procedure works.

Even if this was done on repository line 1.2, I think it is
quite fine
since nothing was deleted but only things added (maybe too much,
as I
reproduced the Jw mapping approach, maybe too much as I added
lines in
the codes for grace, molmol, etc, maybe too much also since some
code is
duplicated from the Jw mapping code). The test-suite still works
perfectly and, so, I think it could be fine to add the tests to 
the
1.2
line as well... However, if necessary, I could implement the
consistency
testing procedure on line 1.3, following your comments as I am
quite new
to Python and maybe made things somehow not perfectly...

Please tell me what you think about this.

Cheers,


Sébastien  :)



Edward d'Auvergne wrote:
Hi,

I have previously talked about data set consistency.  For 
example
see
the post at
https://mail.gna.org/public/relax-users/2007-06/msg00001.html
in which a few reasons for inconsistencies have been
explained.  I
have, from experience, noticed that small changes in protein
concentration can change the collected relaxation rates
significantly
- most likely because of packing interactions.  All samples
should
essentially be identical in all respects for the relaxation
rates to
be compared.  And the temperate should always be fine tuned
between
experiments and spectrometers using methanol (and always checked
later
on if there is a large time between collecting the same
experiment).

Therefore these tests would be quite useful.  Data consistency 
is
essential for the model-free results to be correct (as well as
reduced
spectral density mapping, SRLS, etc.) as this affects both the
optimisation and model selection and can result in artificial
motions
appearing.  However I don't know how these test would
currently fit
within relax.  Maybe a new type of analysis should be created 
for
this
(see the pipe.create() user function in the 1.3 line or the
run.create() user function in the 1.2 line).  These ideas
should all
go into the 1.3 line (via a branch) as the 1.2 line is stable
and no
new major features will be added to this code.  What are the
ideas you
have been playing with?

Cheers,

Edward


On 6/15/07, Sebastien Morin <sebastien.morin.1@xxxxxxxxx> wrote:
Hi everyone

During the last months, I was astonished to realize that some
spin
relaxation data I had acquired at different fields were not
consistent
between each other. The way I realized that was by seeing
discrepancy
between J(0) values calculated with those different datasets.

I looked a little bit in the litterature and found some
interesting
consistency tests in a paper by Fushman (Fushman et al., JACS,
1998,
120:10947-10952).

This paper present 2 consistency tests to compare datasets from
different magnetic fields / samples / time / etc.

I think it would be interesting to implement those simple tests
in relax
so the user can, before trying to fit their data, know the
quality of
those... Regrettably, very few people look at the consistency 
of
their
datasets before analysis...

The underlying principle is the same as when looking at
consistency for
J(0). Thus, I think that those two tests and a J(0) test
should be
implemented altogether...

I'll try to work a bit on this. Mimicking the code for spectral
density
should be a good starting point.

Am I right ?
Do you see any value in those tests ?

Cheers


Sébastien  :)


_______________________________________________
relax (http://nmr-relax.com)

This is the relax-devel mailing list
relax-devel@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel



--
         ______________________________________
     _______________________________________________
    |                                               |
   || 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                          |||
   ||                                               ||
    |_______________________________________________|
         ______________________________________






--
         ______________________________________
     _______________________________________________
    |                                               |
   || 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                          |||
   ||                                               ||
    |_______________________________________________|
         ______________________________________





--
         ______________________________________
     _______________________________________________
    |                                               |
   || 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: prompt/consistency_tests.py
===================================================================
--- prompt/consistency_tests.py (revision 3324)
+++ prompt/consistency_tests.py (working copy)
@@ -1,6 +1,7 @@


###############################################################################
 #
   #
 # Copyright (C) 2004-2005 Edward d'Auvergne
   #
+# Copyright (C) 2007 Sebastien Morin <sebastien.morin.1 at ulaval.ca>
 #
   #
 # This file is part of the program relax.
   #
 #
   #
@@ -25,11 +26,11 @@
 import help


-class Jw_mapping:
+class Consistency_tests:
     def __init__(self, relax):
         # Help.
         self.__relax_help__ = \
-        """Class containing functions specific to reduced spectral 
density
mapping."""
+        """Class containing functions specific to consistency tests for
datasets from different fields."""

         # Add the generic help string.
         self.__relax_help__ = self.__relax_help__ + "\n" +
help.relax_class_help
@@ -39,7 +40,7 @@


     def set_frq(self, run=None, frq=None):
-        """Function for selecting which relaxation data to use in the 
J(w)
mapping.
+        """Function for selecting which relaxation data to use in the
consistency tests.

         Keyword Arguments
         ~~~~~~~~~~~~~~~~~
@@ -48,24 +49,23 @@

         frq:  The spectrometer frequency in Hz.

-
         Description
         ~~~~~~~~~~~

-        This function will select the relaxation data to use in the
reduced spectral density mapping
-        corresponding to the given frequency.
+        This function will select the relaxation data to use in the
consistency tests
+        corresponding to the given frequencies.


         Examples
         ~~~~~~~~

-        relax> jw_mapping.set_frq('jw', 600.0 * 1e6)
-        relax> jw_mapping.set_frq(run='jw', frq=600.0 * 1e6)
+        relax> consistency_tests.set_frq('test', 600.0 * 1e6)
+        relax> consistency_tests.set_frq(run='test', frq=600.0 * 1e6)
         """

         # Function intro text.
         if self.__relax__.interpreter.intro:
-            text = sys.ps3 + "jw_mapping.set_frq("
+            text = sys.ps3 + "consistency_tests.set_frq("
             text = text + "run=" + `run`
             text = text + ", frq=" + `frq` + ")"
             print text
@@ -74,9 +74,9 @@
         if type(run) != str:
             raise RelaxStrError, ('run', run)

-        # The frq argument.
+        # The frq arguments.
         if type(frq) != float:
             raise RelaxStrError, ('frq', frq)

         # Execute the functional code.
-        self.__relax__.specific.jw_mapping.set_frq(run=run, frq=frq)
+        self.__relax__.specific.consistency_tests.set_frq(run=run,
frq=frq)



Index: maths_fns/consistency_tests.py
===================================================================
--- maths_fns/consistency_tests.py      (revision 3324)
+++ maths_fns/consistency_tests.py      (working copy)
@@ -1,6 +1,7 @@
 
###############################################################################
 #                                                                            
 #
 # Copyright (C) 2004 Edward d'Auvergne                                       
 #
+# Copyright (C) 2007 Sebastien Morin <sebastien.morin.1 at ulaval.ca>        
 #
 #                                                                            
 #
 # This file is part of the program relax.                                    
 #
 #                                                                            
 #
@@ -21,14 +22,14 @@
 
###############################################################################
 
 from Numeric import Float64, zeros
-from math import pi
+from math import pi, cos
 
 from ri_comps import calc_fixed_csa, calc_fixed_dip, comp_csa_const_func, 
comp_dip_const_func
 
 
-class Mapping:
+class Consistency:
     def __init__(self, frq=None, gx=None, gh=None, mu0=None, h_bar=None):
-        """Reduced spectral density mapping."""
+        """Consistency tests for data acquired at different magnetic 
fields."""
 
         # Initialise the data container.
         self.data = Data()
@@ -67,10 +68,10 @@
         return (noe - 1.0) * r1 * self.data.gx / self.data.gh
 
 
-    def func(self, r=None, csa=None, r1=None, r2=None, noe=None):
-        """Function for calculating the three spectal density values.
+    def func(self, orientation=None, tc=None, r=None, csa=None, r1=None, 
r2=None, noe=None):
+        """Function for calculating the three consistency testing values.
 
-        Three values are returned, J(0), J(wX), and J(wH) (or J(0.87wH)).
+        Three values are returned, J(0), F_eta and F_R2.
         """
 
         # Calculate the fixed component of the dipolar and CSA constants.
@@ -94,11 +95,23 @@
         # Calculate J(wX).
         jwx = 1.0 / (3.0*d + c) * (r1 - 1.4*sigma_noe)
 
-        # Calculate J(wH).
-        jwh = sigma_noe / (5.0*d)
+        # Calculate P_2.
+        p_2 = 0.5 * ((3.0 * (cos(orientation * pi / 180)) ** 2) -1)
 
+        # Calculate eta.
+        eta = ((d * c) ** 0.5) * (4.0 * j0 + 3.0 * jwx) * p_2
+
+        # Calculate F_eta.
+        f_eta = eta * self.data.gh / (self.data.frq_list[0, 3] * (4.0 + 3.0 
/ (1 + (self.data.frq_list[0, 1] * tc) ** 2)))
+
+        # Calculate P_HF.
+        p_hf = 1.3 * (self.data.gx / self.data.gh) * (1.0 - noe) * r1
+
+        # Calculate F_R2.
+        f_r2 = (r2 - p_hf) / ((4.0 + 3.0 / (1 + (self.data.frq_list[0, 1] * 
tc) ** 2)) * (d + c/3.0))
+
         # Return the three values.
-        return j0, jwx, jwh
+        return j0, f_eta, f_r2
 
 
 class Data:
Index: prompt/consistency_tests.py
===================================================================
--- prompt/consistency_tests.py (revision 3324)
+++ prompt/consistency_tests.py (working copy)
@@ -1,6 +1,7 @@
 
###############################################################################
 #                                                                            
 #
 # Copyright (C) 2004-2005 Edward d'Auvergne                                  
 #
+# Copyright (C) 2007 Sebastien Morin <sebastien.morin.1 at ulaval.ca>
 #                                                                            
 #
 # This file is part of the program relax.                                    
 #
 #                                                                            
 #
@@ -25,11 +26,11 @@
 import help
 
 
-class Jw_mapping:
+class Consistency_tests:
     def __init__(self, relax):
         # Help.
         self.__relax_help__ = \
-        """Class containing functions specific to reduced spectral density 
mapping."""
+        """Class containing functions specific to consistency tests for 
datasets from different fields."""
 
         # Add the generic help string.
         self.__relax_help__ = self.__relax_help__ + "\n" + 
help.relax_class_help
@@ -39,7 +40,7 @@
 
 
     def set_frq(self, run=None, frq=None):
-        """Function for selecting which relaxation data to use in the J(w) 
mapping.
+        """Function for selecting which relaxation data to use in the 
consistency tests.
 
         Keyword Arguments
         ~~~~~~~~~~~~~~~~~
@@ -48,24 +49,23 @@
 
         frq:  The spectrometer frequency in Hz.
 
-
         Description
         ~~~~~~~~~~~
 
-        This function will select the relaxation data to use in the reduced 
spectral density mapping
-        corresponding to the given frequency.
+        This function will select the relaxation data to use in the 
consistency tests
+        corresponding to the given frequencies.
 
 
         Examples
         ~~~~~~~~
 
-        relax> jw_mapping.set_frq('jw', 600.0 * 1e6)
-        relax> jw_mapping.set_frq(run='jw', frq=600.0 * 1e6)
+        relax> consistency_tests.set_frq('test', 600.0 * 1e6)
+        relax> consistency_tests.set_frq(run='test', frq=600.0 * 1e6)
         """
 
         # Function intro text.
         if self.__relax__.interpreter.intro:
-            text = sys.ps3 + "jw_mapping.set_frq("
+            text = sys.ps3 + "consistency_tests.set_frq("
             text = text + "run=" + `run`
             text = text + ", frq=" + `frq` + ")"
             print text
@@ -74,9 +74,9 @@
         if type(run) != str:
             raise RelaxStrError, ('run', run)
 
-        # The frq argument.
+        # The frq arguments.
         if type(frq) != float:
             raise RelaxStrError, ('frq', frq)
 
         # Execute the functional code.
-        self.__relax__.specific.jw_mapping.set_frq(run=run, frq=frq)
+        self.__relax__.specific.consistency_tests.set_frq(run=run, frq=frq)
Index: specific_fns/consistency_tests.py
===================================================================
--- specific_fns/consistency_tests.py   (revision 3324)
+++ specific_fns/consistency_tests.py   (working copy)
@@ -1,6 +1,7 @@
 
###############################################################################
 #                                                                            
 #
 # Copyright (C) 2004-2006 Edward d'Auvergne                                  
 #
+# Copyright (C) 2007 Sebastien Morin <sebastien.morin.1 at ulaval.ca>        
 #
 #                                                                            
 #
 # This file is part of the program relax.                                    
 #
 #                                                                            
 #
@@ -24,24 +25,24 @@
 from string import replace
 
 from base_class import Common_functions
-from maths_fns.jw_mapping import Mapping
+from maths_fns.consistency_tests import Consistency
 
 
-class Jw_mapping(Common_functions):
+class Consistency_tests(Common_functions):
     def __init__(self, relax):
-        """Class containing functions specific to reduced spectral density 
mapping."""
+        """Class containing functions specific to consistency testing."""
 
         self.relax = relax
 
 
     def calculate(self, run=None, print_flag=1, sim_index=None):
-        """Calculation of the spectral density values."""
+        """Calculation of the consistency functions."""
 
         # Run argument.
         self.run = run
 
         # Test if the frequency has been set.
-        if not hasattr(self.relax.data, 'jw_frq') or not 
self.relax.data.jw_frq.has_key(self.run) or 
type(self.relax.data.jw_frq[self.run]) != float:
+        if not hasattr(self.relax.data, 'ct_frq') or not 
self.relax.data.ct_frq.has_key(self.run) or 
type(self.relax.data.ct_frq[self.run]) != float:
             raise RelaxError, "The frequency for the run " + `self.run` + " 
has not been set up."
 
         # Test if the nucleus type has been set.
@@ -52,7 +53,7 @@
         if not self.relax.data.res.has_key(self.run):
             raise RelaxNoSequenceError, self.run
 
-        # Test if the CSA and bond length values have been set.
+        # Test if the CSA, bond length, angle Theta and correlation time 
values have been set.
         for i in xrange(len(self.relax.data.res[self.run])):
             # Skip unselected residues.
             if not self.relax.data.res[self.run][i].select:
@@ -66,11 +67,19 @@
             if not hasattr(self.relax.data.res[self.run][i], 'r') or 
self.relax.data.res[self.run][i].r == None:
                 raise RelaxNoValueError, "bond length"
 
+            # Angle Theta
+            if not hasattr(self.relax.data.res[self.run][i], 'orientation') 
or self.relax.data.res[self.run][i].orientation == None:
+                raise RelaxNoValueError, "angle Theta"
+
+            # Correlation time
+            if not hasattr(self.relax.data.res[self.run][i], 'tc') or 
self.relax.data.res[self.run][i].tc == None:
+                raise RelaxNoValueError, "correlation time"
+
         # Frequency index.
-        if self.relax.data.jw_frq[self.run] not in 
self.relax.data.frq[self.run]:
-            raise RelaxError, "No relaxation data corresponding to the 
frequency " + `self.relax.data.jw_frq[self.run]` + " has been loaded."
+        if self.relax.data.ct_frq[self.run] not in 
self.relax.data.frq[self.run]:
+            raise RelaxError, "No relaxation data corresponding to the 
frequency " + `self.relax.data.ct_frq[self.run]` + " has been loaded."
 
-        # Reduced spectral density mapping.
+        # Consistency testing.
         for i in xrange(len(self.relax.data.res[self.run])):
             # Reassign data structure.
             data = self.relax.data.res[self.run][i]
@@ -82,7 +91,7 @@
             # Residue specific frequency index.
             frq_index = None
             for j in xrange(data.num_frq):
-                if data.frq[j] == self.relax.data.jw_frq[self.run]:
+                if data.frq[j] == self.relax.data.ct_frq[self.run]:
                     frq_index = j
             if frq_index == None:
                 continue
@@ -120,30 +129,30 @@
                 continue
 
             # Initialise the function to calculate.
-            self.jw = Mapping(frq=self.relax.data.jw_frq[self.run], 
gx=self.relax.data.gx, gh=self.relax.data.gh, mu0=self.relax.data.mu0, 
h_bar=self.relax.data.h_bar)
+            self.ct = Consistency(frq=self.relax.data.ct_frq[self.run], 
gx=self.relax.data.gx, gh=self.relax.data.gh, mu0=self.relax.data.mu0, 
h_bar=self.relax.data.h_bar)
 
-            # Calculate the spectral density values.
-            j0, jwx, jwh = self.jw.func(r=data.r, csa=data.csa, r1=r1, 
r2=r2, noe=noe)
+            # Calculate the consistency functions.
+            j0, f_eta, f_r2 = self.ct.func(orientation=data.orientation, 
tc=data.tc, r=data.r, csa=data.csa, r1=r1, r2=r2, noe=noe)
 
-            # Reduced spectral density values.
+            # Consistency testing values.
             if sim_index == None:
                 data.j0 = j0
-                data.jwx = jwx
-                data.jwh = jwh
+                data.f_eta = f_eta
+                data.f_r2 = f_r2
 
-            # Monte Carlo simulated reduced spectral density values.
+            # Monte Carlo simulated consistency testing values.
             else:
                 # Initialise the simulation data structures.
                 self.data_init(data, sim=1)
                 if data.j0_sim == None:
                     data.j0_sim = []
-                    data.jwx_sim = []
-                    data.jwh_sim = []
+                    data.f_eta_sim = []
+                    data.f_r2_sim = []
 
                 # Reduced spectral density values.
                 data.j0_sim.append(j0)
-                data.jwx_sim.append(jwx)
-                data.jwh_sim.append(jwh)
+                data.f_eta_sim.append(f_eta)
+                data.f_r2_sim.append(f_r2)
 
 
     def data_init(self, data, sim=0):
@@ -175,11 +184,16 @@
 
         csa:  CSA value.
 
+        orientation: Angle between the 15N-1H vector and the principal axis 
of the 15N chemical
+                     shift tensor.
+
+        tc: Correlation time.
+
         j0:  Spectral density value at 0 MHz.
 
-        jwx:  Spectral density value at the frequency of the heteronucleus.
+        f_eta:  Eta test.
 
-        jwh:  Spectral density value at the frequency of the heteronucleus.
+        f_r2:  R2 test.
         """
 
         # Initialise.
@@ -188,11 +202,13 @@
         # Values.
         names.append('r')
         names.append('csa')
+        names.append('orientation')
+        names.append('tc')
 
-        # Spectral density values.
+        # Consistency functions values.
         names.append('j0')
-        names.append('jwx')
-        names.append('jwh')
+        names.append('f_eta')
+        names.append('f_r2')
 
         return names
 
@@ -203,14 +219,18 @@
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
         
_______________________________________________________________________________________
-        |                                       |              |             
                 |
-        | Data type                             | Object name  | Value       
                 |
-        
|_______________________________________|______________|______________________________|
-        |                                       |              |             
                 |
-        | Bond length                           | 'r'          | 1.02 * 
1e-10                 |
-        |                                       |              |             
                 |
-        | CSA                                   | 'csa'        | -170 * 1e-6 
                 |
-        
|_______________________________________|______________|______________________________|
+        |                                       |               |            
                 |
+        | Data type                             | Object name   | Value      
                 |
+        
|_______________________________________|_______________|_____________________________|
+        |                                       |               |            
                 |
+        | Bond length                           | 'r'           | 1.02 * 
1e-10                |
+        |                                       |               |            
                 |
+        | CSA                                   | 'csa'         | -170 * 
1e-6                 |
+        |                                       |               |            
                 |
+        | Angle Theta                           | 'orientation' | 15.7       
                 |
+        |                                       |               |            
                 |
+        | Correlation time                      | 'tc'          | 13 * 1e-9  
                 |
+        
|_______________________________________|_______________|_____________________________|
 
         """
 
@@ -222,7 +242,15 @@
         if param == 'CSA':
             return -170 * 1e-6
 
+        # Angle Theta
+        if param == 'orientation':
+            return 15.7
 
+        # Correlation time
+        if param == 'tc':
+            return 13 * 1e-9
+
+
     def num_instances(self, run=None):
         """Function for returning the number of instances."""
 
@@ -246,7 +274,7 @@
 
         # Loop over residue data:
         for residue in self.relax.data.res[run]:
-    
+
             # Check for sufficient data
             if not hasattr(residue, 'relax_data'):
                 residue.select = 0
@@ -266,24 +294,28 @@
 
     def return_data_name(self, name):
         """
-        Reduced spectral density mapping data type string matching patterns
+        Consistency testing data type string matching patterns
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
         
____________________________________________________________________________________________
-        |                        |              |                            
                      |
-        | Data type              | Object name  | Patterns                   
                      |
-        
|________________________|______________|__________________________________________________|
-        |                        |              |                            
                      |
-        | J(0)                   | 'j0'         | '^[Jj]0$' or '[Jj]\(0\)'   
                      |
-        |                        |              |                            
                      |
-        | J(wX)                  | 'jwx'        | '^[Jj]w[Xx]$' or 
'[Jj]\(w[Xx]\)'                 |
-        |                        |              |                            
                      |
-        | J(wH)                  | 'jwh'        | '^[Jj]w[Hh]$' or 
'[Jj]\(w[Hh]\)'                 |
-        |                        |              |                            
                      |
-        | Bond length            | 'r'          | '^r$' or '[Bb]ond[ 
-_][Ll]ength'                 |
-        |                        |              |                            
                      |
-        | CSA                    | 'csa'        | '^[Cc][Ss][Aa]$'           
                      |
-        
|________________________|______________|__________________________________________________|
+        |                       |               |                            
                      |
+        | Data type             | Object name   | Patterns                   
                      |
+        
|_______________________|_______________|__________________________________________________|
+        |                       |               |                            
                      |
+        | J(0)                  | 'j0'          | '^[Jj]0$' or '[Jj]\(0\)'   
                      |
+        |                       |               |                            
                      |
+        | F_eta                 | 'f_eta'       | '^[Ff]_[Ee][Tt][Aa]$'      
                      |
+        |                       |               |                            
                      |
+        | F_R2                  | 'f_r2'        | '^[Ff]_[Rr]2$'             
                      |
+        |                       |               |                            
                      |
+        | Bond length           | 'r'           | '^r$' or '[Bb]ond[ 
-_][Ll]ength'                 |
+        |                       |               |                            
                      |
+        | CSA                   | 'csa'         | '^[Cc][Ss][Aa]$'           
                      |
+        |                       |               |                            
                      |
+        | Angle Theta           | 'orientation' | 
'^[Oo][Rr][Ii][Ee][Nn][Tt][Aa][Tt][Ii][Oo][Nn]$' |
+        |                       |               |                            
                      |
+        | Correlation time      | 'tc'          | '^[Tt]c$'                  
                      |
+        
|_______________________|_______________|__________________________________________________|
 
         """
 
@@ -292,12 +324,12 @@
             return 'j0'
 
         # J(wX).
-        if search('^[Jj]w[Xx]$', name) or search('[Jj]\(w[Xx]\)', name):
-            return 'jwx'
+        if search('^[Ff]_[Ee][Tt][Aa]$', name):
+            return 'f_eta'
 
         # J(wH).
-        if search('^[Jj]w[Hh]$', name) or search('[Jj]\(w[Hh]\)', name):
-            return 'jwh'
+        if search('^^[Ff]_[Rr]2$', name):
+            return 'f_r2'
 
         # Bond length.
         if search('^r$', name) or search('[Bb]ond[ -_][Ll]ength', name):
@@ -307,7 +339,15 @@
         if search('^[Cc][Ss][Aa]$', name):
             return 'csa'
 
+        # Angle Theta
+        if search('^[Oo][Rr][Ii][Ee][Nn][Tt][Aa][Tt][Ii][Oo][Nn]$', name):
+            return 'orientation'
 
+        # Correlation time
+        if search('^[Tt]c$', name):
+            return 'tc'
+
+
     def return_grace_string(self, data_type):
         """Function for returning the Grace string representing the data 
type for axis labelling."""
 
@@ -319,12 +359,12 @@
             return '\\qJ(0)\\Q'
 
         # J(wX).
-        elif object_name == 'jwx':
-            return '\\qJ(\\xw\\f{}\\sX\\N)\\Q'
+        elif object_name == 'f_eta':
+            return '\\qF\\s\\xh\\Q'
 
         # J(wH).
-        elif object_name == 'jwh':
-            return '\\qJ(\\xw\\f{}\\sH\\N)\\Q'
+        elif object_name == 'f_r2':
+            return '\\qF\\sR2\\Q'
 
         # Bond length.
         elif object_name == 'r':
@@ -334,7 +374,15 @@
         elif object_name == 'csa':
             return '\\qCSA\\Q'
 
+        # Angle Theta
+        elif object_name == 'orientation':
+            return '\\q\\xq\\Q'
 
+        # Correlation time
+        elif object_name == 'tc':
+            return '\\q\\xt\\f{}c\\Q'
+
+
     def return_units(self, data_type):
         """Function for returning a string representing the parameters units.
 
@@ -354,14 +402,23 @@
         elif object_name == 'csa':
             return 'ppm'
 
+        # Angle Theta
+        elif object_name == 'orientation':
+            return 'degrees'
 
+        # Correlation time
+        elif object_name == 'tc':
+            return 'ns'
+
+
     def set(self, run=None, value=None, error=None, param=None, index=None):
         """
-        Reduced spectral density mapping set details
+        Consistency testing set details
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-        In reduced spectral density mapping, only two values can be set, the 
bond length and CSA
-        value.  These must be set prior to the calculation of spectral 
density values.
+        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.
 
         """
 
@@ -374,26 +431,30 @@
         if param == None:
             # The values are supplied by the user:
             if value:
-                # Test if the length of the value array is equal to 2.
-                if len(value) != 2:
-                    raise RelaxError, "The length of " + `len(value)` + " of 
the value array must be equal to two."
+                # Test if the length of the value array is equal to 4.
+                if len(value) != 4:
+                    raise RelaxError, "The length of " + `len(value)` + " of 
the value array must be equal to four."
 
             # Default values.
             else:
                 # Set 'value' to an empty array.
                 value = []
 
-                # CSA and Bond length.
+                # CSA, Bond length Angle Theta and Correlation time.
                 value.append(self.default_value('csa'))
                 value.append(self.default_value('r'))
+                value.append(self.default_value('orientation'))
+                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'):
                 self.data_init(self.relax.data.res[self.run][index])
 
-            # CSA and Bond length.
+            # CSA, bond length, angle Theta and correlation time.
             setattr(self.relax.data.res[self.run][index], 'csa', 
float(value[0]))
             setattr(self.relax.data.res[self.run][index], 'r', 
float(value[1]))
+            setattr(self.relax.data.res[self.run][index], 'orientation', 
float(value[2]))
+            setattr(self.relax.data.res[self.run][index], 'tc', 
float(value[3]))
 
 
         # Individual data type.
@@ -403,7 +464,7 @@
             # Get the object.
             object_name = self.return_data_name(param)
             if not object_name:
-                raise RelaxError, "The reduced spectral density mapping data 
type " + `param` + " does not exist."
+                raise RelaxError, "The consistency tests data type " + 
`param` + " does not exist."
 
             # Initialise all data if it doesn't exist.
             if not hasattr(self.relax.data.res[self.run][index], 
object_name):
@@ -422,7 +483,7 @@
 
 
     def set_frq(self, run=None, frq=None):
-        """Function for selecting which relaxation data to use in the J(w) 
mapping."""
+        """Function for selecting which relaxation data to use in the 
consistency tests."""
 
         # Run argument.
         self.run = run
@@ -431,21 +492,21 @@
         if not self.run in self.relax.data.run_names:
             raise RelaxNoRunError, self.run
 
-        # Test if the run type is set to 'jw'.
+        # Test if the run type is set to 'ct'.
         function_type = 
self.relax.data.run_types[self.relax.data.run_names.index(self.run)]
-        if function_type != 'jw':
+        if function_type != 'ct':
             raise RelaxFuncSetupError, 
self.relax.specific_setup.get_string(function_type)
 
         # Test if the frequency has been set.
-        if hasattr(self.relax.data, 'jw_frq') and 
self.relax.data.jw_frq.has_key(self.run):
+        if hasattr(self.relax.data, 'ct_frq') and 
self.relax.data.ct_frq.has_key(self.run):
             raise RelaxError, "The frequency for the run " + `self.run` + " 
has already been set."
 
         # Create the data structure if it doesn't exist.
-        if not hasattr(self.relax.data, 'jw_frq'):
-            self.relax.data.jw_frq = {}
+        if not hasattr(self.relax.data, 'ct_frq'):
+            self.relax.data.ct_frq = {}
 
         # Set the frequency.
-        self.relax.data.jw_frq[self.run] = frq
+        self.relax.data.ct_frq[self.run] = frq
 
 
     def set_error(self, run, instance, index, error):
@@ -458,13 +519,13 @@
         if index == 0:
             self.relax.data.res[self.run][instance].j0_err = error
 
-        # Return J(wX) sim data.
+        # Return F_eta sim data.
         if index == 1:
-            self.relax.data.res[self.run][instance].jwx_err = error
+            self.relax.data.res[self.run][instance].f_eta_err = error
 
-        # Return J(wH) sim data.
+        # Return F_R2 sim data.
         if index == 2:
-            self.relax.data.res[self.run][instance].jwh_err = error
+            self.relax.data.res[self.run][instance].f_r2_err = error
 
 
     def sim_return_param(self, run, instance, index):
@@ -481,13 +542,13 @@
         if index == 0:
             return self.relax.data.res[self.run][instance].j0_sim
 
-        # Return J(wX) sim data.
+        # Return F_eta sim data.
         if index == 1:
-            return self.relax.data.res[self.run][instance].jwx_sim
+            return self.relax.data.res[self.run][instance].f_eta_sim
 
-        # Return J(wH) sim data.
+        # Return F_R2 sim data.
         if index == 2:
-            return self.relax.data.res[self.run][instance].jwh_sim
+            return self.relax.data.res[self.run][instance].f_r2_sim
 
 
     def sim_return_selected(self, run, instance):
@@ -521,7 +582,7 @@
         self.relax.data.res[run][i].relax_sim_data = sim_data
 
 
-    def write_columnar_line(self, file=None, num=None, name=None, 
select=None, data_set=None, nucleus=None, wH=None, j0=None, jwx=None, 
jwh=None, r=None, csa=None, ri_labels=None, remap_table=None, 
frq_labels=None, frq=None, ri=None, ri_error=None):
+    def write_columnar_line(self, file=None, num=None, name=None, 
select=None, data_set=None, nucleus=None, wH=None, j0=None, f_eta=None, 
f_r2=None, r=None, csa=None, ri_labels=None, remap_table=None, 
frq_labels=None, frq=None, ri=None, ri_error=None):
         """Function for printing a single line of the columnar formatted 
results."""
 
         # Residue number and name.
@@ -538,8 +599,8 @@
 
         # Parameters.
         file.write("%-25s " % j0)
-        file.write("%-25s " % jwx)
-        file.write("%-25s " % jwh)
+        file.write("%-25s " % f_eta)
+        file.write("%-25s " % f_r2)
         file.write("%-25s " % r)
         file.write("%-25s " % csa)
 
@@ -597,7 +658,7 @@
                 ri_error.append('Ri_error_(' + 
self.relax.data.ri_labels[self.run][i] + "_" + 
self.relax.data.frq_labels[self.run][self.relax.data.remap_table[self.run][i]]
 + ")")
 
         # Write the header line.
-        self.write_columnar_line(file=file, num='Num', name='Name', 
select='Selected', data_set='Data_set', nucleus='Nucleus', 
wH='Proton_frq_(MHz)', j0='J(0)', jwx='J(wX)', jwh='J(wH)', 
r='Bond_length_(A)', csa='CSA_(ppm)', ri_labels='Ri_labels', 
remap_table='Remap_table', frq_labels='Frq_labels', frq='Frequencies', ri=ri, 
ri_error=ri_error)
+        self.write_columnar_line(file=file, num='Num', name='Name', 
select='Selected', data_set='Data_set', nucleus='Nucleus', 
wH='Proton_frq_(MHz)', j0='J(0)', f_eta='F_eta', f_r2='F_R2', 
r='Bond_length_(A)', csa='CSA_(ppm)', ri_labels='Ri_labels', 
remap_table='Remap_table', frq_labels='Frq_labels', frq='Frequencies', ri=ri, 
ri_error=ri_error)
 
 
         # Values.
@@ -607,7 +668,7 @@
         nucleus = self.relax.generic.nuclei.find_nucleus()
 
         # The proton frequency in MHz.
-        wH = self.relax.data.jw_frq[self.run] / 1e6
+        wH = self.relax.data.ct_frq[self.run] / 1e6
 
         # Relaxation data setup.
         try:
@@ -631,15 +692,15 @@
             if hasattr(data, 'j0'):
                 j0 = data.j0
 
-            # J(wX).
-            jwx = None
-            if hasattr(data, 'jwx'):
-                jwx = data.jwx
+            # F_eta.
+            f_eta = None
+            if hasattr(data, 'f_eta'):
+                f_eta = data.f_eta
 
-            # J(wH).
-            jwh = None
-            if hasattr(data, 'jwh'):
-                jwh = data.jwh
+            # F_R2.
+            f_r2 = None
+            if hasattr(data, 'f_r2'):
+                f_r2 = data.f_r2
 
             # Bond length.
             r = None
@@ -671,7 +732,7 @@
                         ri_error.append(None)
 
             # Write the line.
-            self.write_columnar_line(file=file, num=data.num, 
name=data.name, select=data.select, data_set='value', nucleus=nucleus, 
wH=`wH`, j0=`j0`, jwx=`jwx`, jwh=`jwh`, r=`r`, csa=`csa`, 
ri_labels=ri_labels, remap_table=remap_table, frq_labels=frq_labels, frq=frq, 
ri=ri, ri_error=ri_error)
+            self.write_columnar_line(file=file, num=data.num, 
name=data.name, select=data.select, data_set='value', nucleus=nucleus, 
wH=`wH`, j0=`j0`, f_eta=`f_eta`, f_r2=`f_r2`, r=`r`, csa=`csa`, 
ri_labels=ri_labels, remap_table=remap_table, frq_labels=frq_labels, frq=frq, 
ri=ri, ri_error=ri_error)
 
 
         # Errors.
@@ -693,15 +754,15 @@
             if hasattr(data, 'j0_err'):
                 j0 = data.j0_err
 
-            # J(wX).
-            jwx = None
-            if hasattr(data, 'jwx_err'):
-                jwx = data.jwx_err
+            # F_eta.
+            f_eta = None
+            if hasattr(data, 'f_eta_err'):
+                f_eta = data.f_eta_err
 
-            # J(wH).
-            jwh = None
-            if hasattr(data, 'jwh_err'):
-                jwh = data.jwh_err
+            # F_R2.
+            f_r2 = None
+            if hasattr(data, 'f_r2_err'):
+                f_r2 = data.f_r2_err
 
             # Bond length.
             r = None
@@ -721,7 +782,7 @@
                 ri_error.append(None)
 
             # Write the line.
-            self.write_columnar_line(file=file, num=data.num, 
name=data.name, select=data.select, data_set='error', nucleus=nucleus, 
wH=`wH`, j0=`j0`, jwx=`jwx`, jwh=`jwh`, r=`r`, csa=`csa`, 
ri_labels=ri_labels, remap_table=remap_table, frq_labels=frq_labels, frq=frq, 
ri=ri, ri_error=ri_error)
+            self.write_columnar_line(file=file, num=data.num, 
name=data.name, select=data.select, data_set='error', nucleus=nucleus, 
wH=`wH`, j0=`j0`, f_eta=`f_eta`, f_r2=`f_r2`, r=`r`, csa=`csa`, 
ri_labels=ri_labels, remap_table=remap_table, frq_labels=frq_labels, frq=frq, 
ri=ri, ri_error=ri_error)
 
 
         # Simulation values.
@@ -739,15 +800,15 @@
                 if hasattr(data, 'j0_sim'):
                     j0 = data.j0_sim[i]
 
-                # J(wX).
-                jwx = None
-                if hasattr(data, 'jwx_sim'):
-                    jwx = data.jwx_sim[i]
+                # F_eta.
+                f_eta = None
+                if hasattr(data, 'f_eta_sim'):
+                    f_eta = data.f_eta_sim[i]
 
-                # J(wH).
-                jwh = None
-                if hasattr(data, 'jwh_sim'):
-                    jwh = data.jwh_sim[i]
+                # F_R2.
+                f_r2 = None
+                if hasattr(data, 'f_r2_sim'):
+                    f_r2 = data.f_r2_sim[i]
 
                 # Bond length.
                 r = None
@@ -778,4 +839,4 @@
                         ri_error.append(None)
 
                 # Write the line.
-                self.write_columnar_line(file=file, num=data.num, 
name=data.name, select=data.select, data_set='sim_'+`i`, nucleus=nucleus, 
wH=`wH`, j0=`j0`, jwx=`jwx`, jwh=`jwh`, r=`r`, csa=`csa`, 
ri_labels=ri_labels, remap_table=remap_table, frq_labels=frq_labels, frq=frq, 
ri=ri, ri_error=ri_error)
+                self.write_columnar_line(file=file, num=data.num, 
name=data.name, select=data.select, data_set='sim_'+`i`, nucleus=nucleus, 
wH=`wH`, j0=`j0`, f_eta=`f_eta`, f_r2=`f_r2`, r=`r`, csa=`csa`, 
ri_labels=ri_labels, remap_table=remap_table, frq_labels=frq_labels, frq=frq, 
ri=ri, ri_error=ri_error)
Index: test_suite/consistency_tests.py
===================================================================
--- test_suite/consistency_tests.py     (revision 3324)
+++ test_suite/consistency_tests.py     (working copy)
@@ -1,6 +1,7 @@
 
###############################################################################
 #                                                                            
 #
 # Copyright (C) 2006 Chris MacRaild                                          
 #
+# Copyright (C) 2007 Sebastien Morin <sebastien.morin.1 at ulaval.ca>        
 #
 #                                                                            
 #
 # This file is part of the program relax.                                    
 #
 #                                                                            
 #
@@ -23,15 +24,15 @@
 import sys
 
 
-class Jw:
+class Consistent:
     def __init__(self, relax, test_name):
-        """Class for testing various aspects specific to reduced spectral 
density mapping."""
+        """Class for testing various aspects specific to consistency 
tests."""
 
         self.relax = relax
 
         # Results reading test.
         if test_name == 'set':
-            
+
             # The name of the test.
             self.name = "The user function value.set()"
 
@@ -40,36 +41,36 @@
 
         # Spectral density calculation test.
         if test_name == 'calc':
-            
+
             # The name of the test.
-            self.name = "Spectral density calculation"
+            self.name = "Consistency tests calculation"
 
             # The test.
             self.test = self.calc
 
 
     def calc(self, run):
-        """The spectral density calculation test."""
+        """The consistency tests calculation test."""
 
         # Arguments.
         self.run = run
 
         # Setup.
         self.calc_setup()
-        
+
         # Try the reduced spectral density mapping.
         self.relax.interpreter._Minimisation.calc(self.run)
-        
+
         # Success.
         return self.calc_integrity()
-        
 
+
     def calc_integrity(self):
-        
-        # Correct jw values:
+
+        # Correct consistency functions values:
         j0 = [4.0958793960056238e-09, 3.7976266046729745e-09]
-        jwx = [1.85720953886864e-10, 1.6450121628270092e-10]
-        jwh = [1.5598167512718012e-12, 2.9480536599037041e-12]
+        f_eta = [0.35164988964635652, 0.32556427866911447]
+        f_r2 = [2.0611470814962761e-09, 1.9117396355237641e-09]
 
         # Loop over residues.
         for index,residue in enumerate(self.relax.data.res[self.run]):
@@ -82,11 +83,11 @@
                 if abs(self.relax.data.res[self.run][index].j0 - j0[index]) 
j0[index]/1e6:
                     print 'Error in residue', 
self.relax.data.res[self.run][index].num, 'j0 calculated value'
                     return
-                if abs(self.relax.data.res[self.run][index].jwh - 
jwh[index]) > jwh[index]/1e6:
-                    print 'Error in residue', 
self.relax.data.res[self.run][index].num, 'jwh calculated value'
+                if abs(self.relax.data.res[self.run][index].f_eta - 
f_eta[index]) > f_eta[index]/1e6:
+                    print 'Error in residue', 
self.relax.data.res[self.run][index].num, 'f_eta calculated value'
                     return
-                if abs(self.relax.data.res[self.run][index].jwx - 
jwx[index]) > jwx[index]/1e6:
-                    print 'Error in residue', 
self.relax.data.res[self.run][index].num, 'jwx calculated value'
+                if abs(self.relax.data.res[self.run][index].f_r2 - 
f_r2[index]) > f_r2[index]/1e6:
+                    print 'Error in residue', 
self.relax.data.res[self.run][index].num, 'f_r2 calculated value'
                     return
 
             # Other residues have insufficient data.
@@ -111,9 +112,9 @@
         dataTypes = [('NOE', '600', 600.0e6),
                      ('R1', '600', 600.0e6),
                      ('R2', '600', 600.0e6)]
-        
+
         # Create the run.
-        self.relax.generic.runs.create(self.run, 'jw')
+        self.relax.generic.runs.create(self.run, 'ct')
 
         # Read the sequence.
         self.relax.interpreter._Sequence.read(self.run, file='test_seq', 
dir=sys.path[-1] + '/test_suite/data')
@@ -129,8 +130,14 @@
         self.relax.interpreter._Value.set(self.run, 1.02 * 1e-10, 
'bond_length')
         self.relax.interpreter._Value.set(self.run, -170 * 1e-6, 'csa')
 
+        # Set the angle between the 15N-1H vector and the principal axis of 
the 15N chemical shift tensor
+        self.relax.interpreter._Value.set(self.run, 15.7, 'orientation')
+
+        # Set the approximate correlation time.
+        self.relax.interpreter._Value.set(self.run, 13 * 1e-9, 'tc')
+
         # Select the frequency.
-        self.relax.interpreter._Jw_mapping.set_frq(self.run, frq=600.0 * 1e6)
+        self.relax.interpreter._Consistency_tests.set_frq(self.run, 
frq=600.0 * 1e6)
 
 
     def set_value(self, run):

Related Messages


Powered by MHonArc, Updated Mon Jul 09 21:20:31 2007