Dear Slicer community,
I came across a problem when using the T2 mapping extension for mouse brain data acquired on a 9.4T Bruker scanner (MSME sequence with 30 echo times).
I loaded Bruker DICOM files via the MultiVolumeImporter PlugIn as “30 frames MultiVolume by EchoTime” and used this as input in the T2 mapping-Module. I generated a T2-map with thresholds of 0.1 for R^2 and 300 for T2. The output looks reasonable.
I then wanted to extract the actual T2-values for different anatomical regions. I used Segment editor for segmentation and Segment statistics. The values displayed in the table however seem to be incorrect and do not match the values expected from the literature or derived from Bruker’s Paravision analysis tool: mean values for different structures (i.e. cortex and CSF) are roughly the same and higher than they should be.
Has anyone experience with this? Is there anything I need to do in a different way? I assume it has something to do with how the map is calculated, but am not sure about that.
Thanks a lot for your help in advance!!!
Bruker scanners are well known to produce inconsistent and incorrect DICOM outputs (you can read about frustration of Bruker users here). Most probably you need to fix MultiVolume.FrameLabels
values in Data module “MRML node information” section.
Thanks for the fast reply! Yes, I’m aware of the issues with Bruker DICOMS unfortunately.
I checked MultiVolume.FrameLabels values and these were the echo times in ascending order, which I think is correct. Or should it be something different?
Additionally, when looking at the imported images in MultiVolume Explorer, they appear to be fine.
Could there be a problem when Bruker files are used for the calculation of the T2 map in the T2-mapping extension?
This is a Python-scripted module, so you can inspect and modify the code very easily.
The source code is available here: https://github.com/gattia/Slicer-T2mapping/blob/master/T2mapping/T2mapping.py#L223-L298. The computation part is quite short and has lots of comments, and high-level overview is also given in the module documentation, so you should be able to tell if the computation is correct.
If you enable developer mode in Slicer application settings and restart the application then “Edit” button will appear in the modue, which you can use to open the source code in a text editor. After making changes, you just need to click “Reload” button.
Thanks for the reply! I was able to figure out how the computation is done, but I’m afraid that it might not be working well for my data.
Is there a way to display a plot with the fit or an error map?
Hitting the “Edit” button in developer mode does not open the code in a text editor. Is there anything else apart from enabling developer mode and restart Slicer to use this function?
Make sure .py fine extension is associated with a text editor. But you don’t need to use this convenience feature, you can open the module’s .py file manually (you can find its location in the application log).
I don’t think the module offers this, but you can create plots yourself. See examples here: Documentation/Nightly/ScriptRepository - Slicer Wiki.
Would you like to plot intensity values at specific positions?
@KatS Im the developer of that module and just came across this post. Did you figure out the problem? It could be that for some reason your data wasn’t playing nicely with the linear fit method (log transform the data and then fit a linear equation). I’d be interested in helping out to make sure this works for others.