You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add comprehensive test suites for mapping accounting and identifier resolution
- Introduced tests for the mapping_accounting module, covering various scenarios including many-to-one mappings, collision detection, and mapping statistics.
- Added tests for the orn_identifier module, focusing on normalization, candidate generation, and identifier resolution.
- Implemented tests for receptor identifier normalization utilities and receptor inventory construction, ensuring proper handling of various input formats and schema validation.
-`data/mappings/receptor_inventory.csv` is generated from the authoritative mapping artifact and defines “mapped” as “mapped to a valid `ORN_` FlyWire label” (not passthrough strings).
17
+
- Adult-only filtering now follows DoOR.mappings (`adult=False`, `larva=True`) larval-only flags (DoOR 2.0; DOI: 10.1038/srep21841) throughout integration and inventory.
18
+
-`.gitignore` now tracks `data/mappings/**` while continuing to ignore bulk `data/*`.
12
19
13
20
### Fixed
14
-
-_Placeholder_ – document bug fixes here.
21
+
- Corrected known mapping mismatches with explicit provenance:
The connectomics module includes a **robust identifier resolution system** that automatically normalizes messy ORN/glomerulus names and maps receptor names to their glomerulus names.
257
+
258
+
**Key features:**
259
+
-**Format-agnostic**: Accepts `"DL3"`, `"dl3"`, `"ORN_DL3"`, `"ORN-DL3"`, `"Glomerulus DL3"` - all resolve to `"ORN_DL3"`
-**Complete coverage**: Includes 44 receptors (33 Or, 10 Ir, 1 Gr) mapped to their FlyWire glomeruli
262
+
-**Fuzzy matching**: Suggests alternatives when exact matches fail (ranked by similarity)
263
+
-**Clear errors**: Provides actionable error messages with top 10 suggestions
264
+
265
+
In FlyWire, neurons are labeled by glomerulus name (e.g., `ORN_VL2p; Ir31a`), not receptor name. The resolver automatically handles this translation so you can use familiar receptor names like `"Ir31a"` or `"Or7a"` in your code. The system uses normalization (case-insensitive, separator-agnostic) combined with receptor mapping and fuzzy matching to prevent "non-matching ORN name" errors. All pathway analysis functions (`analyze_single_orn`, `compare_orn_pair`, `find_pathways`) accept both receptor names and glomerulus names. See [`examples/connectomics/example_orn_identifier_resolution.py`](examples/connectomics/example_orn_identifier_resolution.py) for a complete demonstration.
📚 **See:**[docs/RECEPTOR_GLOMERULUS_MAPPING_ACCOUNTING.md](docs/RECEPTOR_GLOMERULUS_MAPPING_ACCOUNTING.md) for complete documentation on preventing receptor vs glomerulus count confusion.
982
+
928
983
---
929
984
930
985
## Examples
@@ -941,6 +996,7 @@ Complete working examples are available in the `examples/` directory:
0 commit comments