Load TBSS output files into Slicer?

Hello,

I have been using FSL’s TBSS to compare the FA, RD, and AD values of two different groups. The result of this analysis is a single statistics file which is in the NIFTI format (.nii.gz), highlighting voxels that are significantly different between the two groups in terms of FA/RD/AD. I am trying to load this into Slicer, to create a diagram similar to this one, but I’m very new to the software. Could someone help me out? Is there a way to load TBSS output data into Slicer?

Thank you!

Hi! In general it should be possible to load nifti files in Slicer. Could you let us know what steps you followed and what happened? There are tutorials for loading data here:
https://www.slicer.org/wiki/Documentation/4.10/Training

An alternative solution might be to use MRIcroGL. It has far fewer features than Slicer, but it is a simple tool that might solve your task. Assuming you have MRIcroGL v1.2 the following script would create the following image (you would want to use the ‘mni152’ template if your data was normalized, and change spmMotor to the name of your statistical map).

import gl
gl.resetdefaults()
#open background image
gl.loadimage('spm152')
gl.overlayloadsmooth(1)
#open overlay: show positive regions
gl.overlayload('spmMotor')
gl.minmax(1, -2,-5)
gl.colorname(1,'8redyell')
gl.colorfromzero(1,1)
gl.cutout(0.5,0.6,0.5,0,1,1)
gl.shadername('OverlaySurface')
gl.backcolor(255,255,255)

But the rendering is cooler!

Thank you! I followed these instructions, but the output has some sort of strange cuboid tessellation pattern that I haven’t seen in other figures. Does this have something to do with the settings I’m using? Or, do you think it has to do more with the structure of the data? TBSS uses voxels for analysis, so perhaps those cuboid patterns are a result of that (?)

This looks very cool! I will test this out, as well. Thank you :slight_smile:

It looks like you are volume rendering the white matter skeleton voxels from tbss. More typical displays instead overlay slices of such a stats volume over a background anatomical image, with some nicely chosen colormap to only show significant regions. (Chris gave a very cool example.)

Got it, that’s what I’m trying now. To create a cutout like in Chris’s example, would I use a mask? I can’t figure out how to hide the masked segment…

@Chris_Rorden is it possible to export a figure like this to a .obj file out of MRIcroGL?

@M.F. I would suggest you look at the “3D Slicer Surface Model Tutorial fMRI” YouTube video. MRIcroGL handles voxelwise volumes, not meshes (like obj files). Slicer can handle both voxels and meshes.

For this simple task, you might also want to try Surfice which only deals with meshes. If you want to apply a simple statistical threshold to your voxels (say z > 4.95) you would choose the Advanced/ConvertVoxelwiseVolumeToMesh and specify your threshold. You can then save to OBJ/GIFTI/PLY/MZ3/VRML/STL format. Assuming you named your output “myMesh.obj” you could run the following script to get the following image.

import gl
gl.resetdefaults()
gl.meshload('BrainMesh_ICBM152Right.mz3')
gl.overlayload('myMesh.obj')
gl.overlaycolorname(1, 'red')
gl.shaderxray(1.0, 0.3)
gl.azimuthelevation(110, 15)
gl.meshcurv()

At the moment there are a lot of free tools, so you should be able to mix and match them for your problems. The learning curve is steeper for Slicer since it can do much more and is far more extensible.

Thank you, this worked like a charm!