mailRe: Consistency tests


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

Header


Content

Posted by Edward d'Auvergne on July 09, 2007 - 21:35:
I've applied the 'patch_maths_fns_consistency_tests' patch and
committed it to the repository.  The changes all look good.  I would
suggest to add a description of what F_eta and F_R2 are to the func()
docstring.  There is also the variables p_2 and p_hf which I don't
fully understand what these correspond to.  If these are
abbreviations, more descriptive variable names would be appreciated.
There is a policy in the relax code base to use human readable
variables as much as possible (counters, etc don't matter).  That way
you don't need to be an expert or read the code to understand what the
variable is.  It makes the code more readable to a non-coder and makes
it easier to extend or update code in the future.

Cheers,

Edward


On 7/9/07, Edward d'Auvergne <edward.dauvergne@xxxxxxxxx> wrote:
The patches are now in file format and I can patch correctly.  I'll
apply them one by one and carefully check them to see if anything
needs fixing or improvements.

Thanks,

Edward


On 7/9/07, Sébastien Morin <sebastien.morin.1@xxxxxxxxx> wrote:
> 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)
> > >
> > >
> >
> >
>




Related Messages


Powered by MHonArc, Updated Mon Jul 09 22:00:54 2007