tckgen -> tck2connectome -> connectome2tck -> tckedit reduces track counts.

Hi everyone!

I’m studying about several filtering algorithms.
I’m trying to run COMMIT2 made by Alessandro daducci lab.

During this work, I have two questions.

  1. When I ran tckgen, tck2connectome, connectome2tck, and tckedit in order, track counts of tckgen’s and tckedit’s output were different (5M and about 3.3M each).

Could you explain why it happened?

The codes which I used are below.

tckgen \
dhollander_FOD_wm_norm_100408.mif \
dhollander_tractogram_SD_STREAM_100408.tck \
-act 5TT2b0_100408.mif -crop_at_gmwmi \
-seed_dynamic dhollander_FOD_wm_norm_100408.mif \
-maxlength 250 -select 5M -nthreads 36 -algorithm SD_STREAM
tck2connectome -force -nthreads 0 \
-assignment_radial_search 2 \
-out_assignments fibers_assignment.txt \
dhollander_tractogram_Schaefer400_SD_STREAM_100408.tck \
Schaefer400_7Net_2mm_100408.nii.gz \
connectome.csv
connectome2tck -force -nthreads 8 -exclusive -files per_edge -keep_self \
dhollander_tractogram_Schaefer400_SD_STREAM_100408.tck \
fibers_assignment.txt \
bundles/bundle_
C = np.loadtxt( f'{data_dir}/connectome.csv', delimiter=',' ) 
CMD = 'tckedit -force -nthreads 64'
k = 0
for i in range(C.shape[0]):
    for j in range(i,C.shape[0]):
        if C[i,j] > 0 :
            CMD += ' bundles/bundle_%d-%d.tck' %(i+1,j+1)
os.system( CMD + ' dhollander_tractogram_Schaefer400_SD_STREAM_connecting_100408.tck' )
  1. Is there limitation the number of inputs in tckedit?

When I ran tckedit using all seperated bundles made by connectome2tck, it outputed -1 in terminal and there was nothing.
So I ran tckedit using about 800 seperated bundles, then it worked.

Do you know the reason? and Could you explain how I run tckedit using all seperated bundles at the same time?

Any responses will be helpful!

Best,
Joseph.