mailRe: r25776 - /trunk/user_functions/relax_fit.py


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

Header


Content

Posted by Edward d'Auvergne on September 12, 2014 - 12:05:
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,  <tlinnet@xxxxxxxxxxxxx> 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
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



Related Messages


Powered by MHonArc, Updated Fri Sep 12 12:20:12 2014