The easy way to do this would be to use 'svn cp
user_functions/relax_fit.py user_functions/error_analysis.py' and then
to delete the function from user_functions/relax_fit.py and delete all
but this function from user_functions/error_analysis.py.

Cheers,

Edward



On 12 September 2014 12:04, Edward d'Auvergne <[email protected]> wrote:
> Hi Troels,
>
> Could you rename this to the error_analysis.covariance_matrix user
> function?  I.e. as I mentioned in
> http://thread.gmane.org/gmane.science.nmr.relax.scm/23526/focus=7096.
> There is nothing about this new user function that is specific to the
> relaxation curve-fitting analysis type.  If the covariance matrix
> error estimation technique is extended to the other analysis types -
> reduced spectral density mapping, model-free analysis, frame order
> analysis, N-state model - then this function will have to be
> duplicated each time.  I am actually considering using it for the
> frame order analysis where the optimisation of one model (from ~10)
> takes days or weeks to complete.
>
> Also, you should develop such features in branches rather than the
> trunk.  The trunk is supposed to be stable so that I can make new bug
> fix releases quickly, if users require it.  The recent changes have
> broken the GUI tests and the software verification tests.
>
> Cheers,
>
> Edward
>
>
> On 12 September 2014 11:25,  <[email protected]> wrote:
>> Author: tlinnet
>> Date: Fri Sep 12 11:25:56 2014
>> New Revision: 25776
>>
>> URL: http://svn.gna.org/viewcvs/relax?rev=25776&view=rev
>> Log:
>> Implemented userfunction 'relax_fit.rx_err_estimate' in relax_fit to 
>> estimate rx and i0 errors from the Jacobian Co-variance matrix.
>>
>> Modified:
>>     trunk/user_functions/relax_fit.py
>>
>> Modified: trunk/user_functions/relax_fit.py
>> URL: 
>> http://svn.gna.org/viewcvs/relax/trunk/user_functions/relax_fit.py?rev=25776&r1=25775&r2=25776&view=diff
>> ==============================================================================
>> --- trunk/user_functions/relax_fit.py   (original)
>> +++ trunk/user_functions/relax_fit.py   Fri Sep 12 11:25:56 2014
>> @@ -22,9 +22,14 @@
>>  # Module docstring.
>>  """The relax_fit user function definitions."""
>>
>> +# Python module imports.
>> +from os import sep
>> +
>>  # relax module imports.
>> +from graphics import ANALYSIS_IMAGE_PATH
>>  from pipe_control import spectrum
>>  from specific_analyses.relax_fit.uf import relax_time, select_model
>> +from specific_analyses.relax_fit.estimate_rx_err import estimate_rx_err
>>  from user_functions.data import Uf_info; uf_info = Uf_info()
>>  from user_functions.objects import Desc_container
>>
>> @@ -65,6 +70,50 @@
>>  uf.wizard_size = (700, 500)
>>
>>
>> +# The relax_fit.rx_err_estimate user function.
>> +uf = uf_info.add_uf('relax_fit.rx_err_estimate')
>> +uf.title = "Estimate Rx errors by the Jacobian matrix."
>> +uf.title_short = "Estimate Rx errors."
>> +uf.add_keyarg(
>> +    name = "spin_id",
>> +    py_type = "str",
>> +    arg_type = "spin ID",
>> +    desc_short = "spin ID to restrict value setting to",
>> +    desc = "The spin ID string to restrict value setting to.",
>> +    can_be_none = True
>> +)
>> +uf.add_keyarg(
>> +    name = "epsrel",
>> +    py_type = "float",
>> +    default = 0.0,
>> +    desc_short = "parameter to remove linear-dependent columns.",
>> +    desc = "The parameter to remove linear-dependent columns when J is rank 
>> deficient.",
>> +    can_be_none = False
>> +)
>> +uf.add_keyarg(
>> +    name = "verbosity",
>> +    default = 1,
>> +    py_type = "int",
>> +    desc_short = "amount of information to print.",
>> +    desc = "The higher the value, the greater the verbosity.",
>> +    can_be_none = False
>> +)
>> +# Description.
>> +uf.desc.append(Desc_container())
>> +uf.desc[-1].add_paragraph("This is a new experimental feature from version 
>> 3.3.")
>> +uf.desc[-1].add_paragraph("This will estimate Rx errors by using the 
>> exponential decay Jacobian matrix 'J' to compute the covariance matrix of 
>> the best-fit parameters.")
>> +uf.desc[-1].add_paragraph("This can be used to for comparison to 
>> Monte-Carlo simulations.")
>> +uf.desc[-1].add_paragraph("This method is inspired from the GNU Scientific 
>> Library (GSL).")
>> +uf.desc[-1].add_paragraph("The covariance matrix is given by: covar = Qxx = 
>> (J^T.W.J)^-1, where the weight matrix W is constructed by the multiplication 
>> of an Identity matrix I and a weight array w.  The weight array is 
>> 1/errors^2, which then gives W = I.w = I x 1/errors^2.")
>> +uf.desc[-1].add_paragraph("Qxx is computed by QR decomposition, J^T.W.J=QR, 
>> Qxx=R^-1. Q^T.  The columns of R which satisfy: |R_{kk}| <= epsrel |R_{11}| 
>> are considered linearly-dependent and are excluded from the covariance 
>> matrix (the corresponding rows and columns of the covariance matrix are set 
>> to zero).")
>> +uf.desc[-1].add_paragraph("The parameter 'epsrel' is used to remove 
>> linear-dependent columns when J is rank deficient.")
>> +uf.backend = estimate_rx_err
>> +uf.menu_text = "&rx_err_estimate"
>> +uf.gui_icon = "relax.relax_fit"
>> +uf.wizard_size = (800, 800)
>> +uf.wizard_image = ANALYSIS_IMAGE_PATH + sep + 'blank_150x150.png'
>> +
>> +
>>  # The relax_fit.select_model user function.
>>  uf = uf_info.add_uf('relax_fit.select_model')
>>  uf.title = "Select the relaxation curve type."
>>
>>
>> _______________________________________________
>> relax (http://www.nmr-relax.com)
>>
>> This is the relax-commits mailing list
>> [email protected]
>>
>> 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://www.nmr-relax.com)

This is the relax-devel mailing list
[email protected]

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

Reply via email to