Tck2connectome error

Dear All

I’m getting the attached error with tck2connectome. I verified that registration is well done.
I’m dealing with a 1.5T, single-shell
Any idea?

best regards


1 Like

Welcome Mike!

The “this may indicate a poor registration” warning may be a red herring. The earlier warning says that, from file sift_1M.csv, the number of streamlines for which valid weights were read is zero; and as a consequence, connectome construction was ceased after having loaded zero streamlines from the track file.

I think what may have happened is some confusion about the nature of the SIFT vs. SIFT2 methods. With SIFT, one filters a tractogram to produce a tractogram with a reduced streamline count, and then operates on that reduced tractogram with equal contribution from all remaining streamlines. With SIFT2, one obtains a “weight” for each streamline, which must be operated on in parallel to the streamlines data.

In your case, you have two files, “tracks_10M.tck” and “sift_1M.csv”. This is not compatible with either method:

  • If you had used SIFT, then the output of the tcksift command is a track file, not a text file, and you would provide that as input to tck2connectome and not use the -tck_weights_in command-line option;
  • If you had used SIFT2, then one would expect the .tck tractogram file and .csv weights file to contain data for the same number of streamlines, which is contradicted by your file names containing “10M” and “1M” respectively.

My best guess is that file “sift_1M.csv” was generated by the tcksift command and actually contains streamlines data, and so the “.csv” file extension is misleading.

I can probably revise the command behaviour to give a more direct error message, but I also suspect that you’re using a slightly out-of-date installation, given that the message you received is not consistent with the current code.


Thank you Rob

I’m using SIFT2. I’ve just switched to “tcksift2 -act 5tt_coreg.mif -out_mu sift_mu.txt -out_coeffs sift_coeffs.txt -nthreads 8 tracks_10^5.tck wm_norm.mif sift_10^5.csv” and then “tck2connectome -symmetric -zero_diagonal -scale_invnodevol -tck_weights_in sift_10^5.csv tracks_10^5.tck nodes_coreg.mif nodes_coreg.csv -out_assignment assignments_nodes_coreg.csv”,
but the outcome is the same as before: “Streamline weights file contains less entries than .tck file; only read 0 streamlines”.


tcksift2 -act 5tt_coreg.mif -out_mu sift_mu.txt -out_coeffs sift_coeffs.txt -nthreads 8 tracks_10^5.tck wm_norm.mif sift_10^5.csv

The file name “sift_10^5.csv” is still slightly misleading, as those data are being generated by the SIFT2 method, not the SIFT method.

I would also verify that the presence of “^” characters in your file names is not causing issues.

Beyond that, it needs to be determined whether that weights file genuinely does not contain any data, or whether the data are there but for whatever reason tck2connectome is failing to import it correctly. This simply requires showing the contents of the start of the file; e.g.:
head sift_10^5.csv -c500