{"id":13716580,"url":"https://github.com/morphonets/SNT","last_synced_at":"2025-05-07T06:30:37.714Z","repository":{"id":37318814,"uuid":"221831995","full_name":"morphonets/SNT","owner":"morphonets","description":"The ImageJ framework for quantification of neuronal anatomy ","archived":false,"fork":true,"pushed_at":"2025-05-01T18:13:31.000Z","size":50437,"stargazers_count":48,"open_issues_count":17,"forks_count":17,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-07T01:51:01.816Z","etag":null,"topics":["fiji","imagej","imagej2","janelia","neuroanatomy-toolbox","neuron-reconstruction","neurons","neuroscience","scijava"],"latest_commit_sha":null,"homepage":"https://imagej.net/plugins/snt","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"fiji/SNT","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/morphonets.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-11-15T02:57:26.000Z","updated_at":"2025-05-01T18:13:35.000Z","dependencies_parsed_at":"2023-02-12T20:31:54.009Z","dependency_job_id":"4a42a671-6a10-4489-b7bd-34bcbb5ddff1","html_url":"https://github.com/morphonets/SNT","commit_stats":null,"previous_names":[],"tags_count":86,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morphonets%2FSNT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morphonets%2FSNT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morphonets%2FSNT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morphonets%2FSNT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/morphonets","download_url":"https://codeload.github.com/morphonets/SNT/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252826607,"owners_count":21810147,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fiji","imagej","imagej2","janelia","neuroanatomy-toolbox","neuron-reconstruction","neurons","neuroscience","scijava"],"created_at":"2024-08-03T00:01:12.013Z","updated_at":"2025-05-07T06:30:37.707Z","avatar_url":"https://github.com/morphonets.png","language":"Java","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://imagej.net/media/icons/snt.png\" alt=\"SNT\" width=\"150\"\u003e\u003c/p\u003e\n\u003ch2 align=\"center\"\u003eThe ImageJ framework for quantification of neuronal anatomy\u003c/h2\u003e\n\u003cdiv align=\"center\"\u003e\n\n \u003c!-- rdcu.be --\u003e\n  \u003ca href=\"https://rdcu.be/c59MD\"\u003e\n    \u003cimg alt=\"Publication (Publisher)\" src=\"https://img.shields.io/badge/Publication-Pub.-teal.svg\"\u003e\n  \u003c/a\u003e\n \u003c!-- BioRiv --\u003e\n  \u003ca href=\"https://doi.org/10.1101/2020.07.13.179325\"\u003e\n    \u003cimg alt=\"Publication\" src=\"https://img.shields.io/badge/Publication-BioRiv-red.svg\"\u003e\n  \u003c/a\u003e\n  \u003c!-- Zenodo --\u003e\n  \u003ca href=\"https://zenodo.org/badge/latestdoi/221831995\"\u003e\n    \u003cimg alt=\"Zenodo DOI\" src=\"https://zenodo.org/badge/221831995.svg\"\u003e\n  \u003c/a\u003e\n  \u003c!-- License --\u003e\n  \u003ca href=\"https://github.com/morphonets/SNT/blob/master/LICENSE.txt\"\u003e\n    \u003cimg alt=\"GitHub license\" src=\"https://img.shields.io/github/license/morphonets/SNT\"\u003e\n  \u003c/a\u003e\n\u003cbr\u003e\n  \u003c!-- Build Status --\u003e\n  \u003ca href=\"https://github.com/morphonets/SNT/actions/workflows/build.yml\"\u003e\n    \u003cimg alt=\"Build status\" src=\"https://github.com/morphonets/SNT/actions/workflows/build.yml/badge.svg\"\u003e\n  \u003c/a\u003e\n  \u003c!-- Gitpod --\u003e\n  \u003ca href=\"https://gitpod.io/#https://github.com/fiji/SNT\"\u003e\n    \u003cimg alt=\"Gitpod ready-to-code\" src=\"https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod\"\u003e\n  \u003c/a\u003e\n  \u003c!-- codefactor --\u003e\n  \u003ca href=\"https://www.codefactor.io/repository/github/morphonets/snt\"\u003e\u003cimg src=\"https://www.codefactor.io/repository/github/morphonets/snt/badge\" alt=\"CodeFactor\" /\n\u003e\u003c/a\u003e\n\u003cbr\u003e\n  \u003c!-- Forum --\u003e\n  \u003ca href=\"https://forum.image.sc/tags/snt\"\u003e\n    \u003cimg alt=\"Forum.sc topics\" src=\"https://img.shields.io/badge/dynamic/json.svg?label=forum\u0026url=https%3A%2F%2Fforum.image.sc%2Ftag%2Fsnt.json\u0026query=%24.topic_list.tags.0.topic_count\u0026suffix=%20topics\"\u003e\n  \u003c/a\u003e\n  \u003c!-- Issues --\u003e\n  \u003ca href=\"https://github.com/morphonets/SNT/issues\"\u003e\n    \u003cimg alt=\"Open issues\" src=\"https://img.shields.io/github/issues/morphonets/SNT\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/morphonets/SNT/issues\"\u003e\n    \u003cimg alt=\"Closed issues\" src=\"https://img.shields.io/github/issues-closed/morphonets/SNT\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e\n    \u003ca href=\"https://github.com/morphonets/SNT#features\"\u003e\n      Features\n    \u003c/a\u003e\n    \u003cspan style=\"margin:.5em\"\u003e|\u003c/span\u003e\n    \u003ca href=\"https://github.com/morphonets/SNT#installation\"\u003e\n      Installation\n    \u003c/a\u003e\n    \u003cspan style=\"margin:.5em\"\u003e|\u003c/span\u003e\n    \u003ca href=\"https://github.com/morphonets/SNT#contributing\"\u003e\n      Contributing\n    \u003c/a\u003e\n    \u003cspan style=\"margin:.5em\"\u003e|\u003c/span\u003e\n    \u003ca href=\"https://imagej.net/SNT\"\u003e\n       Documentation\n    \u003c/a\u003e\n    \u003cspan style=\"margin:.5em\"\u003e|\u003c/span\u003e\n    \u003ca href=\"https://morphonets.github.io/SNT/\"\u003e\n      API\n    \u003c/a\u003e\n    \u003cspan style=\"margin:.5em\"\u003e|\u003c/span\u003e\n    \u003ca href=\"https://forum.image.sc/tag/SNT\"\u003e\n      Support\n    \u003c/a\u003e\n  \u003c/h3\u003e\n\u003c/div\u003e\n\nSNT is [ImageJ](https://imagej.net/)'s framework for semi-automated tracing, visualization, quantitative analyses and modeling of neuronal morphology. For tracing, SNT supports modern multidimensional 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.\n\nSNT can be used as a regular application or as a scripting library. Python (through [pyimagej](https://github.com/imagej/pyimagej)) and  all of SciJava's scripting languages are supported. It is distributed with [Fiji](https://imagej.net/Fiji) and supersedes the original [Simple Neurite Tracer](#backwards-compatibility) plug-in. It also incorporates several other neuroanatomy-related Fiji plugins. **See  [SNT's publication](https://doi.org/10.1038/s41592-021-01105-7)  and [techical notes](./NOTES.md) for details**.\n\n## Overview\n\n[![Overview](https://user-images.githubusercontent.com/2439948/167173119-2e4bea60-38e6-437f-82a9-205700f83ae8.png)](https://www.nature.com/articles/s41592-021-01105-7)\n\n## Features\nFor an overview of SNT capabilities have a look at the [showcase gallery](https://imagej.net/plugins/snt/#overview).\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eDetailed List\u003c/b\u003e\u003c/summary\u003e\n\n### Tracing\n\n* Semi-automated Tracing:\n  \n  * Support for up to 5D multidimensional images, including multichannel, and timelapse sequences\n  * Support for both ImageJ1 and [ImgLib2](https://imagej.net/libs/imglib2/) data structures\n  * Several bidirectional search algorithms (A\\*, NBA\\*, Fast marching) with adjustable cost functions allow for efficient computation of curvatures for a wide range of imagery, that are \u003cu\u003eup to 20x faster\u003c/u\u003e relatively to the original _Simple Neurite Tracer_ plugin\n  * 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\n  * Precise placement of nodes is aided by a local search that automatically snaps the cursor to neurites wihin a 3D neighborhood\n\n* Auto-tracing:\n\n  * Generation of traces from thresholded/filtered images\n  * Machine learning: Built-in routines for training random forest classifiers on previously traced paths ([LabKit](https://github.com/juglab/labkit-ui)/[Trainable Weka segmentation](https://github.com/fiji/Trainable_Segmentation) bridges)\n\n* Tracing can be interleaved with image processing routines\n\n* Tracing is scriptable. Interactive scripts allow for real-time inspection of results\n\n* Paths can be tagged, searched, grouped and filtered by morphometric properties (length, radius, etc.)\n\n* Paths can be edited, i.e., linked, merged, or split. Nodes can be moved, deleted, or inserted\n\n* Post-hoc refinement of node positioning and radii by 'fitting' traces to the fluorescent signal associated with a path\n  \n### Analysis\n\n* Extensive repertoire of [metrics](https://imagej.net/plugins/snt/metrics). Metrics can be collected from groups of cells, single cells, or parts thereof\n\n* Analysis based on neuropil annotations for whole-brain data such as [MouseLight](https://ml-neuronbrowser.janelia.org/)\n\n* Direct access to public databases, including [FlyCircuit](http://www.flycircuit.tw), [Insect Brain Database](https://insectbraindb.org/app/), [MouseLight](https://ml-neuronbrowser.janelia.org/), [NeuroMorpho](http://neuromorpho.org/), and [Virtual Fly Brain](https://v2.virtualflybrain.org/)\n\n* Built-in commands for immediate retrieval of statistical reports, including summary statistics, tests (two-sample _t_-test/one-way ANOVA), comparison plots and histograms\n\n* [Convex hull](https://imagej.net/plugins/snt/analysis#convex-hull-analysis) analyses\n\n* [Delineation analyses](https://imagej.net/plugins/snt/walkthroughs#delineation-analysis)\n\n* [Graph theory-based analyses](https://imagej.net/plugins/snt/analysis#graph-based-analysis)\n\n* [Persistent homology-based analyses](https://imagej.net/plugins/snt/analysis#persistence-homology)\n\n* [Root angle analysis](https://imagej.net/plugins/snt/analysis#root-angle-analysis)\n\n* [Sholl](./NOTES.md) and [Horton-Strahler](https://imagej.net/plugins/snt/analysis#strahler-analysis) analyses\n\n* Image processing workflows: Reconstructions can be converted to masks and ROIs. Voxel intensities can be profiled around (or across) traced paths\n\n* Labkit and TWS integration ([Semantic Segmentation](https://imagej.net/plugins/snt/machine-learning))\n  \n### Visualization\n\n* Quantitative visualizations: Display neurons color coded by morphometric traits, or neuropil annotations. \n\n* Publication-quality visualizations:  Neuronal reconstructions, diagrams, plots and histograms can be exported as vector graphics\n\n* [Reconstruction Viewer](https://imagej.net/SNT:_Reconstruction_Viewer): Standalone hardware-accelerated 3D visualization tool for both meshes and reconstructions.\n  \n  * Interactive and programmatic scenes (controlled rotations, panning, zoom, scaling, animation,  \"dark/light mode\", etc.)\n  * 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\n  * Built-in support for several template brains: Drosophila, [zebrafish](https://fishatlas.neuro.mpg.de/), and Allen CCF (Allen Mouse Brain Atlas)\n\n* [sciview](https://github.com/scenerygraphics/sciview) integration\n\n* Graph Viewer: A dedicated viewer for graph-theory-based diagrams\n  \n  * Display reconstructions as dendrograms\n  * Quantitative connectivity graphs for single cells and groups of cells\n  \n### Scripting\n\n* Almost every aspect of the program can be scripted in any of the IJ2 supported languages, or from Python through [pyimagej](https://github.com/imagej/pyimagej)\n\n* Detailed [documentation](https://imagej.net/SNT:_Scripting) and examples, including Python [notebooks](https://github.com/morphonets/SNT/tree/master/notebooks), and [end-to-end examples](https://github.com/morphonets/SNTmanuscript)\n\n* Headless scripts supported\n\n* (Experimental) Script Recorder\n  \n### Modeling\n\n* Biophysical modeling of neuronal growth is performed through [Cortex3D (Cx3D)](https://github.com/morphonets/cx3d) and [sciview](https://docs.scenery.graphics/sciview/ \"SciView\"), in which a modified version of [Cx3D](https://github.com/morphonets/cx3d) grows neuronal processes with [sciview](https://docs.scenery.graphics/sciview/)’s data structures.\n  \n### Compatibility\n\n* Support for multiple file formats including SWC, TRACES, JSON (MouseLight specification), and NDF (NeuronJ data file)\n\n* Backwards compatibility: Special effort was put into backwards compatibility with  [Simple Neurite Tracer](https://github.com/fiji/SNT)  (including [TrakEM2](https://github.com/trakem2/TrakEM2) and [ITK](https://imagej.net/SNT:_Tubular_Geodesics) interaction)\n  \n* Aggregation of [legacy plugins](./NOTES.md)\n  \n\n\u003c/details\u003e\n\n## Installation\n\nSNT is a [Fiji](https://imagej.net/Fiji) plugin, currently distributed through the *Neuroanatomy* [update site](https://imagej.net/Update_Sites).\n\nThe first time you start SNT from Fiji's menu structure *(Plugins\u003eNeuroanatomy\u003eSNT...*) you should be prompted for automatic subscription and download of required dependencies. If not:\n\n1. Run the Fiji Updater (*Help › Update...*, the penultimate entry in the  *Help ›*  menu)\n2. Click *Manage update sites*\n3. Select the *Neuroanatomy* checkbox\n4. Optionally, select the *sciview* checkbox. This is only required for extra [sciview](https://docs.scenery.graphics/sciview/) functionality\n5. Click *Apply changes* and Restart Fiji. SNT commands are registered under _Plugins\u003eNeuroanatomy\u003e_ in the main menu and SNT scripts under _Templates\u003eNeuroanatomy\u003e_ in Fiji's Script Editor.\n\nProblems? Have a look at the full [documentation](https://imagej.net/SNT).\n\n## Developing\n\n### On the cloud\n\nUse this button to open the project on the cloud using [Gitpod](https://gitpod.io). No local installation necessary (although project may take a while to load).\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/morphonets/SNT) \n\n### Locally\n\n1. Clone the main branch of this repository (use the green _code_ button above the list of files) \n\n2. Import the project into an IDE such as [Eclipse](https://www.eclipse.org/downloads/packages/)/[IntelliJ](https://www.jetbrains.com/idea/download/)/[NetBeans](https://netbeans.apache.org/download/index.html):\n   - In Eclipse: Run _Import\u003e Existing Maven Projects_ and specify the path to the downloaded `SNT` folder in _Root Directory_\n   - In IntelliJ: In the _Welcome Prompt_, choose _Open or Import_ and specify the path to the downloaded `SNT` folder\n   - In NetBeans: Run _File\u003e Open Project..._, select the downloaded `SNT` directory, and click on _Open Project_\n\n3. Wait for all the dependencies to be downloaded, and locate the [StartImageJAndSNTDemo](./src/test/java/sc/fiji/snt/demo/StartImageJAndSNTDemo.java) class in the tests folder.\n\n4. Java 21 is recommended to run SNT, so you should specify it as the project JDK. However using Java17+ or newer **requires the following VM arguments to be specified:** `--add-opens java.base/java.lang=ALL-UNNAMED`. To do so:\n   - In Eclipse: Run -\u003e Run Configurations..., Arguments tab\n   - In IntelliJ: Run -\u003e Edit Configurations..., Add VM Options (Alt+V)\n\n![image](https://github.com/user-attachments/assets/1679e954-dc89-4061-bfa2-b4a10da4f0da)\n\n5. Run [StartImageJAndSNTDemo.main()](./src/test/java/sc/fiji/snt/demo/StartImageJAndSNTDemo.java)\n\n### Useful Resources to Start Hacking SNT\n\nFrom a Java IDE:\n- [Test demos](./src/test/java/sc/fiji/snt/demo/)\n- _main()_ methods found on most classes: Frequently, these showcase the class's functionality\n- [JUnit tests](./src/test/java/sc/fiji/snt/)\n\nFrom Fiji's Script Editor:\n- Scripts in the _Templates\u003eNeuroanatomy\u003e_ menu. These are part of the source code and can also be accessed from [Script templates](./src/main/resources/script_templates/Neuroanatomy/) \n\nFrom python:\n- [Jupyter notebooks](./notebooks)\n\nSnippets and code templates:\n- [Jupyter notebooks](./notebooks)\n- [Script templates](./src/main/resources/script_templates/Neuroanatomy/)\n- [Examples from the SNT manuscript](https://github.com/morphonets/SNTmanuscript)\n- [Examples from I2K tutorials](https://github.com/morphonets/i2k2020)\n- [Snippets across the forum](https://forum.image.sc/tag/snt)\n\n## Contributing\n\nWant to contribute? Please, please do! We welcome [issues](https://github.com/morphonets/SNT/issues) and [pull requests](https://github.com/morphonets/SNT/pulls) any time. You can also report bugs and propose improvements using the [forum](https://forum.image.sc/tag/snt). Please tag your post using `snt` so that it does not go unnoticed. \n\n## Thanks To All Contributors\n\nThanks a lot for spending your time helping SNT!\n\n\u003ca href=\"https://github.com/morphonets/SNT/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contributors-img.web.app/image?repo=morphonets/SNT\" alt=\"Contributors\"/\u003e\n\u003c/a\u003e\n","funding_links":[],"categories":["Neuroscience"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorphonets%2FSNT","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorphonets%2FSNT","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorphonets%2FSNT/lists"}