Together with collaborators and contributors from many other labs, we have developed multiple tools to work with neuroanatomical and connectomics data. Here is a quick overview (also available as a website: flyconnectome.github.io/tools):
Below are brief descriptions and links of the libraries/packages. For details, I defer to their respective (excellent) docs.
Coda (connectome data analysis) is a browser-based node editor for querying and analyzing connectomic data - a great place to start if you don't want to write code (yet):
- build analysis/exploration pipelines by connecting nodes
- morphological (NBLAST, axon-dendrite splits, etc.) and connectivity (graph, shortest path, influence scores, etc.) analyses
- works with neuPrint, CAVE (e.g. FlyWire) and CATMAID datasets as well as local data
- export results as CSV, SWC, images, Neuroglancer URLs, etc. or convert entire workflows to Python or R code to run locally
- AI assistant to generate workflows from natural language, and share workflows via links
The source code is on Github.
In R, the natverse (published in Bates, Manton et al., 2020) is your one-stop-shop for all things neuron: it's a collection of various R packages that are built on top of the neuroanatomy toolbox, nat. Check out the full list of packages. Of particular relevance:
natis a general-purpose library for working with neuronanatomical data. I highly recommend having a look at the "Articles" in nat's doc.nat.nblastimplements the NBLAST algorithm for morphological comparison of neurons (see below).nat.templatebrains,nat.flybrainsandnat.jrcbrainsbundle template brains and transforms that let you xform e.g. neurons from one brain template to another (see below).nat.ggplothelps you make publication-quality 2D renderings of neurons usingggplot2.
neuprintrlets you run queries against neuPrint servers such as those hosting the Janelia connectomes.rcatmaidprovides an interface with CATMAID servers such as those the VFB uses to host published data from the FAFB or larval fruit fly datasets.rcatmaidis built on top ofnatand you can usenatfunctions with neurons pulled viarcatmaid.neuromorphrlets you search and pull data from neuromorpho.org.insectbrainrprovides access to the InsectBrainDB.neuronbridgerprovides access to NeuronBridge for matching EM neurons to light-level data.fishatlasprovides R client utilities for interacting with the Fish Brain Atlas Project, which has successfully acquired and registered almost 2,000 neurons from the larval zebrafish into a standard, annotated template space.mouselightrprovides an interface with the MouseLight project at Janelia Research Campus, which has successfully acquired and registered ~1,000 neurons from the mouse brain into a standard, annotated template space.seatableris a generic R client for SeaTable servers, which we use to manage annotations for various connectome datasets (WIP: still in the design phase and not yet ready for use).
These packages provide dataset-specific conveniences (meta data, annotations, transforms, etc.) on top of the general-purpose libraries above:
fafbsegfor the FlyWire whole-brain connectome (FAFB).hemibrainrfor the Janelia hemibrain.malecnsfor the Janelia male CNS.malevncfor the Janelia male adult nerve cord (MANC).fancrfor the female adult nerve cord (FANC).bancrfor the brain and nerve cord (BANC).- In-progress datasets (access may be restricted):
crantr(clonal raider ant brain),yakuba(D. yakuba male VNC),aedes(Aedes aegypti brain) andfishr(fish2 larval zebrafish brain).
coconatprovides dataset-agnostic building blocks for connectome analyses.coconatflybuilds oncoconatto provide a uniform interface for comparative connectomics across Drosophila datasets (FlyWire, hemibrain, male CNS, MANC, FANC, BANC, etc.).influencercomputes influence scores (i.e. indirect connectivity) of neurons in connectomes.
In Python, we find packages analogous to those in R:
navisisnat's serpentine sibling: a general purpose neuron library for visualization and analysis of neuroanatomical data. It also implements NBLAST and transforms, and features interfaces e.g. with Blender 3D, neuPrint, MICrONS, neuromorpho, NEURON and InsectBrainDB. Check out the Quickstart article and the various tutorials.flybrains,fishbrainsandmousebrainsbundle template brains and transforms for use withnavisthat let you xform e.g. neurons from one brain template to another (see below).octarineis a fast, lightweight 3D viewer; together with theoctarine-navis-pluginit serves as a high-performance 3D plotting backend fornavis.nglsceneslets you generate and manipulate neuroglancer scenes (from/to URLs, files or the clipboard), and run and remote-control a local neuroglancer.fastcorere-implements corenavisandnatfunctions for working with neuron trees in Rust (navisuses this under the hood when installed). It comes with Python and R bindings.skeletorimplements various skeletonization algorithms for meshes (navisuses this internally).sparse-cubesis a library for extracting meshes from sparse voxel data (i.e. x/y/z voxel coordinates instead of a dense 3D matrix).
connectoprovides a unified interface for querying connectomes: the same calls work across datasets and backends (neuPrint, CAVE), taking care of each dataset's quirks (e.g. root IDs vs body IDs, naming conventions for cell types and sides).fafbsegprovides functions to work with the FlyWire connectome (FAFB).pymaidlets you interface with CATMAID servers. Critically, it's built on top ofnavisand you can use anynavisfunction withpymaidneurons. Side note: due to a name clash the library is calledpython-catmaidon PyPI.dvidtoolslets you fetch data from DVID servers such as those used by Janelia for in-progress datasets.neuprint-pythonis Janelia's official Python client for neuPrint servers. It's not one of our tools but we have contributed substantially (including the query functions for the first release);naviswraps it to fetch neurons asnavisobjects.sea-serpentis a dataframe-like wrapper around the SeaTable API, which we use to manage annotations for various connectome datasets.
cocoais a library for comparative connectomics: matching, connectivity, co-clustering and cell typing across Drosophila datasets (FlyWire, hemibrain, MANC, male CNS).bigclust2is a graphical interface for interactively exploring, clustering and annotating large (100k's of neurons) morphological or connectivity-based embeddings. It's a complete rewrite ofbigclust.
If you use AI coding assistants (Claude, ChatGPT & co.), these MCP servers give them access to our tools:
coda-mcplets your AI client build and run workflows in Coda.natmcpgives coding agents current, accurate information about natverse functions, idioms and datasets (experimental).
There are a few more packages/functions that might be of interest:
NBLAST is an algorithm that computes morphological similarity between neurons (Costa et al., 2016). This has proven incredibly useful to find similar neurons across datasets but also to cluster neurons into cell types.
On the R side the algorithm is implemented in nat.nblast and in Python it is part of navis (see this tutorial).
Neuroanatomical databases (like e.g. VirtualFlyBrain) typically register neurons to a template space which facilitates e.g. co-visualization of neurons from different
datasets. If you want to transform spatial data between template brains, e.g. from FAFB ("FAFB14") to the Janelia hemibrain ("JRCFIB2018F"), you should look for nat.flybrains & nat.jrcbrains in R and navis-flybrains in Python. For fish and mouse data, check out navis-fishbrains and navis-mousebrains. These also allow you to define custom transforms e.g. via landmarks.
If these tools helped your research, please cite them. In short: the natverse paper for natverse (R) packages, and the NBLAST paper when using NBLAST.
Citing
navis: there is nonavispaper yet (one is in the works). Until then, please cite its Zenodo DOI 10.5281/zenodo.4699382, ideally with the version you used.
See the publications page for what to cite for each tool, plus a selection of publications that used them.
- Questions and bug reports: please open an issue (or, where enabled, a discussion) on the GitHub repository of the tool in question.
- Something missing or out of date in this list? Open an issue here or edit
tools.yaml. - Everything else (collaborations, general enquiries): email us at flyconnectome@gmail.com.

