Session 2 · Bridging & Identity
Is this FlyWire neuron the same cell as that hemibrain one?
Cross-dataset identity via shared typing and morphology.
Key question: Is this FlyWire neuron the same cell as that hemibrain one?
Route A: Python API
First time? Set up Python → Open this session in Colab
Resolve both IDs, compare their ontology types, then let NBLAST rank candidates — filtering the score table by source dataset does the bridging.
from vfb_connect import vfb
matches = vfb.get_similar_neurons("VFB_jrchjtdb",
similarity_score='NBLAST_score',
return_dataframe=True)
# best matches from a DIFFERENT dataset (FlyWire)
fw = matches[matches.source_id.str.contains('flywire')]
print(fw[['id', 'score', 'label', 'tags']].head(2))
Verified output (Aug 2026): 107 neighbours in total; the top FlyWire rows —
id score label
VFB_fw036329 0.68 AL.MB_CA.111 (FlyWire:720575940605102694)
VFB_fw035224 0.62 AL.MB_CA.127 (FlyWire:720575940603231916)
Both carry the tags adult antennal lobe projection neuron DA1 lPN — same type annotation, different animal: that agreement between morphology (score) and ontology (tags) is the bridge. In-dataset hemibrain sisters score 0.75–0.80 for comparison, so expect a cross-dataset penalty.
Route B: R (via reticulate)
First time? Set up R + vfb_connect → Open this session in Colab (R)
m <- vfb$get_similar_neurons("VFB_jrchjtdb",
similarity_score = "NBLAST_score",
return_dataframe = TRUE)
fw <- m[grepl("flywire", m$source_id), ]
head(fw[, c("id", "score", "label")], 2)
Verified output (Aug 2026): the best FlyWire match is VFB_fw036329 — AL.MB_CA.111 — at score 0.68, tagged with the same two cell types as the query. Exactly the Python route’s answer: the bridging logic (morphology score + shared ontology types) is language-independent.
For natverse users, natverse/vfbconnectr
wraps the same package and adds read.neurons.vfb() to pull matches straight into nat for your own NBLAST runs.
Route C: MCP Tool
First time? Connect the VFB MCP to your AI →
The MCP exposes the pre-computed NBLAST neighbours of any connectome neuron, so cross-dataset bridging is one query plus a filter:
You: Here’s hemibrain neuron VFB_jrchjtdb. Find its closest FlyWire match and tell me if they’re the same type.
Assistant →
get_term_info(VFB_jrchjtdb)→ SimilarMorphologyTo available (count 107) →run_query(VFB_jrchjtdb, SimilarMorphologyTo)→ rows sorted by NBLAST score, each with source datasetAssistant: The top matches are other hemibrain DA1 lPNs (scores 0.80–0.75). The best FlyWire match is AL.MB_CA.111 (FlyWire:720575940605102694)
VFB_fw036329at score 0.68 — annotated with the same types, adult antennal lobe projection neuron DA1 lPN and adult fruitless aDT-e (female) neuron, so connectome data indicates it is the corresponding cell in the other dataset. FAFB matches (Uniglomerular mALT DA1 lPN#R1, #R4) sit at the same score.
Because every row carries its source and template, the assistant can separate “same animal, another reconstruction” from “corresponding cell in a different dataset” — the crux of bridging.
Example Prompt
Here's a FlyWire neuron VFB_id X. Find the morphologically closest neuron in the hemibrain and tell me if they're annotated as the same type.
Route D: VFB Chat
Nothing to install — tips before you start →
Chat can help you explore candidate matches across datasets.
Optimized prompt: Give the specific VFB ID and ask for the match, score, and type confirmation.
Route E: 3D Circuit Browser
Nothing to install — how the viewer works →
The browser bridges datasets the same way the other routes do — NBLAST similarity plus shared cell-type annotation — but you get to see the evidence.
Open the hemibrain neuron in the standard space. Use the button below to open DA1_lPN_R (FlyEM-HB:1734350908) — VFB_jrchjtdb — aligned to the JRC2018Unisex template, the shared coordinate space that makes cross-dataset comparison possible.

Run the NBLAST query. Click the Queries for DA1_lPN_R… bar, hover Neurons with ▸ and choose Neurons with similar morphology to DA1_lPN_R [NBLAST mean score].
Read the results across datasets. 107 neighbours arrive sorted by score. The Template_Space and Imaging_Technique columns tell you where each match lives — JRCFIB2018Fum is the hemibrain, FAFB and FlyWire rows are a different animal. A high-scoring row from another dataset annotated with the same cell type is your bridge.

Check the match visually. Tick the query neuron and a candidate match: both load into the 3D viewer aligned to the same template, so you can rotate and confirm the morphology agrees — the step no table can give you.
Worth noticing: identity across datasets is a judgement, not a lookup — scores drop smoothly and a different type (DL3 lPN) appears among the true DA1 matches. The browser makes that ambiguity visible.
Try It Next
- Is the bridge symmetric? NBLAST from the FlyWire match back: query
VFB_fw036329the same way (66 neighbours; its own FlyWire sisters top the list at 0.78, FAFB at 0.74). Where does your original hemibrain neuron rank in the reverse direction? - A third dataset: bridge hemibrain → FAFB via
Uniglomerular mALT DA1 lPN#R1(VFB_00101201, score 0.68) and check its type annotation agrees. - Chat: “Which FlyWire neuron is the closest NBLAST match to hemibrain neuron VFB_jrchjtdf? …” — a sister individual; do you get the same FlyWire cell?
When to Reach for Which Route
- API for a defensible, reproducible mapping with NBLAST scores
- MCP/Chat to explore candidates quickly before formal analysis