Hi Edward,
Here is a function that does a numerical fit of CPMG. It uses an explicit
matrix that contains relaxation, exchange and chemical shift terms. It does
the 180deg pulses in the CPMG train with conjugate complex matrices.
It returns calculated R2eff values, so it can be used for numerical fitting
of CPMG.
It is an addition to the functions that I previously sent to you.
The approach of Bloch-McConnell can be found in chapter 3.1 of Palmer, A.
G. Chem Rev 2004, 104, 3623–3640.
I wrote this function (initially in MATLAB) in 2010.
I agree that this code is released under the GPL3 or higher licence.
Paul
def func1(R2E,R2G,fg,kge,keg, cpmgfreq,tcpmg):
kex=kge+keg
Rcalc_array=np.zeros(len(cpmgfreq))
Rr = -1.*np.matrix([[R2G, 0.],[0., R2E]])
Rex = -1.*np.matrix([[kge,-keg],[-kge, keg]])
RCS = complex(0.,-1.)*np.matrix([[0. ,0.],[0.,fg]])
R = Rr + Rex + RCS
cR = np.conj(R)
IGeq=keg/kex; IEeq=kge/kex
M0=np.matrix([[IGeq],[IEeq]])
for k in range(len(cpmgfreq)):
tcp=1./(4.*cpmgfreq[k])
prop_2
=np.dot(np.dot(sci.expm(R*tcp),sci.expm(cR*2.*tcp)),sci.expm(R*tcp))
prop_total =mpower(prop_2,cpmgfreq[k]*tcpmg)
Moft = prop_total*M0
Mgx=Moft[0].real/M0[0]
Rcalc=-(1./tcpmg)*math.log(Mgx);
Rcalc_array[k]=Rcalc
return Rcalc_array
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-devel mailing list
relax-devel@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-devel