Using HCP data to create connectome of AAL atlas, while the endpoints of tracks distribute in other regions

Hello all,

I used the HCP data set and get connectomes of AAL atlas, the scripts are as followed:

5ttgen fsl …/raw_data/T1w_acpc_dc_restore_brain.nii.gz 5TT.mif -premasked
flirt -in /Users/bclab/Desktop/mask/aal.nii -ref …/raw_data/T1w_acpc_dc_restore_brain.nii.gz -out aal2T1
mrconvert …/raw_data/data.nii.gz DWI.mif -fslgrad …/raw_data/bvecs …/raw_data/bvals -datatype float32 -strides 0,0,0,1
dwi2response msmt_5tt DWI.mif 5TT.mif RF_WM.txt RF_GM.txt RF_CSF.txt -voxels RF_voxels.mif
dwi2fod msmt_csd DWI.mif RF_WM.txt WM_FODs.mif RF_GM.txt GM.mif RF_CSF.txt CSF.mif -mask …/raw_data/nodif_brain_mask.nii.gz
tckgen WM_FODs.mif 120wan.tck -act 5TT.mif -backtrack -crop_at_gmwmi -seed_dynamic WM_FODs.mif -maxlength 300 -select 1200000 -cutoff 0.06
tck2connectome 120wan.tck aal2T1.nii.gz connectome.csv -out_assigned sift_path
mkdir -p tck_roi
connectome2tck -nodes 1,2,3,4,5,6,7,8,9,10 -exclusive 120wan.tck path tck_roi/tck
mrview DWI.mif -tractography.load sift_tck_roi/tck1-2.tck

Based on the “-out_assignments” of tck2connectome, I created the tracks files belong to pairs of ALL regions. As I checked the track between Precentral_L and Precentral_R, there were still some tracks distributed in other areas of brain, as you can see in below picture:

Is this a normal result or is there any error in my scripts?
Besides, I wonder if the mrview could show the tracks in a 3D way like dsistudio?

Liuyuchen

Hi,

  1. You may would like to use tckresample connectome2tck.tck connectome2tck_endpoints.tck -endpoints to see the if the fibers end at same point.

show the tracks in a 3D way

You could press F3 to see the volume render results and then change the ‘alpa’ in the ‘View Option’ to 0. Hope this is what you are looking for.

Best,
ziqian

Hi,

  1. I don’t quite understand the output figure, does this mean that fibers don’t end at same point?

  2. Yes this solved my problem, thanks for your reply!

Liuyuchen

Plus, could mrview show all 3D images of 3 direction together?

Hi,
you could use the Volume Render option and show the tractogram. Then press ‘M’ to hide the main image to only display the tractogram. It will maybe give you a clue.

Ziqian

What do you mean ‘all 3D images’?

Hi Ziqian,

Thank you again, it helps a lot

Hi, Ziqian,

I wonder if tracts chould shown like this:

Hi yuchen,

in Volume Render view, you could use Tool–>View Option to display a similar result by thresholding the parameters.

Best,
Ziqian

Is this a normal result or is there any error in my scripts?

It’s hard to know for sure. But bear in mind that tck2connectome by default only considers the endpoints of each streamline when assigning to the parcellation. So streamlines can go anywhere they like in the brain, but as long as the endpoints make it back to the two regions of interest, it will be included in that edge of the connectome, and will be extracted by connectome2tck along with the other streamlines corresponding to that edge. The reason why extracting & visualising the endpoints was suggested was in order to determine whether the streamlines you highlighted in fact still terminate in the two regions of interest (even if they don’t follow the expected trajectory), or whether those streamlines were erroneously attributed to that edge.

My suspicion is that there is in fact an issue, and it will be caused by this:

flirt -in /Users/bclab/Desktop/mask/aal.nii -ref …/raw_data/T1w_acpc_dc_restore_brain.nii.gz -out aal2T1

This combined registration & transformation step will be interpolating values when it generates the output image. This means that a voxel in between parcels 1 and 3 may obtain a value of 2, and therefore streamlines terminating there may be assigned to parcel 2, even though parcel 2 is elsewhere in the brain. See documentation here.

Besides, I wonder if the mrview could show the tracks in a 3D way like dsistudio?

In addition to use of the volume render mode, you may need to uncheck the “Crop to slab” option in the Tractography tool.

You are right about the interpolating, after I used the nearest neighbor interpolating, the endpoint were right in the AAL atlas.

I was constructing a fiber connectivity matrix, using the number of fibers connected from region i to region j(from the connectome.csv) as Matrix(i,j),was this number equal to streamlines whose endpoints assigned to the parcellation?
While, if I want to define the connectivity strength of two regions, should I consider streamlines only ended in the two regions, or also consider streamlines passing through the two regions but ended in other regions? If the latter is right, how to calculate it by MRtrix?

While, if I want to define the connectivity strength of two regions, should I consider streamlines only ended in the two regions, or also consider streamlines passing through the two regions but ended in other regions? If the latter is right, how to calculate it by MRtrix?

If you really want the connectome construction to behave in the latter way, you can use the -assignment_all_voxels option for the tck2connectome command. Instead of assigning each of the two streamline endpoints to a parcel, and those two parcels determining the connectome edge to which the streamline contributes, this mechanism instead builds a list of all parcels that the streamline intersects, and if this list contains more than two regions, the streamline then contributes multiple times to the connectivity matrix, based on all possible pairs of parcels within this list.

This is however not something that is advocated. It is there principally to demonstrate the issues associated with assigning streamlines to parcels in this way. It is also true that if one were to explicitly loop over all pairs of parcels, and for every pair count the number of streamlines that intersect both parcels, the result one would obtain would be the same as using this mechanism; the implementation in tck2connectome is however much faster. The looping-over-ROI-pairs approach is something that was done historically prior to my tck2connectome implementation, and I still see described in this fashion sometimes in the literature, though it can be difficult to tell whether or not such descriptions are in fact faithful to the actual computations that were done.

This recent publication discusses these issues in more detail.

My concern is, though one streamline passing through region a and region b (ended between other two regions,say region c and region d), could this streamline deliver messages from region a to b?

I think this is a conflation between streamlines and biological white matter connections. The reason we by default only consider the two endpoints of each streamline is because axons are known to not synapse within white matter, and therefore only form connections at either end of the cell; as such, a streamline being assigned to more than two regions is vastly more likely to be an artifact of the reconstruction methodology than it is reflective of biology.

This is not to say that a “streamline” could not “deliver messages” between more than two regions within some kind of tailored simulation, if you chose to allow them to. But such a decision would be contrary to the biology that streamlines tractography is intended to represent. There’s no enforcement of what a streamline “could” do, since it’s an entirely fictitious entity. But I personally don’t think that having one digitally reconstructed “connection” mediating communication between more than two nodes in a network makes a whole lot of sense.

Thanks, I think I misunderstood the concept of streamlines