Skip to content

Data Files

Daniel edited this page Sep 1, 2026 · 1 revision

Data Files

Everything the app knows is also available as plain files in the repository, so you can use it from MATLAB, Python, R or a spreadsheet without going through the browser.

File What it is
gerbil_atlas_explorer.html The app. Self-contained (~20 MB: 186 plate images, the vectorized outlines, the skull mesh), works offline
data/gerbil_atlas.json The full database — structures, coordinates, label positions, brain outlines, calibration
data/gerbil_atlas_structures.csv One row per structure: abbreviation, name, plate and bregma range, tags
data/gerbil_atlas_plates.csv One row per plate: bregma / lambda / interaural / occipital-crest AP
data/index_raw.txt The authors' published index as extracted — source of truth for the rest
svg/ The traced regional outlines, one SVG per plate, in the published page frame
qc/ Verification renders kept from the build. Not used by the app
METHODS.md How everything was derived, and what its accuracy is
TARGETING_PLAN.md The design behind the track planner

Inside gerbil_atlas.json

Key Contents
source The published atlas this is built from
conventions Plane, spacing, and the AP / ML / DV zero and sign conventions
plate_frame The pixel-to-millimetre mapping for the plate images
plates 62 entries: plate number and its AP from each landmark
structures 723 entries: abbreviation, name, plate range, system tags
aliases Informal names → the atlas's abbreviations (MGB → MGV, MGD, …)
label_positions Where every printed abbreviation sits, in millimetres
brain_outline The traced section outline per plate — what the track planner measures against
verification How the labels were read and how well it was checked

The conventions block, verbatim:

{
  "n_plates": 62,
  "plane": "coronal (frontal), perpendicular to the brainstem axis",
  "spacing_mm": 0.35,
  "ap_zero": "bregma (also given for lambda, interaural line, occipital crest)",
  "ap_sign": "positive = anterior to the landmark; plate 1 is the most anterior",
  "dv_zero": "plane through the most dorsal points of cerebrum and cerebellum; negative is ventral",
  "ml_zero": "midsagittal plane"
}

A quick example

import json
d = json.load(open("data/gerbil_atlas.json", encoding="utf-8"))

# every auditory structure and the plates it spans
for s in d["structures"]:
    if "auditory" in s.get("systems", []):
        print(s["abbr"], s["name"], s["first_plate"], "-", s["last_plate"])

If you only need the tabular view, the two CSVs are simpler and need no JSON parsing. For a filtered subset with coordinates already computed, use the app's own CSV export — see Exporting.

Clone this wiki locally