-
Notifications
You must be signed in to change notification settings - Fork 2
Description
I think we should provide a pre-defined space for stereotactic coordinates for when someone wants to specify their surgical target. Sometimes people collect data without histology and so they don't necessarily have CCF coordinates or think in those terms. They usually have AP, ML, DV (or Z) and many papers report those coordinates. (Aside: Sometimes if the probe was inserted at an angle that is not parallel to the DV axis, they have AP, ML, DV for a target point and then an additional rotation, tilt, and depth.) I forget whether we decided that handling stereotactic coordinates was in or out of scope for this extension, but if it is in scope, I think it needs to be handled with its own pre-defined space for convenience.
That space could look like:
PREDEFINED_SPACES = {
"Mouse_Bregma_AP_ML_DV": {
"name": "Mouse_Bregma_AP_ML_DV",
"space_name": "Mouse_Bregma_AP_ML_DV",
"origin": "Bregma at the cortical surface",
"units": "mm",
"orientation": "PRS",
}
}TODO:
- Confirm the zero point for DV is often at the cortical surface, not the skull
- Confirm that DV values are often negative, so orientation is S and not I.
In addition, it would help someone reading NWB writing/conversion code if AnatomicalCoordinatesTable.add_row could accept keyword arguments like "ap", "ml" (or "lr" to be more informative), and "dv" (or "ap_in_mm", etc.). Maybe add_row could accept variable keyword arguments and PREDEFINED_SPACES could include a mapping of aliases, e.g.,
aliases: {
"x": "ap",
"y": "ml",
"z": "dv"
}so that they could do table.add_row(ap=2.5, ml=1.5, dv=-2.0, location="CA1", localized_entity=0)