Package lib :: Package dispersion :: Module b14
[hide private]
[frames] | no frames]

Module b14

source code

The Baldwin (2014) 2-site exact solution model for all time scales B14.

Description

This module is for the function, gradient and Hessian of the B14 model.

References

The model is named after the reference:

Equations

The equation used is:

           R2A0 + R2B0 + kex      Ncyc                      1      ( 1+y            1-y                          )
   R2eff = ------------------ -  ------ * cosh^-1 * v1c - ------ ln( --- + ------------------ * (v2 + 2*kAB*pD ) ) ,
                 2                Trel                     Trel    (  2    2*sqrt(v1c^2 -1 )                     )

                           1      ( 1+y            1-y                          )
         = R2eff(CR72) - ------ ln( --- + ------------------ * (v2 + 2*kAB*pD ) ) ,
                          Trel    (  2    2*sqrt(v1c^2 -1 )                     )

Which have these following definitions:

   v1c = F0 * cosh(tauCP * E0)- F2 * cosh(tauCP * E2) ,
   v1s = F0 * sinh(tauCP * E0)- F2 * sinh(tauCP * E2) ,
   v2*N = v1s * (OB-OA) + 4OB * F1^a * sinh(tauCP * E1) ,
   pD N = v1s + (F1^a + F1^b) * sinh(tauCP * E1) ,
   v3 = ( v2^2 + 4 * kBA * kAB * pD^2 )^1/2 ,
   y = ( (v1c-v3)/(v1c+v3) )^NCYC ,

Note, E2 is complex. If |x| denotes the complex modulus:

   cosh(tauCP * E2) = cos(tauCP * |E2|) ,
   sinh(tauCP * E2) = i sin(tauCP * |E2|) ,

The term pD is based on product of the off diagonal elements in the CPMG propagator (Supplementary Section 3).

It is interesting to consider the region of validity of the Carver Richards result. The two results are equal when the correction is zero, which is true when:

   sqrt(v1c^2-1) ~ v2 + 2*kAB * pD ,

This occurs when 2*kAB * pD tends to zero, and so v2=v3. Setting "kAB * pD" to zero, amounts to neglecting magnetisation that starts on the ground state ensemble and end on the excited state ensemble and vice versa. This will be a good approximation when pA >> p_B.

In practise, significant deviations from the Carver Richards equation can be incurred if pB > 1 %. Incorporation of the correction term into equation (50), results in an improved description of the CPMG experiment over the Carver Richards equation.

kex is the chemical exchange rate constant, pA and pB are the populations of states A and B, and delta_omega is the chemical shift difference between the two states in ppm.

Links

More information on the B14 model can be found in the:

More information on the B14 full model can be found in the:

Comparison to CR72 model

Comparison to CR72 model can be found in the:

Comparison to CR72 full model can be found in the:

Functions [hide private]
 
r2eff_B14(r20a=None, r20b=None, pA=None, dw=None, dw_orig=None, kex=None, ncyc=None, inv_tcpmg=None, tcp=None, back_calc=None)
Calculate the R2eff values for the CR72 model.
source code
Variables [hide private]
  g_fact = 0.70710678118654746
  __package__ = 'lib.dispersion'

Imports: any, arccosh, arctan2, cos, cosh, fabs, isfinite, log, max, min, power, sin, sinh, sqrt, sum, fix_invalid, masked_greater_equal, masked_where


Function Details [hide private]

r2eff_B14(r20a=None, r20b=None, pA=None, dw=None, dw_orig=None, kex=None, ncyc=None, inv_tcpmg=None, tcp=None, back_calc=None)

source code 

Calculate the R2eff values for the CR72 model.

See the module docstring for details.

Parameters:
  • r20a (numpy float array of rank [NE][NS][NM][NO][ND]) - The R20 parameter value of state A (R2 with no exchange).
  • r20b (numpy float array of rank [NE][NS][NM][NO][ND]) - The R20 parameter value of state B (R2 with no exchange).
  • pA (float) - The population of state A.
  • dw (numpy float array of rank [NE][NS][NM][NO][ND]) - The chemical exchange difference between states A and B in rad/s.
  • dw_orig (numpy float array of rank-1) - The chemical exchange difference between states A and B in ppm. This is only for faster checking of zero value, which result in no exchange.
  • kex (float) - The kex parameter value (the exchange rate in rad/s).
  • ncyc (numpy int16 array of rank [NE][NS][NM][NO][ND]) - The matrix exponential power array. The number of CPMG blocks.
  • inv_tcpmg (numpy float array of rank [NE][NS][NM][NO][ND]) - The inverse of the total duration of the CPMG element (in inverse seconds).
  • tcp (numpy float array of rank [NE][NS][NM][NO][ND]) - The tau_CPMG times (1 / 4.nu1).
  • back_calc (numpy float array of rank [NE][NS][NM][NO][ND]) - The array for holding the back calculated R2eff values. Each element corresponds to one of the CPMG nu1 frequencies.