FATCAT: 3dTrackID maximum number of streams

Hi there,

I was trying to determine the maximum number of streams that run between each pair of ROI’s.

Would be the right way to go about it:

  1. Count the number of voxels from the source ROI (aka seed ROI)
  2. Multiply the count by 5 (5 being the default number of seeds/voxel)

Or is this approach wrong?

The way I understand it is that the way Monte-Carlo works is by generating the 5 possible streams from the source ROI, that’s why I would approach it in that manner.

Please let me know what your thoughts are :slight_smile:

Hi, Sondos-

The “NT” matrix of values stores the number of tracts (which I think is what you call “streams”) between any target ROIs. No need to multiply anything.


Hi Paul, I hope you’re doing well.

I wanted to follow up on this.

how can I get the maximum number of tracts leaving an ROI?

I know the number of tracts running between two ROIs is stored in the .grid file as NT.
However, I’m interested in the total number of tracts leaving ROI1 for instance (whether it reaches a target or not).

How can I get this information?

From the documentation I know that: number of seeds per voxel per Monte Carlo iteration;seeds will be placed randomly (default = 5).
And the number of Monte Carlo iterations (default = 1000)
The number of voxels from ROI1 are 120

So what I’ve been doing to calculate the maximum is:
(Number of voxels for an ROI) x (number of monte carlo iterations) x (number of seeds per voxel)
120 x 1000 x 5

Is this correct?

Hi, Sondos-

Then it sounds like you would want the information along the diagonal of a matrix.

For example, the number of tracts between separate targets (e.g., ROI 002 and 003) is stored in an off-diagonal element (e.g., the column with 002 and row with 003, or row with 002 and column with 003) of the NT=“number of tracts” matrix.

The number of tracts going through a single target (e.g., ROI 004) to aaaanywhere else – to another target or not – is stored in the diagonal element (e.g., the column with 004 and row with 004) of the NT matrix.


That makes sense.

But I’m not interested in all tracts that pass through ROI1,
I’m interested in getting the maximum number of tracks starting at ROI1 and leaving it (whether it goes through a target or not)

Hi, Sondos-

I am afraid I don’t understand. In my view, the number of tracts to/from/intersecting a target ROI is a single number. I’m not sure what a ‘maximum number of tracts’ would be?

One possible thing to clarify-- in other tracking programs, there is a paradigm of “starting tracts” from an ROI and letting them fire out elsewhere, seeing where they hit. As a consequence, there is inherent directionality of tractography-estimated connections (connections from target A to target B can be different htan connections from target B to target A). That is not the case in AFNI. Whole brain tracking occurs, and then the program finds tracts that have any segment intersecting an target ROI (“OR-logic” connections) as well as any tracts that have segments intersecting multiple taret ROIs (“AND-logic” connections), and those are kept and used.

I am not sure if that is a factor in our different terminologies?


thank you for clarifying that makes sense. :slight_smile: