This is the multi-page printable view of this section. Click here to print.
Documentation
- 1: Overview
- 2: Getting Started
- 2.1: Starting to explore VFB
- 2.2: This is the Slice Viewer tab
- 2.3: This is the 3D Viewer tab
- 2.4: This is the Term Info tab
- 2.5: This is the Term Context tab
- 2.6: This is the Circuit Browser tab
- 2.7: How to Interpret VFB Thumbnails
- 2.8: Similarity Score Queries Guide
- 2.9: Bulk Image Download
- 2.10: Single cell RNAseq data
- 3: Examples
- 4: Concepts
- 4.1: Transgene Expression
- 4.2: Split Expression
- 4.3: NBLAST
- 4.4: Templates
- 4.5: Bridging Registrations
- 4.6: Cell Types
- 4.7: Confidence Values
- 4.8: FlyLight Adult CNS Imaging Tiles
- 5: Tutorials
- 5.1: VFB Model Context Protocol (MCP) Tool Guide
- 5.2: Application Programming Interfaces (APIs)
- 5.2.1: Guide to Working with Images from Virtual Fly Brain (VFB) Using the VFBConnect Library
- 5.2.2: Hacking the connectome
- 5.2.2.1: Tool landscape
- 5.2.2.2: Introduction to connectomic data and tools
- 5.2.2.3: Discovery
- 5.2.2.4: Mapping
- 5.2.2.5: Visualisation
- 5.2.2.6: Connectomics
- 5.2.2.7: NBLAST
- 5.2.3: Downloading Images from VFB Using VFBconnect
- 5.2.4: VFB connect API overview
- 5.2.5: SOLR search example
- 5.2.6: Data types
- 5.2.7: Plotting
- 5.2.8: pymaid
- 5.2.9: NBLAST
- 5.2.10: neuprint
- 6: Contribution Guidelines
- 7: VFB APIs
- 7.1: Production Database (PDB) API
- 7.2: Knowledge Base (KB) API
- 7.3: Owlery API
- 7.4: SOLR Search API
1 - Overview
2 - Getting Started
Below are a few overview pages to help you get started using VFB:
2.1 - Starting to explore VFB
VFB integrates data curated from the literature with image data from many bulk sources. The search system allows you to search for neurons and neuroanatomical structures using almost any name found in the literature. The query system can identify neurons innervating any specified neuropil or fasciculating with any specified tract. It also allows queries for genes, transgenes and phenotypes expressed in any brain region or neuron. Search and query results combine referenced textual descriptions with 3D images and links to originating data sources. VFB features tens of thousands of 3D images of neurons, clones and expression patterns, registered to standard template brains. Any combination of these images can be viewed together. A BLAST-type query system (NBLAST) allows you to find similar neurons and drivers starting from a registered neuron.
Search for the item you’re interested in
Hover to explore brain regions in the Stack Viewer
Query for related terms and images
2.2 - This is the Slice Viewer tab
Hover to explore, click to list or shift + click to add painted anatomy
Use the arrow icons or scroll with the mouse to move through the stack
Home resets your view
Use the zoom icons or pinch gesture to zoom
Toggles through orthogonal views
Toggles the slice position on the 3D Viewer on/off
2.3 - This is the 3D Viewer tab
Point and click to select neurons/expression
Click and drag with the mouse or use the directional icons to rotate/move
Use the zoom icons or scroll with the mouse to zoom in/out
Home resets your view
The camera icon starts/stops a rotation animation of the scene
The sphere icon toggles wireframes on/off
2.4 - This is the Term Info tab
Click on thumbnails to add that image to the viewer
Click on terms to select them
Click on download items to begin downloading
Run term related queries
2.5 - This is the Term Context tab
Home resets your view
Use the zoom icons or scroll with the mouse to zoom in/out
Click to refresh to the current focus term
Select either the location or the classification for the current term
2.6 - This is the Circuit Browser tab
The ‘strongest’ paths are the shortest/highest weighted paths. Paths are arranged from the ‘strongest’ at the bottom to the ‘weakest’ at the top. A detailed explanation for the algorithm used to determine path strengths can be found here.
Search for the source neuron to start from (Note: query is directional)
Search for the target neuron
Maximum number of paths to return (only the ‘strongest’ paths will be returned)
A minimum weight for the synapse count of each connection can be applied, paths containing individual connections below this minimum will not be returned
2.7 - How to Interpret VFB Thumbnails
How to Interpret VFB Thumbnails
Here is a guide on how to interpret VFB thumbnails:
- Each pixel in a VFB thumbnail corresponds to a specific depth in the image stack.
- Brighter or more intense colors indicate higher intensity values at that depth.
- The color bar on the right side of the image provides additional context about the mapping between color and depth.
- Each color in the color bar corresponds to a specific depth in the image stack, and the intensity of the color represents the maximum intensity value at that depth.
- Users can use the color bar to identify the depth of the signal and gain insights into the distribution of intensity values across different depths in the image stack.
![]()
- Note the colour bar and hence the signal in the image uses nealy the whole of the available (Z) stack space.
![]()
- Note the colour bar and hence the signal in the image uses less of the available (Z) stack space.
![]()
- Note the colour bar and hence the signal in the image uses much less of the available (Z) stack space.
In summary, VFB thumbnails provide a simplified way to visualize complex 3D image data. Each pixel’s color and intensity represent the maximum intensity value at a specific depth, and the color bar provides additional context about the mapping between color and depth. By interpreting the colors and using the color bar, users can gain insights into the distribution of intensity values across the image stack.
2.8 - Similarity Score Queries Guide
Scores Availability
The similarity scores are calculated using NBLAST or other third-party scores (e.g. NeuronBridge). Only queries with above-threshold scores will appear in the ‘Find similar…’ menu.
Step 1: Select a Neuron or Expression Pattern
Navigate to the VFB browser and select a neuron or expression pattern of interest so it’s information is shown in the Term Info panel
Step 2: Open the ‘Find similar…’ Menu under the ‘Query For’ section
Under the ‘Query For’ section, locate the ‘Find similar…’ expandable menu. This menu will only appear if an above-threshold score is available for the selected neuron or expression pattern.
Step 3: Run a Similarity Score Query
Inside the ‘Find similar…’ menu, you will find queries to find morphologically similar neurons or expression patterns. Select a query to run it. The results will display neurons or expression patterns that are similar to your selected neuron or expression pattern.
Note: We recalculate these scores shortly after new data is added, so new matches may appear if you check back a few months later.
2.9 - Bulk Image Download
Using the Bulk Image Download Tool
Follow these steps to download multiple files from VirtualFlyBrain using the bulk download tool:
Step 1: Open the Images
Navigate to the VFB Browser and open all the images you are interested in downloading. You can do this by searching for specific images and opening their respective pages.
Step 2: Open the Bulk Download Tool
Once you have all the images open, locate the bulk download icon in the top right. Click on this icon to open the bulk download tool.
Step 3: Select the Data Type
In the bulk download tool, select the type of data you want to download. The options are OBJ, SWC, NRRD, and References.
Step 4: Select the Variables
If applicable, select specific variables related to the data type you have chosen.
Step 5: Download the Data
After making your selections, click the ‘Download’ button to start the download. The data will be downloaded in a zip file named “VFB Files.zip”.
Step 6: Unzip the File
Once the download is complete, locate the zip file in your downloads folder and unzip it to access the data.
Step 7: Open the Data
Finally, open the data in your chosen software. For example, if you chose OBJ, you could open the data in a 3D modeling program.
Note: If something goes wrong during the download, an error message will be displayed and you will be prompted to try again. If no entries are found for the selected types and variables, a message will be displayed to inform you.
2.10 - Single cell RNAseq data
Finding gene expression data on VFB
Finding cell type clusters
Cell types with available scRNAseq data can be identified using the ‘Has scRNAseq data filter’ when searching.
Clusters for a cell type of interest can be found via the ‘Single cell transcriptomics data for…’ query.
Gene expression data
After selecting a cluster, gene expression can be retrieved via the ‘Genes expressed in…’ query.
Expression level is the mean counts per million reads of all cells in the cell type cluster that express the given gene. Expression extent is the proportion of cells within the cluster that express the given gene. VFB only shows genes that are expressed in at least 20% of cells in the cluster (Extent > 0.2).
Gene semantic tags
We add semantic tags to genes to allow quick searching and filtering of results (‘Function’ column of gene expression data). These tags are based on FlyBase Gene Group membership and GO annotations, which are all sourced from FlyBase. A full list of gene tags with their associated Gene group and GO terms can be found here.
API
Data can also be retrieved using VFB_connect.
Data sources and processing
- Raw scRNAseq data is ingested by the EBI Single Cell Expression Atlas (SCEA). Where possible, cells are linked to cell types from the Drosophila Anatomy Ontology based on author annotations. Data is reprocessed, filtered and reclustered.
- FlyBase takes data from EBI, keeping only cells that are linked to ontology terms and generating summary expression data for each cell type (cluster).
- VFB takes control/wild type expression data from FlyBase for datasets where at least one nervous system cell type is present and filter out any genes expressed in less than 20% of cells per cluster.
Database schema
A simplified schema showing how scRNAseq data is stored in the VFB Neo4j database is shown below:
Cell types are classes from the Drosophila Anatomy Ontology and are also linked to several other types of data in VFB, such as images, connectomics and driver expression information.
3 - Examples
3.1 - Circuit diagram of the mushroom body
4 - Concepts
4.1 - Transgene Expression
Here we present details of how single transgenes are curated
Expression of single transgenes are curated from the published literature into FlyBase as expression statements. Virtual Fly Brain (VFB) combines hosted images with neuroanatomical, expression and genetic data from FlyBase in Neo4j and maps them onto Central Nervious System (CNS) templates where they can be queried using Web Ontology Language (OWL) and Solr.
4.2 - Split Expression
Thousands of hemi-driver transgenes are now available, meaning that millions of combinations/splits are possible, each targeting some precise subset of the 10s-100s of thousands of neurons in a fly Central Nervous System (CNS). Finding the right combination for an experiment is a serious bottleneck for researchers.
FlyBase & Virtual Fly Brain (VFB) solve this problem by curating information and images recording where expression is driven by combinations of hemi-drivers. Each combination gets a standard name on VFB reflecting the names of the component hemidrivers (see figure below) and is also associated with any short names for the combination used in the literature (e.g. “P{VT017411-GAL4.DBD} ∩ P{VT019018-p65.AD} expression pattern” has_exact_synonym: SS02256")


We use programmatic methods to generate expression statements for hemi-driver combinations with FlyLight image data hosted by VFB. Combinations are validated against a local copy of the FlyLight dataset and a structured user readable comment is generated as part of the expression statement. These hyperlink to the partner hemi-driver in FlyBase, contain the strain designation (where available) and can be automatically parsed by Virtual Fly Brain to attach expression and genetic data to a node representing the intersection.
4.3 - NBLAST
What is NBLAST?
NBLAST (Costa et al., 2016) is a computational method to quantify morphological similarity between neurons. It provides an objective way to compare neuron shapes and identify morphologically similar cells within and across datasets.
How NBLAST works
NBLAST operates on “dotprops” - a representation of neurons as tangent vectors that capture the local geometry of neuronal arbors. The algorithm:
- Converts neurons to dotprops: Each neuron is represented as a set of points with associated directional vectors
- Compares vector pairs: For each tangent vector in a query neuron, NBLAST finds the closest tangent vector in the target neuron
- Calculates similarity scores: Scores are computed based on both the distance between vectors and their directional similarity (dot product)
- Normalizes results: Final scores are typically normalized to a self-self comparison, where a perfect match equals 1

NBLAST on VFB
VFB provides precomputed NBLAST scores for all neurons in its database, making morphological similarity searches fast and accessible without requiring computational expertise.
What’s included
VFB NBLAST scores cover:
-
All individual neurons from major connectome datasets including:
- FAFB-FlyWire
- Male-CNS optic lobe
- Hemibrain
- FlyCircuit
- FAFB-CATMAID datasets
-
Split-GAL4 expression patterns from FlyLight, enabling discovery of potential driver lines that label specific morphological types
Types of comparisons
- Neuron-to-neuron: Find morphologically similar neurons within or across datasets
- Neuron-to-expression pattern: Identify split-GAL4 lines that might label neurons similar to those in connectome datasets
Using NBLAST on VFB
Accessing NBLAST queries
NBLAST similarity searches are available directly in the VFB interface:
- Navigate to any individual neuron or split-GAL4 image page
- Scroll to the term info panel
- Look for NBLAST query options (only appears if results are available)
- Click to see ranked lists of morphologically similar items
Interpreting results
NBLAST scores range from -1 to 1:
- 1.0: Perfect match (identical morphology)
- 0.5-1.0: High similarity
- 0.0-0.5: Moderate similarity
- Below 0.0: Low similarity or dissimilar morphologies
Results are typically ranked by score, with the most similar items appearing first.
Applications
Research applications
- Cell type classification: Group neurons by morphological similarity
- Cross-dataset comparison: Find corresponding cell types across different connectomes
- Driver line selection: Identify genetic tools for targeting specific morphological types
- Evolutionary studies: Compare homologous neurons across species
Workflow integration
NBLAST results on VFB can be:
- Exported for further analysis
- Used to build custom neuron collections
- Combined with other search criteria (anatomy, connectivity)
- Accessed programmatically via VFB APIs
Technical considerations
Optimization for VFB
- All neurons are standardized to common template spaces
- Consistent spatial resolution across datasets
- Normalized scoring for cross-dataset comparisons
- Regular updates as new data becomes available
Limitations
- Focuses purely on morphological similarity
- May not capture functional relationships
- Sensitive to differences in reconstruction quality
- Template registration accuracy affects cross-dataset comparisons
Further reading
- NBLAST tutorial - Detailed programming tutorial
- Original NBLAST paper - Costa et al., 2016
- VFB NBLAST announcement - Recent updates and expanded coverage
4.4 - Templates
Many central nervious system (CNS) templates exist for Drosophila, below we provide a summary of those used in VFB.
Central Nervious System from Janelia Research Campus JRC2018
![]()
![]()
VFB displays data aligned to either the JRC 2018 unisex brain template for cephalic or JRC 2018 unisex Ventral Nerve Cord (VNC) for non-cephalic data.
Bogovic et al., “An unbiased template of the Drosophila brain and ventral nerve cord”
We recomend downloading templates from the VFB browser or the links below however the original files are available from Janelia: JRC 2018 Brain templates
Adult Brain from Janelia Research Campus/VFB (JFRC2010/JFRC2)
Superceeded by JRC2018
Template brain created by Arnim Jenett (Janelia Research Campus), Kazunori Shinomiya and Kei Ito (Tokyo University) from a staining with the neuropil marker nc82.
The voxel size is 0.62x0.62x0.62 micron.
The files are available here.
Painted domains/regions in the available templates
4.5 - Bridging Registrations
Many transforms to map between different Drosophila template brains are available.
You can see how to use the above in python using navis-flybrains or in R using nat.flybrains
4.6 - Cell Types
Neurons on VFB are annotated with cell types from the Drosophila Anatomy Ontology (FBbt).
Why do we use ontology terms?
- Each term represents a concept of a cell type, with a definition based on referenced publications:

- As well as a label, each term has a collection of synonyms, facilitating identification even when the same type has been referred to by different names in different sources:

- Hierarchical – e.g. specific terms for MBON01, MBON02 etc., but also grouped by a general MBON term and all under ‘adult neuron’
- Neurons of the same type in multiple datasets can be linked to the same ontology term
- Persistent, resolvable identifiers to uniquely identify cell types e.g. http://virtualflybrain.org/reports/FBbt_00100234
We also use terms from the Drosophila Anatomy Ontology to annotate CNS regions (for the Template ROI Browser tool and neuron connectivity per region query) and other anatomical features.
4.7 - Confidence Values
Some annotations on VFB are based on predictions, for example, predicted neurotransmitters for neurons in electron microscopy datasets (see below). Where available, we include the confidence of these predictions (as a badge next to the annotation), as well as a link to the publication - in the example below, this would be by clicking on the ‘DOI’ badge.
Neurotransmitter Prediction Confidence Values
Neurotransmitter predictions for neurons in the FlyWire FAFB and Hemibrain datasets are the ‘conf_nt’ predictions from Eckstein et al. (2024). MANC, optic-lobe and BANC predictions are from Takemura et al. (2023), Nern et al. (2025) and Bates et al. (2025), respectively, using the methodology of Eckstein et al. (2024). This analysis only investigated a limited set of neurotransmitters and assumed a single neurotransmitter per neuron (see publications for further detail). Neurons with fewer than 100 presynapses are excluded.
4.8 - FlyLight Adult CNS Imaging Tiles
While most first-generation FlyLight expression pattern images are single 20x objective acquisitions, many Split-GAL4 lines were imaged using 63x or 40x objectives. This requires multiple image acquisitions to cover the CNS regions of interest. VFB integrates only the combined images derived from these tiles and lists the tiles used to create these combined images in the comment section for each image, for example: “tile(s): ’left_dorsal, right_dorsal, ventral”. These tiles do not necessarily cover the entire brain or VNC, which complicates the assessment of the specificity of these lines. VFB notes in the comment where the combined tiles do not provide full coverage. For further information refer to Figure 4 Supplemental File 1 from ‘A split-GAL4 driver line resource for Drosophila CNS cell types’ direct link. This is a preprint and may be updated.
Sets of tiles from FlyLight (Meissner et al., 2024):
5 - Tutorials
5.1 - VFB Model Context Protocol (MCP) Tool Guide
Overview
The Virtual Fly Brain Model Context Protocol (MCP) Tool enables you to query VFB data through Large Language Models like Claude using natural language. This guide shows you how to get started and provides examples of common queries.
What is MCP?
The Model Context Protocol is a standard that allows LLMs to interact with external data sources and tools. The VFB MCP tool follows this standard, providing your LLM with access to VFB’s neuroanatomical databases, NBLAST similarity scores, and term information.
Accessing the Tool
The VFB MCP tool is available at: vfb3-mcp.virtualflybrain.org
Quick Start
Use the Live Service (Recommended)
The easiest way to use VFB3-MCP is through our hosted service. This requires no installation or setup on your machine.
Claude Desktop Setup
- Open Claude Desktop and go to Settings
- Navigate to the MCP section
- Add a new MCP server with these settings:
- Server Name:
virtual-fly-brain(or any name you prefer) - Type: HTTP
- Server URL:
https://vfb3-mcp.virtualflybrain.org
- Server Name:
Configuration JSON (alternative method):
{
"mcpServers": {
"virtual-fly-brain": {
"type": "http",
"url": "https://vfb3-mcp.virtualflybrain.org",
"tools": ["*"]
}
}
}
Claude Code Setup
- Locate your Claude configuration file:
- macOS/Linux:
~/.claude.json - Windows:
%USERPROFILE%\.claude.json
- macOS/Linux:
- Add the VFB3-MCP server to your configuration:
{
"mcpServers": {
"virtual-fly-brain": {
"type": "http",
"url": "https://vfb3-mcp.virtualflybrain.org",
"tools": ["*"]
}
}
}
- Restart Claude Code for changes to take effect
GitHub Copilot Setup
- Open VS Code with GitHub Copilot installed
- Open Settings (
Ctrl/Cmd + ,) - Search for “MCP” in the settings search
- Find the MCP Servers setting
- Add the server URL:
https://vfb3-mcp.virtualflybrain.org - Give it a name like “Virtual Fly Brain”
Alternative JSON configuration (in mcp.json):
{
"servers": {
"virtual-fly-brain": {
"type": "http",
"url": "https://vfb3-mcp.virtualflybrain.org"
}
}
}
Visual Studio Code (with MCP Extension)
- Install the MCP extension for VS Code from the marketplace
- Open the Command Palette (
Ctrl/Cmd + Shift + P) - Type “MCP: Add server” and select it
- Choose “HTTP” as the server type
- Enter the server details:
- Name:
virtual-fly-brain - URL:
https://vfb3-mcp.virtualflybrain.org
- Name:
- Save and restart VS Code if prompted
Other MCP Clients
For any MCP-compatible client that supports HTTP servers:
{
"mcpServers": {
"virtual-fly-brain": {
"type": "http",
"url": "https://vfb3-mcp.virtualflybrain.org",
"tools": ["*"]
}
}
}
Gemini Setup
To use the Virtual Fly Brain (VFB) Model Context Protocol (MCP) server with Google Gemini, you can connect through custom Python/Node.js clients that support MCP.
Note: Direct Gemini web interface integration with MCP is not currently supported. Developer tools are needed to connect the two.
Option 1: Using Python
For application development, use the mcp and google-genai libraries to connect.
Setup: pip install google-genai mcp
Implementation: Use an SSEClientTransport to connect to the VFB URL, list its tools, and pass their schemas to the Gemini model as Function Declarations.
Testing the Connection
Once configured, you can test that VFB3-MCP is working by asking your AI assistant questions like:
Basic Queries:
- “Get information about the neuron VFB_jrcv0i43”
- “Search for terms related to medulla in the fly brain”
- “What neurons are in the antennal lobe?”
Advanced Queries:
- “Find all neurons that connect to the mushroom body”
- “Show me expression patterns for gene repo”
- “What brain regions are involved in olfactory processing?”
- “Run a connectivity analysis for neuron VFB_00101567”
Search Examples:
- “Search for adult neurons in the visual system”
- “Find genes expressed in the central complex”
- “Show me all templates available in VFB”
If you see responses with VirtualFlyBrain data, including neuron names, brain regions, gene expressions, or connectivity information, the setup is successful!
For more detailed usage examples and API calls, see examples.md.
Local Installation
If you prefer to run the MCP server locally, see the VFB3-MCP repository README for detailed installation instructions.
Core Features
The tool provides access to three main capabilities:
1. Term Information Queries (get_term_info)
Retrieve detailed information about any VFB term using its VFB ID.
Example Query:
"What is the medulla? Please get the full definition and structure."
Returns:
- Term definition and synonyms
- Classification and type information
- Anatomical relationships (part of, develops from, innervates, etc.)
- Associated neurons and expression patterns
- Related images and connectivity data
2. Term Search (search_terms)
Search for VFB terms using keywords and filters.
Example Query:
"Find neurons in the medulla"
Advanced Filtering Options:
- Filter by entity type: neuron, muscle, glia, anatomical region
- Filter by nervous system component: visual system, olfactory system, sensory neuron, motor neuron, etc.
- Filter by nervous system property: cholinergic, GABAergic, glutamatergic, dopaminergic, peptidergic, etc.
- Filter by dataset: FAFB, FlyCircuit, hemibrain, neuprint, flycircuit, etc.
3. Query Execution (run_query)
Execute specific queries on VFB terms, including NBLAST similarity analysis.
Example Query:
"What neurons are morphologically similar to IN02A049?"
Example Use Cases
Case 1: Exploring a Transgenic Construct
User Question: “What is P{E(spl)m8-HLH-2.61} and where is it used?”
Tool Actions:
- Search for the construct in VFB
- Retrieve full term information
- Return detailed description including:
- FlyBase ID (FBtp0004163)
- Gene involved: E(spl)m8
- Type: Transgenic construct (reporter for gene expression)
- Expression patterns and research use
- Related constructs and variants
Result: You get comprehensive information about the transgenic reporter, its purpose, and research applications.
Case 2: Understanding a Neuroblast Population
User Question: “What is the Medulla Forming Neuroblast and what role does it play?”
Tool Actions:
- Search for “medulla forming neuroblast”
- Get term info for FBbt_00001938
- Return:
- Cell type classification (neuroblast)
- Location in the larval optic anlage
- Developmental fate (produces medulla neurons)
- Marker genes (dpn, ase)
- Number of neurons produced (~54,000 secondary neurons)
- Available scRNAseq and expression data
Result: Understand the neuroblast’s role in developing the adult medulla’s neural circuitry.
Case 3: Discovering Neuron Types
User Question: “What types of neurons are in the medulla?”
Tool Actions:
- Search for “neuron” with filter for medulla
- Return 472 neuron types with parts in the medulla, organized by category:
- Medulla intrinsic neurons (Mi): columnar neurons with confined processes
- Central medulla intrinsic neurons (Cm): arborizing in central/serpentine layer
- Medulla tangential neurons (Mt): wide-field spanning neurons
- Medulla visual projection neurons (MeVP): tangential projection neurons
- Medulla columnar neurons (MC): connecting medulla to tubercle
- Plus many more specialized types
Result: Get a comprehensive overview of medulla neuron diversity and organization.
Case 4: Morphological Similarity Queries
User Question: “Show me what the IN02A049 neuron looks like and find similar neurons.”
Tool Actions:
- Get term info for IN02A049 (specific instance from MANC connectome)
- Execute NBLAST query for morphologically similar neurons
- Return:
- 3D visualization of the neuron
- Classification and properties
- Synaptic inputs (neurotransmitter types and counts)
- Morphologically similar neurons with NBLAST scores
- Cross-connectome comparisons
Result: Discover morphologically similar neurons for comparative analysis.
Case 5: Understanding NBLAST Scores
User Question: “How are NBLAST scores calculated?”
Tool Actions:
- Search for “NBLAST”
- Return detailed explanation including:
- Algorithm basis (Costa et al. 2016)
- How neurons are represented (point skeletons with direction vectors)
- Scoring mechanism (Euclidean distance + direction similarity)
- Normalization approach (comparison to self-match)
- Asymmetry property and symmetrical variants
- Available datasets (FAFB-FlyWire, Male-CNS optic lobe, FlyCircuit, Hemibrain, FAFB-CATMAID)
Result: Understand the methodology behind VFB’s morphological similarity analysis.
Tips for Effective Queries
1. Use VFB IDs When Known
If you know the VFB ID of a term, use it directly:
"Get me detailed information about FBbt_00003748 (the medulla)"
2. Combine Search and Query
Use search first to find relevant terms, then query them:
"Find all cholinergic neurons in the visual system,
then tell me about the top 5"
3. Filter Strategically
Use filters to narrow results:
"Show me motor neurons from the male-CNS optic lobe dataset"
4. Explore Relationships
Ask about anatomical and functional relationships:
"What neurons innervate the medulla?
What brain regions do they come from?"
5. Cross-Dataset Comparisons
Compare neurons across different connectome datasets:
"Find the equivalent of this FAFB neuron in the hemibrain dataset"
Available Datasets
The VFB MCP tool provides access to neurons and data from:
- FAFB-FlyWire (v783) - Large-scale adult brain connectome
- Male-CNS optic lobe (v1.0.1) - Focused optic lobe connectome
- FlyCircuit (1.0) - Single-neuron morphology database
- Hemibrain (1.2.1) - Subset of adult brain connectome
- FAFB-CATMAID - Manually traced EM data
- FlyLight Split-GAL4 - Driver line expression images
- scRNAseq data - Transcriptomic information
Understanding VFB IDs
VFB terms use standardized identifiers:
- FBbt_ - Drosophila anatomy terms (e.g., FBbt_00003748 = medulla)
- FBgn_ - FlyBase genes (e.g., FBgn0000137 = ase gene)
- FBtp_ - FlyBase transgenic constructs (e.g., FBtp0004163 = P{E(spl)m8-HLH-2.61})
- VFB_ - VirtualFlyBrain-specific IDs for individuals and images
Next Steps
- Explore the tool: Visit vfb3-mcp.virtualflybrain.org
- Read more about NBLAST: See our NBLAST concepts page
- Learn about VFB APIs: Check our API overview
- Browse VFB directly: Visit the main Virtual Fly Brain site
Common Questions
Q: Do I need to install anything? A: No, if you’re using Claude or another MCP-compatible LLM with the integration already set up, just start asking questions.
Q: Can I download the data I find? A: Yes, many results include links to download images, neuron skeletons, and connectivity data. Check the API documentation for programmatic access.
Q: What if I don’t know the VFB ID? A: The search tool can find terms by name or keyword. The LLM will help you locate the right term.
Q: Can I combine VFB queries with other analyses? A: Absolutely! You can ask your LLM to retrieve VFB data and then perform additional analyses, create visualizations, or integrate with other tools.
Happy exploring! If you have questions or suggestions about the VFB MCP tool, please reach out to the VFB team.
5.2 - Application Programming Interfaces (APIs)
5.2.1 - Guide to Working with Images from Virtual Fly Brain (VFB) Using the VFBConnect Library
Prerequisites
Before starting, ensure you have the VFBConnect library installed. The recommended Python version is 3.10.14, as this version is tested against the library.
pip install vfb-connect
Importing the VFBConnect Library
Start by importing the VFBConnect library. This library provides a simple interface to interact with neuron data from the Virtual Fly Brain.
from vfb_connect import vfb
Retrieving Neuron Data
To work with specific neurons, you can use the vfb.term() function. This function takes a unique identifier (e.g., ID, label, synonym) for the neuron.
Example: Retrieving a Single Neuron
neuron = vfb.term('5th s-LNv (FlyEM-HB:511051477)')
The neuron variable now holds data about the neuron identified by the given term.
Working with Neuron Data
The retrieved neuron object can provide different representations of neuron data, such as its skeleton, mesh, and volume. These representations can be visualized using various plotting methods.
# Access the skeleton representation
neuron_skeleton = neuron.skeleton
# Check the type of the skeleton representation
print(type(neuron_skeleton)) # Output: <class 'navis.neuron.Neuron'>
# Plot the skeleton in 2D
neuron_skeleton.plot2d()
# Access the mesh representation
neuron_mesh = neuron.mesh
# Access the volume representation
neuron_volume = neuron.volume
Retrieving Multiple Neurons
You can retrieve multiple neurons using the vfb.terms() function, which accepts a list of neuron identifiers.
Example: Retrieving Multiple Neurons
neurons = vfb.terms(['5th s-LNv', 'fru-M-300008', 'catmaid_fafb:8876600'])
This command retrieves multiple neurons, which can then be visualized or manipulated collectively.
Flexible Matching Capabilities
One of the key features of the VFBConnect library is its flexible matching capability. The vfb.terms() function can accept a variety of identifiers, such as:
- IDs: Unique identifiers assigned to each neuron.
- Xref (Cross-references): External references that relate to other datasets.
- Labels: Human-readable names for neurons.
- Symbols: Abbreviated names or symbols used to represent neurons.
- Synonyms: Alternative names by which a neuron might be known.
- Partial Matching: You can provide a partial name, and VFBConnect will attempt to find the best match.
- Case Insensitive Matching: Matching is case insensitive, so if an exact match isn’t found, ‘5th s-LNv’ and ‘5TH S-LNV’ are treated the same. This allows for more flexible querying without worrying about exact case matching.
Example: Using Flexible Matching
neurons = vfb.terms('5th s-LN')
If an exact match isn’t found, VFBConnect will provide potential matches. This feature ensures that even with partial or approximate information, you can still retrieve the relevant neuron data.
Output Example:
Notice: No exact match found, but potential matches starting with '5th s-LN':
'5th s-LNv (FlyEM-HB:511051477)': 'VFB_jrchk8e0',
'5th s-LNv': 'VFB_jrchk8e0'
This notice will help you identify the correct neuron based on the closest matches.
Visualizing Neurons
VFBConnect provides various methods to visualize neuron data, both individually and collectively.
3D Visualization
To plot neurons in 3D, use the plot3d() method. This is useful for visualizing the spatial structure of neurons.
neurons.plot3d()
2D Visualization
For 2D visualization, use the plot2d() method.
neurons.plot2d()
Viewing Merged Templates
VFBConnect also allows viewing merged templates of neurons, combining multiple neuron structures into a single view.
neurons.show()
Opening Neurons in VFB
To open the neurons directly in Virtual Fly Brain, use the open() method. This will launch a browser window displaying the neurons in the VFB interface.
neurons.open()
Summary
- Use
vfb.term()to retrieve single neuron data. - Use
vfb.terms()to retrieve multiple neurons with support for partial, case-insensitive, and flexible matching (IDs, labels, symbols, synonyms, etc.). - Access different data representations (skeleton, mesh, volume) via neuron objects.
- Visualize neuron data in 2D and 3D.
- Use the
show()method to view merged neuron templates. - Open neuron data directly in Virtual Fly Brain with the
open()method.
These examples provide a foundation for working with neuron data from Virtual Fly Brain using the VFBConnect library. By exploring different neuron representations and visualization methods, you can analyze and understand neuron structures more effectively.
5.2.2 - Hacking the connectome
Below you can watch the recorded introduction session of our workshop and follow along with the workshop notebooks we work through to show examples of how you can use the available {{ ref “tools.md” tools }} to explore and analyse the published connectomes available on VFB.
5.2.2.1 - Tool landscape
Below are brief descriptions of the libraries/packages. For details, I defer to their respective (excellent) documentations.
Querying VFB
Queries against VFB’s REST API are easiest with
vfb_connect for Python.
For R there is a vfb_connect wrapper, vfbconnectr.
See also David’s presentation for details.
R
In R, the natverse 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 for
this workshop:
natis a general purpose library for working with morphological neuron data. In this workshop, we make heavy use ofnat’s plotting capabilities but its capabilities extend far beyond that. If you want to run any morphological analysis, I highly recommend you have a look at the “Articles” in nat’s doc.neuprintrandhemibrainrprovide 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.rcatmaidprovides an interface with CATMAID servers such as those the VFB uses to host published from the FAFB or larval fruit fly dataset.rcatmaidis built on top ofnatand you can usenatfunctions with neurons pulled viarcatmaid.
Python
In Python, we find packages analogous to those in R:
navisisnat’s serpentine sibling: a general purpose neuron library for visualization and analysis of neuronal morphologies. It also features interfaces e.g. with Blender 3D and thenatverseviarpy2.python-neuprintis a Python library to interface with neuprint maintained by Janelia. Note thatnaviswraps this library and adds some convenience functions. See this tutorial.pymaidlets you interface with CATMAID servers. Critically, it’s built on top ofnavisand you can natively usenavisfunctions withpymaidneurons. Note that due to a name clash the library is calledpython-catmaidon PyPI.
Noteworthy mentions
There are a few more packages/functions that you might hear of over the course of the workshop.
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
You will note that neurons pulled from VFB are typically in the same
template space which makes co-visualization of neurons from different
datasets a breeze. If you want to transform spatial data between
template brains, e.g. from FAFB (“FAFB14”) to hemibrain (“JRCFIB2018F”), you
should look for nat.flybrains & nat.jrcbrains in R and
navis-flybrains in Python.
5.2.2.2 - Introduction to connectomic data and tools
5.2.2.3 - Discovery
Required packages: vfb-connect and python-catmaid (pymaid & navis)
!pip install vfb-connect --upgrade
!pip install python-catmaid --upgrade
A note on using these notebooks
This is designed as an interactive tutorial. Feel free to add code cells below each example to try out variations of your own.
How to find neurons across datasets
VirtualFlyBrain integrates images and connectomics profiles of neurons from many sources. It classifies and records their properties using a standard, queryable classification (The Drosophila Anatomy Ontology). This standardises the names of neuron types across sources, so you don’t need to worry about differences in nomenclature uses and supports queries for neurons by their classification.
# Import libs and initialise API objects
from vfb_connect.cross_server_tools import VfbConnect
import pandas as pd
vc = VfbConnect()
import pymaid
import navis
navis.set_pbars(jupyter=False)
pymaid.set_pbars(jupyter=False)
# Connect to the VFB CATMAID server hosting the FAFB data
rm = pymaid.connect_catmaid(server="https://fafb.catmaid.virtualflybrain.org/", api_token=None, max_threads=10)
# Test call to see if connection works
print(f'Server is running CATMAID version {rm.catmaid_version}')
WARNING: Could not load OpenGL library.
INFO : Global CATMAID instance set. Caching is ON. (pymaid)
Server is running CATMAID version 2020.02.15-905-g93a969b37
Finds neurons by type (classification) across datasets
We can use the vc.get_instances method in combination with the name of a neuron type on VFB to find individual neurons from multiple sources.
Use the search tool on VFB to find neuron types by name or synonym:
Use either the full name or the Symbol to query for neurons:
DA3adPN = vc.get_instances("adult Drosulfakinin neuron", summary=True)
pd.DataFrame.from_records(DA3adPN)
| label | symbol | id | tags | parents_label | parents_id | data_source | accession | templates | dataset | license | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | DSKMP3_R - 327937328 | VFB_jrchjti6 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult Drosulfakinin neuron | FBbt_00048999 | neuprint_JRC_Hemibrain_1point1 | 327937328 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 1 | DSKMP1A(PVM02)_L - 1260833150 | VFB_jrchjti3 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult Drosulfakinin neuron | FBbt_00048999 | neuprint_JRC_Hemibrain_1point1 | 1260833150 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 2 | DSKMP3_R - 328559607 | VFB_jrchjti7 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult Drosulfakinin neuron | FBbt_00048999 | neuprint_JRC_Hemibrain_1point1 | 328559607 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 3 | DSKMP1B_R - 1352077058 | VFB_jrchjti4 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult Drosulfakinin neuron | FBbt_00048999 | neuprint_JRC_Hemibrain_1point1 | 1352077058 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 4 | DSKMP1B(PVM02)_L - 1011184205 | VFB_jrchjti5 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult Drosulfakinin neuron | FBbt_00048999 | neuprint_JRC_Hemibrain_1point1 | 1011184205 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 5 | DSKMP1A_R - 1135837629 | VFB_jrchjti2 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult Drosulfakinin neuron | FBbt_00048999 | neuprint_JRC_Hemibrain_1point1 | 1135837629 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... |
Find neurons by location
We can use the same method to search for neurons by location, using simple queries.
# Find neurons by location. The following query works across multiple data sources and both sides of the brain.
# Results may be incomplete & may include minor overlap inferred from low synapse counts
neurons_in_DA3 = vc.get_instances("'neuron' that 'overlaps' some 'antennal lobe glomerulus DA3'", summary=True)
neurons_in_DA3_tab = pd.DataFrame.from_records(neurons_in_DA3)
neurons_in_DA3_tab[0:5]
Running query: FBbt:00005106 that RO:0002131 some FBbt:00003934
Query URL: http://owl.virtualflybrain.org/kbs/vfb/instances?object=FBbt%3A00005106+that+RO%3A0002131+some+FBbt%3A00003934&prefixes=%7B%22FBbt%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FFBbt_%22%2C+%22RO%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FRO_%22%2C+%22BFO%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FBFO_%22%7D&direct=False
Query results: 158
| label | symbol | id | tags | parents_label | parents_id | data_source | accession | templates | dataset | license | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | lLN2T_a(Tortuous)_R - 5813056598 | VFB_jrchk8bi | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 5813056598 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 1 | ORN_DL3_R - 1671625186 | VFB_jrchk1hj | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult olfactory receptor neuron Or65 | FBbt_00067011 | neuprint_JRC_Hemibrain_1point1 | 1671625186 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 2 | DA4m_adPN_R - 574037266 | VFB_jrchjtdq | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe projection neuron DA4m adPN | FBbt_00047714 | neuprint_JRC_Hemibrain_1point1 | 574037266 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 3 | Uniglomerular mALT DA3 adPN#L1 (FAFB:2449792) | VFB_0010123h | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe projection neuron DA3 adPN | FBbt_00100384 | catmaid_fafb | 2449792 | JRC2018Unisex | BatesSchlegel2020 | https://creativecommons.org/licenses/by-sa/4.0... | |
| 4 | lLN2T_e(Tortuous)_R - 1699974843 | VFB_jrchk8br | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 1699974843 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... |
# Find local interneurons (intrinsic neurons) of the AL, overlapping DA3:
local_in_DA3 = vc.get_instances("'local interneuron of adult antennal lobe' that 'overlaps' some 'antennal lobe glomerulus DA3'",
summary=True)
local_in_DA3_tab = pd.DataFrame.from_records(local_in_DA3)
local_in_DA3_tab
Running query: FBbt:00007390 that RO:0002131 some FBbt:00003934
Query URL: http://owl.virtualflybrain.org/kbs/vfb/instances?object=FBbt%3A00007390+that+RO%3A0002131+some+FBbt%3A00003934&prefixes=%7B%22FBbt%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FFBbt_%22%2C+%22RO%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FRO_%22%2C+%22BFO%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FBFO_%22%7D&direct=False
Query results: 53
| label | symbol | id | tags | parents_label | parents_id | data_source | accession | templates | dataset | license | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | lLN16b_R - 1887168462 | VFB_jrchk89w | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1887168462 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 1 | lLN1_c_R - 5813047691 | VFB_jrchk8ae | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 5813047691 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 2 | lLN2S(Star)_R - 1670627928 | VFB_jrchk8bb | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2S | FBbt_00049815 | neuprint_JRC_Hemibrain_1point1 | 1670627928 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 3 | lLN2F_b(Full)_R - 5813024698 | VFB_jrchk8an | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2F | FBbt_00049812 | neuprint_JRC_Hemibrain_1point1 | 5813024698 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 4 | lLN2T_c(Tortuous)_R - 1671292719 | VFB_jrchk8bo | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 1671292719 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 5 | lLN1_c_R - 5813062199 | VFB_jrchk8af | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 5813062199 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 6 | lLN1_a_R - 5813130064 | VFB_jrchk8a4 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 5813130064 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 7 | lLN1_c_R - 1702651358 | VFB_jrchk8aj | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1702651358 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 8 | lLN2T_e(Tortuous)_R - 1640922516 | VFB_jrchk8bs | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 1640922516 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 9 | lLN11_R - 1670278227 | VFB_jrchk89e | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1670278227 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 10 | lLN2P_c(Patchy)_R - 2105086391 | VFB_jrchk8b0 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2P | FBbt_00049813 | neuprint_JRC_Hemibrain_1point1 | 2105086391 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 11 | lLN2T_b(Tortuous)_R - 1640572741 | VFB_jrchk8bl | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 1640572741 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 12 | lLN1_c_R - 1578826464 | VFB_jrchk8ah | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1578826464 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 13 | lLN2P_a(Patchy)_R - 2041621893 | VFB_jrchk8ao | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2P | FBbt_00049813 | neuprint_JRC_Hemibrain_1point1 | 2041621893 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 14 | lLN2S(Star)_R - 1762359683 | VFB_jrchk8bc | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2S | FBbt_00049815 | neuprint_JRC_Hemibrain_1point1 | 1762359683 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 15 | lLN1_b_R - 5813054622 | VFB_jrchk8a8 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 5813054622 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 16 | lLN2F_a(Full)_R - 1670287030 | VFB_jrchk8al | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2F | FBbt_00049812 | neuprint_JRC_Hemibrain_1point1 | 1670287030 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 17 | lLN12a_R - 1826445251 | VFB_jrchk89g | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1826445251 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 18 | lLN11_R - 2040301572 | VFB_jrchk89d | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 2040301572 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 19 | il3LN6_R - 5813018460 | VFB_jrchk88v | Entity|has_image|Adult|Anatomy|has_neuron_conn... | local interneuron of adult antennal lobe | FBbt_00007390 | neuprint_JRC_Hemibrain_1point1 | 5813018460 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 20 | lLN2R_b(Regional)_R - 5813076969 | VFB_jrchk8b6 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2R | FBbt_00049814 | neuprint_JRC_Hemibrain_1point1 | 5813076969 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 21 | lLN16a_R - 1702318692 | VFB_jrchk89t | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1702318692 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 22 | lLN2T_d(Tortuous)_R - 1667251683 | VFB_jrchk8bp | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 1667251683 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 23 | lLN2R_b(Regional)_R - 1702305987 | VFB_jrchk8b5 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2R | FBbt_00049814 | neuprint_JRC_Hemibrain_1point1 | 1702305987 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 24 | v2LN35_R - 1733056086 | VFB_jrchk8ew | Entity|has_image|Adult|Anatomy|has_neuron_conn... | local interneuron of adult antennal lobe | FBbt_00007390 | neuprint_JRC_Hemibrain_1point1 | 1733056086 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 25 | lLN1_b_R - 1610530558 | VFB_jrchk8ac | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1610530558 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 26 | lLN2S(Star)_R - 1640922754 | VFB_jrchk8b8 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2S | FBbt_00049815 | neuprint_JRC_Hemibrain_1point1 | 1640922754 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 27 | lLN1_c_R - 1824101645 | VFB_jrchk8ag | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1824101645 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 28 | lLN1_c_R - 1547454812 | VFB_jrchk8ai | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1547454812 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 29 | lLN1_b_R - 5813069055 | VFB_jrchk8aa | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 5813069055 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 30 | lLN1_b_R - 1642623277 | VFB_jrchk8ad | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1642623277 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 31 | lLN2T_a(Tortuous)_R - 5813054726 | VFB_jrchk8bh | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 5813054726 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 32 | lLN2F_b(Full)_R - 1640909284 | VFB_jrchk8am | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2F | FBbt_00049812 | neuprint_JRC_Hemibrain_1point1 | 1640909284 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 33 | lLN2F_a(Full)_R - 5901218894 | VFB_jrchk8ak | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2F | FBbt_00049812 | neuprint_JRC_Hemibrain_1point1 | 5901218894 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 34 | lLN2T_e(Tortuous)_R - 1699974843 | VFB_jrchk8br | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 1699974843 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 35 | lLN10_R - 1825789179 | VFB_jrchk89b | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1825789179 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 36 | lLN2S(Star)_R - 1702306037 | VFB_jrchk8b7 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2S | FBbt_00049815 | neuprint_JRC_Hemibrain_1point1 | 1702306037 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 37 | lLN2S(Star)_R - 1732995501 | VFB_jrchk8ba | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2S | FBbt_00049815 | neuprint_JRC_Hemibrain_1point1 | 1732995501 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 38 | lLN2S(Star)_R - 5813069085 | VFB_jrchk8b9 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2S | FBbt_00049815 | neuprint_JRC_Hemibrain_1point1 | 5813069085 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 39 | v2LN3b_R - 1888199872 | VFB_jrchk8fg | Entity|has_image|Adult|Anatomy|has_neuron_conn... | local interneuron of adult antennal lobe | FBbt_00007390 | neuprint_JRC_Hemibrain_1point1 | 1888199872 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 40 | lLN1_b_R - 1640887603 | VFB_jrchk8a6 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 1640887603 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 41 | lLN1_b_R - 5813078440 | VFB_jrchk8a7 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 5813078440 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 42 | lLN2T_b(Tortuous)_R - 5813034493 | VFB_jrchk8bm | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 5813034493 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 43 | lLN1_b_R - 5813054777 | VFB_jrchk8a9 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 5813054777 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 44 | v2LN30_R - 1671620613 | VFB_jrchk8e8 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | local interneuron of adult antennal lobe | FBbt_00007390 | neuprint_JRC_Hemibrain_1point1 | 1671620613 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 45 | v2LN3b_R - 5813034455 | VFB_jrchk8ff | Entity|has_image|Adult|Anatomy|has_neuron_conn... | local interneuron of adult antennal lobe | FBbt_00007390 | neuprint_JRC_Hemibrain_1point1 | 5813034455 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 46 | lLN2T_a(Tortuous)_R - 5813032595 | VFB_jrchk8bd | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 5813032595 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 47 | lLN2T_a(Tortuous)_R - 5813056598 | VFB_jrchk8bi | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 5813056598 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 48 | lLN1_b_R - 5813054725 | VFB_jrchk8ab | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult local interneuron of the lateral ALl1 ne... | FBbt_00007394 | neuprint_JRC_Hemibrain_1point1 | 5813054725 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 49 | lLN2P_b(Patchy)_R - 1946178096 | VFB_jrchk8au | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2P | FBbt_00049813 | neuprint_JRC_Hemibrain_1point1 | 1946178096 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 50 | lLN2T_a(Tortuous)_R - 5813055277 | VFB_jrchk8bf | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 5813055277 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 51 | l2LN18_R - 5813054773 | VFB_jrchk891 | Entity|has_image|Adult|Anatomy|has_neuron_conn... | local interneuron of adult antennal lobe | FBbt_00007390 | neuprint_JRC_Hemibrain_1point1 | 5813054773 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 52 | lLN2T_a(Tortuous)_R - 1762354941 | VFB_jrchk8bg | Entity|has_image|Adult|Anatomy|has_neuron_conn... | adult antennal lobe lateral local neuron 2T | FBbt_00049816 | neuprint_JRC_Hemibrain_1point1 | 1762354941 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... |
# Find neurons by dataset/paper - on CATMAID
bates = pymaid.find_neurons(annotations='Paper: Bates and Schlegel et al 2020')
bates
INFO : Found 583 neurons matching the search parameters (pymaid)
| type | name | skeleton_id | n_nodes | n_connectors | n_branches | n_leafs | cable_length | soma | units | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | CatmaidNeuron | Uniglomerular mALT DA1 lPN 57316 2863105 ML | 2863104 | NA | NA | NA | NA | NA | NA | 1 nanometer |
| 1 | CatmaidNeuron | Uniglomerular mALT DA3 adPN 57350 HG | 57349 | NA | NA | NA | NA | NA | NA | 1 nanometer |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 581 | CatmaidNeuron | Multiglomerular mlALT vPN VM7d+VM5d+DC4+6 LTS ... | 4624378 | NA | NA | NA | NA | NA | NA | 1 nanometer |
| 582 | CatmaidNeuron | Uniglomerular mALT DL2d adPN 57342 ML | 57341 | NA | NA | NA | NA | NA | NA | 1 nanometer |
# Inspect what datasets are available on VFB
ds = vc.neo_query_wrapper.get_datasets(summary=True)
ds_tab = pd.DataFrame.from_records(ds)
ds_tab.sort_values(by=['id'])
| label | symbol | id | tags | description | miniref | FlyBase | PMID | DOI | |
|---|---|---|---|---|---|---|---|---|---|
| 81 | EM L1 Andrade et al. 2019 | Andrade2019 | Entity|Individual|DataSet | [L1 EM reconstructed neurons from Andrade et a... | Andrade et al., 2019, Curr. Biol. 29(3): 412--... | FBrf0241389 | 30661802 | 10.1016/j.cub.2018.12.012 | |
| 16 | MBONs and split-GAL4 lines that target them (A... | Aso2014 | Entity|Individual|DataSet | [] | Aso et al., 2014, eLife 3: e04577 | FBrf0227179 | 25535793 | 10.7554/eLife.04577 | |
| 19 | split-GAL4 lines for dopaminergic neurons (Aso... | AsoRubin2016 | Entity|Individual|DataSet | [For comparison of the properties of memories ... | Aso and Rubin, 2016, eLife 5: e16135 | FBrf0233230 | 27441388 | 10.7554/eLife.16135 | |
| 52 | EM FAFB Bates and Schlegel et al 2020 | BatesSchlegel2020 | Entity|Individual|DataSet | [FAFB EM reconstructed neurons from Bates and ... | Bates and Schlegel et al., 2020 | 10.1016/j.cub.2020.06.042 | |||
| 0 | Larval olfactory system neurons - EM (Berk2016) | Berck2016 | Entity|Individual|DataSet | [Berck, Khandelwal et al. 2016] | Berck et al., 2016, eLife 5: e14859 | FBrf0232785 | 27177418 | 10.7554/eLife.14859 | |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 30 | Lee lab adult brain lineage clone image set | Yu2013 | Entity|Individual|DataSet | [An exhaustive set of lineage clones covering ... | Yu et al., 2013, Curr. Biol. 23(8): 633--643 | FBrf0221412 | 23541733 | 10.1016/j.cub.2013.02.057 | |
| 15 | EM L1 Zarin, Mark et al. 2019 | Zarin2019 | Entity|Individual|DataSet | [L1 EM reconstructed neurons from Zarin, Mark ... | Zarin, Mark et al., 2019 | 10.1101/617977 | |||
| 48 | EM FAFB Zheng et al 2018 | Zheng2018 | Entity|Individual|DataSet | [FAFB EM reconstructed neurons from Zheng et a... | Zheng et al., 2018, Cell 174(3): 730--743.e22 | FBrf0239557 | 30033368 | 10.1016/j.cell.2018.06.019 | |
| 34 | EM FAFB Zheng et al 2020 | Zheng2020 | Entity|Individual|DataSet | [FAFB EM reconstructed neurons from Zheng et a... | Zheng et al. 2020 | 10.1101/2020.04.17.047167 | |||
| 28 | Larval motor circuit neurons (Zwart2016) | Zwart2016 | Entity|Individual|DataSet | [Zwart et al. 2016] | Zwart et al., 2016, Neuron 91(3): 615--628 | FBrf0233076 | 27427461 | 10.1016/j.neuron.2016.06.031 |
83 rows × 9 columns
sayin_tab = pd.DataFrame.from_records(vc.get_instances_by_dataset('Sayin2019', summary=True))
sayin_tab
| label | symbol | id | tags | parents_label | parents_id | data_source | accession | templates | dataset | license | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | OA-VPM3 (FAFB:1329078) | VFB_001001dr | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM3 neuron | FBbt_00110151 | catmaid_fafb | 1329078 | JRC2018Unisex | Sayin2019 | https://creativecommons.org/licenses/by-sa/4.0... | |
| 1 | OA-VPM4 (FAFB:1191261) | VFB_001001dq | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM4 neuron | FBbt_00110152 | catmaid_fafb | 1191261 | JRC2018Unisex | Sayin2019 | https://creativecommons.org/licenses/by-sa/4.0... |
vc.get_connected_neurons_by_type(upstream_type='LNd', downstream_type='adult descending neuron', weight=20)
| upstream_neuron_id | upstream_neuron_name | weight | downstream_neuron_id | downstream_neuron_name | upstream_class | downstream_class | up_data_source | up_accession | down_source | down_accession | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | VFB_jrchjzxx | LNd_R - 5813021192 | 25 | VFB_jrchjthm | DNp27_R - 1072063538 | LNd neuron | descending neuron of the posterior brain DNp27 | neuprint_JRC_Hemibrain_1point1 | 5813021192 | neuprint_JRC_Hemibrain_1point1 | 1072063538 |
# Intra pacemaker neuron neuron connections
vc.get_connected_neurons_by_type(upstream_type='pacemaker neuron', downstream_type='pacemaker neuron', weight=20)
| upstream_neuron_id | upstream_neuron_name | weight | downstream_neuron_id | downstream_neuron_name | upstream_class | downstream_class | up_data_source | up_accession | down_source | down_accession | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | VFB_jrchjzxy | LNd_R - 5813069648 | 37 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | LNd neuron | s-LNv neuron | neuprint_JRC_Hemibrain_1point1 | 5813069648 | neuprint_JRC_Hemibrain_1point1 | 511051477 |
| 1 | VFB_jrchk089 | LPN_R - 480029788 | 43 | VFB_jrchk08a | LPN_R - 450034902 | LP neuron | LP neuron | neuprint_JRC_Hemibrain_1point1 | 480029788 | neuprint_JRC_Hemibrain_1point1 | 450034902 |
| 2 | VFB_jrchjtf0 | DN1pA_R - 324846570 | 25 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | DN1p neuron | s-LNv neuron | neuprint_JRC_Hemibrain_1point1 | 324846570 | neuprint_JRC_Hemibrain_1point1 | 511051477 |
| 3 | VFB_jrchjtf0 | DN1pA_R - 324846570 | 37 | VFB_jrchjzxy | LNd_R - 5813069648 | DN1p neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 324846570 | neuprint_JRC_Hemibrain_1point1 | 5813069648 |
| 4 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | 40 | VFB_jrchjzxy | LNd_R - 5813069648 | s-LNv neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 511051477 | neuprint_JRC_Hemibrain_1point1 | 5813069648 |
| 5 | VFB_jrchjtf3 | DN1pA_R - 387166379 | 25 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | DN1p neuron | s-LNv neuron | neuprint_JRC_Hemibrain_1point1 | 387166379 | neuprint_JRC_Hemibrain_1point1 | 511051477 |
| 6 | VFB_jrchjtf1 | DN1pA_R - 325529237 | 30 | VFB_jrchjzxy | LNd_R - 5813069648 | DN1p neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 325529237 | neuprint_JRC_Hemibrain_1point1 | 5813069648 |
| 7 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | 25 | VFB_jrchjzxx | LNd_R - 5813021192 | s-LNv neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 511051477 | neuprint_JRC_Hemibrain_1point1 | 5813021192 |
| 8 | VFB_jrchjtez | DN1pA_R - 5813010153 | 25 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | DN1p neuron | s-LNv neuron | neuprint_JRC_Hemibrain_1point1 | 5813010153 | neuprint_JRC_Hemibrain_1point1 | 511051477 |
| 9 | VFB_jrchjzxy | LNd_R - 5813069648 | 29 | VFB_jrchjzxw | LNd_R - 5813056917 | LNd neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 5813069648 | neuprint_JRC_Hemibrain_1point1 | 5813056917 |
| 10 | VFB_jrchjtf2 | DN1pA_R - 387944118 | 22 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | DN1p neuron | s-LNv neuron | neuprint_JRC_Hemibrain_1point1 | 387944118 | neuprint_JRC_Hemibrain_1point1 | 511051477 |
| 11 | VFB_jrchjtf2 | DN1pA_R - 387944118 | 34 | VFB_jrchjzxy | LNd_R - 5813069648 | DN1p neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 387944118 | neuprint_JRC_Hemibrain_1point1 | 5813069648 |
| 12 | VFB_jrchjtf1 | DN1pA_R - 325529237 | 33 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | DN1p neuron | s-LNv neuron | neuprint_JRC_Hemibrain_1point1 | 325529237 | neuprint_JRC_Hemibrain_1point1 | 511051477 |
| 13 | VFB_jrchk08a | LPN_R - 450034902 | 30 | VFB_jrchk089 | LPN_R - 480029788 | LP neuron | LP neuron | neuprint_JRC_Hemibrain_1point1 | 450034902 | neuprint_JRC_Hemibrain_1point1 | 480029788 |
| 14 | VFB_jrchjtey | DN1a_R - 5813022274 | 63 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | DN1a neuron | s-LNv neuron | neuprint_JRC_Hemibrain_1point1 | 5813022274 | neuprint_JRC_Hemibrain_1point1 | 511051477 |
| 15 | VFB_jrchjtex | DN1a_R - 264083994 | 55 | VFB_jrchk8e0 | 5th s-LNv - 511051477 | DN1a neuron | s-LNv neuron | neuprint_JRC_Hemibrain_1point1 | 264083994 | neuprint_JRC_Hemibrain_1point1 | 511051477 |
| 16 | VFB_jrchjtey | DN1a_R - 5813022274 | 75 | VFB_jrchjzxy | LNd_R - 5813069648 | DN1a neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 5813022274 | neuprint_JRC_Hemibrain_1point1 | 5813069648 |
| 17 | VFB_jrchjtex | DN1a_R - 264083994 | 79 | VFB_jrchjzxy | LNd_R - 5813069648 | DN1a neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 264083994 | neuprint_JRC_Hemibrain_1point1 | 5813069648 |
| 18 | VFB_jrchjtf3 | DN1pA_R - 387166379 | 30 | VFB_jrchjzxy | LNd_R - 5813069648 | DN1p neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 387166379 | neuprint_JRC_Hemibrain_1point1 | 5813069648 |
| 19 | VFB_jrchjzxy | LNd_R - 5813069648 | 21 | VFB_jrchjzxx | LNd_R - 5813021192 | LNd neuron | LNd neuron | neuprint_JRC_Hemibrain_1point1 | 5813069648 | neuprint_JRC_Hemibrain_1point1 | 5813021192 |
vc.get_connected_neurons_by_type(upstream_type='adult neuron', downstream_type='adult Drosulfakinin neuron', weight=20)
| upstream_neuron_id | upstream_neuron_name | weight | downstream_neuron_id | downstream_neuron_name | upstream_class | downstream_class | up_data_source | up_accession | down_source | down_accession | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | VFB_jrchjsj3 | AstA1_L - 362473525 | 28 | VFB_jrchjti4 | DSKMP1B_R - 1352077058 | adult neuron | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 362473525 | neuprint_JRC_Hemibrain_1point1 | 1352077058 |
| 1 | VFB_jrchk5zh | SLP384_R - 482702027 | 20 | VFB_jrchjti6 | DSKMP3_R - 327937328 | adult superior lateral protocerebrum neuron 384 | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 482702027 | neuprint_JRC_Hemibrain_1point1 | 327937328 |
| 2 | VFB_jrchjrjn | AVLP001_R - 1321564092 | 26 | VFB_jrchjti2 | DSKMP1A_R - 1135837629 | adult anterior ventrolateral protocerebrum neu... | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 1321564092 | neuprint_JRC_Hemibrain_1point1 | 1135837629 |
| 3 | VFB_jrchk5eo | SLP066_R - 327843160 | 42 | VFB_jrchjti4 | DSKMP1B_R - 1352077058 | adult superior lateral protocerebrum neuron 066 | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 327843160 | neuprint_JRC_Hemibrain_1point1 | 1352077058 |
| 4 | VFB_jrchk5qf | SLP244_R - 298214577 | 27 | VFB_jrchjti6 | DSKMP3_R - 327937328 | adult superior lateral protocerebrum neuron 244 | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 298214577 | neuprint_JRC_Hemibrain_1point1 | 327937328 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 56 | VFB_jrchk6zu | SMP449_R - 5813026592 | 25 | VFB_jrchjti4 | DSKMP1B_R - 1352077058 | adult superior medial protocerebrum neuron 449 | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 5813026592 | neuprint_JRC_Hemibrain_1point1 | 1352077058 |
| 57 | VFB_jrchk5jv | SLP152_R - 487812620 | 28 | VFB_jrchjti4 | DSKMP1B_R - 1352077058 | adult superior lateral protocerebrum neuron 152 | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 487812620 | neuprint_JRC_Hemibrain_1point1 | 1352077058 |
| 58 | VFB_jrchjrxe | AVLP223_R - 1356743512 | 27 | VFB_jrchjti2 | DSKMP1A_R - 1135837629 | adult anterior ventrolateral protocerebrum neu... | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 1356743512 | neuprint_JRC_Hemibrain_1point1 | 1135837629 |
| 59 | VFB_jrchk5qg | SLP244_R - 297533212 | 33 | VFB_jrchjti6 | DSKMP3_R - 327937328 | adult superior lateral protocerebrum neuron 244 | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 297533212 | neuprint_JRC_Hemibrain_1point1 | 327937328 |
| 60 | VFB_jrchk6g5 | SMP157_R - 421041565 | 32 | VFB_jrchjti4 | DSKMP1B_R - 1352077058 | adult superior medial protocerebrum neuron 157 | adult Drosulfakinin neuron | neuprint_JRC_Hemibrain_1point1 | 421041565 | neuprint_JRC_Hemibrain_1point1 | 1352077058 |
61 rows × 11 columns
5.2.2.4 - Mapping
!pip install vfb-connect --upgrade
# Import libs and initialise API objects
from vfb_connect.cross_server_tools import VfbConnect
import pandas as pd
vc = VfbConnect()
import pymaid
import navis
navis.set_pbars(jupyter=False)
pymaid.set_pbars(jupyter=False)
# Connect to the VFB CATMAID server hosting the FAFB data
rm = pymaid.connect_catmaid(server="https://fafb.catmaid.virtualflybrain.org/", api_token=None, max_threads=10)
# Test call to see if connection works
print(f'Server is running CATMAID version {rm.catmaid_version}')
# Many functions return JSON-compatible nested data structures. This function coverts them to DataFrame.
def summary_2_df(summary, sort=None):
"""Convert summary to DataFrame. Optionally specify a set of columns to sort as a list of strings"""
if sort:
return pd.DataFrame.from_records(summary).sort_values(sort)
else:
return pd.DataFrame.from_records(summary)
WARNING: Could not load OpenGL library.
INFO : Global CATMAID instance set. Caching is ON. (pymaid)
Server is running CATMAID version 2020.02.15-925-gf56795c9c
Mapping
Use case: If I have a single neuron, how can I find other neurons of the same or similar type within or between data sources?
Mapping via common parent type
# lets take some examples from a discovery query on the previous spreadhseet
sayin_tab = pd.DataFrame.from_records(vc.get_instances_by_dataset('Sayin2019', summary=True))
sayin_tab
| label | symbol | id | tags | parents_label | parents_id | data_source | accession | templates | dataset | license | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | OA-VPM3 (FAFB:1329078) | VFB_001001dr | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM3 neuron | FBbt_00110151 | catmaid_fafb | 1329078 | JRC2018Unisex | Sayin2019 | https://creativecommons.org/licenses/by-sa/4.0... | |
| 1 | OA-VPM4 (FAFB:1191261) | VFB_001001dq | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM4 neuron | FBbt_00110152 | catmaid_fafb | 1191261 | JRC2018Unisex | Sayin2019 | https://creativecommons.org/licenses/by-sa/4.0... |
oct_VPM3 = summary_2_df(vc.get_instances('octopaminergic VPM3 neuron', summary=True))
oct_VPM3
| label | symbol | id | tags | parents_label | parents_id | data_source | accession | templates | dataset | license | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | OA-VPM3(NO2/NO3)_R - 329566174 | VFB_jrchk10d | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM3 neuron | FBbt_00110151 | neuprint_JRC_Hemibrain_1point1 | 329566174 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 1 | OA-VPM3(NO2/NO3)_L - 5813061260 | VFB_jrchk10e | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM3 neuron | FBbt_00110151 | neuprint_JRC_Hemibrain_1point1 | 5813061260 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | |
| 2 | OA-VPM3 (FAFB:1329078) | VFB_001001dr | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM3 neuron | FBbt_00110151 | catmaid_fafb | 1329078 | JRC2018Unisex | Sayin2019 | https://creativecommons.org/licenses/by-sa/4.0... |
oct_VPM3_images = vc.neo_query_wrapper.get_images(oct_VPM3['id'], stomp=True, template='JRC2018Unisex', image_folder = 'oct_VPM3b')
oct_VPM3_images
| label | symbol | id | tags | parents_label | parents_id | data_source | accession | templates | dataset | license | filename | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | OA-VPM3 (FAFB:1329078) | VFB_001001dr | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM3 neuron | FBbt_00110151 | catmaid_fafb | 1329078 | JRC2018Unisex | Sayin2019 | https://creativecommons.org/licenses/by-sa/4.0... | OA_VPM3__FAFB_1329078_.swc | |
| 1 | OA-VPM3(NO2/NO3)_L - 5813061260 | VFB_jrchk10e | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM3 neuron | FBbt_00110151 | neuprint_JRC_Hemibrain_1point1 | 5813061260 | JRC_FlyEM_Hemibrain|JRC2018Unisex | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | OA_VPM3_NO2_NO3__L___5813061260.swc | |
| 2 | OA-VPM3(NO2/NO3)_R - 329566174 | VFB_jrchk10d | Entity|Octopaminergic|Adult|Anatomy|has_image|... | octopaminergic VPM3 neuron | FBbt_00110151 | neuprint_JRC_Hemibrain_1point1 | 329566174 | JRC2018Unisex|JRC_FlyEM_Hemibrain | Xu2020NeuronsV1point1 | https://creativecommons.org/licenses/by/4.0/le... | OA_VPM3_NO2_NO3__R___329566174.swc |
oct_VPM3_images = vc.get_images_by_type('octopaminergic VPM3 neuron', stomp=True, template='JRC2018Unisex', image_folder = 'oct_VPM3')
nl = navis.read_swc('./oct_VPM3')
navis.plot3d(nl)
Running query: FBbt:00110151
Query URL: http://owl.virtualflybrain.org/kbs/vfb/instances?object=FBbt%3A00110151&prefixes=%7B%22FBbt%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FFBbt_%22%2C+%22RO%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FRO_%22%2C+%22BFO%22%3A+%22http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FBFO_%22%7D&direct=False
Query results: 3