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

