Bizzare Tractogram

Dear Experts,

Thank you for this wonderful tool.

I performed Whole brain tractography by following the instructions in the beginner DWI tutorial in the documentation. However, the tracts so generated look very bizarre; attaching images for your perusal.

FYI, acquisition was made on 3T GE 750w scanner, with 20 directions and bvalue of 1000.

I would be highly obliged if someone can opine and advice.

Thanks again.

Best Regards,
Amit.

Hi Amit,

The first thing that comes to (my) mind is an issue with the gradients orientation. Is it possible that you have a flipped sign in the x-direction (or y-direction)? You could try rerunning the analysis pipeline after flipping either the x- and/or y-component of the gradients and see if that makes any difference.

One way to spot this could be visualizing the spherical harmonics lobes from the CSD file you created along the way. Could you perhaps visualize them on an axial slice around the genu of the of corpus callosum? That would allow you to see if the orientation is fine.

Also, 20 diffusion encoding directions is not much. Are you trying to use the spherical harmonics approach rather than a diffusion tensor approach for modelling the data? Check out this page on the relation between number of diffusion directions and the maximal l_max you should be fitting to your data.

Best,
Roey

P.S.
There’s a very old thread about it (from the older version of mrtrix), mentioning gradient issues specific for GE scanners. Might be useful (might not).

See other gradient-direction issues here. Making sure you’re using the up-to-date versions of the various toolboxes might also be helpful.

Hello @roeysc,

Thank you for the prompt response.

Please help me identify flipped sign in the gradient directions. Pardon my ignorance.

Is their an MRtrix command which can reorient the directions optimally?

Thanks again.

Best Regards,
Amit.

Is their an MRtrix command which can reorient the directions optimally?

You can try running the dwigradcheck script and see what it provides.

Hi @amitjc,

In addition to @rsmith’s answer, have a look at Fig 5.1 in this thread.

If you look at the anterior (or posterior) part of the corpus callosum, you will see that the CSD lobes don’t point in the right direction. They don’t “flow” along the white matter tract as you would expect. If you were to flip the sign of the y-axis, in that case, it would probably solve the problem.

If you’re not sure how to visualize the CSD file you’ve created, go to the “ODF display” tool in mrview, and click on the left-most option in the menu that opens. You can see an example in this tutorial video.

Hope this helps,

roey

How many streamlines did you generate? Looks like only a few thousand. If you try generating some more, say around 20 thousand, then the tractograms will look better and it will be easier to see which gradient needs to be flipped.

Which DV software is on the console? If DV25 or below then indeed an axis will need to be flipped.

Jerome

Hello Jerome,

The Console version is DV25.

Attaching image with 20000 tracts for your perusal and opinion.

Thank you,

Best,
Amit.

Hello Robert,

Thank you for the suggestion.

The tractogram post dwigradcheck can be found in the reply to Jerome.
No difference.

Looking forward to further guidance.

Best Regards,
Amit.

Hello Roey,

Thank you for your response.

PFA the FOD image for perusal and opinion.

Best Regards,
Amit.

Hey @amitjc,

Well, the orientations look fine to me. However, it seems like the CSD data is only present in some of the horizonal lices. Is that right? If you press “ctrl+i” to toggle off the interpolation, does it seem like the CSD data cover the antire voxels?

I haven’t encountered such a situation before. Could this be related to how you acquired the data?

My guess is that if you increase the step size in the tracking algorithm, you might get more sensible streamlines. Could you try this? (although you would still want to figure out why the data looks so sparse along the z axis).

Also, could you perhaps post here the output of running mrinfo on your input diffusion data file?

Best,

Roey

I agree. Can you please post the output of mrinfo? I am assuming you acquired very anisotropic data (thick slices and high in-plane resolution). There also seems to be quite a bit of noise - have you tried to use just the WM as the mask?
If you are able to, please upload the dicoms or dwi.mif to a cloud and I would be happy to have a look to work out what is going on.
Jerome

Hello Roey,

Appreciate your constant support.

Please find the mrinfo output for perusal and opinion.

Thank you.

Best Regards,
Amit.

************************************************
Image:               "dwi.nii.gz"
************************************************
  Dimensions:        256 x 256 x 48 x 21
  Voxel size:        0.9375 x 0.9375 x 3 x 9.822
  Data strides:      [ -1 2 3 4 ]
  Format:            NIfTI-1.1 (GZip compressed)
  Data type:         signed 16 bit integer (little endian)
  Intensity scaling: offset = 0, multiplier = 1
  Transform:                    1           0          -0      -130.4
                                0           1          -0      -132.3
                               -0           0           1      -74.51
  comments:          TE=75;Time=95257.000
  dw_scheme:         0,0,0,0
  [21 entries]       1,0,0,1000
                     ...
                     -0.5610779953,-0.7010974593,-0.4400611728,999.722
                     -0.4049129531,0.6308643787,-0.6618577159,1000.43

Hi Amit,

I see. Looking at you “Voxel size” field, you can see that while the in-plane resolution is high (0.9375, in fact higher than commonly used for tractography analysis, 1.5-2 mm), the slices along the z direction are large (3 mm).

I don’t have experience with anisotropic voxels in diffusion data. You can probably find some information about the issues involved with this kind of data (e.g., here).

I hope someone else might have more useful suggestions!

Best wishes,
Roey

Hello Jerome,

Appreciate your constant support.

PFA the link to the DICOM dti files for perusal and opinion.

Thank you.

Best Regards,
Amit.

http://sendanywhe.re/15UFJJHA

Hi Amit,

I have processed your data.

The data is interpolated, so the original matrix was 128x128, and interpolated to 256x256 during recon, so in-plane ends up being 0.9375x0.9375. The slices are quite thick (3mm). Do you have research mode? If yes, then you can turn off the interpolation (download CV, select “rhimsize”, and change 256 to be 128).

No axis flipping was required.

Beginning with deterministic tractography, it all looks good.

I then preprocessed the data and generated the response file, FODs and probabilistic tractography. The FODs are not very clean.

So I started at the beginning and resized the data to be 3mm isotropic and then reran the pipeline. The FODs look better from coronal and sagittal (as expected), but reslicing created voxel mixing so this noise was also tracked.

Finally I ran the resized FODs through tractseg (as tractseg doesn’t like very anisotropic data) and output looks very good.

Summary: thick slices, interpolated in-plane, so very anisotropic data. Low number of diffusion directions (20).

Jerome

Amit_resized_3mm_iso Amit_response_file

Here are some tractseg outputs.
Jerome

Hello Jerome,

Thanks for those wonderful tractograms.

I will be highly obliged, if you can provide a step-by-step guide to creating the tractograms.

Do suggest ideal slice thickness and number of directions which can be acquired in reasonable duration.

pip3 installed tractseg as pip (python version 2.7)wouldn’t proceed with installation

$ pip install tractseg
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
ERROR: Could not find a version that satisfies the requirement tractseg (from versions: none)
ERROR: No matching distribution found for tractseg

Research mode not enabled on the clinical scanner.

Looking forward to further guidance.

Thanks again.

Best Regards,
Amit.

Even more beautiful!

Hi Amit,

I suggest 2.00mm slice thickness; 66 slices should be enough for whole brain coverage. 60 slices should be suffice. If you do not have hyperband (multiband) then you may want to increase the slice thickness to 2.5mm. Your 24 channel head coil should be able to cope with a hyperband factor of 2 but probably not 3. Note that getting a research license is free; just ask you local GE person or join the GE Collaboration Community https://collaborate.mr.gehealthcare.com/login.jspa?referer=%2Findex.jspa .

Some notes about tractseg:

  • Make sure to install python 2.x (best is 2.7), not python 3 (3 could cause problems with other programs).
  • Install Pytorch v1.0
  • Then install tractseg (not the container version as that can’t do probabilistic tractography)
  • Check the path where tractseg was installed. For example, on one of my computers it is here:

/home/ubvm18p04/.local/bin/TractSeg

  • So, locate where your tractseg is.
  • Then run these commands from the location of your fod.mif :

sh2peaks fod.mif peaks.nii.gz -num 3

/home/ubvm18p04/.local/bin/TractSeg -i peaks.nii.gz --bundle_specific_thr ;

/home/ubvm18p04/.local/bin/TractSeg -i peaks.nii.gz --output_type endings_segmentation --postprocess ;

/home/ubvm18p04/.local/bin/TractSeg -i peaks.nii.gz --output_type TOM --bundle_specific_thr ;

/home/ubvm18p04/.local/bin/Tracking -i peaks.nii.gz --tracking_dir TOM_trackings_filt --tracking_format tck ;

The first time you run tractseg it will download the training data set which is 140MB for about 3 of the steps.

The last step will convert the outputs (72 tractograms) to MRtrix .tck format in a directory called TOM_trackings_filt.

Regards,

Jerome

Hello Jerome

Can’t proceed with pip install tractseg.

Please advice

Thank you,

Best Regards,
Amit.