Skip to content
flyconnectomePublic

About

Overview of neuroscience tools developed in the Fly Connectomics group (University of Cambridge) and the Jefferis lab (MRC-LMB)

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neuroscience tools

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.

No code required: Coda

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.

R

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:

General

  1. nat is a general-purpose library for working with neuronanatomical data. I highly recommend having a look at the "Articles" in nat's doc.
  2. nat.nblast implements the NBLAST algorithm for morphological comparison of neurons (see below).
  3. nat.templatebrains, nat.flybrains and nat.jrcbrains bundle template brains and transforms that let you xform e.g. neurons from one brain template to another (see below).
  4. nat.ggplot helps you make publication-quality 2D renderings of neurons using ggplot2.

Data access

  1. neuprintr lets you run queries against neuPrint servers such as those hosting the Janelia connectomes.
  2. rcatmaid provides an interface with CATMAID servers such as those the VFB uses to host published data from the FAFB or larval fruit fly datasets. rcatmaid is built on top of nat and you can use nat functions with neurons pulled via rcatmaid.
  3. neuromorphr lets you search and pull data from neuromorpho.org.
  4. insectbrainr provides access to the InsectBrainDB.
  5. neuronbridger provides access to NeuronBridge for matching EM neurons to light-level data.
  6. fishatlas provides 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.
  7. mouselightr provides 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.
  8. seatabler is 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).

Connectome datasets

These packages provide dataset-specific conveniences (meta data, annotations, transforms, etc.) on top of the general-purpose libraries above:

  1. fafbseg for the FlyWire whole-brain connectome (FAFB).
  2. hemibrainr for the Janelia hemibrain.
  3. malecns for the Janelia male CNS.
  4. malevnc for the Janelia male adult nerve cord (MANC).
  5. fancr for the female adult nerve cord (FANC).
  6. bancr for the brain and nerve cord (BANC).
  7. In-progress datasets (access may be restricted): crantr (clonal raider ant brain), yakuba (D. yakuba male VNC), aedes (Aedes aegypti brain) and fishr (fish2 larval zebrafish brain).

Connectomics analyses

  1. coconat provides dataset-agnostic building blocks for connectome analyses.
  2. coconatfly builds on coconat to provide a uniform interface for comparative connectomics across Drosophila datasets (FlyWire, hemibrain, male CNS, MANC, FANC, BANC, etc.).
  3. influencer computes influence scores (i.e. indirect connectivity) of neurons in connectomes.

Python

In Python, we find packages analogous to those in R:

General

  1. navis is nat'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.
  2. flybrains, fishbrains and mousebrains bundle template brains and transforms for use with navis that let you xform e.g. neurons from one brain template to another (see below).
  3. octarine is a fast, lightweight 3D viewer; together with the octarine-navis-plugin it serves as a high-performance 3D plotting backend for navis.
  4. nglscenes lets you generate and manipulate neuroglancer scenes (from/to URLs, files or the clipboard), and run and remote-control a local neuroglancer.
  5. fastcore re-implements core navis and nat functions for working with neuron trees in Rust (navis uses this under the hood when installed). It comes with Python and R bindings.
  6. skeletor implements various skeletonization algorithms for meshes (navis uses this internally).
  7. sparse-cubes is a library for extracting meshes from sparse voxel data (i.e. x/y/z voxel coordinates instead of a dense 3D matrix).

Data access

  1. connecto provides 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).
  2. fafbseg provides functions to work with the FlyWire connectome (FAFB).
  3. pymaid lets you interface with CATMAID servers. Critically, it's built on top of navis and you can use any navis function with pymaid neurons. Side note: due to a name clash the library is called python-catmaid on PyPI.
  4. dvidtools lets you fetch data from DVID servers such as those used by Janelia for in-progress datasets.
  5. neuprint-python is 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); navis wraps it to fetch neurons as navis objects.
  6. sea-serpent is a dataframe-like wrapper around the SeaTable API, which we use to manage annotations for various connectome datasets.

Connectomics analyses

  1. cocoa is a library for comparative connectomics: matching, connectivity, co-clustering and cell typing across Drosophila datasets (FlyWire, hemibrain, MANC, male CNS).
  2. bigclust2 is a graphical interface for interactively exploring, clustering and annotating large (100k's of neurons) morphological or connectivity-based embeddings. It's a complete rewrite of bigclust.

AI coding assistants

If you use AI coding assistants (Claude, ChatGPT & co.), these MCP servers give them access to our tools:

  1. coda-mcp lets your AI client build and run workflows in Coda.
  2. natmcp gives coding agents current, accurate information about natverse functions, idioms and datasets (experimental).

Noteworthy mentions

There are a few more packages/functions that might be of interest:

NBLAST

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

Transforms

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.

Citing

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 no navis paper 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.

Get in touch

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

About

Overview of neuroscience tools developed in the Fly Connectomics group (University of Cambridge) and the Jefferis lab (MRC-LMB)

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Contributors

Languages