JosePMarques / MP2RAGE-related-scripts

MP2RAGE Scripts - T1 map correction & Background noise removal
GNU General Public License v3.0
51 stars 27 forks source link

GRE signal equations: accuracy and definition of exponents (n_bef / n_aft) #8

Closed mafortin closed 3 years ago

mafortin commented 3 years ago

Hi, thank you for sharing your codes about MP2RAGE. It is very helpful and interesting.

I have some questions related to your implementations of n_bef and n_aft in MP2RAGE_lookuptable.m and MPRAGEfunc.m.

1 - From what I can see, if you give only one value for nZslices (i.e. length(nZslices)==1), the algorithm is assuming that no partial fourier was applied during the acquisition. If partial fourier was applied, you NEED to put two values as inputs for nZslices right? See image below which is directly taken from your algorithm. Thus, if only one nZslices value is given as input AND partial fourier was applied during the acquisition, it will lead to errors since the algorithm is not processing nZslices as if partial fourier was applied.

image

2 - Moreover, I am not sure to clearly understand how you implemented the exponents in your GRE_TI1 and GRE_TI2 signal equations in your algorithm in comparison with appendix 1 of your original article. In other words, I do not understand how n_bef can be equivalent in the algorithm and appendix 1 (in equation A1.5 precisely). From what I understand, in your algorithm, n_bef equals nZslices/2 or nZslices*(PF - 0.5) depending on the length of nZslices, which seems alright. However, GRE signal equations in your algorithm (MPRAGEfunc, see first image below) do not have the - 1 in the exponents as shown in appendix 1 (see second image below). Only n_bef (which is equivalent to n/2 in your appendix if no partial fourier was applied) is present in your algorithm. I am wondering which one is the physically accurate version of the equation in order to find the correct signal/T1 values relation.

Your original algorithm: image Definition of signal equations from Appendix 1 of your original article: image

3 - Finally, I had a hard time trying to understand how GRE_TI2 signal equation was calculated in MPRAGEfunc (last part of the code). I am curious if there is a special version or modification of equation A1.5 in appendix 1 that is done here.

GRE_TI2 signal equation calculation in MPRAGEfunc.m: image

Thank you.

Marc

JosePMarques commented 3 years ago

Hi Marc-Antoine,

1 - you are correct, simply specifying the Nzslices (it is an historical name, Nshots is probably a better one) when you use partial fourier or parallel imaging is a bad idea, that is why I introduced this option of explicitely adding the number of excitations before and after the k-space center.

2 – it depends where your k-space center really is, I think by the time this code was written I realized the k-space center was at excitation n/2 +1, similarly to how dfft are usually defined. In practice we are speaking about adding or subtracting the saturation of 1 rf pulse amongst 80… so it will have a very small effect on T1 (you can double check by creating the lookuptable with nZslices = [80 80] or [79 81])

3 – in the function the signal for INV2 (3 4 5 and so on if you wish) is written in a more generalizable form. The first part (line 134) calculates how the z magnetization evolves from the center until the end of the previous turbo flash. The second part (line 137) accounts for the recovery during the dead time (between the two turboflash blocks) plus the impact of the first half (before kspace centre) of the current readout block on the z magnetization. In the paper it was written so that it would be as short as possible but it isn’t generalizable (it is worked out backwards in time from the steaty state magnetization at the inversion pulse)

Hope this helps,

José

From: Marc-Antoine Fortin notifications@github.com Sent: Wednesday, 18 November 2020 19:18 To: JosePMarques/MP2RAGE-related-scripts MP2RAGE-related-scripts@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [JosePMarques/MP2RAGE-related-scripts] GRE signal equations: accuracy and definition of exponents (n_bef / n_aft) (#8)

Hi, thank you for sharing your codes about MP2RAGE. It is very helpful and interesting.

I have some questions related to your implementations of n_bef and n_aft in MP2RAGE_lookuptable.m and MPRAGEfunc.m.

1 - From what I can see, if you give only one value for nZslices (i.e. length(nZslices)==1), the algorithm is assuming that no partial fourier was applied during the acquisition. If partial fourier was applied, you NEED to put two values as inputs for nZslices right? See image below which is directly taken from your algorithm. Thus, if only one nZslices value is given as input AND partial fourier was applied during the acquisition, it will lead to errors since the algorithm is not processing nZslices as if partial fourier was applied.

[image]https://user-images.githubusercontent.com/51452174/99565785-13462a80-299a-11eb-83f6-4f11f81d2d1c.png

2 - Moreover, I am not sure to clearly understand how you implemented the exponents in your GRE_TI1 and GRE_TI2 signal equations in your algorithm in comparison with appendix 1 of your original article. In other words, I do not understand how n_bef can be equivalent in the algorithm and appendix 1 (in equation A1.5 precisely). From what I understand, in your algorithm, n_bef equals nZslices/2 or nZslices*(PF - 0.5) depending on the length of nZslices, which seems alright. However, GRE signal equations in your algorithm (MPRAGEfunc, see first image below) do not have the - 1 in the exponents as shown in appendix 1 (see second image below). Only n_bef (which is equivalent to n/2 in your appendix if no partial fourier was applied) is present in your algorithm. I am wondering which one is the physically accurate version of the equation in order to find the correct signal/T1 values relation.

Your original algorithm: [image]https://user-images.githubusercontent.com/51452174/99568245-33c3b400-299d-11eb-957a-ec7888a0d67b.png Definition of signal equations from Appendix 1 of your original article: [image]https://user-images.githubusercontent.com/51452174/99568021-e8a9a100-299c-11eb-839b-385e6d762cf3.png

3 - Finally, I had a hard time trying to understand how GRE_TI2 signal equation was calculated in MPRAGEfunc (last part of the code). I am curious if there is a special version or modification of equation A1.5 in appendix 1 that is done here.

GRE_TI2 signal equation calculation in MPRAGEfunc.m: [image]https://user-images.githubusercontent.com/51452174/99570475-fca2d200-299f-11eb-8604-44cd54f1df22.png

Thank you.

Marc

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/JosePMarques/MP2RAGE-related-scripts/issues/8, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEUDHPY4KO3CBPCTBNUIVCTSQQFWJANCNFSM4T2KK2VQ.

mafortin commented 3 years ago

Hi Jose,

thank you for your quick, clear and helpful reply.

Have a nice day.

Marc