3dTrackID: .grid contains more ROIs than I entered

Hi AFNI experts,

I’m using 3dTrackID following the pipeline of a recent study with

-mode PROB
-netrois parc300.nii.gz
-prefix 3dTrackID_prob
-dti_in 3dDWItoDT_
-uncert DWUncert+orig.

The parc300.nii.gz was created with a Freesurfer annotation file with 300 parcels, extended into the WM and registered to the DWI image.
3dTrackID runs without a problem and creates a .grid file.
Including the lookup table for parc300.nii.gz shows that only a fraction of the labels is being used. For all the ROIs for which there is no label, simple numbers are returned.

What am I doing wrong?

I would be very grateful for some help!
Thank you,

The regions that are read out are selected based on the -netrois file. Is that correct?
How can I add

Hi, Steph-

OK, that sounds like you are doing the correct things, and the output does sound a bit odd.

What does this mean: “Freesurfer annotation file with 300 parcels”? The map of target ROIs among which one wants to search for pairwise connections should be a file of integer values, and each ROI is defined as the set of voxels with a given integer. String labels can be attached to each ROI through a labeltable. Output things can have the string label used (e.g., if using the “-dump_rois …” option, which I often find useful), as well as in the output file of matrices (*.grid file).

And yes, the “-netrois …” argument is used to provide the map of target ROIs.

In the *.grid file, there should be one integer label per ROI; also, there can be one string label per ROI (ROIs without other string labels just get a zero-padded version of their integer value as a string label). If there are more ROIs than you are expecting (and how are you counting these?), is it possible that the parc300.nii.gz file does not contain an integer at every voxel? Sometimes alignment/mapping without the nearest neighbor (NN) interpolation, for example, can result in that.

If you have Python and matplotlib on your computer, what does this produce?:

fat_mat_sel.py --matr_in '3dTrackID_prob_000.grid' --Pars 'FA'     \
            --A_plotmin=0.2 --B_plotmax=1 --dpi_file=200 -x 30 

(It should be a large-ish matrix plot of FA values.)

I will also send you a PM with instructions on how you can upload data files and I can take a look at the *.grid output and the parc300.nii.gz file.

Also, part of your message appears to have been truncated-- if you have any other questions, please feel free to ask them.


Hi pt,

thanks so much for getting back to me so quickly and for helping me figuring this out! This is much appreciated.

So, by “Freesurfer annotation file with 300 parcels” I meant that I used an annotation file, extended the parcels into the WM, coregistered the resulting file to DWI space which then resulted in the parc300.nii.gz image.
How can I check if this file contains an integer at each voxel?

I forgot to mention that I also tried to use this command

@MakeLabelTable \
    -lab_file   labeltable.txt 1 0 \
    -labeltable labeltable.niml.lt \
    -dset       parc5002dwi_reo.nii.gz

before running 3dTrackID. This is how I know that some of the labels are being used to name the ROIs while the majority is listed with a simple integer (see attached png).

As you suggested, I ran the fat_mat_sel.py command. Trying to attach this image makes this homepage crash unfortunately (even after compressing it). Is there another way for me to send it to you?

I meant to also ask which outputs are also important to check, aside from the .grid file.
I tried

suma \
    -vol 3dTrackID_prob_000_PAIRMAP+orig[0] \
    -gdset 3dTrackID_prob_000.niml.dset

but this results in a funny image. Is there a better way of visually checking the streamlines and other output images?

Let me know what the best way is to get those files (parc300.nii.gz, .grid, .jpg output of fat_mat_sel.py, …) to you and I will do that asap.

Thanks again!