Processing HCP DWI Data


I’ve followed all the steps in ISMRM tutorial - Structural connectome for Human Connectome Project (HCP) — MRtrix3 3.0 documentation (with the knowledge that this is not a recommended approach).

I encountered an issue when executing the command tcksift 100M.tck WM_FODs.mif 10M_SIFT.tck -act 5TT.mif -term_number 10M

Here is the error I got

tcksift: [100%] resampling ACT 5TT image to fixel image space
tcksift: [100%] segmenting FODs
tcksift: [100%] mapping tracks to image
tcksift: [WARNING] Only 1 tracks read from input track file; expected 100000000
tcksift: [ERROR] Filtering failed; desired number of filtered streamlines is greater than or equal to the size of the input dataset

Here is the output of tckstats 100M.tck

tckstats: [100%] Reading track file
tckstats: [WARNING] read 19360 empty streamlines
tckstats: [WARNING] expected 100000000 tracks according to header; read 75419508
         mean       median    std. dev.          min          max       count
      54.7299      40.7416      46.3425          2.5      388.264     75419508

And here is the output of tckinfo 100M.tck

  Tracks file: "100M.tck"
    act:                  5TT.mif
    backtrack:            1
    command_history:      tckgen WM_FODs.mif 100M.tck -act 5TT.mif -backtrack -crop_at_gmwmi -seed_dynamic WM_FODs.mif -maxlength 250 -select 100M -cutoff 0.06  (version=3.0.4)
    count:                100000000
    crop_at_gmwmi:        1
    downsample_factor:    3
    fod_power:            0.25
    init_threshold:       0.0599999987
    lmax:                 8
    max_angle:            45
    max_dist:             250
    max_num_seeds:        100000000000
    max_num_tracks:       100000000
    max_seed_attempts:    1000
    max_trials:           1000
    method:               iFOD2
    min_dist:             2.5
    mrtrix_version:       3.0.4
    rk4:                  0
    samples_per_step:     4
    seed_dynamic:         WM_FODs.mif
    sh_precomputed:       1
    source:               WM_FODs.mif
    step_size:            0.625
    stop_on_all_include:  0
    threshold:            0.06
    timestamp:            1702601465.6127204895
    total_count:          129101115
    unidirectional:       0
    ROI:                  seed WM_FODs.mif

Any insight is very much obliged.


Hi @atadayon,

I’m not sure what’s going on here, but my first suspicion is that you ran out of storage space when generating the streamlines. You requested 100M streamlines, but only got 7,5419,508 actually written to file (according to tckstats). That could have been due to exceeding the maximum number of seeding attempts (by default, 1000× the number of streamlines requested, as confirmed in the max_num_seeds entry), but that doesn’t seem to be the case: the total_count is 129,101,115 (this reflect the total number of streamlines produced, irrespective of whether they were excluded or not). This discrepancy suggests there’s been a problem at the tckgen stage leading to truncation of the output.

But even if that had been an issue, the file should nonetheless contain more than a single streamline… The issue could still be related to running out of storage space, which could affect some of the other inputs too, but if that’s not the issue, then a good diagnostic would be to run tckmap on the tck file to produce a track density image (TDI), and use the overlay tool in mrview to overlay both the TDI and the 5TT image on top of the WM FOD image. You can then check for any misalignment, or any other unexpected behaviour in the images themselves. Feel free to post screenshots if you’re unsure how to interpret these images.

All the best,