Giter Site home page Giter Site logo

skalarproduktraum / snt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from morphonets/snt

0.0 0.0 0.0 42.61 MB

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

Home Page: https://imagej.net/SNT

License: GNU General Public License v3.0

Java 67.37% Shell 0.01% Groovy 0.48% Jupyter Notebook 30.54% Python 1.55% Scala 0.01% Dockerfile 0.01% ImageJ Macro 0.03%

snt's Introduction

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.

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 Fiji plugins. See SNT's publication and techical notes for details.

Features

Tracing

  • Semi-automated Tracing:
    • Support for up to 5D multidimensional images, including multichannel, and timelapse sequences
    • Support for both ImageJ1 and ImgLib2 data structures
    • Several bi-directional search algorithms (A*, NBA*, Fast marching) with adjustable cost functions allow for efficient computation of curvatures for a wide range of imagery, that are up to 20x faster relatively to the original Simple Neurite Tracer plugin
    • Tracing in "secondary layers". This allows for paths to be computed on "enhanced" (pre-processed) images while interacting with the unfiltered, original image (or vice-versa). Toggling between the two data sources is immediate
    • Precise placement of nodes is aided by a local search that automatically snaps the cursor to neurites wihin a 3D neighborhood
  • Auto-tracing:
    • Generation of traces from thresholded images
  • 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 linked or merged together, or split into two. Nodes can be moved, deleted, or inserted
  • Post-hoc refinement of node positioning and radii by 'fitting' traces to the fluorescent signal associated with a path

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 FlyCircuit, Insect Brain Database, MouseLight, NeuroMorpho, and Virtual Fly Brain
  • Built-in commands for immediate retrieval of statistical reports, including summary statistics, comparison plots and histograms
  • Convex hull analyses
  • Graph theory-based analyses
  • Persistent homology-based analyses
  • Sholl and Horton-Strahler analyses
  • Image processing workflows: Reconstructions can be converted to masks and ROIs. Voxel intensities can be profiled around traced paths

Visualization

  • Quantitative visualizations: Display neurons color coded by morphometric traits, or neuropil annotations.
  • Publication-quality visualizations: Neuronal reconstructions, diagrams, plots and histograms can be exported as vector graphics
  • 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
  • Graph Viewer: A dedicated viewer for graph-theory-based diagrams
    • Display reconstructions as dendrograms
    • Quantitative connectivity graphs for single cells and groups of cells

Scripting

Modeling

  • Biophysical modeling of neuronal growth is performed through Cortex3D (Cx3D) and sciview, in which a modified version of Cx3D grows neuronal processes with sciview’s data structures.

Backwards Compatibility

  • Special effort was put into backwards compatibility with Simple Neurite Tracer (including TrakEM2 and ITK interaction). Inherited functionality has been improved, namely:
    • Support for sub-pixel accuracy
    • Synchronization of XY, ZY, and XZ views
    • Improved "filling" and "fitting" routines
    • Multi-threading improvements
    • Modernized GUI
  • Aggregation of legacy plugins

Installation

SNT is a Fiji plugin, 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. Optionally, select the Sciview checkbox. This is only required for extra sciview functionality
  5. 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.

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.

snt's People

Contributors

tferr avatar carshadi avatar mhl avatar kephale avatar ctrueden avatar dscho avatar imagejan avatar iarganda avatar fethallah avatar hinerm avatar tinevez avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.