Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 6.04 KB

README.md

File metadata and controls

62 lines (50 loc) · 6.04 KB

Neuroscience tools

We have developed multiple tools to work with neuroanatomical data. Here is a quick overview:

Below are brief descriptions and links of the libraries/packages. For details, I defer to their respective (excellent) docs.

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. Of particular relevance:

  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. neuprintr and hemibrainr provide an interface with neuPrint and the Janelia hemibrain dataset (link). The former lets you run queries against neuPrint's neo4j database while the latter contains meta data and various convenience functions to work with the hemibrain dataset.
  3. rcatmaid provides an interface with CATMAID servers such as those the VFB uses to host published from the FAFB or larval fruit fly dataset. rcatmaid is built on top of nat and you can use nat functions with neurons pulled via rcatmaid.
  4. neuromorphr lets you search and pull data from neuromorpho.org
  5. 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.
  6. mouselightr provides an interface with the MouseLight at Janelia Research Campus, which has successfully acquired and registered almost ~1,000 neurons from the mouse into a standard, annotated template space.
  7. fafbseg provides functions to work with both the Google and FlyWire segmentation of the FAFB dataset.
  8. nat.flybrains and nat.jrcbrains bundle various transforms for use with nat that let you xform e.g. neurons from one brain template to another

Python

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

  1. navis is nat's serpentine sibling: a general purpose neuron library for visualization and analysis of neuroanatomical data. It also features interfaces e.g. with Blender 3D, neuPrint, MICRoNs, neuromorpho, NEURON and InsectBrainDB. Check out the Quickstart article and the various tutorials.
  2. 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.
  3. fafbseg provides functions to work with both the Google and FlyWire segmentation of the FAFB dataset.
  4. flybrains bundles various transforms for use with navis that let you xform e.g. neurons from one brain template to another
  5. skeletor implements various skeletonization algorithms for meshes (navis uses this internally)
  6. 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)
  7. nblast-large is a WIP implementation of NBLAST designed for very large datasets (>100k neurons)

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. These also allow you to define custom transforms e.g. via landmarks.