Features | Installation | Contributing | Documentation | API | Support
SNT is ImageJ's framework for semi-automated tracing, visualization, quantitative analyses and modeling of neuronal morphology. For tracing, SNT supports modern multi-dimensional microscopy data, and highly-customizable routines. For data analysis, SNT features advanced visualization tools, access to all major morphology databases, and support for whole-brain circuitry data.
Most importantly, SNT can be used as a regular application or as a scripting library. Python (through pyimagej) and all of SciJava's scripting languages are supported. It is distributed with Fiji and supersedes the original Simple Neurite Tracer plug-in. It also incorporates several other neuroanatomy-related plugins. See SNT's publication and techical notes for details.
- Support for up to 5D multidimensional images (including multichannel, and those with a time axis). While tracing, visibility of non-traced channels can be toggled at will
- Precise placement of nodes is aided by a local search that automatically snaps the cursor to neurites wihin a 3D neighborhood
- A* search can be performed on a second, non-displayed image. This allows for e.g., tracing on a pre-process (filtered) image while interacting with the unfiltered image (or vice-versa). If enough RAM is available toggling between the two data sources is immediate
- Tracing can be interleaved with image processing routines
- Tracing is scriptable. Interactive scripts allow for real-time inspection of results
- Paths can be tagged, searched, grouped and filtered by morphometric properties (length, radius, etc.)
- Paths can be edited, i.e., a path can be merged into a existing one, or split into two. Nodes can be moved, deleted, or inserted
- Post-hoc refinement of node positioning by 'snapping' traces to the fluorescent signal associated with a a path
- Auto-tracing: Generation of traces from thresholded images (binarized skeletons)
- Extensive repertoire of metrics, namely those provided by L-measure and NeuroM. Metrics can be collected from groups of cells, single cells, or parts thereof
- Analysis based on neuropil annotations for whole-brain data such as MouseLight
- Direct access to public databases, including FlyCircuit, Insect Brain Database, MouseLight, NeuroMorpho, and Virtual Fly Brain
- Built-in commands for immediate retrieval of summary statistics, comparison plots and histograms
- Graph theory-based analyses
- Persistent homology-based analyses
- Sholl and Horton-Strahler analyses
- Image processing: Reconstructions can be skeletonized, converted to masks or ROIs, and voxel intensities profiled
- Reconstruction Viewer: Standalone hardware-accelerated 3D visualization tool for both meshes and reconstructions.
- Interactive and programmatic scenes (controlled rotations, panning, zoom, scaling, animation, "dark/light mode", etc.)
- Customizable views: Interactive management of scene elements, controls for transparency, color interpolation, lightning, path smoothing, etc.. Ability to render both local and remote files on the same scene
- Built-in support for several template brains: Drosophila, zebrafish, and Allen CCF (Allen Mouse Brain Atlas)
- SciView integration
- Connectivity diagrams
- Quantitative, publication-quality visualization: Display neurons color coded by morphometric traits, or neuropil annotations. Export plots, reconstructions, diagrams and histograms as vector graphics.
- Every aspect of the program can be scripted in any of the IJ2 supported languages, or from Python through pyimagej
- Detailed examples and tutorials, including Python notebooks
- Headless scripts supported
- Modeling is performed through Cortex3D (Cx3D) and sciview, in which a modified version of Cx3D grows neuronal processes with sciview’s data structures.
- Special effort was put into backwards compatibility with Simple Neurite Tracer (including TrakEM2 and ITK interaction). Inherited functionality has been improved, namely:
- Extended support for sub-pixel accuracy
- Improved synchronization of XY, ZY, and XZ views
- Improved calls to Dijkstra's filling and Path-fitting routines
- Multi-threading improvements
SNT is available in Fiji and is currently distributed through the Neuroanatomy update site.
The first time you start SNT from Fiji's menu structure (Plugins>Neuroanatomy>SNT... you should be prompted for automatic subscription and download of required dependencies. If not:
- Run the Fiji Updater (Help › Update..., the penultimate entry in the Help › menu)
- Click Manage update sites
- Select the Neuroanatomy checkbox
- Optionally, select the Sciview checkbox. This is only required for extra sciview functionality
- Click Apply changes and Restart Fiji. SNT commands are registered under Plugins>Neuroanatomy> in the main menu and SNT scripts under Templates>Neuroanatomy> in Fiji's Script Editor.
Problems? Have a look at the full documentation.
Use this button to open the project on the cloud using Gitpod. No local installation necessary.
- Clone this repository (use the green code button above the list of files)
- Import the project into an IDE such as Eclipse/IntelliJ/NetBeans:
- In Eclipse: Run Import> Existing Maven Projects and specify the path to the downloaded
SNT
folder in Root Directory - In IntelliJ: In the Welcome Prompt, choose Open or Import and specify the path to the downloaded
SNT
folder - In NetBeans: Run File> Open Project..., select the downloaded
SNT
directory, and click on Open Project
- In Eclipse: Run Import> Existing Maven Projects and specify the path to the downloaded
- Wait for all the dependencies to be downloaded, and run snt/gui/cmds/SNTLoaderCmd/SNTLoaderCmd.
Useful resources to start hacking SNT:
- main methods found on most classes: These test/showcase some of the class's functionality
- JUnit tests, Script templates and notebooks
Want to contribute? Please, please do! We welcome issues and pull requests any time.