Tractography Parameters#

This page documents the configuration options for controlling tractography in pyAFQ. These parameters can be passed directly when using the CLI or passed as arguments when using the API.

Example Usage#

from AFQ.api.group import GroupAFQ
import AFQ.data.fetch as afd
import os.path as op

afd.organize_stanford_data()

myafq = GroupAFQ(
    bids_path=op.join(afd.afq_home, 'stanford_hardi'),
    preproc_pipeline='vistasoft',
    tracking_params=dict(
        n_seeds=25000,
        random_seeds=True,
        rng_seed=2025,
        trx=True)
    )

Tractography Parameter Reference#

AFQ.tractography.tractography.track(params_file, pve, n_threads, directions='prob', max_angle=30.0, sphere='repulsion724', seed_mask=None, seed_threshold=0.5, gm_threshold=0.4, thresholds_as_percentages=False, n_seeds=10000000.0, random_seeds=True, rng_seed=None, step_size=0.5, minlen=20, maxlen=500, odf_model='CSD_AODF', basis_type='descoteaux07', legacy=True, trx=True, jit_backend='numba', jit_chunk_size=None)[source]

Tractography

Parameters:
params_filestr, nibabel img.

Full path to a nifti file containing CSD spherical harmonic coefficients, or nibabel img with model params.

pvestr, nibabel img

Full path to a nifti file containing tissue probability maps, or nibabel img with tissue probability maps. This should be of the order (pve_csf, pve_gm, pve_wm).

n_threadsint

The number of threads to use in tracking. If 0 or -1, uses all available threads.

directionsstr

How tracking directions are determined. One of: {“det” | “prob” | “pft”} pft refers to Particle Filtering Tracking ([Girard2014]). Default: “prob”

max_anglefloat, optional.

The maximum turning angle in each step. Default: 30

spherestr or DIPY Sphere

The discretization of the ODF. Can be a DIPY Sphere or a string name of a DIPY Sphere. Default: “repulsion724”

seed_maskarray, optional.

Float or binary mask describing the ROI within which we seed for tracking. If None, use the entire volume (all ones). Default: None

seed_thresholdfloat, optional.

A value of the seed_mask above which tracking is seeded. Default: 0.5

gm_thresholdfloat, optional.

A value of the pve_gm_data above which we consider a voxel to be GM for the purposes of ACT stopping criterion. Default: 0.4.

n_seedsint or 2D array, optional.

The seeding density: if this is an int, it is is how many seeds in each voxel on each dimension (for example, 2 => [2, 2, 2]). If this is a 2D array, these are the coordinates of the seeds in RASMM. Unless random_seeds is set to True, in which case this is the total number of random seeds to generate within the mask. Default: 1e7

random_seedsbool

Whether to generate a total of n_seeds random seeds in the mask. Default: True

rng_seedint

random seed used to generate random seeds if random_seeds is set to True. Default: None

thresholds_as_percentagesbool, optional

Interpret seed_threshold as percentages of the total non-nan voxels in the seed mask to include (between 0 and 100), instead of as a threshold on the values themselves. Default: False

step_sizefloat, optional.

The size of a step (in mm) of tractography. Default: 0.5

minlen: int, optional

The minimal length (mm) in a streamline. Default: 20

maxlen: int, optional

The maximum length (mm) in a streamline. Default: 500

odf_modelstr or Definition, optional

Can be either a string or Definition. If a string, it must be one of {“DTI”, “CSD”, “DKI”, “GQ”, “RUMBA”, “MSMT_AODF”, “CSD_AODF”, “MSMTCSD”}. If a Definition, we assume it is a definition of a file containing Spherical Harmonics coefficients. Default: “CSD_AODF”

basis_typestr, optional

The spherical harmonic basis type used to represent the coefficients. One of {“descoteaux07”, “tournier07”}. Default: “descoteaux07”

legacybool, optional

Whether the legacy SH basis definition should be used. See Dipy documentation for more details. Default: True

trxbool, optional

Whether to return the streamlines compatible with input to TRX file (i.e., as a LazyTractogram class instance). Default: True

jit_backendstr, optional

If directions is “prob” or “ptt”, the JIT backend to use. One of {“auto”, “cuda”, “metal”, “webgpu”, or “numba”}. Default: “numba”

jit_chunk_sizeint, optional

If directions is “prob” or “ptt”, the chunk size to use for JIT tracking. If None, chooses 25000 for numba backend and 5000 for other backends. Default: None

Returns:
list of streamlines ()

References

[Girard2014]

Girard, G., Whittingstall, K., Deriche, R., & Descoteaux, M. Towards quantitative connectivity analysis: reducing tractography biases. NeuroImage, 98, 266-278, 2014.

[Smith2012]

Smith RE, Tournier JD, Calamante F, Connelly A. Anatomically-constrained tractography: improved diffusion MRI streamlines tractography through effective use of anatomical information. Neuroimage. 2012 Sep;62(3):1924-38. doi: 10.1016/j.neuroimage.2012.06.005. Epub 2012 Jun 13.