A Python implementation of the TRX file format for tractography data.
For details, please visit the documentation.
pip install trx-pythongit clone https://github.com/tee-ar-ex/trx-python.git
cd trx-python
pip install .from trx.io import load, save
# Load a tractogram (supports .trx, .trk, .tck, .vtk, .fib, .dpy)
trx = load("tractogram.trx")
# Save to a different format
save(trx, "output.trk")TRX-Python provides a unified CLI (tff) for common operations:
# Show all available commands
tff --help
# Convert between formats
tff convert input.trk output.trx
# Concatenate tractograms
tff concatenate tract1.trx tract2.trx merged.trx
# Validate a TRX file
tff validate data.trxIndividual commands are also available for backward compatibility:
tff_convert_tractogram input.trk output.trx
tff_concatenate_tractograms tract1.trx tract2.trx merged.trx
tff_validate_trx data.trxWe use spin for development workflow.
# Clone the repository (or your fork)
git clone https://github.com/tee-ar-ex/trx-python.git
cd trx-python
# Install with all dependencies
pip install -e ".[all]"
# Set up development environment (fetches upstream tags)
spin setupspin setup # Set up development environment
spin install # Install in editable mode
spin test # Run all tests
spin test -m memmap # Run tests matching pattern
spin lint # Run linting (ruff)
spin lint --fix # Auto-fix linting issues
spin docs # Build documentation
spin clean # Clean temporary filesRun spin without arguments to see all available commands.
We use ruff for linting and formatting:
# Check for issues
spin lint
# Auto-fix issues
spin lint --fix
# Format code
ruff format .# Install hooks
pre-commit install
# Run on all files
pre-commit run --all-filesThe TRX file format uses memory-mapped files to limit RAM usage. When dealing with large files, several gigabytes may be required on disk.
By default, temporary files are stored in:
- Linux/macOS:
/tmp - Windows:
C:\WINDOWS\Temp
To change the directory:
# Use a specific directory (must exist)
export TRX_TMPDIR=/path/to/tmp
# Use current working directory
export TRX_TMPDIR=use_working_dirTemporary folders are automatically cleaned, but if the code crashes unexpectedly, ensure folders are deleted manually.
Full documentation is available at https://tee-ar-ex.github.io/trx-python/
To build locally:
spin docs --openWe welcome contributions! Please see our Contributing Guide for details.
BSD License - see LICENSE for details.