open-discussion > New JIST Modules: T1 mapping
Showing 1-1 of 1 posts
Mar 3, 2010 03:03 PM | dpolders
New JIST Modules: T1 mapping
Hi all!
I'd like to introduce two new JIST modules, and a supporting algorithm:
-plugins.quantitative.UnshuffleT1MappingVolumes
-plugins.quantitative.T1Mapping_SliceShift
-algorithms.quantitative.T1Fitting
Although this slice-shift technique is rather specialized, the T1 fitting might appeal to a wider audience, so I thought to share it with all.
This set of modules allows for post-processing of a quantitative T1 sequence using the slice-shift technique. By 'sharing' a global inversion pulse a volume of ~50 slices are acquired at different times. Next repetition, the order in which these slices are acquired is shifted, and in ~25 repetitions all slices are measured at 25 different time points.
The result is a relatively quick method to acquire 20-30 time points to fit a T1 value to, which allows for high quality T1 fitting. The disadvantage of this slice-shifting is that the slices need to be re-ordered before fitting can be done.
These modules allow for automatic reordering of slices, based on our current implementation of the slice-shift technique (over the dynamics), and the slice-ordering of the sequence (interleaved/ascending/descending) (over one volume).
The second module, responsible for the actual T1 fitting, is an implementation of the Levenberg-Marquardt optimizer. The optimization was -drastically- sped up by using the analytical solutions for the 1st and 2nd derivatives of the function to be optimized (with thanks to Mathematica). Of course this wont work for all functions and applications, but it increased the processing speed from 455 to roughly 7500 voxels per minute. I am in no way a real programmer however, and I am sure there are many more steps that can be taken to optimize this code.
While I think I did a reasonable job at annotating the code and explaining the modules in the description fields, I will have a stab at writing a small manual for the Wiki. Not sure when that will be finished though.
I look forward to getting some feedback, or even -gasp- user questions!
kind regards,
Daniel
I'd like to introduce two new JIST modules, and a supporting algorithm:
-plugins.quantitative.UnshuffleT1MappingVolumes
-plugins.quantitative.T1Mapping_SliceShift
-algorithms.quantitative.T1Fitting
Although this slice-shift technique is rather specialized, the T1 fitting might appeal to a wider audience, so I thought to share it with all.
This set of modules allows for post-processing of a quantitative T1 sequence using the slice-shift technique. By 'sharing' a global inversion pulse a volume of ~50 slices are acquired at different times. Next repetition, the order in which these slices are acquired is shifted, and in ~25 repetitions all slices are measured at 25 different time points.
The result is a relatively quick method to acquire 20-30 time points to fit a T1 value to, which allows for high quality T1 fitting. The disadvantage of this slice-shifting is that the slices need to be re-ordered before fitting can be done.
These modules allow for automatic reordering of slices, based on our current implementation of the slice-shift technique (over the dynamics), and the slice-ordering of the sequence (interleaved/ascending/descending) (over one volume).
The second module, responsible for the actual T1 fitting, is an implementation of the Levenberg-Marquardt optimizer. The optimization was -drastically- sped up by using the analytical solutions for the 1st and 2nd derivatives of the function to be optimized (with thanks to Mathematica). Of course this wont work for all functions and applications, but it increased the processing speed from 455 to roughly 7500 voxels per minute. I am in no way a real programmer however, and I am sure there are many more steps that can be taken to optimize this code.
While I think I did a reasonable job at annotating the code and explaining the modules in the description fields, I will have a stab at writing a small manual for the Wiki. Not sure when that will be finished though.
I look forward to getting some feedback, or even -gasp- user questions!
kind regards,
Daniel