Data Acquisition

One brain sample (male, 4.5-year-old) was scanned on a 7T 30cm (Bruker Biospin) MRI platform with a customized Millipede quadratic coil (ExtendMR LLC). The new Millipede coil was designed and provided maximum sensitivity for adult marmoset brain samples, which has 2.5x more sensitivity than the generic Bruker 35-mm birdcage volume coil, and allowed us to push the resolution limit from 150 um isotropic to 80 um isotropic (for dMRI and MTR) and 50um isotropic (for T2*&T2W structural images).

Before MRI scanning, brain samples were soaked with 0.2% gadolinium (1 mmol/mL, Gadavist, Bayer) in 1x PBS for 2 weeks and then with 0.2% gadolinium in pure water for 1 day. The gadolinium effectively reduced the T1 relaxation time of tissues, and thus, reduced total acquisition time, and the final day pure-water protocol helped increase the T2 relaxation time by reducing formalin in the tissues. Customized 3D-printed brain holders were made to maintain the samples in a convenient orientation and reduce vibration during scanning. Multi-modal MRI data were collected for one brain sample, including multi-shell diffusion MRI (80um), MTR (80um), and T2* and T2w image (50um):

The multi-shell diffusion MRI were collected with an 3D diffusion-weighted multi-shot spin-echo EPI sequence: TR = 200ms, TE = 29ms, number of averages = 1, number of segments = 88, FOV = 38×29.76×29.76 mm, matrix size = 474x372x372, resolution = 80 um isotropic, a total of 198 DWI images with three b values (8 b = 0, 64 b =2400, and 128 b = 4800), and the total acquisition time was about 15 days. Multi-shell gradient sampling schemes of the dMRI were generated by the IMOC method of the DMRITool (Cheng et al., 2017).

The MTR image was collected with a 3D FLASH sequence: TR = 29.5 ms, TE = 4.4 ms, flip angle = 20o, FOV = 39×28×25.6 mm, matrix size = 487x350x320, resolution = 80 um isotropic, number of averages = 2, with (Ms) and without (M0) an offset magnetization transfer (±2000 HZ off resonance, Gaussian shaped), acquisition time for each image is 2.5 hours. One MTR image was calculated from four images (two M0 and two Ms). We acquired five MTR images and averaged them into one final image (total acquisition time was 50 hours).
The T2w image was collected with was collected with a 3D spin echo sequence: TR = 250 ms, TE = 17.5 ms, FOV = 39×28×25.6 mm, matrix size = 780x560x512, resolution = 50 um isotropic, number of averages = 1, and acquisition time for one image was about 20h. We acquired 3 images and averaged them into one (total acquisition time was 60 hours).
The T2*-w image was collected with a 3D FLASH sequence: TR = 50 ms, TE = 22 ms, flip angle = 80o, FOV = 39×28×25.6 mm, matrix size = 780x560x512, resolution = 50 um isotropic, number of averages = 1, and acquisition time for one image was about 4h. We acquired 10 images and averaged them into one (total acquisition time was 40 hours).

Download Raw DWI data

*We masked out most black background and converted the data to 16bit integer format (.nii.gz) to reduce the size of the data.

Download structural images (not-coregistered)
*All structural images are also provided in the package of 'DWI Preprocessing by Tortoise' (see below), where the DWI data and all structural images are aligned

DWI Data Preprocessing
DWI Data Preprocessing By Mrtrix3 and FSL

Software: Mrtrix3.0, FSL 5.0.1
Note: We used b0, b2400, and b4800 for the preprocessing. b30 was excluded in this preprocessing pipeline.
For Mtrix3, you can specify how many threads ($NumofThreads) in "-nthread" option for multi-threaded processing.


1. Denoising DWI (by Mrtrix3)
$ dwidenoise raw.nii.gz dwi_denoised.nii.gz -noise noise.nii.gz -extent 7,7,7 -force -nthread $NumofThreads

2. Eddy current correction and DTI-fitting (by FSL)
$ eddy_correct dwi_denoised.nii.gz data.nii.gz 0 spline
$ fdt_rotate_bvecs raw.bvecs bvecs data.ecclog
$ dtifit -k data.nii.gz -o DTIFIT -m mask.nii.gz -r bvecs -b bvals




DWI Data Preprocessing By Tortoise

Software: Tortoise 3.1.4 and FSL (optional)
Note: We used all DWIs for the preprocessing, including b30, in this preprocessing pipeline.
DWI are co-registered to structural images during the preprocessing stage.


1. Preprocessing by Tortoise
$ ImportNIFTI -i raw.nii -p horizontal --bvals raw.bvals --bvecs raw.bvecs
$ DIFFPREP -i ./raw_proc/raw.list --will_be_drbuddied 0 --do_QC 0 --is_human_brain 0 -s T2.nii -d for_final --high_b 0 --res 0.08 0.08 0.08
$ TORTOISEBmatrixToFSLBVecs ./raw_proc/raw_DMC.bmtxt

2. DITFIT by FSL (optional)
$ cp ./raw_proc/raw_DMC.nii data.nii
$ cp ./raw_proc/raw_DMC.bvecs bvecs
$ dtifit -k data.nii -r bvecs -b bvals -m mask.nii.gz -o DTIFIT

Download Preprocessed DWI data Download DTI-fitted Images

*We masked out most black background and converted the data to 16bit integer format (.nii.gz) to reduce the size of the data.

>

Mrtrix3 based pipeline for dMRI tracktography in Liu C, et al, 2019

Software: Mrtrix3.0
Note: for Liu C, et al, 2019, we used b0, b2400, and b4800 of the 80um data for the Mrtrix-3 pipeline.

1. Multi-tissue constrained spherical deconvolution
$ mrconvert data.nii.gz data.mif -fslgrad bvecs bvals -force -nthread $NumofThreads
# WM_manual_selected_voxels and GM_manual_selected_voxels were manually defined, you may use other automactally methods in dwi2response.
$ dwi2response manual data.mif WM_manual_selected_voxels.nii.gz WM.res -lmax 0,6,10 -force -nthread $NumofThreads
$ dwi2response manual data.mif GM_manual_selected_voxels.nii.gz GM.res -lmax 0,0,0 -force -nthread $NumofThreads
$ dwi2fod msmt_csd data.mif WM.res fod_WM.mif GM.res fod_GM.mif -mask mask.nii.gz -force -nthread $NumofThreads
# To reduce RAM and CPU requirements, we removed many gray matter voxels using a conserved threshold (FOD < 0.05) and the left heremiphere. If you have very powerful computer, you can ignore this step.
$ mrcalc fod_WM.mi mask_righthalf.nii.gz -mult fod_masked.mif -force -nthread $NumofThreads

2a. Tracktography for reconstructing white matter tracts of interests (for example Figure 7 in Liu C, et al, 2020)
# We combined the tracking results with different angles (30,45,60). In addition, the tracking results would be affected by which ROI was used as the seed. Thus, we used different inclusion masks as seeds and combined all these results as well. As different trackings may use different number of inclusion masks, we using ROI# to respenset this variable here.
$ tckgen -stop -select 5k -angle 30 -maxlength 75 -seed_image seed_ROI1.nii.gz -include include_ROI1.nii.gz -include include_ROI#.nii.gz -exclude exclude_ROI1.nii.gz -exclude exclude_ROI#.nii.gz -mask mask.nii.gz fod_masked.mif tracks_5K_ROI_a30_p1.tck -force -nthreads $NumofThreads
$ tckgen -stop -select 5k -angle 45 -maxlength 75 -seed_image seed_ROI1.nii.gz -include include_ROI1.nii.gz -include include_ROI#.nii.gz -exclude exclude_ROI1.nii.gz -exclude exclude_ROI#.nii.gz -mask mask.nii.gz fod_masked.mif tracks_5K_ROI_a45_p1.tck -force -nthreads $NumofThreads
$ tckgen -stop -select 5k -angle 60 -maxlength 75 -seed_image seed_ROI1.nii.gz -include include_ROI1.nii.gz -include include_ROI#.nii.gz -exclude exclude_ROI1.nii.gz -exclude exclude_ROI#.nii.gz -mask mask.nii.gz fod_masked.mif tracks_5K_ROI_a60_p1.tck -force -nthreads $NumofThreads
$ tckgen -stop -select 5k -angle 30 -maxlength 75 -seed_image seed_ROI#.nii.gz -include include_ROI1.nii.gz -include include_ROI#.nii.gz -exclude exclude_ROI1.nii.gz -exclude exclude_ROI#.nii.gz -mask mask.nii.gz fod_masked.mif tracks_5K_ROI_a30_p#.tck -force -nthreads $NumofThreads
$ tckgen -stop -select 5k -angle 45 -maxlength 75 -seed_image seed_ROI#.nii.gz -include include_ROI1.nii.gz -include include_ROI#.nii.gz -exclude exclude_ROI1.nii.gz -exclude exclude_ROI#.nii.gz -mask mask.nii.gz fod_masked.mif tracks_5K_ROI_a45_p#.tck -force -nthreads $NumofThreads
$ tckgen -stop -select 5k -angle 60 -maxlength 75 -seed_image seed_ROI#.nii.gz -include include_ROI1.nii.gz -include include_ROI#.nii.gz -exclude exclude_ROI1.nii.gz -exclude exclude_ROI#.nii.gz -mask mask.nii.gz fod_masked.mif tracks_5K_ROI_a60_p#.tck -force -nthreads $NumofThreads
$ tckedit tracks_5K_ROI_a30_p1.tck tracks_5K_ROI_a45_p1.tck tracks_5K_ROI_a60_p1.tck tracks_5K_ROI_a30_p#.tck tracks_5K_ROI_a45_p#.tck tracks_5K_ROI_a60_p#.tck tracks_all_ROI.tck -force -nthread $NumofThreads
$ tckmap tracks_all_ROI.tck tracks_all_ROI.nii.gz -template fod_masked.mif -force -nthread $NumofThreads

2b. Tracktography for reconstructing white matter tracts of interests (for example Figure 8 in Liu C, et al, 2020)
# ROI${i} and ROI${j} were two connected cortical regions in the neuronal-tracing database
$ tckgen -stop -select 1k -angle 30 -maxlength 75 -seed_image ROI${i}.nii.gz -include ROI${j}.nii.gz -mask mask.nii.gz fod_masked.mif ROI${i}toROI${j}_a30.tck -force -nthreads $NumofThreads
$ tckgen -stop -select 1k -angle 45 -maxlength 75 -seed_image ROI${i}.nii.gz -include ROI${j}.nii.gz -mask mask.nii.gz fod_masked.mif ROI${i}toROI${j}_a45.tck -force -nthreads $NumofThreads
$ tckgen -stop -select 1k -angle 60 -maxlength 75 -seed_image ROI${i}.nii.gz -include ROI${j}.nii.gz -mask mask.nii.gz fod_masked.mif ROI${i}toROI${j}_a60.tck -force -nthreads $NumofThreads
$ tckedit ROI${i}toROI${j}_a30.tck ROI${i}toROI${j}_a45.tck ROI${i}toROI${j}_a60.tck ROI${i}toROI${j}.tck
$ tckmap ROI${i}toROI${j}.tck ROI${i}toROI${j}.nii.gz -template fod_masked.mif -force -nthread $NumofThreads