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

nmr curve fitting semilog t2 relaxation t2 time

6 replies to this topic

#1 John92

John92

Curious

• Members
• 4 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

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

#2 rhertz

rhertz

Questioning

• Members
• 148 posts

Posted 13 May 2019 - 09:43 PM

I can't answer your question directly, because I feel that is some data that is missing,

What I did is the following: I make a simulation with your general formula and the four parameters

I1, I2, T2_1 and T2_2 as variables, in order to understand the problem.

Due to the general shape that both linear approximations comform, I think that there is one component

that is dominant at high values of times (because of time parameter) and another component that is

dominant at low values of times (it has high value i(0) and a low time parameter).

The problem is that I don't know if it is the component I1(t) or the component I2(t).

I run arbitrary values for the four parameters at Excel (see the screen capture) and drew two graphs:

1) The first one is based on linear values for x and y (check Excel). I choose that I2(t) be the dominant

for higher values of t, and that I1(t) be the dominant for lowe values of t.

Also, I choose the LOG representation of data (remember, data is linear)

As you can see, there is a substantial difference where both linear functions (of yours) could connect,

so I advice to be carefull extrapolating and interpolating.

2) The second graph is (apparently) what you did: At Excel, you can see that I obtained Ln I(t), and I made

a graph with it.

The shape is similar to the first graph, except that this time the Y axis is LINEAR and LN I(t) is used.

The components I1(t) and I2(t) are impossible to put into the graph, because ln(a+ has not an analytical solution.

So, I just make a graph with the logarithm of the general function.

Once you find out WHICH sub-function is dominant at higher values of t, you'll be able to make the linear approximation.

Once you get the two parameters, study carefully the graphs and you'll find the proper way to deduct the two other

parameters.

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).

Curves from Simulationā

Simulation to fit the points provided:

Edited by rhertz, 13 May 2019 - 10:02 PM.

• John92 likes this

#3 rhertz

rhertz

Questioning

• Members
• 148 posts

Posted 13 May 2019 - 10:34 PM

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).

• John92 likes this

#4 John92

John92

Curious

• Members
• 4 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.

#5 rhertz

rhertz

Questioning

• Members
• 148 posts

Posted 14 May 2019 - 07:29 AM

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.

One advice for the solution of this problem, as I couldn't attach the Excel file.

This is a third graph, with I(t), I1(t) and I2(t) are displayed on linear X and Y axis.

I put this as a simple example of the huge differences that exists when you use

logarithms. In this case, I2(t) is the dominant sub-function of I(t) in the long term,

and I1(t) is the one in the short term.

Substracting values in the LOG world can produce huge differences in the linear world.

May I suggest that you reproduce the Excel file?

It's very simple, using the four parameters and an arbitrary timeline, which you can

I used one column for each component I(t), I1(t) and I2(t), PLUS Ln I(t) in the fourth column.

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

• John92 likes this

#6 John92

John92

Curious

• Members
• 4 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.

#7 John92

John92

Curious

• Members
• 4 posts

Posted 15 May 2019 - 10:09 AM

Thank you very much!