bugNESSY - Bugs: bug #22663, Model 6 is not documented.

 
 
Show feedback again

bug #22663: Model 6 is not documented.

Submitted by:  Edward d Auvergne <bugman>
Submitted on:  Thu Sep 18 15:15:14 2014  
 
Category: DocumentationSeverity: 3 - Normal
Priority: 5 - NormalStatus: Postponed
Privacy: PublicAssigned to: None
Open/Closed: Open

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu Sep 18 15:36:40 2014, comment #2:

From the Palmer et al., 2001 Methods of Enzymology review is the following text:

"""
Ishima and Torchia have derived a simple approximate equation for the relaxation rate constant of the resonance associated with site A that is applicable to all time scales provided that PA >> PB:

R2(1/tau_cp) = R2(1/tau_cp --> inf) + pA.pB.DeltaOmega^2.kex / [kex^2 + (pA^2.DeltaOmega^4 + 144 / tau_cp^4 )^1/2]
"""

It is clear that Model 6 is exactly this equation! This is the IT99 model (http://wiki.nmr-relax.com/IT99). This needs to be documented.

Edward d Auvergne <bugman>
Project Administrator
Thu Sep 18 15:31:12 2014, comment #1:

This may be the Ishima and Torchia, 1999 model:

- http://wiki.nmr-relax.com/IT99
- http://www.nmr-relax.com/manual/IT99_2_site_CPMG_model.html
- http://www.nmr-relax.com/api/3.2/lib.dispersion.it99-module.html

Edward d Auvergne <bugman>
Project Administrator
Thu Sep 18 15:15:14 2014, original submission:

What is model 6? This is not documented or explained in the GUI. The only information is from the source code, copied and pasted from the maths_fns/models.py file below. From the equation, the factor of 144 might indicate what this is. The code is:

def model_6(x, p):
'''Exchange for 2 sites over all time scales (pa >>pb).'''

R20 = p[0]
kex = p[1]
dw = p[2]
pb = p[3]
pa = 1-pb
tcp = 1/(2*x)

# R2eff
R2eff = R20 + pa*pb*(dw**2)*kex / ( kex**2 + (pa**2 * dw**4 + 144/tcp**4)**(0.5) )

return R2eff

def model_6_residuals(p, y, x, variance, output=None, global_fit=False, freqs=None, shift_diff=None):
'''Minimising Model 6.

p: Array of initials guess: [kex1, pb, dw, R2(i)]
y: Array of y values (list of arrays if global fit)
x: Array of x values (list of arrays if global fit)
output: Output object (textctrl), None if no output
global_fit: Flag if it is a global fit
freqs: List of spectrometer frequencies (only in global fit; output in ppm) (wx.TextCtrl)
'''

# Number of datasets
n = len(x)

# Initialize error
error = variance

# error storage
err = []

# shared variables
kex = p[0]
pb = p[1]

# shift difference
if shift_diff: dw = float(shift_diff)
else: dw = p[2]

# Calculate chi2
for i in range(0, n):
# Parameters
R2 = p[3+i]

# dw on global fit ppm --> Hz
dw_Hz = dw*float(freqs[i].GetValue()) * 2 * Pi

# estimation
p_est = [R2, kex, dw_Hz, pb]

#Chi2 function
err_tmp = ((y[i]-model_6(x[i],p_est))**2/error[i])

# combine errors
err.extend(err_tmp)

# Gradients
# R2
if R2 < Constraints_container.r2[5][0] or R2 > Constraints_container.r2[5][1]:
for j in range(0, len(err)):
err[j] = (err[j])*2

# kex
if kex < Constraints_container.kex[5][0] or kex > Constraints_container.kex[5][1]:
for j in range(0, len(err)):
err[j] = (err[j])*2

# dw
if dw < Constraints_container.dw[5][0] or dw > Constraints_container.dw[5][1]:
for j in range(0, len(err)):
err[j] = (err[j])*2

# pb
if pb < Constraints_container.pb[5][0] or pb > Constraints_container.pb[5][1]:
for j in range(0, len(err)):
err[j] = (err[j])*2

# Output
if output:
text = "R20: %.8f" % p[3]
for i in range(1, n):
text += ", R20: %.8f" % p[i+3]
text += ", pA: %.8f" % (1-pb)
text += ", pB: %.8f" % pb
text += ", dw: %.8f" % dw
text += ", kex: %.8f" % kex
text += "\n"
limit_entries(output)
wx.CallAfter(output.AppendText, text)
time.sleep(0.0001)

Chi2_container.chi2 = err
Chi2_container.chi2_surface[0].append(kex)
Chi2_container.chi2_surface[1].append(pb)
Chi2_container.chi2_surface[2].append(sum(err))
return err

Edward d Auvergne <bugman>
Project Administrator

 

(Note: upload size limit is set to 1024 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by bugman (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Error: not logged in

     

     

    No Changes Have Been Made to This Item
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup