Skip to content

imagejan/SNT

 
 

Repository files navigation

SNT

The ImageJ framework for quantification of neuronal anatomy

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 for details.

Features

Tracing

  • 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
  • Generation of traces from segmented images (binarized skeletons)

Analysis

  • 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 MouseLight, FlyCircuit and NeuroMorpho
  • 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

Visualization

  • 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.

Scripting

  • 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

Backwards Compatibility

  • 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

Installation

Regular Releases

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:

  1. Run the Fiji Updater (Help › Update..., the penultimate entry in the Help › menu)
  2. Click Manage update sites
  3. Select the Neuroanatomy checkbox
  4. 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.

For extra SciView functionality you need to subscribe to the Sciview Bleeding Edge update site:

  1. Run the Fiji Updater (Help › Update..., the penultimate entry in the Help › menu)

  2. Add the following entry to the Manage update sites table, by clicking on Add update site:

    Name URL
    SciView-edge https://sites.imagej.net/SciView-Unstable/
  3. Activate the newly added SciView-edge checkbox and unselect the SciView checkbox if you currently subscribing to Sciview's regular channel

  4. Click Apply changes and restart Fiji

Problems? Have a look at the full documentation.

Bleeding Edge Releases

Daily builds of SNT and SciView are pushed to the Neuroanatomy-Unstable update site. In this case, Sciview dependencies are already included, so you don't need to subscribe to other channels. Note that there is nothing inherently unstable with these builds: this nomenclature is adopted from the Debian release cycle. Since the sites are not part of the official list (this may change in the future), you have to specify their location to the updater:

  1. Run the Fiji Updater (Help › Update..., the penultimate entry in the Help › menu)

  2. Click Manage update sites

  3. If your are subscribing to the Neuroanatomy, SciView, or SciView-Unstable channels, please unselect their checkboxes: The step below will install all the required dependencies

  4. Add the following entry to the Manage update sites table, by clicking on Add update site:

    Name URL
    Neuroanatomy-edge https://sites.imagej.net/Neuroanatomy-Unstable/
  5. Activate the newly added Neuroanatomy-edge checkbox

  6. Click Apply changes and restart Fiji

Developing

On the cloud

Use this button to open the project on the cloud using Gitpod. No local installation necessary.

Open in Gitpod

Locally

  1. Clone this repository (use the green code button above the list of files)
  2. 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
  3. Wait for all the dependencies to be downloaded, and run snt/gui/cmds/SNTLoaderCmd/SNTLoaderCmd.

Useful resources to start hacking SNT:

Contributing

Want to contribute? Please, please do! We welcome issues and pull requests any time.

About

The ImageJ framework for semi-automated tracing and analysis of neurons

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 72.8%
  • Jupyter Notebook 25.2%
  • Python 1.4%
  • Groovy 0.5%
  • Shell 0.1%
  • Scala 0.0%