mailRe: Merge time for the 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 April 03, 2008 - 19:25:
Hi,

Yep, the fact that the new code does not affect the rest of relax is
the reason I believe the code can be merged.  And also because it
contains all of the changes that went into the 1.2 line.  So, please
feel free to make the merge (and don't worry if the first attempt
fails).  Just make sure the line is fully up to date using svnmerge
(rather than 'svn merge'), and use the instructions in the manual if
you don't remember how you merged branches last time.

Cheers,

Edward



On Thu, Apr 3, 2008 at 7:21 PM, Sébastien Morin
<sebastien.morin.1@xxxxxxxxx> wrote:

 Hi Ed,

 The consistency_tests code has had some changes made to the new design.
However, I'm not sure of how it is complete... Anyway, I think also that it
should be merged now.

 In the future, it might be interesting that the code handles several
magnetic fields at once and outputs correlation plots and scores... In fact,
this would be best since this code is made specifically to compare datasets
from different fields. However, this will need much more work and doesn't
impair the actual code from working, though with more interaction from the
user who presently needs to calculate values from each separate field and
then compare the results on its own...

 Thus, if you agree, I can merge the code right now and work later for the
multiple fields features...

 Cheers.


 Séb  :)



 Edward d'Auvergne wrote:

 Seb,

Thanks for all your recent changes. This is significantly
accelerating the development of the 1.3 line! To further accelerate
development, I was wondering how close you think the
consistency_tests_1.3 branch is to merging into the 1.3 line? My
opinion would be that it should be fine now, even if not complete.
What do you think?

Cheers,

Edward


On Thu, Apr 3, 2008 at 6:02 PM, <sebastien.morin.1@xxxxxxxxx> wrote:


 Author: semor
 Date: Thu Apr 3 18:02:29 2008
 New Revision: 5265

 URL: http://svn.gna.org/viewcvs/relax?rev=5265&view=rev
 Log:
 More removal of the run argument as part of the moving to the new design.


 Modified:
 1.3/prompt/monte_carlo.py

 Modified: 1.3/prompt/monte_carlo.py
 URL:
http://svn.gna.org/viewcvs/relax/1.3/prompt/monte_carlo.py?rev=5265&r1=5264&r2=5265&view=diff

==============================================================================
 --- 1.3/prompt/monte_carlo.py (original)
 +++ 1.3/prompt/monte_carlo.py Thu Apr 3 18:02:29 2008
 @@ -41,14 +41,12 @@
 self.__relax__ = relax


 - def create_data(self, run=None, method='back_calc'):
 + def create_data(self, method='back_calc'):
 """Function for creating simulation data.

 Keyword Arguments
 ~~~~~~~~~~~~~~~~~

 - run: The name of the run.
 -
 method: The simulation method.


 @@ -56,15 +54,14 @@
 ~~~~~~~~~~~

 The method argument can either be set to 'back_calc' or 'direct', the
choice of which
 - determines the simulation type. If the values or parameters of a run are
calculated rather
 - than minimised, this option will have no effect, hence, 'back_calc' and
'direct' are
 - identical.
 + determines the simulation type. If the values or parameters are
calculated rather than
 + minimised, this option will have no effect, hence, 'back_calc' and
'direct' are identical.

 For error analysis, the method argument should be set to 'back_calc' which
will result in
 proper Monte Carlo simulations. The data used for each simulation is back
calculated from
 the minimised model parameters and is randomised using Gaussian noise where
the standard
 deviation is from the original error set. When the method is set to
'back_calc', this
 - function should only be called after the model or run is fully minimised.
 + function should only be called after the model is fully minimised.

 The simulation type can be changed by setting the method argument to
'direct'. This will
 result in simulations which cannot be used in error analysis and which are
no longer Monte
 @@ -78,29 +75,22 @@
 # Function intro text.
 if self.__relax__.interpreter.intro:
 text = sys.ps3 + "monte_carlo.create_data("
 - text = text + "run=" + `run`
 - text = text + ", method=" + `method` + ")"
 - print text
 -
 - # The run argument.
 - if type(run) != str:
 - raise RelaxStrError, ('run', run)
 + text = text + "method=" + `method` + ")"
 + print text

 # The method argument.
 if type(method) != str:
 raise RelaxStrError, ('method', method)

 # Execute the functional code.
 - self.__relax__.generic.monte_carlo.create_data(run=run, method=method)
 -
 -
 - def error_analysis(self, run=None, prune=0.0):
 + monte_carlo_obj.create_data(method=method)
 +
 +
 + def error_analysis(self, prune=0.0):
 """Function for calculating parameter errors from the Monte Carlo
simulations.

 Keyword Arguments
 ~~~~~~~~~~~~~~~~~
 -
 - run: The name of the run.

 prune: Legacy argument corresponding to 'trim' in Art Palmer's Modelfree
program.

 @@ -120,51 +110,40 @@
 failed simulations but only if severe parameter limits have been imposed.
Most failed
 models will pass through the pruning process and hence cause a catastrophic
increase in the
 parameter errors. If the argument must be used, the following must be taken
into account.
 - If the values or parameters of a run are calculated rather than
minimised, the prune
 - argument must be set to zero. The value of this argument is proportional
to the number of
 - simulations removed prior to error calculation. If prune is set to 0.0,
all simulations are
 - used for calculating errors, whereas a value of 1.0 excludes all data. In
almost all cases
 - prune must be set to zero, any value greater than zero will result in an
underestimation of
 - the error values. If a value is supplied, the lower and upper tails of
the distribution of
 + If the values or parameters are calculated rather than minimised, the
prune argument must be
 + set to zero. The value of this argument is proportional to the number of
simulations
 + removed prior to error calculation. If prune is set to 0.0, all
simulations are used for
 + calculating errors, whereas a value of 1.0 excludes all data. In almost
all cases prune
 + must be set to zero, any value greater than zero will result in an
underestimation of the
 + error values. If a value is supplied, the lower and upper tails of the
distribution of
 chi-squared values will be excluded from the error calculation.
 """

 # Function intro text.
 if self.__relax__.interpreter.intro:
 text = sys.ps3 + "monte_carlo.error_analysis("
 - text = text + "run=" + `run`
 - text = text + ", prune=" + `prune` + ")"
 - print text
 -
 - # The run argument.
 - if type(run) != str:
 - raise RelaxStrError, ('run', run)
 + text = text + "prune=" + `prune` + ")"
 + print text

 # The prune argument.
 if type(prune) != int and type(prune) != float:
 raise RelaxNumError, ('prune', prune)

 # Execute the functional code.
 - self.__relax__.generic.monte_carlo.error_analysis(run=run, prune=prune)
 -
 -
 - def initial_values(self, run=None):
 + monte_carlo_obj.error_analysis(prune=prune)
 +
 +
 + def initial_values(self):
 """Function for setting the initial simulation parameter values.

 - Keyword Arguments
 - ~~~~~~~~~~~~~~~~~
 -
 - run: The name of the run.
 -
 -
 - Description
 - ~~~~~~~~~~~
 -
 - This function only effects runs where minimisation occurs and can
therefore be skipped if
 - the values or parameters of a run are calculated rather than minimised.
However, if
 - accidentally run in this case, the results will be unaffected. It should
only be called
 - after the model or run is fully minimised. Once called, the functions
'grid_search' and
 - 'minimise' will only effect the simulations and not the model parameters.
 + Description
 + ~~~~~~~~~~~
 +
 + This function only effects where minimisation occurs and can therefore be
skipped if the
 + values or parameters are calculated rather than minimised. However, if
accidentally run in
 + this case, the results will be unaffected. It should only be called after
the model or run
 + is fully minimised. Once called, the functions 'grid_search' and
'minimise' will only
 + effect the simulations and not the model parameters.

 The initial values of the parameters for each simulation is set to the
minimised parameters
 of the model. A grid search can be undertaken for each simulation instead,
although this
 @@ -174,72 +153,43 @@

 # Function intro text.
 if self.__relax__.interpreter.intro:
 - text = sys.ps3 + "monte_carlo.initial_values("
 - text = text + "run=" + `run` + ")"
 - print text
 -
 - # The run argument.
 - if type(run) != str:
 - raise RelaxStrError, ('run', run)
 -
 - # Execute the functional code.
 - self.__relax__.generic.monte_carlo.initial_values(run=run)
 -
 -
 - def off(self, run=None):
 - """Function for turning simulations off.
 + text = sys.ps3 + "monte_carlo.initial_values()"
 + print text
 +
 + # Execute the functional code.
 + monte_carlo_obj.initial_values()
 +
 +
 + def off(self):
 + """Function for turning simulations off."""
 +
 + # Function intro text.
 + if self.__relax__.interpreter.intro:
 + text = sys.ps3 + "monte_carlo.off()"
 + print text
 +
 + # Execute the functional code.
 + monte_carlo_obj.off()
 +
 +
 + def on(self):
 + """Function for turning simulations on."""
 +
 + # Function intro text.
 + if self.__relax__.interpreter.intro:
 + text = sys.ps3 + "monte_carlo.on()"
 + print text
 +
 + # Execute the functional code.
 + monte_carlo_obj.on()
 +
 +
 + def setup(self, number=500):
 + """Function for setting up Monte Carlo simulations.

 Keyword Arguments
 ~~~~~~~~~~~~~~~~~

 - run: The name of the run.
 - """
 -
 - # Function intro text.
 - if self.__relax__.interpreter.intro:
 - text = sys.ps3 + "monte_carlo.off("
 - text = text + "run=" + `run` + ")"
 - print text
 -
 - # The run argument.
 - if type(run) != str:
 - raise RelaxStrError, ('run', run)
 -
 - # Execute the functional code.
 - self.__relax__.generic.monte_carlo.off(run=run)
 -
 -
 - def on(self, run=None):
 - """Function for turning simulations on.
 -
 - Keyword Arguments
 - ~~~~~~~~~~~~~~~~~
 -
 - run: The name of the run.
 - """
 -
 - # Function intro text.
 - if self.__relax__.interpreter.intro:
 - text = sys.ps3 + "monte_carlo.on("
 - text = text + "run=" + `run` + ")"
 - print text
 -
 - # The run argument.
 - if type(run) != str:
 - raise RelaxStrError, ('run', run)
 -
 - # Execute the functional code.
 - self.__relax__.generic.monte_carlo.on(run=run)
 -
 -
 - def setup(self, run=None, number=500):
 - """Function for setting up Monte Carlo simulations.
 -
 - Keyword Arguments
 - ~~~~~~~~~~~~~~~~~
 -
 - run: The name of the run.
 -
 number: The number of Monte Carlo simulations.


 @@ -247,27 +197,21 @@
 ~~~~~~~~~~~

 This function must be called prior to any of the other Monte Carlo
functions. The effect is
 - that the number of simulations for the given run will be set and that
simulations will be
 - turned on.
 + that the number of simulations will be set and that simulations will be
turned on.
 """

 # Function intro text.
 if self.__relax__.interpreter.intro:
 text = sys.ps3 + "monte_carlo.setup("
 - text = text + "run=" + `run`
 - text = text + ", number=" + `number` + ")"
 - print text
 -
 - # The run argument.
 - if type(run) != str:
 - raise RelaxStrError, ('run', run)
 + text = text + "number=" + `number` + ")"
 + print text

 # The number of simulations.
 if type(number) != int:
 raise RelaxIntError, ('number', number)

 # Execute the functional code.
 - self.__relax__.generic.monte_carlo.setup(run=run, number=number)
 + monte_carlo_obj.setup(number=number)



 @@ -325,22 +269,22 @@
 An example, for model-free analysis, which includes only the functions
required for
 implementing the above steps is:

 - relax> grid_search('m1', inc=11) # Step 2.
 - relax> minimise('newton', run='m1') # Step 2.
 - relax> monte_carlo.setup('m1', number=500) # Step 3.
 - relax> monte_carlo.create_data('m1', method='back_calc') # Step 4.
 - relax> monte_carlo.initial_values('m1') # Step 5.
 - relax> minimise('newton', run='m1') # Step 6.
 - relax> eliminate('m1') # Step 7.
 - relax> monte_carlo.error_analysis('m1') # Step 8.
 + relax> grid_search(inc=11) # Step 2.
 + relax> minimise('newton') # Step 2.
 + relax> monte_carlo.setup(number=500) # Step 3.
 + relax> monte_carlo.create_data(method='back_calc') # Step 4.
 + relax> monte_carlo.initial_values() # Step 5.
 + relax> minimise('newton') # Step 6.
 + relax> eliminate() # Step 7.
 + relax> monte_carlo.error_analysis() # Step 8.

 An example for reduced spectral density mapping is:

 - relax> calc('600MHz') # Step 2.
 - relax> monte_carlo.setup('600MHz', number=500) # Step 3.
 - relax> monte_carlo.create_data('600MHz', method='back_calc') # Step 4.
 - relax> calc('600MHz') # Step 6.
 - relax> monte_carlo.error_analysis('600MHz') # Step 8.
 + relax> calc() # Step 2.
 + relax> monte_carlo.setup(number=500) # Step 3.
 + relax> monte_carlo.create_data(method='back_calc') # Step 4.
 + relax> calc() # Step 6.
 + relax> monte_carlo.error_analysis() # Step 8.
 """

 create_data.__doc__ = create_data.__doc__ + "\n\n" + __description__


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

 This is the relax-commits mailing list
 relax-commits@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-commits





_______________________________________________
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






Related Messages


Powered by MHonArc, Updated Thu Apr 03 19:43:11 2008