Trekker

Note

MAJOR UPDATE! We are excited to announce the release of Trekker v1.0 beta, now available for testing.

This version includes significant changes and improvements.

  • Powered by nibrary, Trekker now features:
    • Support for surface based tracking and filtering

    • Advanced pathway rules for filtering streamlines

    • Subcommands to perform various tractogram operations

    • Improved command line interface

  • While the core fiber tracking algorithm (PTT) works the same, the new version of Trekker is not compatible with the previous versions due to the above changes.
    • Remark: Your previous code (script) written for earlier versions of Trekker need to be modified to work with the latest version.

  • Some existing features in earlier versions of Trekker are currently missing in the latest version:
    • Windows compatibility

    • Python and Matlab support

    • Exporting of a .json formatted tracking report

Enjoy the new Trekker!

Trekker offers state-of-the-art tractography tools to study the structural connectivity of the brain. Trekker aims to improve fiber tracking pipelines by offering features like:

  • Well-organized, clean, probabilistic streamline tractography using the parallel transport tractography (PTT) algorithm.

  • A comprehensive set of tractogram filtering options, including support for anatomical constraints using surface meshes.

  • Compatibility with .vtk format, to enable the use of powerful third-party 3D rendering software, such as Paraview, for easy and high-quality visualizations.

  • Support for asymmetric FODs, providing greater flexibility in fiber tracking.

  • Several features designed for high-performance computing (HPC), including multithreading, time-limited tracking, and a user-friendly command line interface.

  • Since 2017, algorithms and pipelines based on Trekker have earned awards in every international tractography competition, each featuring different themes.

See also

🏆 Awards and Recognitions

Tractography pipelines based on Trekker have earned awards in every international tractography challenge since 2017. Click here to learn more about Trekker’s awards.

Installation

Option 1: Stand-alone executables

Please find the stand-alone executables under Releases.

Option 2: Building from source

Trekker relies on nibrary. To compile Trekker from source, ensure that nibrary is installed first. Then follow these steps to compile Trekker:

Step 1: Download the Source Code

git clone https://github.com/dmritrekker/trekker

Step 2: Modify and run the build script

  • For Linux: Edit build_Linux.sh

  • For Windows: Edit build_Windows.bat

Usage

Simply run trekker on the terminal. This will display help and the commands, which are listed below:

Command Description
track Performs fiber tracking using parallel transport tractography (PTT) algorithm. PTT excels in reconstructing geometrically smooth and topographically organized fiber bundles.
filter Trekker employs an intuitive set of pathway rules to filter tractograms. The rules can be specified with surface meshes, as well as with spheres, image masks and partial volume fractions.
track2img Maps tractogram features on an image.
track2surf Maps tractogram features on a surface.
img2track Maps image values on a tractogram.
select Selects streamlines from a tractogram.
resample Resamples streamlines in a tractogram.
convert Converts tractogram file formats (.vtk, .tck, .trk).
transform Applies a transform on an input tractogram.
diff Finds different streamlines between two tractograms.
merge Merges two tractograms, optionally ignoring duplicates.
addColor Adds colors to streamlines (.vtk only).
fieldExport Exports a selected vtk field from a tractogram (.vtk only).
fieldImport Adds a new vtk field with values read from a file (.vtk only).
fieldRemove Removes a vtk field from a tractogram (.vtk only).

Examples

Fiber tracking example:

./trekker track \
          FOD.nii.gz \
          --seed WHITE_MATTER_SURFACE.gii \
          --seed_surf_useSurfNorm \
          --seed_count 100000 \
          --pathway discard_if_ends_inside WHITE_MATTER.nii.gz \
          --pathway discard_if_enters CSF.nii.gz \
          --minLength 20 \
          --maxLength 300 \
          --output OUT_TRACK.vtk

Fiber filtering example:

# You can use the --seed option when filtering too.
./trekker filter \
          INP_TRACK.vtk \
          --seed WHITE_MATTER_SURFACE.gii \
          --pathway require_end_inside LEFT_THAL.nii.gz \
          OUT_TRACK.vtk