Skip to main content

AtlasTrack

PyPI Python License

Register histological brain sections to a reference atlas, and map probe trajectories into atlas coordinates.

This is a desktop app for wet-lab neuroscientists: load histology slide images, place each section in the atlas, register the series automatically, click your probe tracks, and export coordinates or figures.

AtlasTrack GUI

What it does

Given one or more slide images and a little guidance:

  1. Finds the sections in each slide and merges several slides into one image with shared coordinates.
  2. Places each section at its front-to-back atlas level - by hand in a side-by-side matcher, or automatically with DeepSlice.
  3. Registers every section to the atlas, bending the atlas to follow your tissue (see How a section is fitted below). Damaged sections can be corrected by hand, by moving the whole atlas outline or by dragging points.
  4. Maps probe tracks you click into atlas coordinates, per shank and per channel; optionally refined from recorded LFP depth features.
  5. Exports electrode coordinates as CSV (CCF µm or Paxinos stereotaxic mm), an interactive 3-D HTML page, a HERBS .pkl, or your section series with atlas outlines.

How a section is fitted

DeepSlice alone places each section with a linear fit: an atlas plane, tilted, shifted and scaled, but not bent. On real tissue that is rarely enough. AtlasTrack uses DeepSlice only to choose the plane, then fits the atlas to the tissue:

  1. Plane. DeepSlice sees one tight crop per section, with your flips applied, numbered in your section order. It uses those numbers to keep the series in front-to-back order and to share one tilt across it. Any AP you set by hand (or by even spacing) is an anchor: that section's plane slides along AP to exactly your value, keeping DeepSlice's tilt. Sections without an anchor shift by interpolating their neighbouring anchors' corrections, so one anchor corrects the offset of the whole series and two or more also its spacing. APs that DeepSlice wrote itself are predictions, not anchors.
  2. Scale and shift. The outline of the atlas slice is moved and scaled onto the outline of the tissue: same centre, same size, no rotation.
  3. Warp. elastix, a registration program, bends the atlas onto the section: it moves a grid of control points until the light and dark patterns of the two images agree. It compares tissue pixels only - fluorescent labels are left out - and a penalty on bending keeps the warp smooth.
  4. Edge snap. The atlas brain's outline is pulled onto the tissue border, with the interior held still. Pushes too large to be a fit (torn or missing tissue) are skipped, and a warp that would fold is rejected.
  5. Check. If the result overlaps the tissue clearly worse than the plain plane, the plane is kept instead, for you to fit by hand.

Box and landmark corrections are applied on top. Re-registering a section clears them, since they corrected the fit it replaces.

Atlases come from BrainGlobe: Allen CCFv3, CCFv3-BBP Augmented, Chon/Kim Unified (Franklin-Paxinos names), and any other BrainGlobe id. All cover the same volume, so regions can be re-named from a different atlas without re-registering.

TUTORIAL.md walks through one slide start to finish.
MANUAL.md is the reference document.
Both are also available in the app under Help.

Install

From PyPI:

uv pip install "atlastrack[all]"    # recommended  (pip install also works)
atlastrack gui

The base install (atlastrack) is deliberately light. [all] adds three extras, each installable on its own:

Extra Adds Cost
elastix The regularized registration engine - recommended ~150 MB (ITK)
deepslice Automatic front-to-back placement ~1.65 GB (TensorFlow)
ephys The Ephys tab (Open Ephys / SpikeGLX / Intan) SpikeInterface

From source, for development:

git clone https://github.com/vncntprvst/AtlasTrack
cd AtlasTrack
uv pip install -e ".[all,dev]"

Put the package name in quotes and leave no spaces inside the brackets - zsh and PowerShell otherwise read [...] as a file pattern, and a space splits it in two.

Commands

atlastrack gui        # the app
atlastrack version
atlastrack gl-info    # check the graphics setup if the window will not open
atlastrack split | register | export      # the same steps, without the window
atlastrack import SOURCE                  # convert a slicereg or QuickNII/VisuAlign registration
atlastrack match PROJECT.json REF.json    # register sections from the same sections in REF

The window

The centre holds Project (your slide and the atlas overlay) and Help. On the left, the workflow in order: Histology → Atlas → Register → Probes → Ephys. On the right, 3D & Export. Menus: Project, Settings, Help.

Wheel zooms; Ctrl+wheel and Shift+wheel pan.

Layout

src/atlastrack/   io/ atlas/ sectioning/ landmarks/ registration/ probes/ viz/ gui/
tests/            pytest suite

The core packages run without a display and have their own tests; only gui/ and viz/napari3d.py import napari/Qt, which lint-imports checks. Coordinates are CCF (AP, ML, DV) in µm throughout. A project is one Pydantic model serialized to <slide>.atlastrack.json, with each section's registration saved in a file alongside it.

Testing

uv pip install -e ".[all,dev]"
pytest -q          # GUI tests need a display
lint-imports       # checks the core packages never import the GUI

Metadata

Release files for atlastrack 0.10.34

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for atlastrack 0.10.34
File Size Uploaded Provenance Actions
atlastrack-0.10.34.tar.gz 2.0 MB With provenance Details for atlastrack-0.10.34.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for atlastrack 0.10.34
File Interpreter ABI Platform Actions
atlastrack-0.10.34-py3-none-any.whl Python 3 none any Details for atlastrack-0.10.34-py3-none-any.whl

Total release size: 2.6 MB

Release files / atlastrack-0.10.34.tar.gz

Download URL atlastrack-0.10.34.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
2edc7bb24d0c23904a9e3ee0556dbd7eb36825076576aaf083b67e4a075d0813
BLAKE2b-256 checksum
How to use checksums
dccd965a838229d4932eaedb0ce7968e295ca7e9d9c6c5d8b2d8bd433dc77322
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / atlastrack-0.10.34-py3-none-any.whl

Download URL atlastrack-0.10.34-py3-none-any.whl
Size 557.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3173b07b62e73317567f98020396264c6e989ee7ba4d9738bfea7d43effceaf1
BLAKE2b-256 checksum
How to use checksums
34965b9d32890bb669b3754634cf44b7057d50faeda1cf3dfc143a05b37ceb6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Security for atlastrack 0.10.34

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for atlastrack-0.10.34.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page