From d62f42731ceb59d30a6f4662edc062ebf8de7b70 Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sat, 21 Feb 2026 10:20:04 -0500 Subject: [PATCH 1/2] feat: extract brain area anatomy from NWB location fields Extract brain location values from NWB files (ImagingPlane.location, electrodes.location, IntracellularElectrode.location), match them against bundled Allen Mouse Brain Atlas CCF structures, and populate BioSample.anatomy within wasDerivedFrom. Closes #1806 Co-Authored-By: Claude Opus 4.6 --- .pre-commit-config.yaml | 2 +- dandi/data/__init__.py | 0 dandi/data/allen_ccf_structures.json | 1 + dandi/data/generate_allen_structures.py | 37 ++++ dandi/metadata/brain_areas.py | 218 ++++++++++++++++++++++++ dandi/metadata/util.py | 51 +++++- dandi/pynwb_utils.py | 71 ++++++++ dandi/tests/test_brain_areas.py | 136 +++++++++++++++ dandi/tests/test_metadata.py | 125 ++++++++++++++ pyproject.toml | 2 +- tox.ini | 2 + 11 files changed, 640 insertions(+), 5 deletions(-) create mode 100644 dandi/data/__init__.py create mode 100644 dandi/data/allen_ccf_structures.json create mode 100644 dandi/data/generate_allen_structures.py create mode 100644 dandi/metadata/brain_areas.py create mode 100644 dandi/tests/test_brain_areas.py diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a7c194bd2..13133dcd3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,7 +22,7 @@ repos: rev: v2.4.1 hooks: - id: codespell - exclude: ^(dandi/_version\.py|dandi/due\.py|versioneer\.py|pyproject\.toml)$ + exclude: ^(dandi/_version\.py|dandi/due\.py|versioneer\.py|pyproject\.toml|dandi/data/allen_ccf_structures\.json)$ additional_dependencies: - tomli; python_version<'3.11' - repo: https://github.com/PyCQA/flake8 diff --git a/dandi/data/__init__.py b/dandi/data/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/dandi/data/allen_ccf_structures.json b/dandi/data/allen_ccf_structures.json new file mode 100644 index 000000000..e31ecda2d --- /dev/null +++ b/dandi/data/allen_ccf_structures.json @@ -0,0 +1 @@ +[{"id":1,"acronym":"TMv","name":"Tuberomammillary nucleus, ventral part"},{"id":2,"acronym":"SSp-m6b","name":"Primary somatosensory area, mouth, layer 6b"},{"id":3,"acronym":"sec","name":"secondary fissure"},{"id":4,"acronym":"IC","name":"Inferior colliculus"},{"id":6,"acronym":"int","name":"internal capsule"},{"id":7,"acronym":"PSV","name":"Principal sensory nucleus of the trigeminal"},{"id":8,"acronym":"grey","name":"Basic cell groups and regions"},{"id":9,"acronym":"SSp-tr6a","name":"Primary somatosensory area, trunk, layer 6a"},{"id":10,"acronym":"SCig","name":"Superior colliculus, motor related, intermediate gray layer"},{"id":11,"acronym":"plf","name":"posterolateral fissure"},{"id":12,"acronym":"IF","name":"Interfascicular nucleus raphe"},{"id":14,"acronym":"im","name":"internal medullary lamina of the thalamus"},{"id":15,"acronym":"PT","name":"Parataenial nucleus"},{"id":16,"acronym":"6b","name":"Layer 6b, isocortex"},{"id":17,"acronym":"SCiw","name":"Superior colliculus, motor related, intermediate white layer"},{"id":18,"acronym":"nf","name":"nodular fissure"},{"id":19,"acronym":"IG","name":"Induseum griseum"},{"id":20,"acronym":"ENTl2","name":"Entorhinal area, lateral part, layer 2"},{"id":21,"acronym":"lotg","name":"lateral olfactory tract, general"},{"id":22,"acronym":"PTLp","name":"Posterior parietal association areas"},{"id":23,"acronym":"AAA","name":"Anterior amygdalar area"},{"id":25,"acronym":"sif","name":"simple fissure"},{"id":26,"acronym":"SCdg","name":"Superior colliculus, motor related, deep gray layer"},{"id":27,"acronym":"IGL","name":"Intergeniculate leaflet of the lateral geniculate complex"},{"id":28,"acronym":"ENTl6a","name":"Entorhinal area, lateral part, layer 6a"},{"id":29,"acronym":"sttl","name":"lateral spinothalamic tract"},{"id":30,"acronym":"PVa","name":"Periventricular hypothalamic nucleus, anterior part"},{"id":31,"acronym":"ACA","name":"Anterior cingulate area"},{"id":33,"acronym":"VISp6a","name":"Primary visual area, layer 6a"},{"id":34,"acronym":"icf","name":"intercrural fissure"},{"id":35,"acronym":"III","name":"Oculomotor nucleus"},{"id":36,"acronym":"GU1","name":"Gustatory areas, layer 1"},{"id":37,"acronym":"lab","name":"longitudinal association bundle"},{"id":38,"acronym":"PVH","name":"Paraventricular hypothalamic nucleus"},{"id":39,"acronym":"ACAd","name":"Anterior cingulate area, dorsal part"},{"id":41,"acronym":"VISpm2/3","name":"posteromedial visual area, layer 2/3"},{"id":42,"acronym":"SCdw","name":"Superior colliculus, motor related, deep white layer"},{"id":43,"acronym":"apf","name":"ansoparamedian fissure"},{"id":44,"acronym":"ILA","name":"Infralimbic area"},{"id":45,"acronym":"SPVOrdm","name":"Spinal nucleus of the trigeminal, oral part, rostral dorsomedial part"},{"id":46,"acronym":"mfbsma","name":"mammillary related"},{"id":47,"acronym":"PVHam","name":"Paraventricular hypothalamic nucleus, magnocellular division, anterior magnocellular part"},{"id":48,"acronym":"ACAv","name":"Anterior cingulate area, ventral part"},{"id":49,"acronym":"ipf","name":"intraparafloccular fissure"},{"id":50,"acronym":"PRC","name":"Precommissural nucleus"},{"id":51,"acronym":"ILM","name":"Intralaminar nuclei of the dorsal thalamus"},{"id":52,"acronym":"ENTl3","name":"Entorhinal area, lateral part, layer 3"},{"id":53,"acronym":"SPVOmdmd","name":"Spinal nucleus of the trigeminal, oral part, middle dorsomedial part, dorsal zone"},{"id":54,"acronym":"mfb","name":"medial forebrain bundle"},{"id":55,"acronym":"PVHap","name":"Paraventricular hypothalamic nucleus, parvicellular division, anterior parvicellular part"},{"id":56,"acronym":"ACB","name":"Nucleus accumbens"},{"id":57,"acronym":"pms","name":"paramedian sulcus"},{"id":58,"acronym":"MT","name":"Medial terminal nucleus of the accessory optic tract"},{"id":59,"acronym":"IMD","name":"Intermediodorsal nucleus of the thalamus"},{"id":60,"acronym":"ENTl6b","name":"Entorhinal area, lateral part, layer 6b"},{"id":61,"acronym":"SPVOmdmv","name":"Spinal nucleus of the trigeminal, oral part, middle dorsomedial part, ventral zone"},{"id":62,"acronym":"mlf","name":"medial longitudinal fascicle"},{"id":63,"acronym":"PVHd","name":"Paraventricular hypothalamic nucleus, descending division"},{"id":64,"acronym":"AD","name":"Anterodorsal nucleus"},{"id":65,"acronym":"pfs","name":"parafloccular sulcus"},{"id":66,"acronym":"LT","name":"Lateral terminal nucleus of the accessory optic tract"},{"id":67,"acronym":"INC","name":"Interstitial nucleus of Cajal"},{"id":68,"acronym":"FRP1","name":"Frontal pole, layer 1"},{"id":69,"acronym":"SPVOvl","name":"Spinal nucleus of the trigeminal, oral part, ventrolateral part"},{"id":70,"acronym":"mfbsm","name":"midbrain related"},{"id":71,"acronym":"PVHm","name":"Paraventricular hypothalamic nucleus, magnocellular division"},{"id":72,"acronym":"ADP","name":"Anterodorsal preoptic nucleus"},{"id":73,"acronym":"VS","name":"ventricular systems"},{"id":74,"acronym":"VISl6a","name":"Lateral visual area, layer 6a"},{"id":75,"acronym":"DT","name":"Dorsal terminal nucleus of the accessory optic tract"},{"id":76,"acronym":"INV","name":"Interstitial nucleus of the vestibular nerve"},{"id":77,"acronym":"SPVOcdm","name":"Spinal nucleus of the trigeminal, oral part, caudal dorsomedial part"},{"id":78,"acronym":"mcp","name":"middle cerebellar peduncle"},{"id":79,"acronym":"PVHmm","name":"Paraventricular hypothalamic nucleus, magnocellular division, medial magnocellular part"},{"id":80,"acronym":"AHA","name":"Anterior hypothalamic area"},{"id":81,"acronym":"VL","name":"lateral ventricle"},{"id":82,"acronym":"NLLd","name":"Nucleus of the lateral lemniscus, dorsal part"},{"id":83,"acronym":"IO","name":"Inferior olivary complex"},{"id":84,"acronym":"PL6a","name":"Prelimbic area, layer 6a"},{"id":85,"acronym":"sct","name":"spinocerebellar tract"},{"id":86,"acronym":"mtc","name":"middle thalamic commissure"},{"id":87,"acronym":"PVHmpd","name":"Paraventricular hypothalamic nucleus, parvicellular division, medial parvicellular part, dorsal zone"},{"id":88,"acronym":"AHN","name":"Anterior hypothalamic nucleus"},{"id":89,"acronym":"RC","name":"rhinocele"},{"id":90,"acronym":"NLLh","name":"Nucleus of the lateral lemniscus, horizontal part"},{"id":91,"acronym":"IP","name":"Interposed nucleus"},{"id":92,"acronym":"ENTl4","name":"Entorhinal area, lateral part, layer 4"},{"id":93,"acronym":"moV","name":"motor root of the trigeminal nerve"},{"id":94,"acronym":"PVHp","name":"Paraventricular hypothalamic nucleus, parvicellular division"},{"id":95,"acronym":"AI","name":"Agranular insular area"},{"id":96,"acronym":"DCO","name":"Dorsal cochlear nucleus"},{"id":97,"acronym":"TEa1","name":"Temporal association areas, layer 1"},{"id":98,"acronym":"SEZ","name":"subependymal zone"},{"id":99,"acronym":"NLLv","name":"Nucleus of the lateral lemniscus, ventral part"},{"id":100,"acronym":"IPN","name":"Interpeduncular nucleus"},{"id":101,"acronym":"VCO","name":"Ventral cochlear nucleus"},{"id":102,"acronym":"nst","name":"nigrostriatal tract"},{"id":103,"acronym":"PVHpm","name":"Paraventricular hypothalamic nucleus, magnocellular division, posterior magnocellular part"},{"id":104,"acronym":"AId","name":"Agranular insular area, dorsal part"},{"id":105,"acronym":"SOCm","name":"Superior olivary complex, medial part"},{"id":106,"acronym":"ISN","name":"Inferior salivatory nucleus"},{"id":107,"acronym":"MO1","name":"Somatomotor areas, Layer 1"},{"id":108,"acronym":"chpl","name":"choroid plexus"},{"id":109,"acronym":"ntt","name":"nigrothalamic fibers"},{"id":110,"acronym":"PVHpv","name":"Paraventricular hypothalamic nucleus, parvicellular division, periventricular part"},{"id":111,"acronym":"AIp","name":"Agranular insular area, posterior part"},{"id":112,"acronym":"CNlam","name":"Granular lamina of the cochlear nuclei"},{"id":113,"acronym":"SSp-ll2/3","name":"Primary somatosensory area, lower limb, layer 2/3"},{"id":114,"acronym":"SOCl","name":"Superior olivary complex, lateral part"},{"id":115,"acronym":"IV","name":"Trochlear nucleus"},{"id":116,"acronym":"chfl","name":"choroid fissure"},{"id":117,"acronym":"och","name":"optic chiasm"},{"id":118,"acronym":"PVi","name":"Periventricular hypothalamic nucleus, intermediate part"},{"id":119,"acronym":"AIv","name":"Agranular insular area, ventral part"},{"id":120,"acronym":"AIp1","name":"Agranular insular area, posterior part, layer 1"},{"id":121,"acronym":"VISl6b","name":"Lateral visual area, layer 6b"},{"id":122,"acronym":"POR","name":"Superior olivary complex, periolivary region"},{"id":123,"acronym":"KF","name":"Koelliker-Fuse subnucleus"},{"id":124,"acronym":"IVF","name":"interventricular foramen"},{"id":125,"acronym":"opt","name":"optic tract"},{"id":126,"acronym":"PVp","name":"Periventricular hypothalamic nucleus, posterior part"},{"id":127,"acronym":"AM","name":"Anteromedial nucleus"},{"id":128,"acronym":"MRN","name":"Midbrain reticular nucleus"},{"id":129,"acronym":"V3","name":"third ventricle"},{"id":130,"acronym":"CSm","name":"Superior central nucleus raphe, medial part"},{"id":131,"acronym":"LA","name":"Lateral amygdalar nucleus"},{"id":132,"acronym":"PL6b","name":"Prelimbic area, layer 6b"},{"id":133,"acronym":"PVpo","name":"Periventricular hypothalamic nucleus, preoptic part"},{"id":134,"acronym":"ptf","name":"pallidotegmental fascicle"},{"id":135,"acronym":"AMB","name":"Nucleus ambiguus"},{"id":136,"acronym":"IRN","name":"Intermediate reticular nucleus"},{"id":137,"acronym":"CSl","name":"Superior central nucleus raphe, lateral part"},{"id":138,"acronym":"LAT","name":"Lateral group of the dorsal thalamus"},{"id":139,"acronym":"ENTl5","name":"Entorhinal area, lateral part, layer 5"},{"id":140,"acronym":"AQ","name":"cerebral aqueduct"},{"id":141,"acronym":"PVR","name":"Periventricular region"},{"id":142,"acronym":"pap","name":"pallidothalamic pathway"},{"id":143,"acronym":"AMBv","name":"Nucleus ambiguus, ventral division"},{"id":144,"acronym":"OT1-3","name":"Olfactory tubercle, layers 1-3"},{"id":145,"acronym":"V4","name":"fourth ventricle"},{"id":146,"acronym":"PRNr","name":"Pontine reticular nucleus"},{"id":147,"acronym":"LC","name":"Locus ceruleus"},{"id":148,"acronym":"GU4","name":"Gustatory areas, layer 4"},{"id":149,"acronym":"PVT","name":"Paraventricular nucleus of the thalamus"},{"id":150,"acronym":"pvbh","name":"periventricular bundle of the hypothalamus"},{"id":151,"acronym":"AOB","name":"Accessory olfactory bulb"},{"id":152,"acronym":"PIR1-3","name":"Piriform area, layers 1-3"},{"id":153,"acronym":"V4r","name":"lateral recess"},{"id":154,"acronym":"PHY","name":"Perihypoglossal nuclei"},{"id":155,"acronym":"LD","name":"Lateral dorsal nucleus of thalamus"},{"id":156,"acronym":"AUDd6a","name":"Dorsal auditory area, layer 6a"},{"id":157,"acronym":"PVZ","name":"Periventricular zone"},{"id":158,"acronym":"pc","name":"posterior commissure"},{"id":159,"acronym":"AON","name":"Anterior olfactory nucleus"},{"id":160,"acronym":"AON1","name":"Anterior olfactory nucleus, layer 1"},{"id":161,"acronym":"NIS","name":"Nucleus intercalatus"},{"id":162,"acronym":"LDT","name":"Laterodorsal tegmental nucleus"},{"id":163,"acronym":"AIp2/3","name":"Agranular insular area, posterior part, layer 2/3"},{"id":164,"acronym":"c","name":"central canal, spinal cord/medulla"},{"id":165,"acronym":"RAmb","name":"Midbrain raphe nuclei"},{"id":166,"acronym":"pmx","name":"premammillary commissure"},{"id":167,"acronym":"AONd","name":"Anterior olfactory nucleus, dorsal part"},{"id":168,"acronym":"AON2","name":"Anterior olfactory nucleus, layer 2"},{"id":169,"acronym":"PRP","name":"Nucleus prepositus"},{"id":170,"acronym":"LGd","name":"Dorsal part of the lateral geniculate complex"},{"id":171,"acronym":"PL1","name":"Prelimbic area, layer 1"},{"id":173,"acronym":"RCH","name":"Retrochiasmatic area"},{"id":174,"acronym":"poc","name":"preoptic commissure"},{"id":175,"acronym":"AONe","name":"Anterior olfactory nucleus, external part"},{"id":177,"acronym":"NR","name":"Nucleus of Roller"},{"id":178,"acronym":"LGv","name":"Ventral part of the lateral geniculate complex"},{"id":179,"acronym":"ACA6a","name":"Anterior cingulate area, layer 6a"},{"id":180,"acronym":"GU2/3","name":"Gustatory areas, layer 2/3"},{"id":181,"acronym":"RE","name":"Nucleus of reuniens"},{"id":182,"acronym":"php","name":"propriohypothalamic pathways"},{"id":183,"acronym":"AONl","name":"Anterior olfactory nucleus, lateral part"},{"id":184,"acronym":"FRP","name":"Frontal pole, cerebral cortex"},{"id":185,"acronym":"PPYd","name":"Parapyramidal nucleus, deep part"},{"id":186,"acronym":"LH","name":"Lateral habenula"},{"id":187,"acronym":"GU5","name":"Gustatory areas, layer 5"},{"id":188,"acronym":"AOBgl","name":"Accessory olfactory bulb, glomerular layer"},{"id":189,"acronym":"RH","name":"Rhomboid nucleus"},{"id":190,"acronym":"py","name":"pyramid"},{"id":191,"acronym":"AONm","name":"Anterior olfactory nucleus, medial part"},{"id":192,"acronym":"COAa1","name":"Cortical amygdalar area, anterior part, layer 1"},{"id":193,"acronym":"PPYs","name":"Parapyramidal nucleus, superficial part"},{"id":194,"acronym":"LHA","name":"Lateral hypothalamic area"},{"id":195,"acronym":"PL2","name":"Prelimbic area, layer 2"},{"id":196,"acronym":"AOBgr","name":"Accessory olfactory bulb, granular layer"},{"id":197,"acronym":"RL","name":"Rostral linear nucleus raphe"},{"id":198,"acronym":"pyd","name":"pyramidal decussation"},{"id":199,"acronym":"AONpv","name":"Anterior olfactory nucleus, posteroventral part"},{"id":200,"acronym":"COAa2","name":"Cortical amygdalar area, anterior part, layer 2"},{"id":201,"acronym":"SSp-bfd2/3","name":"Primary somatosensory area, barrel field, layer 2/3"},{"id":202,"acronym":"MV","name":"Medial vestibular nucleus"},{"id":203,"acronym":"LIN","name":"Linear nucleus of the medulla"},{"id":204,"acronym":"AOBmi","name":"Accessory olfactory bulb, mitral layer"},{"id":205,"acronym":"rstl","name":"retriculospinal tract, lateral part"},{"id":206,"acronym":"RM","name":"Nucleus raphe magnus"},{"id":207,"acronym":"AP","name":"Area postrema"},{"id":208,"acronym":"COAa3","name":"Cortical amygdalar area, anterior part, layer 3"},{"id":209,"acronym":"LAV","name":"Lateral vestibular nucleus"},{"id":210,"acronym":"LM","name":"Lateral mammillary nucleus"},{"id":211,"acronym":"ACAd2/3","name":"Anterior cingulate area, dorsal part, layer 2/3"},{"id":212,"acronym":"MOBgl","name":"Main olfactory bulb, glomerular layer"},{"id":213,"acronym":"rstm","name":"retriculospinal tract, medial part"},{"id":214,"acronym":"RN","name":"Red nucleus"},{"id":215,"acronym":"APN","name":"Anterior pretectal nucleus"},{"id":216,"acronym":"COApl1","name":"Cortical amygdalar area, posterior part, lateral zone, layer 1"},{"id":217,"acronym":"SUV","name":"Superior vestibular nucleus"},{"id":218,"acronym":"LP","name":"Lateral posterior nucleus of the thalamus"},{"id":219,"acronym":"MO2/3","name":"Somatomotor areas, Layer 2/3"},{"id":220,"acronym":"MOBgr","name":"Main olfactory bulb, granule layer"},{"id":221,"acronym":"rrt","name":"rubroreticular tract"},{"id":222,"acronym":"RO","name":"Nucleus raphe obscurus"},{"id":223,"acronym":"ARH","name":"Arcuate hypothalamic nucleus"},{"id":224,"acronym":"COApl2","name":"Cortical amygdalar area, posterior part, lateral zone, layer 2"},{"id":225,"acronym":"SPIV","name":"Spinal vestibular nucleus"},{"id":226,"acronym":"LPO","name":"Lateral preoptic area"},{"id":227,"acronym":"ACA6b","name":"Anterior cingulate area, layer 6b"},{"id":228,"acronym":"MOBipl","name":"Main olfactory bulb, inner plexiform layer"},{"id":229,"acronym":"sV","name":"sensory root of the trigeminal nerve"},{"id":230,"acronym":"RPA","name":"Nucleus raphe pallidus"},{"id":231,"acronym":"AT","name":"Anterior tegmental nucleus"},{"id":232,"acronym":"COApl3","name":"Cortical amygdalar area, posterior part, lateral zone, layer 3"},{"id":233,"acronym":"VISal5","name":"Anterolateral visual area, layer 5"},{"id":234,"acronym":"TEa4","name":"Temporal association areas, layer 4"},{"id":235,"acronym":"LRN","name":"Lateral reticular nucleus"},{"id":236,"acronym":"MOBmi","name":"Main olfactory bulb, mitral layer"},{"id":237,"acronym":"ts","name":"solitary tract"},{"id":238,"acronym":"RPO","name":"Nucleus raphe pontis"},{"id":239,"acronym":"ATN","name":"Anterior group of the dorsal thalamus"},{"id":240,"acronym":"COApm1","name":"Cortical amygdalar area, posterior part, medial zone, layer 1"},{"id":241,"acronym":"PTLp2/3","name":"Posterior parietal association areas, layer 2/3"},{"id":242,"acronym":"LS","name":"Lateral septal nucleus"},{"id":243,"acronym":"AUDd6b","name":"Dorsal auditory area, layer 6b"},{"id":244,"acronym":"MOBopl","name":"Main olfactory bulb, outer plexiform layer"},{"id":245,"acronym":"scrt","name":"spinocervical tract"},{"id":246,"acronym":"RR","name":"Midbrain reticular nucleus, retrorubral area"},{"id":247,"acronym":"AUD","name":"Auditory areas"},{"id":248,"acronym":"COApm2","name":"Cortical amygdalar area, posterior part, medial zone, layer 2"},{"id":249,"acronym":"AUDpo6a","name":"Posterior auditory area, layer 6a"},{"id":250,"acronym":"LSc","name":"Lateral septal nucleus, caudal (caudodorsal) part"},{"id":251,"acronym":"AUDp2/3","name":"Primary auditory area, layer 2/3"},{"id":252,"acronym":"AUDd5","name":"Dorsal auditory area, layer 5"},{"id":253,"acronym":"shp","name":"spinohypothalamic pathway"},{"id":254,"acronym":"RSP","name":"Retrosplenial area"},{"id":255,"acronym":"AV","name":"Anteroventral nucleus of thalamus"},{"id":256,"acronym":"COApm3","name":"Cortical amygdalar area, posterior part, medial zone, layer 3"},{"id":257,"acronym":"VISpm6a","name":"posteromedial visual area, layer 6a"},{"id":258,"acronym":"LSr","name":"Lateral septal nucleus, rostral (rostroventral) part"},{"id":259,"acronym":"ENTmv1","name":"Entorhinal area, medial part, ventral zone, layer 1"},{"id":260,"acronym":"NLOT1","name":"Nucleus of the lateral olfactory tract, molecular layer"},{"id":261,"acronym":"sop","name":"spino-olivary pathway"},{"id":262,"acronym":"RT","name":"Reticular nucleus of the thalamus"},{"id":263,"acronym":"AVP","name":"Anteroventral preoptic nucleus"},{"id":264,"acronym":"ORB1","name":"Orbital area, layer 1"},{"id":266,"acronym":"LSv","name":"Lateral septal nucleus, ventral part"},{"id":267,"acronym":"DP6a","name":"Dorsal peduncular area, layer 6a"},{"id":268,"acronym":"NLOT2","name":"Nucleus of the lateral olfactory tract, pyramidal layer"},{"id":269,"acronym":"VISpl2/3","name":"Posterolateral visual area, layer 2/3"},{"id":270,"acronym":"srp","name":"spinoreticular pathway"},{"id":271,"acronym":"SAG","name":"Nucleus sagulum"},{"id":272,"acronym":"AVPV","name":"Anteroventral periventricular nucleus"},{"id":274,"acronym":"RSPd6a","name":"Retrosplenial area, dorsal part, layer 6a"},{"id":275,"acronym":"LSX","name":"Lateral septal complex"},{"id":276,"acronym":"PIR1","name":"Piriform area, molecular layer"},{"id":277,"acronym":"stp","name":"spinotectal pathway"},{"id":278,"acronym":"sAMY","name":"Striatum-like amygdalar nuclei"},{"id":279,"acronym":"RSPagl6b","name":"Retrosplenial area, lateral agranular part, layer 6b"},{"id":280,"acronym":"B","name":"Barrington's nucleus"},{"id":281,"acronym":"VISam1","name":"Anteromedial visual area, layer 1"},{"id":283,"acronym":"LTN","name":"Lateral tegmental nucleus"},{"id":284,"acronym":"PIR2","name":"Piriform area, pyramidal layer"},{"id":285,"acronym":"step","name":"spinotelenchephalic pathway"},{"id":286,"acronym":"SCH","name":"Suprachiasmatic nucleus"},{"id":287,"acronym":"BAC","name":"Bed nucleus of the anterior commissure"},{"id":288,"acronym":"ORBvl2/3","name":"Orbital area, ventrolateral part, layer 2/3"},{"id":289,"acronym":"TEa5","name":"Temporal association areas, layer 5"},{"id":290,"acronym":"LZ","name":"Hypothalamic lateral zone"},{"id":291,"acronym":"PIR3","name":"Piriform area, polymorph layer"},{"id":292,"acronym":"BA","name":"Bed nucleus of the accessory olfactory tract"},{"id":293,"acronym":"svp","name":"spinovestibular pathway"},{"id":294,"acronym":"SCm","name":"Superior colliculus, motor related"},{"id":295,"acronym":"BLA","name":"Basolateral amygdalar nucleus"},{"id":296,"acronym":"ACAv2/3","name":"Anterior cingulate area, ventral part, layer 2/3"},{"id":297,"acronym":"TTd1-4","name":"Taenia tecta, dorsal part, layers 1-4"},{"id":298,"acronym":"MA","name":"Magnocellular nucleus"},{"id":299,"acronym":"MO5","name":"Somatomotor areas, Layer 5"},{"id":300,"acronym":"LGvl","name":"Ventral part of the lateral geniculate complex, lateral zone"},{"id":301,"acronym":"st","name":"stria terminalis"},{"id":302,"acronym":"SCs","name":"Superior colliculus, sensory related"},{"id":303,"acronym":"BLAa","name":"Basolateral amygdalar nucleus, anterior part"},{"id":304,"acronym":"PL2/3","name":"Prelimbic area, layer 2/3"},{"id":305,"acronym":"VISp6b","name":"Primary visual area, layer 6b"},{"id":306,"acronym":"TTv1-3","name":"Taenia tecta, ventral part, layers 1-3"},{"id":307,"acronym":"MARN","name":"Magnocellular reticular nucleus"},{"id":308,"acronym":"PTLp6a","name":"Posterior parietal association areas, layer 6a"},{"id":309,"acronym":"snp","name":"striatonigral pathway"},{"id":310,"acronym":"SF","name":"Septofimbrial nucleus"},{"id":311,"acronym":"BLAp","name":"Basolateral amygdalar nucleus, posterior part"},{"id":312,"acronym":"ENTl4/5","name":"Entorhinal area, lateral part, layer 4/5"},{"id":313,"acronym":"MB","name":"Midbrain"},{"id":314,"acronym":"AIp6a","name":"Agranular insular area, posterior part, layer 6a"},{"id":315,"acronym":"Isocortex","name":"Isocortex"},{"id":316,"acronym":"LGvm","name":"Ventral part of the lateral geniculate complex, medial zone"},{"id":317,"acronym":"stf","name":"subthalamic fascicle"},{"id":318,"acronym":"SG","name":"Supragenual nucleus"},{"id":319,"acronym":"BMA","name":"Basomedial amygdalar nucleus"},{"id":320,"acronym":"MOp1","name":"Primary motor area, Layer 1"},{"id":321,"acronym":"SubG","name":"Subgeniculate nucleus"},{"id":322,"acronym":"SSp","name":"Primary somatosensory area"},{"id":323,"acronym":"MBmot","name":"Midbrain, motor related"},{"id":324,"acronym":"ENTmv2","name":"Entorhinal area, medial part, ventral zone, layer 2"},{"id":325,"acronym":"SGN","name":"Suprageniculate nucleus"},{"id":326,"acronym":"scp","name":"superior cerebelar peduncles"},{"id":327,"acronym":"BMAa","name":"Basomedial amygdalar nucleus, anterior part"},{"id":328,"acronym":"AId2/3","name":"Agranular insular area, dorsal part, layer 2/3"},{"id":329,"acronym":"SSp-bfd","name":"Primary somatosensory area, barrel field"},{"id":330,"acronym":"RSPd6b","name":"Retrosplenial area, dorsal part, layer 6b"},{"id":331,"acronym":"MBO","name":"Mammillary body"},{"id":332,"acronym":"ASO","name":"Accessory supraoptic group"},{"id":333,"acronym":"SH","name":"Septohippocampal nucleus"},{"id":334,"acronym":"BMAp","name":"Basomedial amygdalar nucleus, posterior part"},{"id":335,"acronym":"PERI6a","name":"Perirhinal area, layer 6a"},{"id":336,"acronym":"csc","name":"superior colliculus commissure"},{"id":337,"acronym":"SSp-ll","name":"Primary somatosensory area, lower limb"},{"id":338,"acronym":"SFO","name":"Subfornical organ"},{"id":339,"acronym":"MBsen","name":"Midbrain, sensory related"},{"id":340,"acronym":"PTLp6b","name":"Posterior parietal association areas, layer 6b"},{"id":341,"acronym":"smd","name":"supramammillary decussation"},{"id":342,"acronym":"SI","name":"Substantia innominata"},{"id":343,"acronym":"BS","name":"Brain stem"},{"id":344,"acronym":"AIp5","name":"Agranular insular area, posterior part, layer 5"},{"id":345,"acronym":"SSp-m","name":"Primary somatosensory area, mouth"},{"id":346,"acronym":"SSp2/3","name":"Primary somatosensory area, layer 2/3"},{"id":347,"acronym":"SBPV","name":"Subparaventricular zone"},{"id":348,"acronym":"MBsta","name":"Midbrain, behavioral state related"},{"id":349,"acronym":"sup","name":"supraoptic commissures"},{"id":350,"acronym":"SLC","name":"Subceruleus nucleus"},{"id":351,"acronym":"BST","name":"Bed nuclei of the stria terminalis"},{"id":352,"acronym":"ORB5","name":"Orbital area, layer 5"},{"id":353,"acronym":"SSp-n","name":"Primary somatosensory area, nose"},{"id":354,"acronym":"MY","name":"Medulla"},{"id":355,"acronym":"AIp6b","name":"Agranular insular area, posterior part, layer 6b"},{"id":356,"acronym":"PST","name":"Preparasubthalamic nucleus"},{"id":357,"acronym":"ttp","name":"tectothalamic pathway"},{"id":358,"acronym":"SLD","name":"Sublaterodorsal nucleus"},{"id":359,"acronym":"BSTa","name":"Bed nuclei of the stria terminalis, anterior division"},{"id":360,"acronym":"DP2/3","name":"Dorsal peduncular area, layer 2/3"},{"id":361,"acronym":"SSp-tr","name":"Primary somatosensory area, trunk"},{"id":362,"acronym":"MD","name":"Mediodorsal nucleus of thalamus"},{"id":363,"acronym":"PL5","name":"Prelimbic area, layer 5"},{"id":364,"acronym":"PSTN","name":"Parasubthalamic nucleus"},{"id":365,"acronym":"tp","name":"thalamic peduncles"},{"id":366,"acronym":"SMT","name":"Submedial nucleus of the thalamus"},{"id":367,"acronym":"BSTp","name":"Bed nuclei of the stria terminalis, posterior division"},{"id":368,"acronym":"PERI6b","name":"Perirhinal area, layer 6b"},{"id":369,"acronym":"SSp-ul","name":"Primary somatosensory area, upper limb"},{"id":370,"acronym":"MY-mot","name":"Medulla, motor related"},{"id":371,"acronym":"ENTmv3","name":"Entorhinal area, medial part, ventral zone, layer 3"},{"id":372,"acronym":"ICB","name":"Infracerebellar nucleus"},{"id":373,"acronym":"tct","name":"trigeminocerebellar tract"},{"id":374,"acronym":"SNc","name":"Substantia nigra, compact part"},{"id":375,"acronym":"CA","name":"Ammon's horn"},{"id":376,"acronym":"COApl1-3","name":"Cortical amygdalar area, posterior part, lateral zone, layers 1-3"},{"id":377,"acronym":"VISpl6a","name":"Posterolateral visual area, layer 6a"},{"id":378,"acronym":"SSs","name":"Supplemental somatosensory area"},{"id":379,"acronym":"MY-sat","name":"Medulla, behavioral state related"},{"id":380,"acronym":"cuf","name":"cuneate fascicle"},{"id":381,"acronym":"SNr","name":"Substantia nigra, reticular part"},{"id":382,"acronym":"CA1","name":"Field CA1"},{"id":383,"acronym":"COApm1-3","name":"Cortical amygdalar area, posterior part, medial zone, layers 1-3"},{"id":384,"acronym":"IVd","name":"trochlear nerve decussation"},{"id":385,"acronym":"VISp","name":"Primary visual area"},{"id":386,"acronym":"MY-sen","name":"Medulla, sensory related"},{"id":387,"acronym":"ENTl5/6","name":"Entorhinal area, lateral part, layer 5/6"},{"id":388,"acronym":"grf","name":"gracile fascicle"},{"id":389,"acronym":"sttv","name":"ventral spinothalamic tract"},{"id":390,"acronym":"SO","name":"Supraoptic nucleus"},{"id":391,"acronym":"CA1slm","name":"Field CA1, stratum lacunosum-moleculare"},{"id":392,"acronym":"NLOT1-3","name":"Nucleus of the lateral olfactory tract, layers 1-3"},{"id":393,"acronym":"VISpl6b","name":"Posterolateral visual area, layer 6b"},{"id":394,"acronym":"VISam","name":"Anteromedial visual area"},{"id":395,"acronym":"MDRN","name":"Medullary reticular nucleus"},{"id":396,"acronym":"iaf","name":"internal arcuate fibers"},{"id":397,"acronym":"vtd","name":"ventral tegmental decussation"},{"id":398,"acronym":"SOC","name":"Superior olivary complex"},{"id":399,"acronym":"CA1so","name":"Field CA1, stratum oriens"},{"id":400,"acronym":"PAA1-3","name":"Piriform-amygdalar area, layers 1-3"},{"id":401,"acronym":"VISam4","name":"Anteromedial visual area, layer 4"},{"id":402,"acronym":"VISal","name":"Anterolateral visual area"},{"id":403,"acronym":"MEA","name":"Medial amygdalar nucleus"},{"id":404,"acronym":"oct","name":"olivocerebellar tract"},{"id":405,"acronym":"vlt","name":"ventrolateral hypothalamic tract"},{"id":406,"acronym":"SPF","name":"Subparafascicular nucleus"},{"id":407,"acronym":"CA1sp","name":"Field CA1, pyramidal layer"},{"id":408,"acronym":"PAA1","name":"Piriform-amygdalar area, molecular layer"},{"id":409,"acronym":"VISl","name":"Lateral visual area"},{"id":410,"acronym":"rct","name":"reticulocerebellar tract"},{"id":411,"acronym":"MEAad","name":"Medial amygdalar nucleus, anterodorsal part"},{"id":412,"acronym":"ORBl2/3","name":"Orbital area, lateral part, layer 2/3"},{"id":413,"acronym":"vVIIIn","name":"vestibular nerve"},{"id":414,"acronym":"SPFm","name":"Subparafascicular nucleus, magnocellular part"},{"id":415,"acronym":"CA1sr","name":"Field CA1, stratum radiatum"},{"id":416,"acronym":"PAA2","name":"Piriform-amygdalar area, pyramidal layer"},{"id":417,"acronym":"VISrl","name":"Rostrolateral visual area"},{"id":418,"acronym":"MEAav","name":"Medial amygdalar nucleus, anteroventral part"},{"id":419,"acronym":"ENTmv4","name":"Entorhinal area, medial part, ventral zone, layer 4"},{"id":420,"acronym":"db","name":"precommissural fornix diagonal band"},{"id":421,"acronym":"VISl1","name":"Lateral visual area, layer 1"},{"id":422,"acronym":"SPFp","name":"Subparafascicular nucleus, parvicellular part"},{"id":423,"acronym":"CA2","name":"Field CA2"},{"id":424,"acronym":"PAA3","name":"Piriform-amygdalar area, polymorph layer"},{"id":425,"acronym":"VISpl","name":"Posterolateral visual area"},{"id":426,"acronym":"MEApd","name":"Medial amygdalar nucleus, posterodorsal part"},{"id":427,"acronym":"ECT2/3","name":"Ectorhinal area/Layer 2/3"},{"id":428,"acronym":"mct","name":"medial corticohypothalamic tract"},{"id":429,"acronym":"SPVC","name":"Spinal nucleus of the trigeminal, caudal part"},{"id":430,"acronym":"RSPv2/3","name":"Retrosplenial area, ventral part, layer 2/3"},{"id":431,"acronym":"CA2slm","name":"Field CA2, stratum lacunosum-moleculare"},{"id":432,"acronym":"NC","name":"Nucleus circularis"},{"id":433,"acronym":"VISam5","name":"Anteromedial visual area, layer 5"},{"id":434,"acronym":"RSPd2/3","name":"Retrosplenial area, dorsal part, layer 2/3"},{"id":435,"acronym":"MEApv","name":"Medial amygdalar nucleus, posteroventral part"},{"id":436,"acronym":"fx","name":"columns of the fornix"},{"id":437,"acronym":"SPVI","name":"Spinal nucleus of the trigeminal, interpolar part"},{"id":438,"acronym":"CA2so","name":"Field CA2, stratum oriens"},{"id":439,"acronym":"PVHdp","name":"Paraventricular hypothalamic nucleus, descending division, dorsal parvicellular part"},{"id":440,"acronym":"ORBl6a","name":"Orbital area, lateral part, layer 6a"},{"id":441,"acronym":"VISam6b","name":"Anteromedial visual area, layer 6b"},{"id":442,"acronym":"RSPd1","name":"Retrosplenial area, dorsal part, layer 1"},{"id":443,"acronym":"dhc","name":"dorsal hippocampal commissure"},{"id":444,"acronym":"MED","name":"Medial group of the dorsal thalamus"},{"id":445,"acronym":"SPVO","name":"Spinal nucleus of the trigeminal, oral part"},{"id":446,"acronym":"CA2sp","name":"Field CA2, pyramidal layer"},{"id":447,"acronym":"PVHf","name":"Paraventricular hypothalamic nucleus, descending division, forniceal part"},{"id":448,"acronym":"ORBl1","name":"Orbital area, lateral part, layer 1"},{"id":449,"acronym":"vhc","name":"ventral hippocampal commissure"},{"id":450,"acronym":"SSp-ul1","name":"Primary somatosensory area, upper limb, layer 1"},{"id":451,"acronym":"BLAv","name":"Basolateral amygdalar nucleus, ventral part"},{"id":452,"acronym":"MEPO","name":"Median preoptic nucleus"},{"id":453,"acronym":"SS","name":"Somatosensory areas"},{"id":454,"acronym":"CA2sr","name":"Field CA2, stratum radiatum"},{"id":455,"acronym":"PVHlp","name":"Paraventricular hypothalamic nucleus, descending division, lateral parvicellular part"},{"id":456,"acronym":"AUDpo6b","name":"Posterior auditory area, layer 6b"},{"id":457,"acronym":"VIS6a","name":"Visual areas, layer 6a"},{"id":458,"acronym":"OT1","name":"Olfactory tubercle, molecular layer"},{"id":459,"acronym":"aolt","name":"accessory olfactory tract"},{"id":460,"acronym":"MEV","name":"Midbrain trigeminal nucleus"},{"id":461,"acronym":"SSp-tr6b","name":"Primary somatosensory area, trunk, layer 6b"},{"id":462,"acronym":"SSN","name":"Superior salivatory nucleus"},{"id":463,"acronym":"CA3","name":"Field CA3"},{"id":464,"acronym":"PVHmpv","name":"Paraventricular hypothalamic nucleus, descending division, medial parvicellular part, ventral zone"},{"id":465,"acronym":"OT2","name":"Olfactory tubercle, pyramidal layer"},{"id":466,"acronym":"alv","name":"alveus"},{"id":467,"acronym":"MEZ","name":"Hypothalamic medial zone"},{"id":468,"acronym":"ENTm2a","name":"Entorhinal area, medial part, dorsal zone, layer 2a"},{"id":469,"acronym":"VISpm6b","name":"posteromedial visual area, layer 6b"},{"id":470,"acronym":"STN","name":"Subthalamic nucleus"},{"id":471,"acronym":"CA3slm","name":"Field CA3, stratum lacunosum-moleculare"},{"id":472,"acronym":"MEApd-a","name":"Medial amygdalar nucleus, posterodorsal part, sublayer a"},{"id":473,"acronym":"OT3","name":"Olfactory tubercle, polymorph layer"},{"id":474,"acronym":"ab","name":"angular path"},{"id":475,"acronym":"MG","name":"Medial geniculate complex"},{"id":476,"acronym":"ORB6a","name":"Orbital area, layer 6a"},{"id":477,"acronym":"STR","name":"Striatum"},{"id":478,"acronym":"SSp-ll6a","name":"Primary somatosensory area, lower limb, layer 6a"},{"id":479,"acronym":"CA3slu","name":"Field CA3, stratum lucidum"},{"id":480,"acronym":"MEApd-b","name":"Medial amygdalar nucleus, posterodorsal part, sublayer b"},{"id":481,"acronym":"isl","name":"Islands of Calleja"},{"id":482,"acronym":"bic","name":"brachium of the inferior colliculus"},{"id":483,"acronym":"MH","name":"Medial habenula"},{"id":484,"acronym":"ORBm1","name":"Orbital area, medial part, layer 1"},{"id":485,"acronym":"STRd","name":"Striatum dorsal region"},{"id":486,"acronym":"CA3so","name":"Field CA3, stratum oriens"},{"id":487,"acronym":"MEApd-c","name":"Medial amygdalar nucleus, posterodorsal part, sublayer c"},{"id":488,"acronym":"ORBl6b","name":"Orbital area, lateral part, layer 6b"},{"id":489,"acronym":"islm","name":"Major island of Calleja"},{"id":490,"acronym":"bct","name":"bulbocerebellar tract"},{"id":491,"acronym":"MM","name":"Medial mammillary nucleus"},{"id":492,"acronym":"ORB2/3","name":"Orbital area, layer 2/3"},{"id":493,"acronym":"STRv","name":"Striatum ventral region"},{"id":494,"acronym":"SCig-a","name":"Superior colliculus, motor related, intermediate gray layer, sublayer a"},{"id":495,"acronym":"CA3sp","name":"Field CA3, pyramidal layer"},{"id":496,"acronym":"DP1","name":"Dorsal peduncular area, layer 1"},{"id":497,"acronym":"VIS6b","name":"Visual areas, layer 6b"},{"id":498,"acronym":"BSTam","name":"Bed nuclei of the stria terminalis, anterior division, anteromedial area"},{"id":499,"acronym":"cct","name":"cuneocerebellar tract"},{"id":500,"acronym":"MO","name":"Somatomotor areas"},{"id":501,"acronym":"VISpm4","name":"posteromedial visual area, layer 4"},{"id":502,"acronym":"SUB","name":"Subiculum"},{"id":503,"acronym":"SCig-b","name":"Superior colliculus, motor related, intermediate gray layer, sublayer b"},{"id":504,"acronym":"CA3sr","name":"Field CA3, stratum radiatum"},{"id":505,"acronym":"BSTdm","name":"Bed nuclei of the stria terminalis, anterior division, dorsomedial nucleus"},{"id":506,"acronym":"das","name":"dorsal acoustic stria"},{"id":507,"acronym":"MOB","name":"Main olfactory bulb"},{"id":508,"acronym":"ENTm2b","name":"Entorhinal area, medial part, dorsal zone, layer 2b"},{"id":509,"acronym":"SUBd","name":"Subiculum, dorsal part"},{"id":510,"acronym":"SSp-ll6b","name":"Primary somatosensory area, lower limb, layer 6b"},{"id":511,"acronym":"SCig-c","name":"Superior colliculus, motor related, intermediate gray layer, sublayer c"},{"id":512,"acronym":"CB","name":"Cerebellum"},{"id":513,"acronym":"BSTfu","name":"Bed nuclei of the stria terminalis, anterior division, fusiform nucleus"},{"id":514,"acronym":"dc","name":"dorsal column"},{"id":515,"acronym":"MPN","name":"Medial preoptic nucleus"},{"id":516,"acronym":"ORB6b","name":"Orbital area, layer 6b"},{"id":517,"acronym":"TR1-3","name":"Postpiriform transition area, layers 1-3"},{"id":518,"acronym":"SUBv","name":"Subiculum, ventral part"},{"id":519,"acronym":"CBN","name":"Cerebellar nuclei"},{"id":520,"acronym":"AUDv6a","name":"Ventral auditory area, layer 6a"},{"id":521,"acronym":"BSTmg","name":"Bed nuclei of the stria terminalis, anterior division, magnocellular nucleus"},{"id":522,"acronym":"dcm","name":"dorsal commissure of the spinal cord"},{"id":523,"acronym":"MPO","name":"Medial preoptic area"},{"id":524,"acronym":"ORBm2","name":"Orbital area, medial part, layer 2"},{"id":525,"acronym":"SUM","name":"Supramammillary nucleus"},{"id":526,"acronym":"ENTm1","name":"Entorhinal area, medial part, dorsal zone, layer 1"},{"id":527,"acronym":"AUDd1","name":"Dorsal auditory area, layer 1"},{"id":528,"acronym":"CBX","name":"Cerebellar cortex"},{"id":529,"acronym":"BSTv","name":"Bed nuclei of the stria terminalis, anterior division, ventral nucleus"},{"id":530,"acronym":"df","name":"dorsal fornix"},{"id":531,"acronym":"MPT","name":"Medial pretectal area"},{"id":532,"acronym":"PTLp1","name":"Posterior parietal association areas, layer 1"},{"id":533,"acronym":"VISpm","name":"posteromedial visual area"},{"id":534,"acronym":"SUT","name":"Supratrigeminal nucleus"},{"id":535,"acronym":"DP2","name":"Dorsal peduncular area, layer 2"},{"id":536,"acronym":"CEA","name":"Central amygdalar nucleus"},{"id":537,"acronym":"BSTal","name":"Bed nuclei of the stria terminalis, anterior division, anterolateral area"},{"id":538,"acronym":"lotd","name":"dorsal limb"},{"id":539,"acronym":"MRNm","name":"Midbrain reticular nucleus, magnocellular part"},{"id":540,"acronym":"PERI1","name":"Perirhinal area, layer 1"},{"id":541,"acronym":"TEa","name":"Temporal association areas"},{"id":542,"acronym":"RSPv1","name":"Retrosplenial area, ventral part, layer 1"},{"id":543,"acronym":"ENTm2","name":"Entorhinal area, medial part, dorsal zone, layer 2"},{"id":544,"acronym":"CEAc","name":"Central amygdalar nucleus, capsular part"},{"id":545,"acronym":"RSPd4","name":"Retrosplenial area, dorsal part, layer 4"},{"id":546,"acronym":"BSTju","name":"Bed nuclei of the stria terminalis, anterior division, juxtacapsular nucleus"},{"id":547,"acronym":"dlf","name":"dorsal longitudinal fascicle"},{"id":548,"acronym":"MRNmg","name":"Midbrain reticular nucleus, magnocellular part, general"},{"id":549,"acronym":"TH","name":"Thalamus"},{"id":550,"acronym":"ENTm5/6","name":"Entorhinal area, medial part, dorsal zone, layer 5/6"},{"id":551,"acronym":"CEAl","name":"Central amygdalar nucleus, lateral part"},{"id":552,"acronym":"PRNv","name":"Pontine reticular nucleus, ventral part"},{"id":553,"acronym":"sctd","name":"dorsal spinocerebellar tract"},{"id":554,"acronym":"BSTov","name":"Bed nuclei of the stria terminalis, anterior division, oval nucleus"},{"id":555,"acronym":"MRNp","name":"Midbrain reticular nucleus, parvicellular part"},{"id":556,"acronym":"ILA2/3","name":"Infralimbic area, layer 2/3"},{"id":557,"acronym":"TM","name":"Tuberomammillary nucleus"},{"id":558,"acronym":"SSp-n1","name":"Primary somatosensory area, nose, layer 1"},{"id":559,"acronym":"CEAm","name":"Central amygdalar nucleus, medial part"},{"id":560,"acronym":"CNspg","name":"Cochlear nucleus, subpedunclular granular region"},{"id":561,"acronym":"VIS2/3","name":"Visual areas, layer 2/3"},{"id":562,"acronym":"BSTrh","name":"Bed nuclei of the stria terminalis, anterior division, rhomboid nucleus"},{"id":563,"acronym":"dtt","name":"dorsal tegmental tract"},{"id":564,"acronym":"MS","name":"Medial septal nucleus"},{"id":565,"acronym":"VISpm5","name":"posteromedial visual area, layer 5"},{"id":566,"acronym":"TR","name":"Postpiriform transition area"},{"id":567,"acronym":"CH","name":"Cerebrum"},{"id":568,"acronym":"ACVI","name":"Accessory abducens nucleus"},{"id":569,"acronym":"BSTd","name":"Bed nuclei of the stria terminalis, posterior division, dorsal nucleus"},{"id":570,"acronym":"dl","name":"dorsolateral fascicle"},{"id":571,"acronym":"MTN","name":"Midline group of the dorsal thalamus"},{"id":572,"acronym":"ACA1","name":"Anterior cingulate area, layer 1"},{"id":573,"acronym":"VISl4","name":"Lateral visual area, layer 4"},{"id":574,"acronym":"TRN","name":"Tegmental reticular nucleus"},{"id":575,"acronym":"CL","name":"Central lateral nucleus of the thalamus"},{"id":576,"acronym":"ACVII","name":"Accessory facial motor nucleus"},{"id":577,"acronym":"SSp-ul4","name":"Primary somatosensory area, upper limb, layer 4"},{"id":578,"acronym":"BSTpr","name":"Bed nuclei of the stria terminalis, posterior division, principal nucleus"},{"id":579,"acronym":"ec","name":"external capsule"},{"id":580,"acronym":"NB","name":"Nucleus of the brachium of the inferior colliculus"},{"id":581,"acronym":"TRS","name":"Triangular nucleus of septum"},{"id":582,"acronym":"ORBm2/3","name":"Orbital area, medial part, layer 2/3"},{"id":583,"acronym":"CLA","name":"Claustrum"},{"id":584,"acronym":"COApl1-2","name":"Cortical amygdalar area, posterior part, lateral zone, layers 1-2"},{"id":585,"acronym":"BSTif","name":"Bed nuclei of the stria terminalis, posterior division, interfascicular nucleus"},{"id":586,"acronym":"fpr","name":"fasciculus proprius"},{"id":587,"acronym":"ND","name":"Nucleus of Darkschewitsch"},{"id":588,"acronym":"ACAv1","name":"Anterior cingulate area, ventral part, layer 1"},{"id":589,"acronym":"TT","name":"Taenia tecta"},{"id":590,"acronym":"RSPv6a","name":"Retrosplenial area, ventral part, layer 6a"},{"id":591,"acronym":"CLI","name":"Central linear nucleus raphe"},{"id":592,"acronym":"COApm1-2","name":"Cortical amygdalar area, posterior part, medial zone, layers 1-2"},{"id":593,"acronym":"VISp1","name":"Primary visual area, layer 1"},{"id":594,"acronym":"BSTtr","name":"Bed nuclei of the stria terminalis, posterior division, transverse nucleus"},{"id":595,"acronym":"fr","name":"fasciculus retroflexus"},{"id":596,"acronym":"NDB","name":"Diagonal band nucleus"},{"id":597,"acronym":"TTd","name":"Taenia tecta, dorsal part"},{"id":598,"acronym":"AUDv6b","name":"Ventral auditory area, layer 6b"},{"id":599,"acronym":"CM","name":"Central medial nucleus of the thalamus"},{"id":600,"acronym":"AUDd2/3","name":"Dorsal auditory area, layer 2/3"},{"id":601,"acronym":"VISal6a","name":"Anterolateral visual area, layer 6a"},{"id":602,"acronym":"BSTse","name":"Bed nuclei of the stria terminalis, posterior division, strial extension"},{"id":603,"acronym":"fi","name":"fimbria"},{"id":604,"acronym":"NI","name":"Nucleus incertus"},{"id":605,"acronym":"TTv","name":"Taenia tecta, ventral part"},{"id":606,"acronym":"RSPv2","name":"Retrosplenial area, ventral part, layer 2"},{"id":607,"acronym":"CN","name":"Cochlear nuclei"},{"id":608,"acronym":"ORBvl6a","name":"Orbital area, ventrolateral part, layer 6a"},{"id":609,"acronym":"SPA","name":"Subparafascicular area"},{"id":610,"acronym":"RSPd5","name":"Retrosplenial area, dorsal part, layer 5"},{"id":611,"acronym":"hbc","name":"habenular commissure"},{"id":612,"acronym":"NLL","name":"Nucleus of the lateral lemniscus"},{"id":613,"acronym":"VISl5","name":"Lateral visual area, layer 5"},{"id":614,"acronym":"TU","name":"Tuberal nucleus"},{"id":615,"acronym":"SNl","name":"Substantia nigra, lateral part"},{"id":616,"acronym":"CUN","name":"Cuneiform nucleus"},{"id":617,"acronym":"MDc","name":"Mediodorsal nucleus of the thalamus, central part"},{"id":618,"acronym":"hc","name":"hippocampal commissures"},{"id":619,"acronym":"NLOT","name":"Nucleus of the lateral olfactory tract"},{"id":620,"acronym":"ORBm5","name":"Orbital area, medial part, layer 5"},{"id":621,"acronym":"V","name":"Motor nucleus of trigeminal"},{"id":622,"acronym":"RSPv6b","name":"Retrosplenial area, ventral part, layer 6b"},{"id":623,"acronym":"CNU","name":"Cerebral nuclei"},{"id":624,"acronym":"IPF","name":"Interpeduncular fossa"},{"id":625,"acronym":"SSp-ul5","name":"Primary somatosensory area, upper limb, layer 5"},{"id":626,"acronym":"MDl","name":"Mediodorsal nucleus of the thalamus, lateral part"},{"id":627,"acronym":"hht","name":"hypothalamohypophysial tract"},{"id":628,"acronym":"NOT","name":"Nucleus of the optic tract"},{"id":629,"acronym":"VAL","name":"Ventral anterior-lateral complex of the thalamus"},{"id":630,"acronym":"ORBl5","name":"Orbital area, lateral part, layer 5"},{"id":631,"acronym":"COA","name":"Cortical amygdalar area"},{"id":632,"acronym":"DG-sg","name":"Dentate gyrus, granule cell layer"},{"id":633,"acronym":"cic","name":"inferior colliculus commissure"},{"id":634,"acronym":"NPC","name":"Nucleus of the posterior commissure"},{"id":635,"acronym":"PTLp4","name":"Posterior parietal association areas, layer 4"},{"id":636,"acronym":"MDm","name":"Mediodorsal nucleus of the thalamus, medial part"},{"id":637,"acronym":"VENT","name":"Ventral group of the dorsal thalamus"},{"id":638,"acronym":"GU6a","name":"Gustatory areas, layer 6a"},{"id":639,"acronym":"COAa","name":"Cortical amygdalar area, anterior part"},{"id":640,"acronym":"EV","name":"Efferent vestibular nucleus"},{"id":641,"acronym":"ias","name":"intermediate acoustic stria"},{"id":642,"acronym":"NTB","name":"Nucleus of the trapezoid body"},{"id":643,"acronym":"AUDpo2/3","name":"Posterior auditory area, layer 2/3"},{"id":644,"acronym":"MO6a","name":"Somatomotor areas, Layer 6a"},{"id":645,"acronym":"VERM","name":"Vermal regions"},{"id":646,"acronym":"DP5","name":"Dorsal peduncular area, layer 5"},{"id":647,"acronym":"COAp","name":"Cortical amygdalar area, posterior part"},{"id":648,"acronym":"MOp5","name":"Primary motor area, Layer 5"},{"id":649,"acronym":"VISal6b","name":"Anterolateral visual area, layer 6b"},{"id":650,"acronym":"jrb","name":"juxtarestiform body"},{"id":651,"acronym":"NTS","name":"Nucleus of the solitary tract"},{"id":652,"acronym":"PVHpml","name":"Paraventricular hypothalamic nucleus, magnocellular division, posterior magnocellular part, lateral zone"},{"id":653,"acronym":"VI","name":"Abducens nucleus"},{"id":654,"acronym":"SSp-n4","name":"Primary somatosensory area, nose, layer 4"},{"id":655,"acronym":"COApl","name":"Cortical amygdalar area, posterior part, lateral zone"},{"id":656,"acronym":"MOs1","name":"Secondary motor area, layer 1"},{"id":657,"acronym":"SSp-m2/3","name":"Primary somatosensory area, mouth, layer 2/3"},{"id":658,"acronym":"ll","name":"lateral lemniscus"},{"id":659,"acronym":"NTSce","name":"Nucleus of the solitary tract, central part"},{"id":660,"acronym":"PVHpmm","name":"Paraventricular hypothalamic nucleus, magnocellular division, posterior magnocellular part, medial zone"},{"id":661,"acronym":"VII","name":"Facial motor nucleus"},{"id":662,"acronym":"GU6b","name":"Gustatory areas, layer 6b"},{"id":663,"acronym":"COApm","name":"Cortical amygdalar area, posterior part, medial zone"},{"id":664,"acronym":"ENTm3","name":"Entorhinal area, medial part, dorsal zone, layer 3"},{"id":665,"acronym":"lot","name":"lateral olfactory tract, body"},{"id":666,"acronym":"NTSco","name":"Nucleus of the solitary tract, commissural part"},{"id":667,"acronym":"FRP2/3","name":"Frontal pole, layer 2/3"},{"id":668,"acronym":"DMHa","name":"Dorsomedial nucleus of the hypothalamus, anterior part"},{"id":669,"acronym":"VIS","name":"Visual areas"},{"id":670,"acronym":"SSp-tr2/3","name":"Primary somatosensory area, trunk, layer 2/3"},{"id":671,"acronym":"RSPagl1","name":"Retrosplenial area, lateral agranular part, layer 1"},{"id":672,"acronym":"CP","name":"Caudoputamen"},{"id":673,"acronym":"mp","name":"mammillary peduncle"},{"id":674,"acronym":"NTSge","name":"Nucleus of the solitary tract, gelatinous part"},{"id":675,"acronym":"AIv6a","name":"Agranular insular area, ventral part, layer 6a"},{"id":676,"acronym":"DMHp","name":"Dorsomedial nucleus of the hypothalamus, posterior part"},{"id":677,"acronym":"VISC","name":"Visceral area"},{"id":678,"acronym":"AUDd4","name":"Dorsal auditory area, layer 4"},{"id":679,"acronym":"CS","name":"Superior central nucleus raphe"},{"id":680,"acronym":"ORBvl6b","name":"Orbital area, ventrolateral part, layer 6b"},{"id":681,"acronym":"mtg","name":"mammillotegmental tract"},{"id":682,"acronym":"NTSl","name":"Nucleus of the solitary tract, lateral part"},{"id":683,"acronym":"PTLp5","name":"Posterior parietal association areas, layer 5"},{"id":684,"acronym":"DMHv","name":"Dorsomedial nucleus of the hypothalamus, ventral part"},{"id":685,"acronym":"VM","name":"Ventral medial nucleus of the thalamus"},{"id":686,"acronym":"SSp6a","name":"Primary somatosensory area, layer 6a"},{"id":687,"acronym":"RSPv5","name":"Retrosplenial area, ventral part, layer 5"},{"id":688,"acronym":"CTX","name":"Cerebral cortex"},{"id":689,"acronym":"VLPO","name":"Ventrolateral preoptic nucleus"},{"id":690,"acronym":"mtt","name":"mammillothalamic tract"},{"id":691,"acronym":"NTSm","name":"Nucleus of the solitary tract, medial part"},{"id":692,"acronym":"PERI5","name":"Perirhinal area, layer 5"},{"id":693,"acronym":"VMH","name":"Ventromedial hypothalamic nucleus"},{"id":694,"acronym":"AIv2/3","name":"Agranular insular area, ventral part, layer 2/3"},{"id":695,"acronym":"CTXpl","name":"Cortical plate"},{"id":696,"acronym":"AUDpo1","name":"Posterior auditory area, layer 1"},{"id":697,"acronym":"ml","name":"medial lemniscus"},{"id":698,"acronym":"OLF","name":"Olfactory areas"},{"id":699,"acronym":"AIv6b","name":"Agranular insular area, ventral part, layer 6b"},{"id":700,"acronym":"AHNa","name":"Anterior hypothalamic nucleus, anterior part"},{"id":701,"acronym":"VNC","name":"Vestibular nuclei"},{"id":702,"acronym":"SSp-n5","name":"Primary somatosensory area, nose, layer 5"},{"id":703,"acronym":"CTXsp","name":"Cortical subplate"},{"id":704,"acronym":"AIv1","name":"Agranular insular area, ventral part, layer 1"},{"id":705,"acronym":"mtV","name":"midbrain tract of the trigeminal nerve"},{"id":706,"acronym":"OP","name":"Olivary pretectal nucleus"},{"id":707,"acronym":"ILA1","name":"Infralimbic area, layer 1"},{"id":708,"acronym":"AHNc","name":"Anterior hypothalamic nucleus, central part"},{"id":709,"acronym":"VP","name":"Ventral posterior complex of the thalamus"},{"id":710,"acronym":"VIn","name":"abducens nerve"},{"id":711,"acronym":"CU","name":"Cuneate nucleus"},{"id":712,"acronym":"ENTm4","name":"Entorhinal area, medial part, dorsal zone, layer 4"},{"id":713,"acronym":"per","name":"perforant path"},{"id":714,"acronym":"ORB","name":"Orbital area"},{"id":715,"acronym":"ENTl2a","name":"Entorhinal area, lateral part, layer 2a"},{"id":716,"acronym":"AHNd","name":"Anterior hypothalamic nucleus, dorsal part"},{"id":717,"acronym":"XIn","name":"accessory spinal nerve"},{"id":718,"acronym":"VPL","name":"Ventral posterolateral nucleus of the thalamus"},{"id":719,"acronym":"SSp6b","name":"Primary somatosensory area, layer 6b"},{"id":720,"acronym":"DCN","name":"Dorsal column nuclei"},{"id":721,"acronym":"VISp4","name":"Primary visual area, layer 4"},{"id":722,"acronym":"pvbt","name":"periventricular bundle of the thalamus"},{"id":723,"acronym":"ORBl","name":"Orbital area, lateral part"},{"id":724,"acronym":"AHNp","name":"Anterior hypothalamic nucleus, posterior part"},{"id":725,"acronym":"VPLpc","name":"Ventral posterolateral nucleus of the thalamus, parvicellular part"},{"id":726,"acronym":"DG","name":"Dentate gyrus"},{"id":727,"acronym":"ENTm5","name":"Entorhinal area, medial part, dorsal zone, layer 5"},{"id":728,"acronym":"arb","name":"arbor vitae"},{"id":729,"acronym":"TEa6a","name":"Temporal association areas, layer 6a"},{"id":730,"acronym":"PIS","name":"pineal stalk"},{"id":731,"acronym":"ORBm","name":"Orbital area, medial part"},{"id":732,"acronym":"MMme","name":"Medial mammillary nucleus, median part"},{"id":733,"acronym":"VPM","name":"Ventral posteromedial nucleus of the thalamus"},{"id":734,"acronym":"DGcr","name":"Dentate gyrus crest"},{"id":735,"acronym":"AUDp1","name":"Primary auditory area, layer 1"},{"id":736,"acronym":"ctb","name":"central tegmental bundle"},{"id":737,"acronym":"fxpo","name":"postcommissural fornix"},{"id":738,"acronym":"ORBv","name":"Orbital area, ventral part"},{"id":739,"acronym":"ACA5","name":"Anterior cingulate area, layer 5"},{"id":740,"acronym":"MPNc","name":"Medial preoptic nucleus, central part"},{"id":741,"acronym":"VPMpc","name":"Ventral posteromedial nucleus of the thalamus, parvicellular part"},{"id":742,"acronym":"DGcr-mo","name":"Dentate gyrus crest, molecular layer"},{"id":743,"acronym":"ENTm6","name":"Entorhinal area, medial part, dorsal zone, layer 6"},{"id":744,"acronym":"cbc","name":"cerebellar commissure"},{"id":745,"acronym":"fxprg","name":"precommissural fornix, general"},{"id":746,"acronym":"ORBvl","name":"Orbital area, ventrolateral part"},{"id":747,"acronym":"ILA2","name":"Infralimbic area, layer 2"},{"id":748,"acronym":"MPNl","name":"Medial preoptic nucleus, lateral part"},{"id":749,"acronym":"VTA","name":"Ventral tegmental area"},{"id":750,"acronym":"VISpl1","name":"Posterolateral visual area, layer 1"},{"id":751,"acronym":"DGcr-po","name":"Dentate gyrus crest, polymorph layer"},{"id":752,"acronym":"cbp","name":"cerebellar peduncles"},{"id":753,"acronym":"pm","name":"principal mammillary tract"},{"id":754,"acronym":"OT","name":"Olfactory tubercle"},{"id":755,"acronym":"AUDv2/3","name":"Ventral auditory area, layer 2/3"},{"id":756,"acronym":"MPNm","name":"Medial preoptic nucleus, medial part"},{"id":757,"acronym":"VTN","name":"Ventral tegmental nucleus"},{"id":758,"acronym":"DGcr-sg","name":"Dentate gyrus crest, granule cell layer"},{"id":759,"acronym":"AUDpo4","name":"Posterior auditory area, layer 4"},{"id":760,"acronym":"epsc","name":"cerebral nuclei related"},{"id":761,"acronym":"VMHa","name":"Ventromedial hypothalamic nucleus, anterior part"},{"id":762,"acronym":"phpd","name":"propriohypothalamic pathways, dorsal"},{"id":763,"acronym":"OV","name":"Vascular organ of the lamina terminalis"},{"id":764,"acronym":"ENTl2b","name":"Entorhinal area, lateral part, layer 2b"},{"id":765,"acronym":"x","name":"Nucleus x"},{"id":766,"acronym":"DGlb","name":"Dentate gyrus lateral blade"},{"id":767,"acronym":"MOs5","name":"Secondary motor area, layer 5"},{"id":768,"acronym":"mfbc","name":"cerebrum related"},{"id":769,"acronym":"VMHc","name":"Ventromedial hypothalamic nucleus, central part"},{"id":770,"acronym":"phpl","name":"propriohypothalamic pathways, lateral"},{"id":771,"acronym":"P","name":"Pons"},{"id":772,"acronym":"ACAv5","name":"Anterior cingulate area, ventral part, layer 5"},{"id":773,"acronym":"XII","name":"Hypoglossal nucleus"},{"id":774,"acronym":"RSPagl5","name":"Retrosplenial area, lateral agranular part, layer 5"},{"id":775,"acronym":"DGlb-mo","name":"Dentate gyrus lateral blade, molecular layer"},{"id":776,"acronym":"cc","name":"corpus callosum"},{"id":777,"acronym":"VMHdm","name":"Ventromedial hypothalamic nucleus, dorsomedial part"},{"id":778,"acronym":"VISp5","name":"Primary visual area, layer 5"},{"id":779,"acronym":"phpm","name":"propriohypothalamic pathways, medial"},{"id":780,"acronym":"PA","name":"Posterior amygdalar nucleus"},{"id":781,"acronym":"y","name":"Nucleus y"},{"id":782,"acronym":"DGlb-po","name":"Dentate gyrus lateral blade, polymorph layer"},{"id":783,"acronym":"AId6a","name":"Agranular insular area, dorsal part, layer 6a"},{"id":784,"acronym":"cst","name":"corticospinal tract"},{"id":785,"acronym":"VMHvl","name":"Ventromedial hypothalamic nucleus, ventrolateral part"},{"id":786,"acronym":"TEa6b","name":"Temporal association areas, layer 6b"},{"id":787,"acronym":"phpv","name":"propriohypothalamic pathways, ventral"},{"id":788,"acronym":"PAA","name":"Piriform-amygdalar area"},{"id":789,"acronym":"z","name":"Nucleus z"},{"id":790,"acronym":"DGlb-sg","name":"Dentate gyrus lateral blade, granule cell layer"},{"id":791,"acronym":"AUDpo5","name":"Posterior auditory area, layer 5"},{"id":792,"acronym":"drt","name":"dorsal roots"},{"id":793,"acronym":"SSp1","name":"Primary somatosensory area, layer 1"},{"id":794,"acronym":"sptV","name":"spinal tract of the trigeminal nerve"},{"id":795,"acronym":"PAG","name":"Periaqueductal gray"},{"id":796,"acronym":"A13","name":"Dopaminergic A13 group"},{"id":797,"acronym":"ZI","name":"Zona incerta"},{"id":798,"acronym":"VIIn","name":"facial nerve"},{"id":799,"acronym":"DGmb","name":"Dentate gyrus medial blade"},{"id":800,"acronym":"AIv5","name":"Agranular insular area, ventral part, layer 5"},{"id":801,"acronym":"VIS1","name":"Visual areas, layer 1"},{"id":802,"acronym":"sm","name":"stria medullaris"},{"id":803,"acronym":"PAL","name":"Pallidum"},{"id":804,"acronym":"FF","name":"Fields of Forel"},{"id":805,"acronym":"VISpm1","name":"posteromedial visual area, layer 1"},{"id":806,"acronym":"SSs2/3","name":"Supplemental somatosensory area, layer 2/3"},{"id":807,"acronym":"DGmb-mo","name":"Dentate gyrus medial blade, molecular layer"},{"id":808,"acronym":"IXn","name":"glossopharyngeal nerve"},{"id":809,"acronym":"PALc","name":"Pallidum, caudal region"},{"id":810,"acronym":"ACAv6a","name":"Anterior cingulate area, ventral part, 6a"},{"id":811,"acronym":"ICc","name":"Inferior colliculus, central nucleus"},{"id":812,"acronym":"dscp","name":"superior cerebellar peduncle decussation"},{"id":813,"acronym":"XIIn","name":"hypoglossal nerve"},{"id":814,"acronym":"DP","name":"Dorsal peduncular area"},{"id":815,"acronym":"DGmb-po","name":"Dentate gyrus medial blade, polymorph layer"},{"id":816,"acronym":"AUDp4","name":"Primary auditory area, layer 4"},{"id":817,"acronym":"supa","name":"supraoptic commissures, anterior"},{"id":818,"acronym":"PALd","name":"Pallidum, dorsal region"},{"id":819,"acronym":"ACAv6b","name":"Anterior cingulate area, ventral part, 6b"},{"id":820,"acronym":"ICd","name":"Inferior colliculus, dorsal nucleus"},{"id":821,"acronym":"VISp2/3","name":"Primary visual area, layer 2/3"},{"id":822,"acronym":"RHP","name":"Retrohippocampal region"},{"id":823,"acronym":"DGmb-sg","name":"Dentate gyrus medial blade, granule cell layer"},{"id":824,"acronym":"mfsbshy","name":"hypothalamus related"},{"id":825,"acronym":"supd","name":"supraoptic commissures, dorsal"},{"id":826,"acronym":"PALm","name":"Pallidum, medial region"},{"id":827,"acronym":"ILA5","name":"Infralimbic area, layer 5"},{"id":828,"acronym":"ICe","name":"Inferior colliculus, external nucleus"},{"id":829,"acronym":"SUBd-m","name":"Subiculum, dorsal part, molecular layer"},{"id":830,"acronym":"DMH","name":"Dorsomedial nucleus of the hypothalamus"},{"id":831,"acronym":"AId6b","name":"Agranular insular area, dorsal part, layer 6b"},{"id":832,"acronym":"IIIn","name":"oculomotor nerve"},{"id":833,"acronym":"supv","name":"supraoptic commissures, ventral"},{"id":834,"acronym":"SCzo","name":"Superior colliculus, zonal layer"},{"id":835,"acronym":"PALv","name":"Pallidum, ventral region"},{"id":836,"acronym":"ECT1","name":"Ectorhinal area/Layer 1"},{"id":837,"acronym":"SUBd-sr","name":"Subiculum, dorsal part, stratum radiatum"},{"id":838,"acronym":"SSp-n2/3","name":"Primary somatosensory area, nose, layer 2/3"},{"id":839,"acronym":"DMX","name":"Dorsal motor nucleus of the vagus nerve"},{"id":840,"acronym":"In","name":"olfactory nerve"},{"id":841,"acronym":"tb","name":"trapezoid body"},{"id":842,"acronym":"SCsg","name":"Superior colliculus, superficial gray layer"},{"id":843,"acronym":"PAR","name":"Parasubiculum"},{"id":844,"acronym":"MOp6a","name":"Primary motor area, Layer 6a"},{"id":845,"acronym":"SUBd-sp","name":"Subiculum, dorsal part, pyramidal layer"},{"id":846,"acronym":"DN","name":"Dentate nucleus"},{"id":847,"acronym":"AUDp5","name":"Primary auditory area, layer 5"},{"id":848,"acronym":"IIn","name":"optic nerve"},{"id":849,"acronym":"VISC6b","name":"Visceral area, layer 6b"},{"id":850,"acronym":"uf","name":"uncinate fascicle"},{"id":851,"acronym":"SCop","name":"Superior colliculus, optic layer"},{"id":852,"acronym":"PARN","name":"Parvicellular reticular nucleus"},{"id":853,"acronym":"SUBv-m","name":"Subiculum, ventral part, molecular layer"},{"id":854,"acronym":"SSp-ul2/3","name":"Primary somatosensory area, upper limb, layer 2/3"},{"id":855,"acronym":"rst","name":"retriculospinal tract"},{"id":856,"acronym":"DORpm","name":"Thalamus, polymodal association cortex related"},{"id":857,"acronym":"VISC6a","name":"Visceral area, layer 6a"},{"id":858,"acronym":"vc","name":"ventral commissure of the spinal cord"},{"id":859,"acronym":"PAS","name":"Parasolitary nucleus"},{"id":860,"acronym":"PBlc","name":"Parabrachial nucleus, lateral division, central lateral part"},{"id":861,"acronym":"SUBv-sr","name":"Subiculum, ventral part, stratum radiatum"},{"id":862,"acronym":"SSs6a","name":"Supplemental somatosensory area, layer 6a"},{"id":863,"acronym":"rust","name":"rubrospinal tract"},{"id":864,"acronym":"DORsm","name":"Thalamus, sensory-motor cortex related"},{"id":865,"acronym":"SSp4","name":"Primary somatosensory area, layer 4"},{"id":866,"acronym":"sctv","name":"ventral spinocerebellar tract"},{"id":867,"acronym":"PB","name":"Parabrachial nucleus"},{"id":868,"acronym":"PBld","name":"Parabrachial nucleus, lateral division, dorsal lateral part"},{"id":869,"acronym":"VISpl4","name":"Posterolateral visual area, layer 4"},{"id":870,"acronym":"SUBv-sp","name":"Subiculum, ventral part, pyramidal layer"},{"id":871,"acronym":"sst","name":"spinothalamic tract"},{"id":872,"acronym":"DR","name":"Dorsal nucleus raphe"},{"id":873,"acronym":"SSs1","name":"Supplemental somatosensory area, layer 1"},{"id":874,"acronym":"PBG","name":"Parabigeminal nucleus"},{"id":875,"acronym":"PBle","name":"Parabrachial nucleus, lateral division, external lateral part"},{"id":876,"acronym":"aot","name":"accessory optic tract"},{"id":877,"acronym":"tsp","name":"tectospinal pathway"},{"id":878,"acronym":"SSp-m1","name":"Primary somatosensory area, mouth, layer 1"},{"id":879,"acronym":"RSPd","name":"Retrosplenial area, dorsal part"},{"id":880,"acronym":"DTN","name":"Dorsal tegmental nucleus"},{"id":881,"acronym":"PBl","name":"Parabrachial nucleus, lateral division"},{"id":882,"acronym":"MOp6b","name":"Primary motor area, Layer 6b"},{"id":883,"acronym":"PBls","name":"Parabrachial nucleus, lateral division, superior lateral part"},{"id":884,"acronym":"amc","name":"amygdalar capsule"},{"id":885,"acronym":"tn","name":"terminal nerve"},{"id":886,"acronym":"RSPv","name":"Retrosplenial area, ventral part"},{"id":887,"acronym":"ECO","name":"Efferent cochlear group"},{"id":888,"acronym":"PERI2/3","name":"Perirhinal area, layer 2/3"},{"id":889,"acronym":"SSp-n6a","name":"Primary somatosensory area, nose, layer 6a"},{"id":890,"acronym":"PBm","name":"Parabrachial nucleus, medial division"},{"id":891,"acronym":"PBlv","name":"Parabrachial nucleus, lateral division, ventral lateral part"},{"id":892,"acronym":"apd","name":"ansa peduncularis"},{"id":893,"acronym":"SSs6b","name":"Supplemental somatosensory area, layer 6b"},{"id":894,"acronym":"RSPagl","name":"Retrosplenial area, lateral agranular part"},{"id":895,"acronym":"ECT","name":"Ectorhinal area"},{"id":896,"acronym":"lfbst","name":"thalamus related"},{"id":897,"acronym":"VISC1","name":"Visceral area, layer 1"},{"id":898,"acronym":"PCG","name":"Pontine central gray"},{"id":899,"acronym":"PBme","name":"Parabrachial nucleus, medial division, external medial part"},{"id":900,"acronym":"aco","name":"anterior commissure, olfactory limb"},{"id":901,"acronym":"Vn","name":"trigeminal nerve"},{"id":902,"acronym":"VISpl5","name":"Posterolateral visual area, layer 5"},{"id":903,"acronym":"ECU","name":"External cuneate nucleus"},{"id":904,"acronym":"MSC","name":"Medial septal complex"},{"id":905,"acronym":"VISal2/3","name":"Anterolateral visual area, layer 2/3"},{"id":906,"acronym":"RSPagl6a","name":"Retrosplenial area, lateral agranular part, layer 6a"},{"id":907,"acronym":"PCN","name":"Paracentral nucleus"},{"id":908,"acronym":"act","name":"anterior commissure, temporal limb"},{"id":909,"acronym":"ENT","name":"Entorhinal area"},{"id":910,"acronym":"ORBm6a","name":"Orbital area, medial part, layer 6a"},{"id":911,"acronym":"IVn","name":"trochlear nerve"},{"id":912,"acronym":"LING","name":"Lingula (I)"},{"id":913,"acronym":"VIS4","name":"Visual areas, layer 4"},{"id":914,"acronym":"PD","name":"Posterodorsal preoptic nucleus"},{"id":915,"acronym":"PBmm","name":"Parabrachial nucleus, medial division, medial medial part"},{"id":916,"acronym":"bsc","name":"brachium of the superior colliculus"},{"id":917,"acronym":"Xn","name":"vagus nerve"},{"id":918,"acronym":"ENTl","name":"Entorhinal area, lateral part"},{"id":919,"acronym":"ACAd6a","name":"Anterior cingulate area, dorsal part, layer 6a"},{"id":920,"acronym":"CENT","name":"Central lobule"},{"id":921,"acronym":"SSp5","name":"Primary somatosensory area, layer 5"},{"id":922,"acronym":"PERI","name":"Perirhinal area"},{"id":923,"acronym":"PBmv","name":"Parabrachial nucleus, medial division, ventral medial part"},{"id":924,"acronym":"cpd","name":"cerebal peduncle"},{"id":925,"acronym":"vrt","name":"ventral roots"},{"id":926,"acronym":"ENTm","name":"Entorhinal area, medial part, dorsal zone"},{"id":927,"acronym":"ACAd6b","name":"Anterior cingulate area, dorsal part, layer 6b"},{"id":928,"acronym":"CUL","name":"Culmen"},{"id":929,"acronym":"SSp-n6b","name":"Primary somatosensory area, nose, layer 6b"},{"id":930,"acronym":"PF","name":"Parafascicular nucleus"},{"id":931,"acronym":"PG","name":"Pontine gray"},{"id":932,"acronym":"cett","name":"cervicothalamic tract"},{"id":933,"acronym":"VIIIn","name":"vestibulocochlear nerve"},{"id":934,"acronym":"ENTmv","name":"Entorhinal area, medial part, ventral zone"},{"id":935,"acronym":"ACAd1","name":"Anterior cingulate area, dorsal part, layer 1"},{"id":936,"acronym":"DEC","name":"Declive (VI)"},{"id":937,"acronym":"VIS5","name":"Visual areas, layer 5"},{"id":938,"acronym":"PGRN","name":"Paragigantocellular reticular nucleus"},{"id":939,"acronym":"AMBd","name":"Nucleus ambiguus, dorsal division"},{"id":940,"acronym":"cing","name":"cingulum bundle"},{"id":941,"acronym":"vsp","name":"vestibulospinal pathway"},{"id":942,"acronym":"EP","name":"Endopiriform nucleus"},{"id":943,"acronym":"MOp2/3","name":"Primary motor area, Layer 2/3"},{"id":944,"acronym":"FOTU","name":"Folium-tuber vermis (VII)"},{"id":945,"acronym":"SSp-ul6a","name":"Primary somatosensory area, upper limb, layer 6a"},{"id":946,"acronym":"PH","name":"Posterior hypothalamic nucleus"},{"id":947,"acronym":"MO6b","name":"Somatomotor areas, Layer 6b"},{"id":948,"acronym":"cVIIIn","name":"cochlear nerve"},{"id":949,"acronym":"von","name":"vomeronasal nerve"},{"id":950,"acronym":"SSp-m4","name":"Primary somatosensory area, mouth, layer 4"},{"id":951,"acronym":"PYR","name":"Pyramus (VIII)"},{"id":952,"acronym":"EPd","name":"Endopiriform nucleus, dorsal part"},{"id":953,"acronym":"PIN","name":"Pineal body"},{"id":954,"acronym":"AUDp6a","name":"Primary auditory area, layer 6a"},{"id":955,"acronym":"LRNm","name":"Lateral reticular nucleus, magnocellular part"},{"id":956,"acronym":"fa","name":"corpus callosum, anterior forceps"},{"id":957,"acronym":"UVU","name":"Uvula (IX)"},{"id":958,"acronym":"EPI","name":"Epithalamus"},{"id":959,"acronym":"AUDv1","name":"Ventral auditory area, layer 1"},{"id":960,"acronym":"cbf","name":"cerebellum related fiber tracts"},{"id":961,"acronym":"PIR","name":"Piriform area"},{"id":962,"acronym":"MOs2/3","name":"Secondary motor area, layer 2/3"},{"id":963,"acronym":"LRNp","name":"Lateral reticular nucleus, parvicellular part"},{"id":964,"acronym":"ee","name":"corpus callosum, extreme capsule"},{"id":965,"acronym":"RSPagl2/3","name":"Retrosplenial area, lateral agranular part, layer 2/3"},{"id":966,"acronym":"EPv","name":"Endopiriform nucleus, ventral part"},{"id":967,"acronym":"cm","name":"cranial nerves"},{"id":968,"acronym":"NOD","name":"Nodulus (X)"},{"id":969,"acronym":"ORBvl1","name":"Orbital area, ventrolateral part, layer 1"},{"id":970,"acronym":"PGRNd","name":"Paragigantocellular reticular nucleus, dorsal part"},{"id":971,"acronym":"fp","name":"corpus callosum, posterior forceps"},{"id":972,"acronym":"PL","name":"Prelimbic area"},{"id":973,"acronym":"VISl2/3","name":"Lateral visual area, layer 2/3"},{"id":974,"acronym":"SSp-m5","name":"Primary somatosensory area, mouth, layer 5"},{"id":975,"acronym":"EW","name":"Edinger-Westphal nucleus"},{"id":976,"acronym":"CENT2","name":"Lobule II"},{"id":977,"acronym":"ECT6a","name":"Ectorhinal area/Layer 6a"},{"id":978,"acronym":"PGRNl","name":"Paragigantocellular reticular nucleus, lateral part"},{"id":979,"acronym":"ccr","name":"corpus callosum, rostrum"},{"id":980,"acronym":"PMd","name":"Dorsal premammillary nucleus"},{"id":981,"acronym":"SSp-bfd1","name":"Primary somatosensory area, barrel field, layer 1"},{"id":982,"acronym":"FC","name":"Fasciola cinerea"},{"id":983,"acronym":"lfbs","name":"lateral forebrain bundle system"},{"id":984,"acronym":"CENT3","name":"Lobule III"},{"id":985,"acronym":"MOp","name":"Primary motor area"},{"id":986,"acronym":"ccs","name":"corpus callosum, splenium"},{"id":987,"acronym":"P-mot","name":"Pons, motor related"},{"id":988,"acronym":"ECT5","name":"Ectorhinal area/Layer 5"},{"id":989,"acronym":"FN","name":"Fastigial nucleus"},{"id":990,"acronym":"AUDv4","name":"Ventral auditory area, layer 4"},{"id":991,"acronym":"mfbs","name":"medial forebrain bundle system"},{"id":992,"acronym":"CUL4","name":"Lobule IV"},{"id":993,"acronym":"MOs","name":"Secondary motor area"},{"id":994,"acronym":"cbt","name":"corticobulbar tract"},{"id":995,"acronym":"PMR","name":"Paramedian reticular nucleus"},{"id":996,"acronym":"AId1","name":"Agranular insular area, dorsal part, layer 1"},{"id":997,"acronym":"root","name":"root"},{"id":998,"acronym":"FS","name":"Fundus of striatum"},{"id":999,"acronym":"ENTl2/3","name":"Entorhinal area, lateral part, layer 2/3"},{"id":1000,"acronym":"eps","name":"extrapyramidal fiber systems"},{"id":1001,"acronym":"CUL5","name":"Lobule V"},{"id":1002,"acronym":"AUDp","name":"Primary auditory area"},{"id":1003,"acronym":"cpt","name":"corticopontine tract"},{"id":1004,"acronym":"PMv","name":"Ventral premammillary nucleus"},{"id":1005,"acronym":"AUDp6b","name":"Primary auditory area, layer 6b"},{"id":1006,"acronym":"SSp-tr1","name":"Primary somatosensory area, trunk, layer 1"},{"id":1007,"acronym":"SIM","name":"Simple lobule"},{"id":1008,"acronym":"GENd","name":"Geniculate group, dorsal thalamus"},{"id":1009,"acronym":"fiber tracts","name":"fiber tracts"},{"id":1010,"acronym":"VISC4","name":"Visceral area, layer 4"},{"id":1011,"acronym":"AUDd","name":"Dorsal auditory area"},{"id":1012,"acronym":"crt","name":"corticorubral tract"},{"id":1014,"acronym":"GENv","name":"Geniculate group, ventral thalamus"},{"id":1015,"acronym":"ACAd5","name":"Anterior cingulate area, dorsal part, layer 5"},{"id":1016,"acronym":"onl","name":"olfactory nerve layer of main olfactory bulb"},{"id":1017,"acronym":"AN","name":"Ansiform lobule"},{"id":1018,"acronym":"AUDv","name":"Ventral auditory area"},{"id":1019,"acronym":"cstc","name":"corticospinal tract, crossed"},{"id":1020,"acronym":"PO","name":"Posterior complex of the thalamus"},{"id":1021,"acronym":"MOs6a","name":"Secondary motor area, layer 6a"},{"id":1022,"acronym":"GPe","name":"Globus pallidus, external segment"},{"id":1023,"acronym":"AUDv5","name":"Ventral auditory area, layer 5"},{"id":1024,"acronym":"grv","name":"grooves"},{"id":1025,"acronym":"PRM","name":"Paramedian lobule"},{"id":1026,"acronym":"SSp-ul6b","name":"Primary somatosensory area, upper limb, layer 6b"},{"id":1027,"acronym":"AUDpo","name":"Posterior auditory area"},{"id":1028,"acronym":"cstu","name":"corticospinal tract, uncrossed"},{"id":1029,"acronym":"POL","name":"Posterior limiting nucleus of the thalamus"},{"id":1030,"acronym":"SSp-ll1","name":"Primary somatosensory area, lower limb, layer 1"},{"id":1031,"acronym":"GPi","name":"Globus pallidus, internal segment"},{"id":1032,"acronym":"grv of CTX","name":"grooves of the cerebral cortex"},{"id":1033,"acronym":"COPY","name":"Copula pyramidis"},{"id":1034,"acronym":"TTd1","name":"Taenia tecta, dorsal part, layer 1"},{"id":1035,"acronym":"SSs4","name":"Supplemental somatosensory area, layer 4"},{"id":1036,"acronym":"cte","name":"corticotectal tract"},{"id":1037,"acronym":"POST","name":"Postsubiculum"},{"id":1038,"acronym":"SSp-bfd6a","name":"Primary somatosensory area, barrel field, layer 6a"},{"id":1039,"acronym":"GR","name":"Gracile nucleus"},{"id":1040,"acronym":"grv of CBX","name":"grooves of the cerebellar cortex"},{"id":1041,"acronym":"PFL","name":"Paraflocculus"},{"id":1042,"acronym":"TTd2","name":"Taenia tecta, dorsal part, layer 2"},{"id":1043,"acronym":"tspc","name":"crossed tectospinal pathway"},{"id":1044,"acronym":"PP","name":"Peripeduncular nucleus"},{"id":1045,"acronym":"ECT6b","name":"Ectorhinal area/Layer 6b"},{"id":1046,"acronym":"VISam6a","name":"Anteromedial visual area, layer 6a"},{"id":1047,"acronym":"SSp-bfd4","name":"Primary somatosensory area, barrel field, layer 4"},{"id":1048,"acronym":"GRN","name":"Gigantocellular reticular nucleus"},{"id":1049,"acronym":"FL","name":"Flocculus"},{"id":1050,"acronym":"TTd3","name":"Taenia tecta, dorsal part, layer 3"},{"id":1051,"acronym":"tspd","name":"direct tectospinal pathway"},{"id":1052,"acronym":"PPN","name":"Pedunculopontine nucleus"},{"id":1053,"acronym":"ACA2/3","name":"Anterior cingulate area, layer 2/3"},{"id":1054,"acronym":"ILA6a","name":"Infralimbic area, layer 6a"},{"id":1055,"acronym":"eg","name":"endorhinal groove"},{"id":1056,"acronym":"ANcr1","name":"Crus 1"},{"id":1057,"acronym":"GU","name":"Gustatory areas"},{"id":1058,"acronym":"VISC5","name":"Visceral area, layer 5"},{"id":1059,"acronym":"TTd4","name":"Taenia tecta, dorsal part, layer 4"},{"id":1060,"acronym":"dtd","name":"doral tegmental decussation"},{"id":1061,"acronym":"PPT","name":"Posterior pretectal nucleus"},{"id":1062,"acronym":"SSp-bfd6b","name":"Primary somatosensory area, barrel field, layer 6b"},{"id":1063,"acronym":"hf","name":"hippocampal fissure"},{"id":1064,"acronym":"ANcr2","name":"Crus 2"},{"id":1065,"acronym":"HB","name":"Hindbrain"},{"id":1066,"acronym":"VISam2/3","name":"Anteromedial visual area, layer 2/3"},{"id":1067,"acronym":"TTv1","name":"Taenia tecta, ventral part, layer 1"},{"id":1068,"acronym":"mfbst","name":"dorsal thalamus related"},{"id":1069,"acronym":"PPY","name":"Parapyramidal nucleus"},{"id":1070,"acronym":"SSp-bfd5","name":"Primary somatosensory area, barrel field, layer 5"},{"id":1071,"acronym":"rf","name":"rhinal fissure"},{"id":1072,"acronym":"MGd","name":"Medial geniculate complex, dorsal part"},{"id":1073,"acronym":"HEM","name":"Hemispheric regions"},{"id":1074,"acronym":"VISal1","name":"Anterolateral visual area, layer 1"},{"id":1075,"acronym":"TTv2","name":"Taenia tecta, ventral part, layer 2"},{"id":1076,"acronym":"cvb","name":"efferent cochleovestibular bundle"},{"id":1077,"acronym":"PR","name":"Perireunensis nucleus"},{"id":1078,"acronym":"ri","name":"rhinal incisure"},{"id":1079,"acronym":"MGv","name":"Medial geniculate complex, ventral part"},{"id":1080,"acronym":"HIP","name":"Hippocampal region"},{"id":1081,"acronym":"ILA6b","name":"Infralimbic area, layer 6b"},{"id":1082,"acronym":"TTv3","name":"Taenia tecta, ventral part, layer 3"},{"id":1083,"acronym":"mfbse","name":"epithalamus related"},{"id":1084,"acronym":"PRE","name":"Presubiculum"},{"id":1085,"acronym":"MOs6b","name":"Secondary motor area, layer 6b"},{"id":1086,"acronym":"SSp-tr4","name":"Primary somatosensory area, trunk, layer 4"},{"id":1087,"acronym":"pce","name":"precentral fissure"},{"id":1088,"acronym":"MGm","name":"Medial geniculate complex, medial part"},{"id":1089,"acronym":"HPF","name":"Hippocampal formation"},{"id":1090,"acronym":"SSs5","name":"Supplemental somatosensory area, layer 5"},{"id":1091,"acronym":"CUL4, 5","name":"Lobules IV-V"},{"id":1092,"acronym":"em","name":"external medullary lamina of the thalamus"},{"id":1093,"acronym":"PRNc","name":"Pontine reticular nucleus, caudal part"},{"id":1094,"acronym":"SSp-ll4","name":"Primary somatosensory area, lower limb, layer 4"},{"id":1095,"acronym":"pcf","name":"preculminate fissure"},{"id":1096,"acronym":"AMd","name":"Anteromedial nucleus, dorsal part"},{"id":1097,"acronym":"HY","name":"Hypothalamus"},{"id":1098,"acronym":"MDRNd","name":"Medullary reticular nucleus, dorsal part"},{"id":1099,"acronym":"fxs","name":"fornix system"},{"id":1100,"acronym":"PRT","name":"Pretectal region"},{"id":1101,"acronym":"AId5","name":"Agranular insular area, dorsal part, layer 5"},{"id":1102,"acronym":"SSp-m6a","name":"Primary somatosensory area, mouth, layer 6a"},{"id":1103,"acronym":"pri","name":"primary fissure"},{"id":1104,"acronym":"AMv","name":"Anteromedial nucleus, ventral part"},{"id":1105,"acronym":"IA","name":"Intercalated amygdalar nucleus"},{"id":1106,"acronym":"VISC2/3","name":"Visceral area, layer 2/3"},{"id":1107,"acronym":"MDRNv","name":"Medullary reticular nucleus, ventral part"},{"id":1108,"acronym":"ccg","name":"genu of corpus callosum"},{"id":1109,"acronym":"PS","name":"Parastrial nucleus"},{"id":1110,"acronym":"SUMl","name":"Supramammillary nucleus, lateral part"},{"id":1111,"acronym":"SSp-tr5","name":"Primary somatosensory area, trunk, layer 5"},{"id":1112,"acronym":"psf","name":"posterior superior fissure"},{"id":1113,"acronym":"IAD","name":"Interanterodorsal nucleus of the thalamus"},{"id":1114,"acronym":"VISal4","name":"Anterolateral visual area, layer 4"},{"id":1116,"acronym":"gVIIn","name":"genu of the facial nerve"},{"id":1117,"acronym":"P-sat","name":"Pons, behavioral state related"},{"id":1118,"acronym":"SUMm","name":"Supramammillary nucleus, medial part"},{"id":1119,"acronym":"ppf","name":"prepyramidal fissure"},{"id":1120,"acronym":"IAM","name":"Interanteromedial nucleus of the thalamus"},{"id":1121,"acronym":"ENTl1","name":"Entorhinal area, lateral part, layer 1"},{"id":1123,"acronym":"icp","name":"inferior cerebellar peduncle"},{"id":1124,"acronym":"PSCH","name":"Suprachiasmatic preoptic nucleus"},{"id":1125,"acronym":"ORBvl5","name":"Orbital area, ventrolateral part, layer 5"},{"id":1126,"acronym":"TMd","name":"Tuberomammillary nucleus, dorsal part"},{"id":1127,"acronym":"TEa2/3","name":"Temporal association areas, layer 2/3"},{"id":1128,"acronym":"SSp-ll5","name":"Primary somatosensory area, lower limb, layer 5"},{"id":1129,"acronym":"IB","name":"Interbrain"},{"id":1131,"acronym":"iVIIn","name":"intermediate nerve"},{"id":1132,"acronym":"P-sen","name":"Pons, sensory related"},{"id":1133,"acronym":"ENTmv5/6","name":"Entorhinal area, medial part, ventral zone, layer 5/6"},{"id":1139,"acronym":"NLOT3","name":"Nucleus of the lateral olfactory tract, layer 3"},{"id":1140,"acronym":"TR1","name":"Postpiriform transition area, layers 1"},{"id":1141,"acronym":"TR2","name":"Postpiriform transition area, layers 2"},{"id":1142,"acronym":"TR3","name":"Postpiriform transition area, layers 3"},{"id":1143,"acronym":"CBXgr","name":"Cerebellar cortex, granular layer"},{"id":1144,"acronym":"CBXmo","name":"Cerebellar cortex, molecular layer"},{"id":1145,"acronym":"CBXpu","name":"Cerebellar cortex, Purkinje layer"},{"id":10671,"acronym":"ME","name":"Median eminence"},{"id":10672,"acronym":"SIMgr","name":"Simple lobule, granular layer"},{"id":10673,"acronym":"SIMpu","name":"Simple lobule, Purkinje layer"},{"id":10674,"acronym":"SIMmo","name":"Simple lobule, molecular layer"},{"id":10675,"acronym":"ANcr1gr","name":"Crus 1, granular layer"},{"id":10676,"acronym":"ANcr1pu","name":"Crus 1, Purkinje layer"},{"id":10677,"acronym":"ANcr1mo","name":"Crus 1, molecular layer"},{"id":10678,"acronym":"ANcr2gr","name":"Crus 2, granular layer"},{"id":10679,"acronym":"ANcr2pu","name":"Crus 2, Purkinje layer"},{"id":10680,"acronym":"ANcr2mo","name":"Crus 2, molecular layer"},{"id":10681,"acronym":"PRMgr","name":"Paramedian lobule, granular layer"},{"id":10682,"acronym":"PRMpu","name":"Paramedian lobule, Purkinje layer"},{"id":10683,"acronym":"PRMmo","name":"Paramedian lobule, molecular layer"},{"id":10684,"acronym":"COPYgr","name":"Copula pyramidis, granular layer"},{"id":10685,"acronym":"COPYpu","name":"Copula pyramidis, Purkinje layer"},{"id":10686,"acronym":"COPYmo","name":"Copula pyramidis, molecular layer"},{"id":10687,"acronym":"PFLgr","name":"Paraflocculus, granular layer"},{"id":10688,"acronym":"PFLpu","name":"Paraflocculus, Purkinje layer"},{"id":10689,"acronym":"PFLmo","name":"Paraflocculus, molecular layer"},{"id":10690,"acronym":"FLgr","name":"Flocculus, granular layer"},{"id":10691,"acronym":"FLpu","name":"Flocculus, Purkinje layer"},{"id":10692,"acronym":"FLmo","name":"Flocculus, molecular layer"},{"id":10693,"acronym":"PAR1","name":"Parasubiculum, layer 1"},{"id":10694,"acronym":"PAR2","name":"Parasubiculum, layer 2"},{"id":10695,"acronym":"PAR3","name":"Parasubiculum, layer 3"},{"id":10696,"acronym":"POST1","name":"Postsubiculum, layer 1"},{"id":10697,"acronym":"POST2","name":"Postsubiculum, layer 2"},{"id":10698,"acronym":"POST3","name":"Postsubiculum, layer 3"},{"id":10699,"acronym":"PRE1","name":"Presubiculum, layer 1"},{"id":10700,"acronym":"PRE2","name":"Presubiculum, layer 2"},{"id":10701,"acronym":"PRE3","name":"Presubiculum, layer 3"},{"id":10702,"acronym":"DG-sgz","name":"Dentate gyrus, subgranular zone"},{"id":10703,"acronym":"DG-mo","name":"Dentate gyrus, molecular layer"},{"id":10704,"acronym":"DG-po","name":"Dentate gyrus, polymorph layer"},{"id":10705,"acronym":"LINGgr","name":"Lingula (I), granular layer"},{"id":10706,"acronym":"LINGpu","name":"Lingula (I), Purkinje layer"},{"id":10707,"acronym":"LINGmo","name":"Lingula (I), molecular layer"},{"id":10708,"acronym":"CENT2gr","name":"Lobule II, granular layer"},{"id":10709,"acronym":"CENT2pu","name":"Lobule II, Purkinje layer"},{"id":10710,"acronym":"CENT2mo","name":"Lobule II, molecular layer"},{"id":10711,"acronym":"CENT3gr","name":"Lobule III, granular layer"},{"id":10712,"acronym":"CENT3pu","name":"Lobule III, Purkinje layer"},{"id":10713,"acronym":"CENT3mo","name":"Lobule III, molecular layer"},{"id":10714,"acronym":"CUL4gr","name":"Lobule IV, granular layer"},{"id":10715,"acronym":"CUL4pu","name":"Lobule IV, Purkinje layer"},{"id":10716,"acronym":"CUL4mo","name":"Lobule IV, molecular layer"},{"id":10717,"acronym":"CUL5gr","name":"Lobule V, granular layer"},{"id":10718,"acronym":"CUL5pu","name":"Lobule V, Purkinje layer"},{"id":10719,"acronym":"CUL5mo","name":"Lobule V, molecular layer"},{"id":10720,"acronym":"CUL4, 5gr","name":"Lobules IV-V, granular layer"},{"id":10721,"acronym":"CUL4, 5pu","name":"Lobules IV-V, Purkinje layer"},{"id":10722,"acronym":"CUL4, 5mo","name":"Lobules IV-V, molecular layer"},{"id":10723,"acronym":"DECgr","name":"Declive (VI), granular layer"},{"id":10724,"acronym":"DECpu","name":"Declive (VI), Purkinje layer"},{"id":10725,"acronym":"DECmo","name":"Declive (VI), molecular layer"},{"id":10726,"acronym":"FOTUgr","name":"Folium-tuber vermis (VII), granular layer"},{"id":10727,"acronym":"FOTUpu","name":"Folium-tuber vermis (VII), Purkinje layer"},{"id":10728,"acronym":"FOTUmo","name":"Folium-tuber vermis (VII), molecular layer"},{"id":10729,"acronym":"PYRgr","name":"Pyramus (VIII), granular layer"},{"id":10730,"acronym":"PYRpu","name":"Pyramus (VIII), Purkinje layer"},{"id":10731,"acronym":"PYRmo","name":"Pyramus (VIII), molecular layer"},{"id":10732,"acronym":"UVUgr","name":"Uvula (IX), granular layer"},{"id":10733,"acronym":"UVUpu","name":"Uvula (IX), Purkinje layer"},{"id":10734,"acronym":"UVUmo","name":"Uvula (IX), molecular layer"},{"id":10735,"acronym":"NODgr","name":"Nodulus (X), granular layer"},{"id":10736,"acronym":"NODpu","name":"Nodulus (X), Purkinje layer"},{"id":10737,"acronym":"NODmo","name":"Nodulus (X), molecular layer"},{"id":12993,"acronym":"SS1","name":"Somatosensory areas, layer 1"},{"id":12994,"acronym":"SS2/3","name":"Somatosensory areas, layer 2/3"},{"id":12995,"acronym":"SS4","name":"Somatosensory areas, layer 4"},{"id":12996,"acronym":"SS5","name":"Somatosensory areas, layer 5"},{"id":12997,"acronym":"SS6a","name":"Somatosensory areas, layer 6a"},{"id":12998,"acronym":"SS6b","name":"Somatosensory areas, layer 6b"},{"id":182305689,"acronym":"SSp-un","name":"Primary somatosensory area, unassigned"},{"id":182305693,"acronym":"SSp-un1","name":"Primary somatosensory area, unassigned, layer 1"},{"id":182305697,"acronym":"SSp-un2/3","name":"Primary somatosensory area, unassigned, layer 2/3"},{"id":182305701,"acronym":"SSp-un4","name":"Primary somatosensory area, unassigned, layer 4"},{"id":182305705,"acronym":"SSp-un5","name":"Primary somatosensory area, unassigned, layer 5"},{"id":182305709,"acronym":"SSp-un6a","name":"Primary somatosensory area, unassigned, layer 6a"},{"id":182305713,"acronym":"SSp-un6b","name":"Primary somatosensory area, unassigned, layer 6b"},{"id":304325711,"acronym":"retina","name":"retina"},{"id":312782546,"acronym":"VISa","name":"Anterior area"},{"id":312782550,"acronym":"VISa1","name":"Anterior area, layer 1"},{"id":312782554,"acronym":"VISa2/3","name":"Anterior area, layer 2/3"},{"id":312782558,"acronym":"VISa4","name":"Anterior area, layer 4"},{"id":312782562,"acronym":"VISa5","name":"Anterior area, layer 5"},{"id":312782566,"acronym":"VISa6a","name":"Anterior area, layer 6a"},{"id":312782570,"acronym":"VISa6b","name":"Anterior area, layer 6b"},{"id":312782574,"acronym":"VISli","name":"Laterointermediate area"},{"id":312782578,"acronym":"VISli1","name":"Laterointermediate area, layer 1"},{"id":312782582,"acronym":"VISli2/3","name":"Laterointermediate area, layer 2/3"},{"id":312782586,"acronym":"VISli4","name":"Laterointermediate area, layer 4"},{"id":312782590,"acronym":"VISli5","name":"Laterointermediate area, layer 5"},{"id":312782594,"acronym":"VISli6a","name":"Laterointermediate area, layer 6a"},{"id":312782598,"acronym":"VISli6b","name":"Laterointermediate area, layer 6b"},{"id":312782604,"acronym":"VISrl1","name":"Rostrolateral area, layer 1"},{"id":312782608,"acronym":"VISrl2/3","name":"Rostrolateral area, layer 2/3"},{"id":312782612,"acronym":"VISrl4","name":"Rostrolateral area, layer 4"},{"id":312782616,"acronym":"VISrl5","name":"Rostrolateral area, layer 5"},{"id":312782620,"acronym":"VISrl6a","name":"Rostrolateral area, layer 6a"},{"id":312782624,"acronym":"VISrl6b","name":"Rostrolateral area, layer 6b"},{"id":312782628,"acronym":"VISpor","name":"Postrhinal area"},{"id":312782632,"acronym":"VISpor1","name":"Postrhinal area, layer 1"},{"id":312782636,"acronym":"VISpor2/3","name":"Postrhinal area, layer 2/3"},{"id":312782640,"acronym":"VISpor4","name":"Postrhinal area, layer 4"},{"id":312782644,"acronym":"VISpor5","name":"Postrhinal area, layer 5"},{"id":312782648,"acronym":"VISpor6a","name":"Postrhinal area, layer 6a"},{"id":312782652,"acronym":"VISpor6b","name":"Postrhinal area, layer 6b"},{"id":480149202,"acronym":"VISrll","name":"Rostrolateral lateral visual area"},{"id":480149206,"acronym":"VISrll1","name":"Rostrolateral lateral visual area, layer 1"},{"id":480149210,"acronym":"VISrll2/3","name":"Rostrolateral lateral visual area, layer 2/3"},{"id":480149214,"acronym":"VISrll4","name":"Rostrolateral lateral visual area, layer 4"},{"id":480149218,"acronym":"VISrll5","name":"Rostrolateral lateral visual area,layer 5"},{"id":480149222,"acronym":"VISrll6a","name":"Rostrolateral lateral visual area, layer 6a"},{"id":480149226,"acronym":"VISrll6b","name":"Rostrolateral lateral visual area, layer 6b"},{"id":480149230,"acronym":"VISlla","name":"Laterolateral anterior visual area"},{"id":480149234,"acronym":"VISlla1","name":"Laterolateral anterior visual area, layer 1"},{"id":480149238,"acronym":"VISlla2/3","name":"Laterolateral anterior visual area, layer 2/3"},{"id":480149242,"acronym":"VISlla4","name":"Laterolateral anterior visual area, layer 4"},{"id":480149246,"acronym":"VISlla5","name":"Laterolateral anterior visual area,layer 5"},{"id":480149250,"acronym":"VISlla6a","name":"Laterolateral anterior visual area, layer 6a"},{"id":480149254,"acronym":"VISlla6b","name":"Laterolateral anterior visual area, layer 6b"},{"id":480149258,"acronym":"VISmma","name":"Mediomedial anterior visual area"},{"id":480149262,"acronym":"VISmma1","name":"Mediomedial anterior visual area, layer 1"},{"id":480149266,"acronym":"VISmma2/3","name":"Mediomedial anterior visual area, layer 2/3"},{"id":480149270,"acronym":"VISmma4","name":"Mediomedial anterior visual area, layer 4"},{"id":480149274,"acronym":"VISmma5","name":"Mediomedial anterior visual area,layer 5"},{"id":480149278,"acronym":"VISmma6a","name":"Mediomedial anterior visual area, layer 6a"},{"id":480149282,"acronym":"VISmma6b","name":"Mediomedial anterior visual area, layer 6b"},{"id":480149286,"acronym":"VISmmp","name":"Mediomedial posterior visual area"},{"id":480149290,"acronym":"VISmmp1","name":"Mediomedial posterior visual area, layer 1"},{"id":480149294,"acronym":"VISmmp2/3","name":"Mediomedial posterior visual area, layer 2/3"},{"id":480149298,"acronym":"VISmmp4","name":"Mediomedial posterior visual area, layer 4"},{"id":480149302,"acronym":"VISmmp5","name":"Mediomedial posterior visual area,layer 5"},{"id":480149306,"acronym":"VISmmp6a","name":"Mediomedial posterior visual area, layer 6a"},{"id":480149310,"acronym":"VISmmp6b","name":"Mediomedial posterior visual area, layer 6b"},{"id":480149314,"acronym":"VISm","name":"Medial visual area"},{"id":480149318,"acronym":"VISm1","name":"Medial visual area, layer 1"},{"id":480149322,"acronym":"VISm2/3","name":"Medial visual area, layer 2/3"},{"id":480149326,"acronym":"VISm4","name":"Medial visual area, layer 4"},{"id":480149330,"acronym":"VISm5","name":"Medial visual area,layer 5"},{"id":480149334,"acronym":"VISm6a","name":"Medial visual area, layer 6a"},{"id":480149338,"acronym":"VISm6b","name":"Medial visual area, layer 6b"},{"id":484682470,"acronym":"ProS","name":"Prosubiculum"},{"id":484682475,"acronym":"ProSd","name":"Prosubiculum, dorsal part"},{"id":484682479,"acronym":"ProSd-m","name":"Prosubiculum, dorsal part, molecular layer"},{"id":484682483,"acronym":"ProSd-sp","name":"Prosubiculum, dorsal part, pyramidal layer"},{"id":484682487,"acronym":"ProSd-sr","name":"Prosubiculum, dorsal part, stratum radiatum"},{"id":484682492,"acronym":"ProSv","name":"Prosubiculum, ventral part"},{"id":484682496,"acronym":"ProSv-m","name":"Prosubiculum, ventral part, molecular layer"},{"id":484682500,"acronym":"ProSv-sp","name":"Prosubiculum, ventral part, pyramidal layer"},{"id":484682504,"acronym":"Prosv-sr","name":"Prosubiculum, ventral part, stratum radiatum"},{"id":484682508,"acronym":"APr","name":"Area prostriata"},{"id":484682512,"acronym":"scwm","name":"supra-callosal cerebral white matter"},{"id":484682516,"acronym":"ccb","name":"corpus callosum, body"},{"id":484682520,"acronym":"or","name":"optic radiation"},{"id":484682524,"acronym":"ar","name":"auditory radiation"},{"id":484682528,"acronym":"stc","name":"commissural branch of stria terminalis"},{"id":496345664,"acronym":"LGd-sh","name":"Dorsal part of the lateral geniculate complex, shell"},{"id":496345668,"acronym":"LGd-co","name":"Dorsal part of the lateral geniculate complex, core"},{"id":496345672,"acronym":"LGd-ip","name":"Dorsal part of the lateral geniculate complex, ipsilateral zone"},{"id":526157192,"acronym":"FRP5","name":"Frontal pole, layer 5"},{"id":526157196,"acronym":"FRP6a","name":"Frontal pole, layer 6a"},{"id":526322264,"acronym":"FRP6b","name":"Frontal pole, layer 6b"},{"id":527696977,"acronym":"ORBm6b","name":"Orbital area, medial part, layer 6b"},{"id":549009199,"acronym":"LSS","name":"Lateral strip of striatum"},{"id":549009203,"acronym":"RPF","name":"Retroparafascicular nucleus"},{"id":549009207,"acronym":"InCo","name":"Intercollicular nucleus"},{"id":549009211,"acronym":"MA3","name":"Medial accesory oculomotor nucleus"},{"id":549009215,"acronym":"P5","name":"Peritrigeminal zone"},{"id":549009219,"acronym":"Acs5","name":"Accessory trigeminal nucleus"},{"id":549009223,"acronym":"PC5","name":"Parvicellular motor 5 nucleus"},{"id":549009227,"acronym":"I5","name":"Intertrigeminal nucleus"},{"id":560581551,"acronym":"Eth","name":"Ethmoid nucleus of the thalamus"},{"id":560581555,"acronym":"REth","name":"Retroethmoid nucleus"},{"id":560581559,"acronym":"Xi","name":"Xiphoid thalamic nucleus"},{"id":560581563,"acronym":"PIL","name":"Posterior intralaminar thalamic nucleus"},{"id":563807435,"acronym":"PoT","name":"Posterior triangular thalamic nucleus"},{"id":563807439,"acronym":"IntG","name":"Intermediate geniculate nucleus"},{"id":576073699,"acronym":"VMPO","name":"Ventromedial preoptic nucleus"},{"id":576073704,"acronym":"PeF","name":"Perifornical nucleus"},{"id":589508447,"acronym":"HATA","name":"Hippocampo-amygdalar transition area"},{"id":589508451,"acronym":"Pa5","name":"Paratrigeminal nucleus"},{"id":589508455,"acronym":"VeCB","name":"Vestibulocerebellar nucleus"},{"id":599626923,"acronym":"SCO","name":"Subcommissural organ"},{"id":599626927,"acronym":"PDTg","name":"Posterodorsal tegmental nucleus"},{"id":606826647,"acronym":"MMl","name":"Medial mammillary nucleus, lateral part"},{"id":606826651,"acronym":"MMm","name":"Medial mammillary nucleus, medial part"},{"id":606826655,"acronym":"MMp","name":"Medial mammillary nucleus, posterior part"},{"id":606826659,"acronym":"MMd","name":"Medial mammillary nucleus, dorsal part"},{"id":606826663,"acronym":"Pa4","name":"Paratrochlear nucleus"},{"id":607344830,"acronym":"PN","name":"Paranigral nucleus"},{"id":607344834,"acronym":"IPR","name":"Interpeduncular nucleus, rostral"},{"id":607344838,"acronym":"IPC","name":"Interpeduncular nucleus, caudal"},{"id":607344842,"acronym":"IPA","name":"Interpeduncular nucleus, apical"},{"id":607344846,"acronym":"IPL","name":"Interpeduncular nucleus, lateral"},{"id":607344850,"acronym":"IPI","name":"Interpeduncular nucleus, intermediate"},{"id":607344854,"acronym":"IPDM","name":"Interpeduncular nucleus, dorsomedial"},{"id":607344858,"acronym":"IPDL","name":"Interpeduncular nucleus, dorsolateral"},{"id":607344862,"acronym":"IPRL","name":"Interpeduncular nucleus, rostrolateral"},{"id":614454277,"acronym":"Su3","name":"Supraoculomotor periaqueductal gray"}] diff --git a/dandi/data/generate_allen_structures.py b/dandi/data/generate_allen_structures.py new file mode 100644 index 000000000..382bf80a0 --- /dev/null +++ b/dandi/data/generate_allen_structures.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +"""Regenerate allen_ccf_structures.json from Allen Brain Map API. + +Run: python -m dandi.data.generate_allen_structures +""" + +from __future__ import annotations + +import json +from pathlib import Path + +import requests + + +def _flatten(node: dict, out: list[dict]) -> None: + out.append({"id": node["id"], "acronym": node["acronym"], "name": node["name"]}) + for child in node.get("children", []): + _flatten(child, out) + + +def main() -> None: + url = "http://api.brain-map.org/api/v2/structure_graph_download/1.json" + resp = requests.get(url, timeout=30) + resp.raise_for_status() + data = resp.json() + structures: list[dict] = [] + root = data["msg"][0] + _flatten(root, structures) + structures.sort(key=lambda s: s["id"]) + out_path = Path(__file__).with_name("allen_ccf_structures.json") + with open(out_path, "w") as f: + json.dump(structures, f, separators=(",", ":")) + print(f"Wrote {len(structures)} structures to {out_path}") + + +if __name__ == "__main__": + main() diff --git a/dandi/metadata/brain_areas.py b/dandi/metadata/brain_areas.py new file mode 100644 index 000000000..bc91bd765 --- /dev/null +++ b/dandi/metadata/brain_areas.py @@ -0,0 +1,218 @@ +from __future__ import annotations + +import ast +from functools import lru_cache +import json +from pathlib import Path +import re +from typing import Any + +from dandischema import models + +from .. import get_logger + +lgr = get_logger() + +MBAO_URI_TEMPLATE = "http://purl.obolibrary.org/obo/MBA_{}" + +# Values that should be treated as missing / uninformative +_TRIVIAL_VALUES = frozenset( + { + "", + "unknown", + "none", + "n/a", + "na", + "null", + "unspecified", + "not available", + "not applicable", + "brain", + } +) + + +@lru_cache(maxsize=1) +def _load_allen_structures() -> list[dict[str, Any]]: + """Load the bundled Allen CCF structures JSON.""" + data_path = ( + Path(__file__).resolve().parent.parent / "data" / "allen_ccf_structures.json" + ) + with open(data_path) as f: + return json.load(f) + + +@lru_cache(maxsize=1) +def _build_lookup_dicts() -> ( + tuple[dict[str, dict], dict[str, dict], dict[str, dict], dict[str, dict]] +): + """Build lookup dictionaries for Allen CCF structures. + + Returns + ------- + tuple of 4 dicts + (acronym_exact, acronym_lower, name_exact, name_lower) + """ + structures = _load_allen_structures() + acronym_exact: dict[str, dict] = {} + acronym_lower: dict[str, dict] = {} + name_exact: dict[str, dict] = {} + name_lower: dict[str, dict] = {} + for s in structures: + acr = s["acronym"] + name = s["name"] + # First match wins (structures are sorted by id) + if acr not in acronym_exact: + acronym_exact[acr] = s + acr_low = acr.lower() + if acr_low not in acronym_lower: + acronym_lower[acr_low] = s + if name not in name_exact: + name_exact[name] = s + name_low = name.lower() + if name_low not in name_lower: + name_lower[name_low] = s + return acronym_exact, acronym_lower, name_exact, name_lower + + +def _parse_location_string(location: str) -> list[str]: + """Parse a raw NWB location string into area tokens. + + Handles: + - Simple strings: ``"VISp"`` + - Dict literals: ``"{'area': 'VISp', 'depth': '20'}"`` + - Key-value pairs: ``"area: VISp, depth: 175"`` + - Comma-separated lists: ``"VISp,VISrl,VISlm"`` + """ + location = location.strip() + if not location or location.lower() in _TRIVIAL_VALUES: + return [] + + # Try dict literal (e.g. "{'area': 'VISp', 'depth': 20}") + if location.startswith("{"): + try: + d = ast.literal_eval(location) + if isinstance(d, dict): + # Look for known area keys + for key in ("area", "location", "region", "brain_area", "brain_region"): + val = d.get(key) + if val is not None: + val = str(val).strip() + if val and val.lower() not in _TRIVIAL_VALUES: + return [val] + # If no known key, return all string values that are non-trivial + tokens = [] + for val in d.values(): + val = str(val).strip() + if val and val.lower() not in _TRIVIAL_VALUES: + # Skip purely numeric values (e.g. depth) + try: + float(val) + except ValueError: + tokens.append(val) + return tokens + except (ValueError, SyntaxError): + pass + + # Try key-value format (e.g. "area: VISp, depth: 175") + if re.search(r"\w+\s*:", location) and "://" not in location: + pairs = re.split(r",\s*", location) + kv: dict[str, str] = {} + for pair in pairs: + m = re.match(r"(\w+)\s*:\s*(.+)", pair.strip()) + if m: + kv[m.group(1).lower()] = m.group(2).strip() + if kv: + for key in ("area", "location", "region", "brain_area", "brain_region"): + val = kv.get(key) + if val is not None and val.lower() not in _TRIVIAL_VALUES: + return [val] + # Fall through — return non-trivial, non-numeric values + tokens = [] + for val in kv.values(): + if val.lower() not in _TRIVIAL_VALUES: + try: + float(val) + except ValueError: + tokens.append(val) + if tokens: + return tokens + + # Comma-separated list + if "," in location: + tokens = [t.strip() for t in location.split(",")] + return [t for t in tokens if t and t.lower() not in _TRIVIAL_VALUES] + + # Simple string + return [location] + + +def match_location_to_allen(token: str) -> models.Anatomy | None: + """Match a single location token against Allen CCF structures. + + Tries exact acronym, case-insensitive acronym, exact name, + case-insensitive name in that order. + + Returns + ------- + models.Anatomy or None + """ + acronym_exact, acronym_lower, name_exact, name_lower = _build_lookup_dicts() + token_stripped = token.strip() + if not token_stripped: + return None + + # 1. Exact acronym match + s = acronym_exact.get(token_stripped) + if s is not None: + return _structure_to_anatomy(s) + + # 2. Case-insensitive acronym match + s = acronym_lower.get(token_stripped.lower()) + if s is not None: + return _structure_to_anatomy(s) + + # 3. Exact name match + s = name_exact.get(token_stripped) + if s is not None: + return _structure_to_anatomy(s) + + # 4. Case-insensitive name match + s = name_lower.get(token_stripped.lower()) + if s is not None: + return _structure_to_anatomy(s) + + lgr.debug("Could not match brain location %r to Allen CCF", token_stripped) + return None + + +def _structure_to_anatomy(s: dict[str, Any]) -> models.Anatomy: + return models.Anatomy( + identifier=MBAO_URI_TEMPLATE.format(s["id"]), + name=s["name"], + ) + + +def locations_to_anatomy(locations: list[str]) -> list[models.Anatomy]: + """Convert raw NWB location strings to deduplicated Anatomy list. + + Parameters + ---------- + locations : list[str] + Raw location strings from NWB file. + + Returns + ------- + list[models.Anatomy] + Matched and deduplicated anatomy entries. + """ + seen_ids: set[str] = set() + results: list[models.Anatomy] = [] + for loc in locations: + tokens = _parse_location_string(loc) + for token in tokens: + anatomy = match_location_to_allen(token) + if anatomy is not None and anatomy.identifier not in seen_ids: + seen_ids.add(anatomy.identifier) + results.append(anatomy) + return results diff --git a/dandi/metadata/util.py b/dandi/metadata/util.py index 11ccd1a04..090b58aa0 100644 --- a/dandi/metadata/util.py +++ b/dandi/metadata/util.py @@ -516,6 +516,8 @@ def extract_assay_type(metadata: dict) -> list[models.AssayType] | None: def extract_anatomy(metadata: dict) -> list[models.Anatomy] | None: + # Anatomy is now populated via wasDerivedFrom BioSample. + # This extractor is kept only as a fallback for the top-level "anatomy" field. if "anatomy" in metadata: return [models.Anatomy(identifier="anatomy", name=metadata["anatomy"])] else: @@ -552,22 +554,65 @@ def func(metadata: dict) -> list[M]: def extract_wasDerivedFrom(metadata: dict) -> list[models.BioSample] | None: derived_from: list[models.BioSample] | None = None + deepest: models.BioSample | None = None for field, sample_name in [ ("tissue_sample_id", "tissuesample"), ("slice_id", "slice"), ("cell_id", "cell"), ]: if metadata.get(field) is not None: + sample = models.BioSample( + identifier=metadata[field], + wasDerivedFrom=derived_from, + sampleType=models.SampleType(name=sample_name), + ) + derived_from = [sample] + if deepest is None: + deepest = sample + + # Compute anatomy from brain locations (mouse only) + anatomy = _extract_brain_anatomy(metadata) + if anatomy: + if deepest is not None: + # Add anatomy to the deepest (first created) BioSample + deepest.anatomy = anatomy + else: + # No existing chain — create a new BioSample for the anatomy derived_from = [ models.BioSample( - identifier=metadata[field], - wasDerivedFrom=derived_from, - sampleType=models.SampleType(name=sample_name), + identifier="brain-region-sample", + sampleType=models.SampleType(name="tissuesample"), + anatomy=anatomy, ) ] + return derived_from +def _extract_brain_anatomy(metadata: dict) -> list[models.Anatomy]: + """Extract brain anatomy from metadata, if the species is mouse.""" + from .brain_areas import locations_to_anatomy + + locations = metadata.get("brain_locations") + if not locations: + return [] + + # Only apply Allen CCF matching for mouse (NCBITaxon_10090) + species = metadata.get("species") + if species is None: + return [] + species_str = str(species).lower() + is_mouse = ( + "10090" in species_str + or "mus musculus" in species_str + or "mouse" in species_str + ) + if not is_mouse: + return [] + + return locations_to_anatomy(locations) + + extract_wasAttributedTo = extract_model_list( models.Participant, "identifier", "subject_id", id=None ) diff --git a/dandi/pynwb_utils.py b/dandi/pynwb_utils.py index 7ffe552a8..e81c6d35c 100644 --- a/dandi/pynwb_utils.py +++ b/dandi/pynwb_utils.py @@ -282,6 +282,9 @@ def _get_pynwb_metadata(path: str | Path | Readable) -> dict[str, Any]: start_time = out["session_start_time"] out["session_end_time"] = start_time + timedelta(seconds=session_duration) + # Extract brain locations for anatomy metadata + out["brain_locations"] = _get_brain_locations(nwb) + return out @@ -384,6 +387,74 @@ def _get_session_duration(nwb: pynwb.NWBFile) -> float | None: return None +def _get_brain_locations(nwb: pynwb.NWBFile) -> list[str]: + """Extract brain location strings from an NWB file. + + Collects location values from imaging planes (ophys), the electrodes + table (ecephys), and intracellular electrodes (icephys). + + Parameters + ---------- + nwb : pynwb.NWBFile + An open NWB file object. + + Returns + ------- + list[str] + Raw location strings found in the file. + """ + locations: list[str] = [] + + # Ophys: imaging planes + for plane in getattr(nwb, "imaging_planes", {}).values(): + loc = getattr(plane, "location", None) + if loc and isinstance(loc, str): + locations.append(loc) + + # Ecephys: electrodes table "location" column + electrodes = getattr(nwb, "electrodes", None) + if electrodes is not None: + try: + col_names = electrodes.colnames + except Exception: + col_names = () + if col_names and "location" in col_names: + try: + locs = electrodes["location"].data[:] + except Exception: + locs = [] + for val in locs: + if isinstance(val, bytes): + val = val.decode("utf-8", errors="replace") + if val and isinstance(val, str): + locations.append(val) + + # Icephys: intracellular electrodes + ic_electrodes = getattr(nwb, "ic_electrodes", None) or getattr( + nwb, "icephys_electrodes", None + ) + if ic_electrodes is not None: + if isinstance(ic_electrodes, dict): + for elec in ic_electrodes.values(): + loc = getattr(elec, "location", None) + if loc and isinstance(loc, str): + locations.append(loc) + else: + # Might be a DynamicTable in some NWB versions + try: + col_names = getattr(ic_electrodes, "colnames", ()) + if col_names and "location" in col_names: + for val in ic_electrodes["location"].data[:]: + if isinstance(val, bytes): + val = val.decode("utf-8", errors="replace") + if val and isinstance(val, str): + locations.append(val) + except Exception: + pass + + return locations + + def _get_image_series(nwb: pynwb.NWBFile) -> list[dict]: """Retrieves all ImageSeries related metadata from an open nwb file. diff --git a/dandi/tests/test_brain_areas.py b/dandi/tests/test_brain_areas.py new file mode 100644 index 000000000..6eb6363cb --- /dev/null +++ b/dandi/tests/test_brain_areas.py @@ -0,0 +1,136 @@ +from __future__ import annotations + +import pytest + +from ..metadata.brain_areas import ( + _parse_location_string, + locations_to_anatomy, + match_location_to_allen, +) + + +@pytest.mark.ai_generated +class TestParseLocationString: + def test_simple_acronym(self) -> None: + assert _parse_location_string("VISp") == ["VISp"] + + def test_simple_name(self) -> None: + assert _parse_location_string("Primary visual area") == ["Primary visual area"] + + def test_comma_separated(self) -> None: + assert _parse_location_string("VISp,VISrl,VISlm") == ["VISp", "VISrl", "VISlm"] + + def test_comma_separated_with_spaces(self) -> None: + assert _parse_location_string("VISp, VISrl, VISlm") == [ + "VISp", + "VISrl", + "VISlm", + ] + + def test_dict_literal_with_area(self) -> None: + result = _parse_location_string("{'area': 'VISp', 'depth': '20'}") + assert result == ["VISp"] + + def test_dict_literal_no_area_key(self) -> None: + result = _parse_location_string("{'region_name': 'VISp', 'depth': '20'}") + # Should return non-numeric string values + assert "VISp" in result + + def test_key_value_pairs(self) -> None: + result = _parse_location_string("area: VISp, depth: 175") + assert result == ["VISp"] + + def test_trivial_unknown(self) -> None: + assert _parse_location_string("unknown") == [] + + def test_trivial_none(self) -> None: + assert _parse_location_string("none") == [] + + def test_trivial_na(self) -> None: + assert _parse_location_string("n/a") == [] + + def test_trivial_brain(self) -> None: + assert _parse_location_string("brain") == [] + + def test_empty_string(self) -> None: + assert _parse_location_string("") == [] + + def test_whitespace_only(self) -> None: + assert _parse_location_string(" ") == [] + + def test_comma_list_with_trivial(self) -> None: + result = _parse_location_string("VISp, unknown, CA1") + assert result == ["VISp", "CA1"] + + +@pytest.mark.ai_generated +class TestMatchLocationToAllen: + def test_exact_acronym(self) -> None: + result = match_location_to_allen("VISp") + assert result is not None + assert "MBA_" in str(result.identifier) + assert result.name == "Primary visual area" + + def test_case_insensitive_acronym(self) -> None: + result = match_location_to_allen("visp") + assert result is not None + assert result.name == "Primary visual area" + + def test_exact_name(self) -> None: + result = match_location_to_allen("Primary visual area") + assert result is not None + assert "MBA_" in str(result.identifier) + + def test_case_insensitive_name(self) -> None: + result = match_location_to_allen("primary visual area") + assert result is not None + assert "MBA_" in str(result.identifier) + + def test_no_match(self) -> None: + result = match_location_to_allen("nonexistent_area_xyz") + assert result is None + + def test_empty_string(self) -> None: + result = match_location_to_allen("") + assert result is None + + def test_ca1(self) -> None: + result = match_location_to_allen("CA1") + assert result is not None + assert "CA1" in result.name or "Field CA1" in result.name + + +@pytest.mark.ai_generated +class TestLocationsToAnatomy: + def test_basic(self) -> None: + result = locations_to_anatomy(["VISp"]) + assert len(result) == 1 + assert result[0].name == "Primary visual area" + + def test_deduplication(self) -> None: + result = locations_to_anatomy(["VISp", "VISp", "visp"]) + assert len(result) == 1 + + def test_multiple_locations(self) -> None: + result = locations_to_anatomy(["VISp", "CA1"]) + assert len(result) == 2 + + def test_empty_list(self) -> None: + result = locations_to_anatomy([]) + assert result == [] + + def test_all_unmatched(self) -> None: + result = locations_to_anatomy(["nonexistent_xyz"]) + assert result == [] + + def test_mixed_matched_unmatched(self) -> None: + result = locations_to_anatomy(["VISp", "nonexistent_xyz"]) + assert len(result) == 1 + + def test_trivial_values_filtered(self) -> None: + result = locations_to_anatomy(["unknown", "n/a", "none"]) + assert result == [] + + def test_comma_separated_input(self) -> None: + result = locations_to_anatomy(["VISp,CA1"]) + assert len(result) == 2 diff --git a/dandi/tests/test_metadata.py b/dandi/tests/test_metadata.py index 1d0b8697e..5fd2c3005 100644 --- a/dandi/tests/test_metadata.py +++ b/dandi/tests/test_metadata.py @@ -31,6 +31,7 @@ from hdmf.common import DynamicTable import numpy as np from pydantic import ByteSize +import pynwb from pynwb import NWBHDF5IO, NWBFile, TimeSeries import pytest import requests @@ -75,6 +76,7 @@ def test_get_metadata(simple1_nwb: Path, simple1_nwb_metadata: dict[str, Any]) - # We also populate with nd_types now, although here they would be empty target_metadata["nd_types"] = [] target_metadata["external_file_objects"] = [] + target_metadata["brain_locations"] = [] # we do not populate any subject fields in our simple1_nwb for f in metadata_nwb_subject_fields: target_metadata[f] = None @@ -707,6 +709,129 @@ def test_session_duration_with_events(tmp_path: Path) -> None: assert abs(duration - 157.0) < 1.0 # Allow small floating point errors +@pytest.mark.ai_generated +def test_brain_anatomy_in_wasDerivedFrom(tmp_path: Path) -> None: + """Test that brain anatomy from electrode locations appears in wasDerivedFrom.""" + nwb_path = tmp_path / "test_anatomy.nwb" + session_start = datetime(2020, 1, 1, 12, 0, 0, tzinfo=tzutc()) + + nwbfile = NWBFile( + session_description="test session for anatomy", + identifier="test_anatomy_123", + session_start_time=session_start, + subject=pynwb.file.Subject( + subject_id="mouse001", + species="Mus musculus", + sex="U", + ), + ) + + # Add device and electrode group with a brain location + device = nwbfile.create_device(name="probe0") + electrode_group = nwbfile.create_electrode_group( + name="group0", + description="test electrode group", + location="VISp", + device=device, + ) + nwbfile.add_electrode( + group=electrode_group, + location="VISp", + x=0.0, + y=0.0, + z=0.0, + ) + + with NWBHDF5IO(str(nwb_path), "w") as io: + io.write(nwbfile) + + from ..metadata.nwb import nwb2asset + from ..misctypes import DUMMY_DANDI_ETAG + + asset = nwb2asset(nwb_path, digest=DUMMY_DANDI_ETAG) + assert asset.wasDerivedFrom is not None + assert len(asset.wasDerivedFrom) > 0 + + # Find the deepest BioSample (the one without wasDerivedFrom) + sample = asset.wasDerivedFrom[0] + while sample.wasDerivedFrom: + sample = sample.wasDerivedFrom[0] + + assert sample.anatomy is not None + assert len(sample.anatomy) > 0 + assert "MBA_" in str(sample.anatomy[0].identifier) + assert sample.anatomy[0].name == "Primary visual area" + + +@pytest.mark.ai_generated +def test_brain_anatomy_non_mouse_skipped(tmp_path: Path) -> None: + """Test that brain anatomy is not extracted for non-mouse species.""" + nwb_path = tmp_path / "test_anatomy_rat.nwb" + session_start = datetime(2020, 1, 1, 12, 0, 0, tzinfo=tzutc()) + + nwbfile = NWBFile( + session_description="test session for anatomy", + identifier="test_anatomy_rat_123", + session_start_time=session_start, + subject=pynwb.file.Subject( + subject_id="rat001", + species="Rattus norvegicus", + sex="U", + ), + ) + + device = nwbfile.create_device(name="probe0") + electrode_group = nwbfile.create_electrode_group( + name="group0", + description="test electrode group", + location="VISp", + device=device, + ) + nwbfile.add_electrode( + group=electrode_group, + location="VISp", + x=0.0, + y=0.0, + z=0.0, + ) + + with NWBHDF5IO(str(nwb_path), "w") as io: + io.write(nwbfile) + + from ..metadata.nwb import nwb2asset + from ..misctypes import DUMMY_DANDI_ETAG + + asset = nwb2asset(nwb_path, digest=DUMMY_DANDI_ETAG) + # No wasDerivedFrom should exist (no tissue/slice/cell ids and non-mouse) + assert asset.wasDerivedFrom is None + + +@pytest.mark.ai_generated +def test_brain_anatomy_with_existing_biosample_chain(tmp_path: Path) -> None: + """Test that anatomy is added to the deepest BioSample when chain exists.""" + from ..metadata.util import extract_wasDerivedFrom + + metadata = { + "tissue_sample_id": "tissue01", + "slice_id": "slice01", + "cell_id": "cell01", + "brain_locations": ["VISp", "CA1"], + "species": "Mus musculus", + } + result = extract_wasDerivedFrom(metadata) + assert result is not None + + # Navigate to deepest sample (tissue) + sample = result[0] # cell + assert sample.identifier == "cell01" + sample = sample.wasDerivedFrom[0] # slice + assert sample.identifier == "slice01" + sample = sample.wasDerivedFrom[0] # tissue (deepest) + assert sample.identifier == "tissue01" + assert sample.anatomy is not None + assert len(sample.anatomy) >= 1 + + @mark_xfail_ontobee @mark.skipif_no_network @pytest.mark.obolibrary diff --git a/pyproject.toml b/pyproject.toml index bb1ab9295..e62405bfa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -161,7 +161,7 @@ tag_prefix = "" parentdir_prefix = "" [tool.codespell] -skip = "_version.py,due.py,versioneer.py,*.vcr.yaml,venv,venvs,pyproject.toml" +skip = "_version.py,due.py,versioneer.py,*.vcr.yaml,venv,venvs,pyproject.toml,allen_ccf_structures.json" # Don't warn about "[l]ist" in the abbrev_prompt() docstring: # TE is present in the BIDS schema ignore-regex = "(\\[\\w\\]\\w+|TE|ignore \"bu\" strings)" diff --git a/tox.ini b/tox.ini index ffdb9b6e9..cf1e0c062 100644 --- a/tox.ini +++ b/tox.ini @@ -44,6 +44,8 @@ commands = sphinx-build -E -W -b html source build [pytest] addopts = --tb=short --durations=10 --timeout=300 +markers = + ai_generated: marks tests as AI-generated filterwarnings = error ignore:No cached namespaces found .*:UserWarning From 020ac761906969d58806bc13d63c1cedc8eb569f Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Sat, 21 Feb 2026 10:25:33 -0500 Subject: [PATCH 2/2] fix: resolve mypy type errors and CodeQL empty-except warnings - Cast json.load() return to explicit type - Use str() for AnyHttpUrl identifier comparisons - Add None-checks before indexing wasDerivedFrom in tests - Add explanatory comments to bare except clauses Co-Authored-By: Claude Opus 4.6 --- dandi/metadata/brain_areas.py | 13 ++++++++----- dandi/pynwb_utils.py | 2 +- dandi/tests/test_brain_areas.py | 1 + dandi/tests/test_metadata.py | 2 ++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/dandi/metadata/brain_areas.py b/dandi/metadata/brain_areas.py index bc91bd765..11de60ed7 100644 --- a/dandi/metadata/brain_areas.py +++ b/dandi/metadata/brain_areas.py @@ -39,7 +39,8 @@ def _load_allen_structures() -> list[dict[str, Any]]: Path(__file__).resolve().parent.parent / "data" / "allen_ccf_structures.json" ) with open(data_path) as f: - return json.load(f) + structures: list[dict[str, Any]] = json.load(f) + return structures @lru_cache(maxsize=1) @@ -112,7 +113,7 @@ def _parse_location_string(location: str) -> list[str]: tokens.append(val) return tokens except (ValueError, SyntaxError): - pass + pass # Not a valid dict literal; fall through to other parsers # Try key-value format (e.g. "area: VISp, depth: 175") if re.search(r"\w+\s*:", location) and "://" not in location: @@ -212,7 +213,9 @@ def locations_to_anatomy(locations: list[str]) -> list[models.Anatomy]: tokens = _parse_location_string(loc) for token in tokens: anatomy = match_location_to_allen(token) - if anatomy is not None and anatomy.identifier not in seen_ids: - seen_ids.add(anatomy.identifier) - results.append(anatomy) + if anatomy is not None: + id_str = str(anatomy.identifier) + if id_str not in seen_ids: + seen_ids.add(id_str) + results.append(anatomy) return results diff --git a/dandi/pynwb_utils.py b/dandi/pynwb_utils.py index e81c6d35c..1963e9d73 100644 --- a/dandi/pynwb_utils.py +++ b/dandi/pynwb_utils.py @@ -450,7 +450,7 @@ def _get_brain_locations(nwb: pynwb.NWBFile) -> list[str]: if val and isinstance(val, str): locations.append(val) except Exception: - pass + pass # IC electrode table format varies across NWB versions return locations diff --git a/dandi/tests/test_brain_areas.py b/dandi/tests/test_brain_areas.py index 6eb6363cb..a21de2aa5 100644 --- a/dandi/tests/test_brain_areas.py +++ b/dandi/tests/test_brain_areas.py @@ -97,6 +97,7 @@ def test_empty_string(self) -> None: def test_ca1(self) -> None: result = match_location_to_allen("CA1") assert result is not None + assert result.name is not None assert "CA1" in result.name or "Field CA1" in result.name diff --git a/dandi/tests/test_metadata.py b/dandi/tests/test_metadata.py index 5fd2c3005..646169c23 100644 --- a/dandi/tests/test_metadata.py +++ b/dandi/tests/test_metadata.py @@ -824,8 +824,10 @@ def test_brain_anatomy_with_existing_biosample_chain(tmp_path: Path) -> None: # Navigate to deepest sample (tissue) sample = result[0] # cell assert sample.identifier == "cell01" + assert sample.wasDerivedFrom is not None sample = sample.wasDerivedFrom[0] # slice assert sample.identifier == "slice01" + assert sample.wasDerivedFrom is not None sample = sample.wasDerivedFrom[0] # tissue (deepest) assert sample.identifier == "tissue01" assert sample.anatomy is not None