Jump to content


Photo
- - - - -

What Is The True Way To Determine Time Parameters From Semilog Graph?

nmr curve fitting semilog t2 relaxation t2 time

  • Please log in to reply
3 replies to this topic

#1 John92

John92

    Curious

  • Members
  • Pip
  • 6 posts

Posted 13 May 2019 - 05:47 PM

Hi all,
I have experimental nuclear magnetic resonance data that describe T2-relaxation of the nuclei in the sample of interest. The experimental points obey bi-exponential dependence: I = I1*exp(-t/T2_1) + I2*exp(-t/T2_2), where I is current intensity, I1 and I2 are intensities which represent fractions of two T2 components - T2_1 and T2_2. The purpose is to calculate T2_1 and T2_2. To calculate T2_1 and T2_2, I fit bi-exponential equation mentioned above to experimental data points. But in order to ensure that calculated T2 values are true, I'd like to build semilog graph. For this, I take natural logarithm of experimental intensities, and thus the vertical axis in the graph is now in ln(I). Then, in obtained semilog graph, I need to divide points into two parts: first part of points will be fitted by linear equation y1 = C1 - t/T2_1, and the second part of points will be fitted by linear equation y2 = C2 - t/T2_2. And here I have two variants of how to do this fitting. The first variant is just to fit each part of data points with linear equation with corresponding initial guesses. And the second variant is the following: first, I fit the second part of points with equation y2 = C2 - t/T2_2, i.e. 7 points as you can see in the attached images. Thus I found C2 and T2_2 from fit. Then, using equation y2 = C2 - t/T2_2, I find ln(I) values for time values corresponding to the first part of points (i.e. first 3 points as you can see in the attached images). After that, I subtract these extrapolated ln(I) values from first three experimental ln(I) values. Let's call these new values as ln(I)1, ln(I)2, ln(I)3. Finally, I fit these 3 points with equation y1 = C1 - t/T2_1 and find the parameters C1 and T2_1. Could you please tell me, which variant of calculating T2 values is true? Please find attached two images which show the difference between two mentioned methods of calculating T2 values.

Attached Thumbnails

  • Graph1.png
  • Graph2.png

Edited by John92, 13 May 2019 - 05:48 PM.


#2 John92

John92

    Curious

  • Members
  • Pip
  • 6 posts

Posted 14 May 2019 - 06:12 AM

I forgot to tell this, given the following data:

 

General Formula:   I(t)  = I1(t) + I2(t)  =  I1.e-t/T2_1 + I2.e-t/T2_2

Unknown values:  I1, I2, T2_1 and T2_2

Available data: 10 values of I(t).

 

 

1) If you can get the values at time t=0, then I(0) = I1 + I2, so you eliminate one unknown parameter.

 

2) If you can get the value of I(t) at the highest time possible, then you have a point for the dominant sub_function.

 

    You can use, then, the Taylor's approximation for ez = 1 + z + 1/2 z2 + 1/6 z3 + ...

 

3) Dropping second order terms and above, you get ez = 1 + z

 

  So, with

 

    I1.e-t/T2_1

 

  you can use the approximation I1(t) = I1 - I1. t / T2_1

 

  and, as I1(t) is DOMINANT for high values of t (in this selection), you have, with a good degree of approximation

  that;

 

    I(t) = I1(t) = I1 - I1. t / T2_1

 

  The problem is to identify which sub-function is dominant for high values of t: I1(t) OR I2(t).

Thanks a lot for your detailed answer! Initially I fit the function I(t; I1, T2_1, I2, T2_2) = I1*exp(-t/T2_1) + I2*exp(-t/T2_2) to the entire set of data, and thus I obtained values for fitting parameters I1, T2_1, I2, and T2_2. But my supervisor told me that I should check found T2_1 and T2_2 values using semilog graph, i.e. taking natural logarithm of intensity values and fitting straight lines to two parts of data points. She said that I should fit y2 = C2 - t/T2_2 to the second part of points, then extrapolate this fitting line for the time values corresponding to the first part of points, then subtract extrapolated values from the first part of points, and finally fit y1 = C1 - t/T2_1 to these new points.

But I have doubt regarding this method, because T2_1 value obtained using this method (when subtracting extrapolated values from the first part of experimental points) is further from the truth than the T2_1 value obtained using the method when subtraction is not applied (left graph in my main post). I.e. if I just fit first part of data points with linear equation without any subtraction, I get T2_1 value that is close to the truth.



#3 John92

John92

    Curious

  • Members
  • Pip
  • 6 posts

Posted 15 May 2019 - 05:41 AM

It seems that I don't understand more basic things. I'd like to ask a question about plotting in semilog scale. What is the difference between plotting intensity on a log scale (and the horizontal axis is time) and plotting ln(intensity) vs time (ln - natural logarithm, or base "e" logarithm)? I don't understand the first one - plotting intensity on a log scale. I know that, for example, in Matlab there are functions loglog, semilogx, semilogy, but again, I don't understand, how they work. What mathematical formulas should I use to implement conversion from standard scale to semilogy scale (when y-axis is in log scale) if I want to do such conversion manually? Moreover, from the Matlab help for semilogy function: "semilogy(Y) creates a plot using a base 10 logarithmic scale for the y-axis and a linear scale for the x-axis". Why do they use base 10 logarithmic scale and not base "e" logarithmic scale? If I want to use semilogy function, but with "e" base logarithm (natural logarithm), how can I implement this, for example, in Matlab? On the other side, plotting ln(intensity) is clear, because in this case I just take natural logarithm of my original intensity values, and then plot these ln(intensity) vs time. I also found the site http://measurebiolog...nding_log_plots, where topic is "Understanding log plots". On that site, authors show examples of plotting in log scale using Matlab. In the section "Linear vs. log scale", the authors wrote the following: "There are two ways to make a log-log plot in MATLAB. The first is to use the plot command to plot log(y) vs. log(x) on a linear scale.
plot( log10(x), log10(y))
Alternatively, you can use the loglog command to make a plot with log-scale axes: 
loglog( x, y)"
Then they show corresponding graphs. These two plots look the same.



#4 John92

John92

    Curious

  • Members
  • Pip
  • 6 posts

Posted 15 May 2019 - 10:09 AM

Thank you very much!