Macaque pipeline feedback


I am attempting to run probabilistic tractography analysis in a set of macaques. I think what I have done makes sense, but I would really appreciate some feedback on the pipeline. In particular, I have used a few suggestions from other forum posts which may be out of date - for example running msmt_csd on single shell data and creating my own 5TT image for a macaque study. This post is a bit long as I have tried to include the whole pipeline so apologies in advance, hopefully it is simple enough to navigate.

The data

From A macaque connectome for large-scale network simulations in TheVirtualBrain | Scientific Data Shen et al, 2019
9 adult male macaques, 7T Siemens MAGNETOM, b = 1000 s/mm2, 64 directions, 24 slices. 1mm isotropic.

Pre processing
Data released pre-processed having undergone BET, FSL topup and eddy correction. B0 images extracted.

MRTRIX pipeline

echo “mriconvert to .mif”
mrconvert $subj_output_folder/data.nii $subj_output_folder/DWI.mif -fslgrad $subj_output_folder/space-subject_desc-eddy_dwi_updated.bvec $subj_output_folder/space-subject_desc-eddy_dwi_updated.bval -datatype float32 -stride 0,0,0,1 -force -info

echo “dwibiascorrect”
dwibiascorrect ants $subj_output_folder/DWI.mif $subj_output_folder/DWI_bias_ants.mif -bias $subj_output_folder/bias_ants_field.mif -force -info

echo “dwi2response”
dwi2response dhollander $subj_output_folder/DWI_bias_ants.mif $subj_output_folder/response_wm.txt $subj_output_folder/response_gm.txt $subj_output_folder/response_csf.txt -voxels $subj_output_folder/RF_voxels.mif -force -info

echo “dwiextract”
dwiextract $subj_output_folder/DWI_bias_ants.mif - -bzero | mrmath - mean $subj_output_folder/meanb0.mif -axis 3 -force -info

echo “Generating mask”
dwi2mask $subj_output_folder/DWI_bias_ants.mif $subj_output_folder/DWI_mask.mif -force -info

echo “Generate FODs”

Because we only have single shell data, I have used a suggestion posted elsewhere on this forum. Basically we run this in the same way as a typical call to dwi2fod msmt_csd, however we leave out the grey matter parts. Original post here, hopefully I understood properly : FBA Single Shell - High GM FOD values - #2 by bjeurissen. A question I have is just how much will this affect the quality of my results, what kind of drawbacks should I mention, for example, in a limitations section of a paper?

dwi2fod msmt_csd $subj_output_folder/DWI_bias_ants.mif $subj_output_folder/response_wm.txt $subj_output_folder/wmfod.mif $subj_output_folder/response_csf.txt $subj_output_folder/csf.mif -mask $subj_output_folder/DWI_mask.mif -force -info

echo “Normalising data for ${1}”
#mtnormalise wmfod.mif wmfod_norm.mif csf.mif csf_norm.mif -mask DWI_mask.mif -check_norm mtnormalise_norm.mif -check_mask mtnormalise_mask.mif -force -info

Creating custom 5TT image

FSL FAST (via 5TTGEN) can segment the T1w image into gm, wm, and csf but cannot, understandably, locate the human-derived subcortical structures. Instead, I am using the 5TT image provided with the D99 macaque atlas. Here I extract each of the tissue types, warp it to diffusion space (using a transform performed elsewhere in my pipeline) and then put them all together to create an 5TT image suitable for MRTRIX. This was partially based on a forum answer given here: converting FSL FAST segmentation into 5ttgen format

I assume this is an okay approach overall, however the sub-cortical grey matter includes the brainstem and cerebellum, is this okay?

Running tractography

tckgen -act 5tt_output.mif -backtrack -maxlength 250 -nthreads 8 -cutoff 0.06 -select 10000000 -seed_dynamic wmfod_norm.mif wmfod_norm.mif tracks_10M.tck -force

tcksift2 -act 5tt_output.mif -out_mu sift_mu.txt -out_coeffs sift_coeffs.txt -nthreads 8 tracks_10M.tck wmfod.mif sift_1M.txt -force

Many thanks for taking the time to read this, hopefully it might be helpful for anyone performing a similar analysis. Any help or suggestions are really appreciated.



I never worked with macaque data, but all your pipeline makes sense.

I assume you use the main_b0 for visualization, as you don’t use it anywhere else in the pipeline.

I don’t think you have to worry about the limitations of using just two compartments for the response functions, is an extended practise.

That’s ok, I do something similar with neonatal imaging, the cerebellum as a subcortical and the brainsteam as a white matter. Having the structures labeled as a subcortical GM means the tract will be allowed to enter those areas and navigate inside of it, but they won’t be allowed to leave.

Remember that if you want to calculate the connectome and extract meaningfully measures comparing the number of streamlines, you need to use the same set of response functions for all your population.

I hope this helps.

Best regards,


Hi Manuel,

That’s great, appreciate the feedback.

“Remember that if you want to calculate the connectome and extract meaningfully measures comparing the number of streamlines, you need to use the same set of response functions for all your population.”

Do you mean that I should estimate the response functions in one participant and use that for all the rest?

Many thanks,


Usually, it is advised to use the mean, by doing this, your experiment won’t be biased towards one specific subject.

Best regards,


1 Like