├── MANIFEST.in ├── .gitignore ├── .dockerignore ├── Dockerfile ├── kwyk2nidm ├── __init__.py ├── mapping_data │ ├── test_out.txt │ ├── kwyk_region_list.txt │ ├── kwykmap.json │ └── kwyk-cdes.json └── kwykutils.py ├── LICENSE ├── scripts └── kwykput.sh ├── setup.py └── README.md /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include kwyk2nidm/mapping_data/* 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | kwyk2nidm.egg-info/ 3 | __pycache__ -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .ipynb_checkpoints 3 | Dockerfile 4 | .DS_Store 5 | .gitignore 6 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM continuumio/miniconda3:4.7.12-alpine 2 | 3 | WORKDIR /opt/kwyk2nidm 4 | COPY . . 5 | 6 | RUN /opt/conda/bin/pip install . 7 | 8 | WORKDIR /data 9 | 10 | ENTRYPOINT ["/opt/conda/bin/kwyk2nidm"] -------------------------------------------------------------------------------- /kwyk2nidm/__init__.py: -------------------------------------------------------------------------------- 1 | # emacs: -*- mode: python; py-indent-offset: 4; tab-width: 4; indent-tabs-mode: nil -*- 2 | # ex: set sts=4 ts=4 sw=4 noet: 3 | # ## ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## 4 | # 5 | # See LICENSE file distributed along with the segstats_jsonld package for the 6 | # license terms. 7 | # 8 | # ## ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## 9 | 10 | __version__ = "0.0.1" 11 | 12 | # do imports of all of the functions that should be available here 13 | from .kwykutils import read_kwyk_stats, create_cde_graph 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Center for Reproducible Neuroimaging Computation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /scripts/kwykput.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # kwykput.sh: a script to convert the output of kwyk into regional volumes 3 | # Usage: kwykput.sh kwyk_output_file results_file 4 | kwyk_output_file=$1 5 | output=$2 6 | kwyk_index=~/kwyk/kwyk_region_index.csv 7 | 8 | if [ -z $output ]; then 9 | echo "you must provide an output filename, buy..." 10 | exit 11 | fi 12 | 13 | # say hello 14 | echo "" 15 | echo "Doing the kwyk volume calculation on $kwyk_output_file" 16 | 17 | # check for kwyk-file existance 18 | if [ -f "$kwyk_output_file" ]; then 19 | echo "$kwyk_output_file exists, yay, we continue" 20 | else 21 | echo "$kwyk_output_file does not exist, boo, we must quit..." 22 | echo "" 23 | exit 24 | fi 25 | 26 | # check for kwyk-region-index file existance 27 | if [ -f "$kwyk_index" ]; then 28 | echo "$kwyk_index exists, yay, we continue" 29 | else 30 | echo "$kwyk_index does not exist, boo, we must quit..." 31 | echo "" 32 | exit 33 | fi 34 | 35 | 36 | # prepare output file 37 | # check if already exists (don't overwrite...) 38 | if [ -f "$output" ]; then 39 | echo "$output exists, we will do no harm, and must exit..." 40 | exit 41 | fi 42 | 43 | # header line in output 44 | echo "kwyk_index label number_voxels vol_inmm3" >> $output 45 | 46 | # loop for the kwyk fill values 47 | OLDIFS=$IFS 48 | IFS=, 49 | while read index label 50 | do 51 | echo " Doing: index = $index, label = $label" 52 | if [[ $index != "0" && $index != "kwyk_index" ]]; then 53 | let lindex=$index-1 54 | let uindex=$index+1 55 | echo -n "$index $label " >> $output 56 | fslstats $kwyk_output_file -l $lindex -u $uindex -V >> $output 57 | fi 58 | done < $kwyk_index 59 | IFS=$OLDIF 60 | echo "" 61 | 62 | # the end 63 | echo "we have come to the end, goodbye!" 64 | exit 65 | 66 | 67 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from setuptools import setup 4 | from setuptools import find_packages 5 | from os.path import join as opj 6 | from os.path import dirname 7 | 8 | 9 | def get_version(): 10 | """Load version only 11 | """ 12 | with open(opj(dirname(__file__), "kwyk2nidm", "__init__.py")) as f: 13 | version_lines = list(filter(lambda x: x.startswith("__version__"), f)) 14 | assert len(version_lines) == 1 15 | return version_lines[0].split("=")[1].strip(" '\"\t\n") 16 | 17 | 18 | # extension version 19 | version = get_version() 20 | PACKAGES = find_packages() 21 | 22 | README = opj(dirname(__file__), "README.md") 23 | try: 24 | import pypandoc 25 | 26 | long_description = pypandoc.convert(README, "rst") 27 | except (ImportError, OSError) as exc: 28 | print( 29 | "WARNING: pypandoc failed to import or threw an error while converting" 30 | " README.md to RST: %r .md version will be used as is" % exc 31 | ) 32 | long_description = open(README).read() 33 | 34 | # Metadata 35 | setup( 36 | name="kwyk2nidm", 37 | version=version, 38 | description="Convert KWYK segmentation data to NIDM / jsonld", 39 | long_description=long_description, 40 | author="Repronim developers", 41 | author_email="satra@mit.edu", 42 | url="https://github.com/repronim/kwyk2nidm", 43 | packages=PACKAGES, 44 | install_requires=["pandas", "pynidm"], # Add requirements as necessary 45 | extras_require={ 46 | "devel-docs": [ 47 | # for converting README.md -> .rst for long description 48 | "pypandoc", 49 | ] 50 | }, 51 | include_package_data=True, 52 | entry_points={ 53 | "console_scripts": [ 54 | "kwyk2nidm=kwyk2nidm.kwykutils:main" # this is where the console entry points are defined 55 | ], 56 | }, 57 | classifiers=[ 58 | "Programming Language :: Python :: 3", 59 | "License :: OSI Approved :: MIT License", 60 | "Operating System :: OS Independent", 61 | ], # Change if necessary 62 | ) 63 | -------------------------------------------------------------------------------- /kwyk2nidm/mapping_data/test_out.txt: -------------------------------------------------------------------------------- 1 | kwyk_index label number_voxels vol_inmm3 2 | 1 Cerebral-White-Matter 496396 496396.000000 3 | 2 Ventricular-System 11025 11025.000000 4 | 3 Cerebellum-White-Matter 32515 32515.000000 5 | 4 Cerebellum-Cortex 144992 144992.000000 6 | 5 Thalamus-Proper 18118 18118.000000 7 | 6 Caudate 10851 10851.000000 8 | 7 Putamen 14385 14385.000000 9 | 8 Pallidum 4595 4595.000000 10 | 9 Brain-Stem 26743 26743.000000 11 | 10 Hippocampus 9800 9800.000000 12 | 11 Amygdala 4724 4724.000000 13 | 12 CSF 728 728.000000 14 | 13 Accumbens-area 1238 1238.000000 15 | 14 VentralDC 10052 10052.000000 16 | 15 Corpus_Callosum 4050 4050.000000 17 | 16 ctx-bankssts 7181 7181.000000 18 | 17 ctx-caudalanteriorcingulate 6283 6283.000000 19 | 18 ctx-caudalmiddlefrontal 14910 14910.000000 20 | 19 ctx-cuneus 11036 11036.000000 21 | 20 ctx-entorhinal 4909 4909.000000 22 | 21 ctx-fusiform 28811 28811.000000 23 | 22 ctx-inferiorparietal 46297 46297.000000 24 | 23 ctx-inferiortemporal 37043 37043.000000 25 | 24 ctx-isthmuscingulate 7504 7504.000000 26 | 25 ctx-lateraloccipital 32780 32780.000000 27 | 26 ctx-lateralorbitofrontal 20530 20530.000000 28 | 27 ctx-lingual 18493 18493.000000 29 | 28 ctx-medialorbitofrontal 14945 14945.000000 30 | 29 ctx-middletemporal 41865 41865.000000 31 | 30 ctx-parahippocampal 6031 6031.000000 32 | 31 ctx-paracentral 9316 9316.000000 33 | 32 ctx-parsopercularis 12526 12526.000000 34 | 33 ctx-parsorbitalis 7549 7549.000000 35 | 34 ctx-parstriangularis 13023 13023.000000 36 | 35 ctx-pericalcarine 5401 5401.000000 37 | 36 ctx-postcentral 23989 23989.000000 38 | 37 ctx-posteriorcingulate 8228 8228.000000 39 | 38 ctx-precentral 28535 28535.000000 40 | 39 ctx-precuneus 31715 31715.000000 41 | 40 ctx-rostralanteriorcingulate 9038 9038.000000 42 | 41 ctx-rostralmiddlefrontal 58863 58863.000000 43 | 42 ctx-superiorfrontal 73388 73388.000000 44 | 43 ctx-superiorparietal 40124 40124.000000 45 | 44 ctx-superiortemporal 40148 40148.000000 46 | 45 ctx-supramarginal 29961 29961.000000 47 | 46 ctx-frontalpole 2450 2450.000000 48 | 47 ctx-temporalpole 7512 7512.000000 49 | 48 ctx-transversetemporal 2390 2390.000000 50 | 49 ctx-insula 19868 19868.000000 51 | -------------------------------------------------------------------------------- /kwyk2nidm/mapping_data/kwyk_region_list.txt: -------------------------------------------------------------------------------- 1 | original,new,label 2 | 0,0,Unknown 3 | 2,1,Left-Cerebral-White-Matter 4 | 4,2,Left-Lateral-Ventricle 5 | 5,2,Left-Inf-Lat-Vent 6 | 7,3,Left-Cerebellum-White-Matter 7 | 8,4,Left-Cerebellum-Cortex 8 | 10,5,Left-Thalamus-Proper 9 | 11,6,Left-Caudate 10 | 12,7,Left-Putamen 11 | 13,8,Left-Pallidum 12 | 14,2,3rd-Ventricle 13 | 15,2,4th-Ventricle 14 | 16,9,Brain-Stem 15 | 17,10,Left-Hippocampus 16 | 18,11,Left-Amygdala 17 | 24,12,CSF 18 | 26,13,Left-Accumbens-area 19 | 28,14,Left-VentralDC 20 | 41,1,Right-Cerebral-White-Matter 21 | 43,2,Right-Lateral-Ventricle 22 | 44,2,Right-Inf-Lat-Vent 23 | 46,3,Right-Cerebellum-White-Matter 24 | 47,4,Right-Cerebellum-Cortex 25 | 49,5,Right-Thalamus-Proper 26 | 50,6,Right-Caudate 27 | 51,7,Right-Putamen 28 | 52,8,Right-Pallidum 29 | 53,10,Right-Hippocampus 30 | 54,11,Right-Amygdala 31 | 58,13,Right-Accumbens-area 32 | 60,14,Right-VentralDC 33 | 72,2,5th-Ventricle 34 | 192,15,Corpus_Callosum 35 | 251,15,CC_Posterior 36 | 252,15,CC_Mid_Posterior 37 | 253,15,CC_Central 38 | 254,15,CC_Mid_Anterior 39 | 255,15,CC_Anterior 40 | 1001,16,ctx-lh-bankssts 41 | 1002,17,ctx-lh-caudalanteriorcingulate 42 | 1003,18,ctx-lh-caudalmiddlefrontal 43 | 1005,19,ctx-lh-cuneus 44 | 1006,20,ctx-lh-entorhinal 45 | 1007,21,ctx-lh-fusiform 46 | 1008,22,ctx-lh-inferiorparietal 47 | 1009,23,ctx-lh-inferiortemporal 48 | 1010,24,ctx-lh-isthmuscingulate 49 | 1011,25,ctx-lh-lateraloccipital 50 | 1012,26,ctx-lh-lateralorbitofrontal 51 | 1013,27,ctx-lh-lingual 52 | 1014,28,ctx-lh-medialorbitofrontal 53 | 1015,29,ctx-lh-middletemporal 54 | 1016,30,ctx-lh-parahippocampal 55 | 1017,31,ctx-lh-paracentral 56 | 1018,32,ctx-lh-parsopercularis 57 | 1019,33,ctx-lh-parsorbitalis 58 | 1020,34,ctx-lh-parstriangularis 59 | 1021,35,ctx-lh-pericalcarine 60 | 1022,36,ctx-lh-postcentral 61 | 1023,37,ctx-lh-posteriorcingulate 62 | 1024,38,ctx-lh-precentral 63 | 1025,39,ctx-lh-precuneus 64 | 1026,40,ctx-lh-rostralanteriorcingulate 65 | 1027,41,ctx-lh-rostralmiddlefrontal 66 | 1028,42,ctx-lh-superiorfrontal 67 | 1029,43,ctx-lh-superiorparietal 68 | 1030,44,ctx-lh-superiortemporal 69 | 1031,45,ctx-lh-supramarginal 70 | 1032,46,ctx-lh-frontalpole 71 | 1033,47,ctx-lh-temporalpole 72 | 1034,48,ctx-lh-transversetemporal 73 | 1035,49,ctx-lh-insula 74 | 2001,16,ctx-rh-bankssts 75 | 2002,17,ctx-rh-caudalanteriorcingulate 76 | 2003,18,ctx-rh-caudalmiddlefrontal 77 | 2005,19,ctx-rh-cuneus 78 | 2006,20,ctx-rh-entorhinal 79 | 2007,21,ctx-rh-fusiform 80 | 2008,22,ctx-rh-inferiorparietal 81 | 2009,23,ctx-rh-inferiortemporal 82 | 2010,24,ctx-rh-isthmuscingulate 83 | 2011,25,ctx-rh-lateraloccipital 84 | 2012,26,ctx-rh-lateralorbitofrontal 85 | 2013,27,ctx-rh-lingual 86 | 2014,28,ctx-rh-medialorbitofrontal 87 | 2015,29,ctx-rh-middletemporal 88 | 2016,30,ctx-rh-parahippocampal 89 | 2017,31,ctx-rh-paracentral 90 | 2018,32,ctx-rh-parsopercularis 91 | 2019,33,ctx-rh-parsorbitalis 92 | 2020,34,ctx-rh-parstriangularis 93 | 2021,35,ctx-rh-pericalcarine 94 | 2022,36,ctx-rh-postcentral 95 | 2023,37,ctx-rh-posteriorcingulate 96 | 2024,38,ctx-rh-precentral 97 | 2025,39,ctx-rh-precuneus 98 | 2026,40,ctx-rh-rostralanteriorcingulate 99 | 2027,41,ctx-rh-rostralmiddlefrontal 100 | 2028,42,ctx-rh-superiorfrontal 101 | 2029,43,ctx-rh-superiorparietal 102 | 2030,44,ctx-rh-superiortemporal 103 | 2031,45,ctx-rh-supramarginal 104 | 2032,46,ctx-rh-frontalpole 105 | 2033,47,ctx-rh-temporalpole 106 | 2034,48,ctx-rh-transversetemporal 107 | 2035,49,ctx-rh-insul 108 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # kwyk2nidm 2 | NIDMification of kwyk output 3 | 4 | This project uses **kwyk** (https://github.com/neuronets/kwyk). 5 | Paper, code, and model corresponding to [preprint](https://arxiv.org/abs/1812.01719), which is now published. 6 | 7 | Cite: [McClure P, Rho N, Lee JA, Kaczmarzyk JR, Zheng CY, Ghosh SS, Nielson DM, Thomas AG, Bandettini P and Pereira F (2019) Knowing What You Know in Brain Segmentation Using Bayesian Deep Neural Networks. Front. Neuroinform. 13:67. doi:10.3389/fninf.2019.00067](https://www.frontiersin.org/articles/10.3389/fninf.2019.00067/full) 8 | 9 | # Steps 10 | ## Run kwyk 11 | 12 | ## Interpret kwyk output for regional volumes 13 | We include a BASH script, 'kwykput.sh' that takes a resulting output from kwyk, and used the FSL *fslstats* utility to determine the volume for each of the regions. This script uses the *kwyk_region_list.txt* file for the region lables (derived from *FreeSurfer*. It generates a text file (example provided *test_out.txt*) of the form: 14 | 15 |
16 | kwyk_index label number_voxels vol_inmm3 17 | 1 Cerebral-White-Matter 496396 496396.000000 18 | 2 Ventricular-System 11025 11025.000000 19 | 3 Cerebellum-White-Matter 32515 32515.000000 20 | 4 Cerebellum-Cortex 144992 144992.000000 21 | 5 Thalamus-Proper 18118 18118.000000 22 | 6 Caudate 10851 10851.000000 23 | etc... 24 |25 | 26 | ## Convert the volume result file into NIDM 27 | The steps for this include generating a kwykmap.json file that described 28 | the content of out reults file (*kwykmap.json*). As a developer, you can 29 | then work with ReproNim to create a set of custom terms for your software, 30 | which are harmonized with other software. This generates a list of custom 31 | data elements for the software with additional information. For example, 32 | in the case of kwyk, this maps every structure to a common anatomical name, 33 | measurement type, and measurement units. 34 | 35 | ``` 36 | kwyk:kwyk_000002 a kwyk:DataElement ; 37 | kwyk:label "Cerebral-White-Matter vol_inmm3 (mm^3)" ; 38 | kwyk:measure "vol_inmm3" ; 39 | kwyk:structure "Cerebral-White-Matter" ; 40 | kwyk:structure_id 1 ; 41 | kwyk:unit "mm^3" ; 42 | nidm:datumType ilx:0738276 ; 43 | nidm:hasUnit "mm^3" ; 44 | nidm:isAbout uberon:0002437 ; 45 | nidm:measureOf ilx:0112559 . 46 | ``` 47 | 48 | ## Using the kwyk data elements to generate a NIDM result 49 | 50 | ### Software environment 51 | 52 | You can run the kwyk2nidm script using either of the methods below. 53 | 54 | 1. Install `kwyk2nidm` into your Python 3 environment 55 | 56 | ``` 57 | pip install https://github.com/ReproNim/kwyk2nidm/archive/master.zip 58 | 59 | kwyk2nidm -f kwyk_stats_file 60 | ``` 61 | 62 | 2. Clone the repo and create a Docker container 63 | 64 | ``` 65 | git clone https://github.com/ReproNim/kwyk2nidm.git 66 | cd kwyk2nidm 67 | docker build -t kwyk2nidm:latest . 68 | docker run -v $(pwd):/data kwyk2nidm -f /data/kwyk_stats_file 69 | ``` 70 | 71 | Running the kwyk2nidm command will generate an output file 72 | `kwyk_stats_file.ttl` unless a different name is specified using the 73 | `-o` flag. 74 | 75 | To generate all the NIDM KWYK data elements add `-g` to the commands above. 76 | This will generate a `KWYK-NIDM.ttl` that should be added to triplestore 77 | to provide the link between the NIDM stats file to the common data attributes. 78 | 79 | # Great! I have a NIDM **kwyk** result. Now What??? 80 | 81 | 1. Upload to ReproPond or ReproLake 82 | 2. Query across files! 83 | 3. Merge it with other NIDM, and query it! 84 | -------------------------------------------------------------------------------- /kwyk2nidm/mapping_data/kwykmap.json: -------------------------------------------------------------------------------- 1 | { 2 | "Measures": { 3 | "number_voxels": { 4 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 5 | "hasUnit": "voxel", 6 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 7 | }, 8 | "vol_inmm3": { 9 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 10 | "hasUnit": "mm^3", 11 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 12 | } 13 | }, 14 | "Structures": { 15 | "Accumbens-area": { 16 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001882", 17 | "kwyk_index": 13 18 | }, 19 | "Amygdala": { 20 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001876", 21 | "kwyk_index": 11 22 | }, 23 | "Brain-Stem": { 24 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002298", 25 | "kwyk_index": 9 26 | }, 27 | "CSF": { 28 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001359", 29 | "kwyk_index": 12 30 | }, 31 | "Caudate": { 32 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001873", 33 | "kwyk_index": 6 34 | }, 35 | "Cerebellum-Cortex": { 36 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002129", 37 | "kwyk_index": 4 38 | }, 39 | "Cerebellum-White-Matter": { 40 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002317", 41 | "kwyk_index": 3 42 | }, 43 | "Cerebral-White-Matter": { 44 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002437", 45 | "kwyk_index": 1 46 | }, 47 | "Corpus_Callosum": { 48 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002336", 49 | "kwyk_index": 15 50 | }, 51 | "Hippocampus": { 52 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001954", 53 | "kwyk_index": 10 54 | }, 55 | "Pallidum": { 56 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006514", 57 | "kwyk_index": 8 58 | }, 59 | "Putamen": { 60 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001874", 61 | "kwyk_index": 7 62 | }, 63 | "Thalamus-Proper": { 64 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001897", 65 | "kwyk_index": 5 66 | }, 67 | "VentralDC": { 68 | "isAbout": "CUSTOM: it was 'invented' by CMA. Something like: Ventral Diencephalon contains the hypothalamus, basal forebrain, and sublenticular extended amygdala (SLEA), as well as a large portion of ventral tegmentum. See also https://doi.org/10.1016/j.biopsych.2008.01.018", 69 | "kwyk_index": 14 70 | }, 71 | "Ventricular-System": { 72 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0005282", 73 | "kwyk_index": 2 74 | }, 75 | "ctx-bankssts": { 76 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0028622", 77 | "kwyk_index": 16 78 | }, 79 | "ctx-caudalanteriorcingulate": { 80 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0028715", 81 | "kwyk_index": 17 82 | }, 83 | "ctx-caudalmiddlefrontal": { 84 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006445", 85 | "kwyk_index": 18 86 | }, 87 | "ctx-cuneus": { 88 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006092", 89 | "kwyk_index": 19 90 | }, 91 | "ctx-entorhinal": { 92 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002728", 93 | "kwyk_index": 20 94 | }, 95 | "ctx-frontalpole": { 96 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002795", 97 | "kwyk_index": 46 98 | }, 99 | "ctx-fusiform": { 100 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002766", 101 | "kwyk_index": 21 102 | }, 103 | "ctx-inferiorparietal": { 104 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006088", 105 | "kwyk_index": 22 106 | }, 107 | "ctx-inferiortemporal": { 108 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002751", 109 | "kwyk_index": 23 110 | }, 111 | "ctx-insula": { 112 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0034891", 113 | "kwyk_index": 49 114 | }, 115 | "ctx-isthmuscingulate": { 116 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0027061", 117 | "kwyk_index": 24 118 | }, 119 | "ctx-lateraloccipital": { 120 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006114", 121 | "kwyk_index": 25 122 | }, 123 | "ctx-lateralorbitofrontal": { 124 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022716", 125 | "kwyk_index": 26 126 | }, 127 | "ctx-lingual": { 128 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002943", 129 | "kwyk_index": 27 130 | }, 131 | "ctx-medialorbitofrontal": { 132 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022352", 133 | "kwyk_index": 28 134 | }, 135 | "ctx-middletemporal": { 136 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002771", 137 | "kwyk_index": 29 138 | }, 139 | "ctx-paracentral": { 140 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0007190", 141 | "kwyk_index": 31 142 | }, 143 | "ctx-parahippocampal": { 144 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002973", 145 | "kwyk_index": 30 146 | }, 147 | "ctx-parsopercularis": { 148 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002980", 149 | "kwyk_index": 32 150 | }, 151 | "ctx-parsorbitalis": { 152 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002593", 153 | "kwyk_index": 33 154 | }, 155 | "ctx-parstriangularis": { 156 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002629", 157 | "kwyk_index": 34 158 | }, 159 | "ctx-pericalcarine": { 160 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022534", 161 | "kwyk_index": 35 162 | }, 163 | "ctx-postcentral": { 164 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002581", 165 | "kwyk_index": 36 166 | }, 167 | "ctx-posteriorcingulate": { 168 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002740", 169 | "kwyk_index": 37 170 | }, 171 | "ctx-precentral": { 172 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002703", 173 | "kwyk_index": 38 174 | }, 175 | "ctx-precuneus": { 176 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006093", 177 | "kwyk_index": 39 178 | }, 179 | "ctx-rostralanteriorcingulate": { 180 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022438", 181 | "kwyk_index": 40 182 | }, 183 | "ctx-rostralmiddlefrontal": { 184 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006446", 185 | "kwyk_index": 41 186 | }, 187 | "ctx-superiorfrontal": { 188 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002661", 189 | "kwyk_index": 42 190 | }, 191 | "ctx-superiorparietal": { 192 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006094", 193 | "kwyk_index": 43 194 | }, 195 | "ctx-superiortemporal": { 196 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002769", 197 | "kwyk_index": 44 198 | }, 199 | "ctx-supramarginal": { 200 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002688", 201 | "kwyk_index": 45 202 | }, 203 | "ctx-temporalpole": { 204 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002576", 205 | "kwyk_index": 47 206 | }, 207 | "ctx-transversetemporal": { 208 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0003939", 209 | "kwyk_index": 48 210 | } 211 | } 212 | } 213 | -------------------------------------------------------------------------------- /kwyk2nidm/kwykutils.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Utilities for extracting information from freesurfer stats files 3 | 4 | """ 5 | 6 | import json 7 | import os 8 | from collections import namedtuple 9 | from pathlib import Path 10 | import rdflib as rl 11 | import pandas as pd 12 | 13 | KWYK = namedtuple("KWYK", ["structure", "measure", "unit"]) 14 | cde_file = Path(os.path.dirname(__file__)) / "mapping_data" / "kwyk-cdes.json" 15 | map_file = Path(os.path.dirname(__file__)) / "mapping_data" / "kwykmap.json" 16 | KWYKNS = rl.Namespace("http://purl.org/nidash/kwyk#") 17 | 18 | 19 | def read_kwyk_stats(kwyk_stats_file, force_error=True): 20 | """ 21 | Reads a kwyk stats file 22 | :param kwyk_stats_file: path to kwyk stats file 23 | :return: measures 24 | """ 25 | 26 | # open stats file, brain vols file as pandas dataframes 27 | kwyk_stats = pd.read_table(kwyk_stats_file, delimiter=" ", index_col=False) 28 | 29 | with open(cde_file, "r") as fp: 30 | kwyk_cde = json.load(fp) 31 | 32 | measures = [] 33 | changed = False 34 | # iterate over columns in brain vols 35 | for row in kwyk_stats.iterrows(): 36 | key_tuple_vox = KWYK( 37 | structure=row[1].label, measure="number_voxels", unit="voxels" 38 | ) 39 | if str(key_tuple_vox) not in kwyk_cde: 40 | kwyk_cde["count"] += 1 41 | kwyk_cde[str(key_tuple_vox)] = { 42 | "id": f"{kwyk_cde['count']:0>6d}", 43 | "structure_id": row[1].kwyk_index, 44 | "label": f"{key_tuple_vox.structure} {key_tuple_vox.measure} ({key_tuple_vox.unit})", 45 | } 46 | if force_error: 47 | raise ValueError( 48 | f"Key {key_tuple_vox} not found in KWYK data elements file" 49 | ) 50 | changed = True 51 | measures.append( 52 | (f'{kwyk_cde[str(key_tuple_vox)]["id"]}', str(row[1].number_voxels)) 53 | ) 54 | key_tuple_vol = KWYK(structure=row[1].label, measure="vol_inmm3", unit="mm^3") 55 | if str(key_tuple_vol) not in kwyk_cde: 56 | kwyk_cde["count"] += 1 57 | kwyk_cde[str(key_tuple_vol)] = { 58 | "id": f"{kwyk_cde['count']:0>6d}", 59 | "structure_id": row[1].kwyk_index, 60 | "label": f"{key_tuple_vol.structure} {key_tuple_vol.measure} ({key_tuple_vol.unit})", 61 | } 62 | if force_error: 63 | raise ValueError( 64 | f"Key {key_tuple_vol} not found in KWYK data elements file" 65 | ) 66 | changed = True 67 | measures.append( 68 | (f'{kwyk_cde[str(key_tuple_vol)]["id"]}', str(row[1].vol_inmm3)) 69 | ) 70 | 71 | if changed: 72 | with open(cde_file, "w") as fp: 73 | json.dump(kwyk_cde, fp, indent=2) 74 | 75 | return measures 76 | 77 | 78 | def create_kwyk_mapper(): 79 | """Create KWYK to ReproNim mapping information 80 | 81 | Combines or updates cde file from information in map file 82 | """ 83 | 84 | with open(map_file, "r") as fp: 85 | kwyk_map = json.load(fp) 86 | 87 | with open(cde_file, "r") as fp: 88 | kwyk_cde = json.load(fp) 89 | 90 | s = kwyk_map["Structures"] 91 | m = kwyk_map["Measures"] 92 | for key in kwyk_cde: 93 | if key == "count": 94 | continue 95 | key_tuple = eval(key) 96 | sk = key_tuple.structure 97 | mk = key_tuple.measure 98 | if sk not in s: 99 | s[sk] = dict(isAbout=None, kwyk_index=kwyk_map[key_tuple].structure_id) 100 | if mk not in m: 101 | m[mk] = dict(measureOf=None, datumType=None, hasUnit=key_tuple.unit) 102 | 103 | if s[sk]["isAbout"] is not None and ( 104 | "UNKNOWN" not in s[sk]["isAbout"] and "CUSTOM" not in s[sk]["isAbout"] 105 | ): 106 | kwyk_cde[key]["isAbout"] = s[sk]["isAbout"] 107 | 108 | if m[key_tuple.measure]["measureOf"] is not None: 109 | kwyk_cde[key].update(**m[key_tuple.measure]) 110 | 111 | with open(map_file, "w") as fp: 112 | json.dump(kwyk_map, fp, sort_keys=True, indent=2) 113 | fp.write("\n") 114 | 115 | with open(cde_file, "w") as fp: 116 | json.dump(kwyk_cde, fp, indent=2) 117 | fp.write("\n") 118 | 119 | return kwyk_map, kwyk_cde 120 | 121 | 122 | def create_cde_graph(restrict_to=None): 123 | """Create an RDFLIB graph with the KWYK CDEs 124 | 125 | Any CDE that has a mapping will be mapped 126 | """ 127 | with open(cde_file, "r") as fp: 128 | kwyk_cde = json.load(fp) 129 | from nidm.core import Constants 130 | 131 | nidm = Constants.NIDM 132 | kwyk = KWYKNS 133 | 134 | g = rl.Graph() 135 | g.bind("kwyk", kwyk) 136 | g.bind("nidm", nidm) 137 | g.bind("uberon", "http://purl.obolibrary.org/obo/UBERON_") 138 | g.bind("ilx", "http://uri.interlex.org/base/ilx_") 139 | 140 | g.add((kwyk["DataElement"], rl.RDFS['subClassOf'], nidm['DataElement'])) 141 | for key, value in kwyk_cde.items(): 142 | if key == "count": 143 | continue 144 | if restrict_to is not None: 145 | if value["id"] not in restrict_to: 146 | continue 147 | for subkey, item in value.items(): 148 | if subkey == "id": 149 | kwykid = "kwyk_" + item 150 | g.add((kwyk[kwykid], rl.RDF.type, kwyk["DataElement"])) 151 | continue 152 | if item is None or "unknown" in str(item): 153 | continue 154 | if subkey in ["isAbout", "datumType", "measureOf"]: 155 | g.add((kwyk[kwykid], nidm[subkey], rl.URIRef(item))) 156 | elif subkey in ["hasUnit"]: 157 | g.add((kwyk[kwykid], nidm[subkey], rl.Literal(item))) 158 | elif subkey in ["label"]: 159 | g.add((kwyk[kwykid], rl.RDFS['label'], rl.Literal(item))) 160 | else: 161 | if isinstance(item, rl.URIRef): 162 | g.add((kwyk[kwykid], kwyk[subkey], item)) 163 | else: 164 | g.add((kwyk[kwykid], kwyk[subkey], rl.Literal(item))) 165 | key_tuple = eval(key) 166 | for subkey, item in key_tuple._asdict().items(): 167 | if item is None: 168 | continue 169 | g.add((kwyk[kwykid], kwyk[subkey], rl.Literal(item))) 170 | return g 171 | 172 | 173 | def convert_stats_to_nidm(stats): 174 | """Convert a stats record into a NIDM entity 175 | 176 | Returns the entity and the prov document 177 | """ 178 | from nidm.core import Constants 179 | from nidm.experiment.Core import getUUID 180 | import prov 181 | 182 | kwyk = prov.model.Namespace("kwyk", str(KWYKNS)) 183 | niiri = prov.model.Namespace("niiri", str(Constants.NIIRI)) 184 | nidm = prov.model.Namespace("nidm", "http://purl.org/nidash/nidm#") 185 | doc = prov.model.ProvDocument() 186 | e = doc.entity(identifier=niiri[getUUID()]) 187 | e.add_asserted_type(nidm["KWYKStatsCollection"]) 188 | e.add_attributes( 189 | { 190 | kwyk["kwyk_" + val[0]]: prov.model.Literal( 191 | val[1], 192 | datatype=prov.model.XSD["float"] 193 | if "." in val[1] 194 | else prov.model.XSD["integer"], 195 | ) 196 | for val in stats 197 | } 198 | ) 199 | return e, doc 200 | 201 | 202 | def main(): 203 | import argparse 204 | 205 | parser = argparse.ArgumentParser( 206 | prog="kwyk2nidm", 207 | description=( 208 | "This program will load in the KWYK brain segmentation " 209 | "outputs, augment the KWYK anatomical region designations " 210 | "with common data element anatomical designations, and " 211 | "save the statistics + region designations out as NIDM " 212 | "serializations (i.e. TURTLE, JSON-LD RDF)" 213 | ), 214 | formatter_class=argparse.RawDescriptionHelpFormatter, 215 | ) 216 | 217 | parser.add_argument( 218 | "-f", 219 | "--kwyk_stats", 220 | dest="stats_file", 221 | required=True, 222 | type=str, 223 | help="KWYK stats file", 224 | ) 225 | parser.add_argument( 226 | "-g", 227 | "--gen-nidm", 228 | dest="generate", 229 | action="store_true", 230 | default=False, 231 | help="Generate KWYK CDE graph (KWYK-NIDM.ttl)", 232 | ) 233 | parser.add_argument( 234 | "-o", 235 | "--outfile", 236 | dest="outfile", 237 | type=str, 238 | help="Output name for KWYK NIDM file", 239 | ) 240 | args = parser.parse_args() 241 | stats = read_kwyk_stats(args.stats_file) 242 | _, doc = convert_stats_to_nidm(stats) 243 | outfile = args.outfile 244 | if outfile is None: 245 | outfile = os.path.basename(args.stats_file) + ".ttl" 246 | doc.serialize(outfile, format="rdf", rdf_format="turtle") 247 | if args.generate: 248 | g = create_cde_graph() 249 | g.serialize("KWYK-NIDM.ttl", format="turtle") 250 | 251 | 252 | if __name__ == "__main__": 253 | main() 254 | -------------------------------------------------------------------------------- /kwyk2nidm/mapping_data/kwyk-cdes.json: -------------------------------------------------------------------------------- 1 | { 2 | "count": 98, 3 | "KWYK(structure='Cerebral-White-Matter', measure='number_voxels', unit='voxels')": { 4 | "id": "000001", 5 | "structure_id": 1, 6 | "label": "Cerebral-White-Matter number_voxels (voxels)", 7 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002437", 8 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 9 | "hasUnit": "voxel", 10 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 11 | }, 12 | "KWYK(structure='Cerebral-White-Matter', measure='vol_inmm3', unit='mm^3')": { 13 | "id": "000002", 14 | "structure_id": 1, 15 | "label": "Cerebral-White-Matter vol_inmm3 (mm^3)", 16 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002437", 17 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 18 | "hasUnit": "mm^3", 19 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 20 | }, 21 | "KWYK(structure='Ventricular-System', measure='number_voxels', unit='voxels')": { 22 | "id": "000003", 23 | "structure_id": 2, 24 | "label": "Ventricular-System number_voxels (voxels)", 25 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0005282", 26 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 27 | "hasUnit": "voxel", 28 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 29 | }, 30 | "KWYK(structure='Ventricular-System', measure='vol_inmm3', unit='mm^3')": { 31 | "id": "000004", 32 | "structure_id": 2, 33 | "label": "Ventricular-System vol_inmm3 (mm^3)", 34 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0005282", 35 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 36 | "hasUnit": "mm^3", 37 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 38 | }, 39 | "KWYK(structure='Cerebellum-White-Matter', measure='number_voxels', unit='voxels')": { 40 | "id": "000005", 41 | "structure_id": 3, 42 | "label": "Cerebellum-White-Matter number_voxels (voxels)", 43 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002317", 44 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 45 | "hasUnit": "voxel", 46 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 47 | }, 48 | "KWYK(structure='Cerebellum-White-Matter', measure='vol_inmm3', unit='mm^3')": { 49 | "id": "000006", 50 | "structure_id": 3, 51 | "label": "Cerebellum-White-Matter vol_inmm3 (mm^3)", 52 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002317", 53 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 54 | "hasUnit": "mm^3", 55 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 56 | }, 57 | "KWYK(structure='Cerebellum-Cortex', measure='number_voxels', unit='voxels')": { 58 | "id": "000007", 59 | "structure_id": 4, 60 | "label": "Cerebellum-Cortex number_voxels (voxels)", 61 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002129", 62 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 63 | "hasUnit": "voxel", 64 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 65 | }, 66 | "KWYK(structure='Cerebellum-Cortex', measure='vol_inmm3', unit='mm^3')": { 67 | "id": "000008", 68 | "structure_id": 4, 69 | "label": "Cerebellum-Cortex vol_inmm3 (mm^3)", 70 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002129", 71 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 72 | "hasUnit": "mm^3", 73 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 74 | }, 75 | "KWYK(structure='Thalamus-Proper', measure='number_voxels', unit='voxels')": { 76 | "id": "000009", 77 | "structure_id": 5, 78 | "label": "Thalamus-Proper number_voxels (voxels)", 79 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001897", 80 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 81 | "hasUnit": "voxel", 82 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 83 | }, 84 | "KWYK(structure='Thalamus-Proper', measure='vol_inmm3', unit='mm^3')": { 85 | "id": "000010", 86 | "structure_id": 5, 87 | "label": "Thalamus-Proper vol_inmm3 (mm^3)", 88 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001897", 89 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 90 | "hasUnit": "mm^3", 91 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 92 | }, 93 | "KWYK(structure='Caudate', measure='number_voxels', unit='voxels')": { 94 | "id": "000011", 95 | "structure_id": 6, 96 | "label": "Caudate number_voxels (voxels)", 97 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001873", 98 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 99 | "hasUnit": "voxel", 100 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 101 | }, 102 | "KWYK(structure='Caudate', measure='vol_inmm3', unit='mm^3')": { 103 | "id": "000012", 104 | "structure_id": 6, 105 | "label": "Caudate vol_inmm3 (mm^3)", 106 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001873", 107 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 108 | "hasUnit": "mm^3", 109 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 110 | }, 111 | "KWYK(structure='Putamen', measure='number_voxels', unit='voxels')": { 112 | "id": "000013", 113 | "structure_id": 7, 114 | "label": "Putamen number_voxels (voxels)", 115 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001874", 116 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 117 | "hasUnit": "voxel", 118 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 119 | }, 120 | "KWYK(structure='Putamen', measure='vol_inmm3', unit='mm^3')": { 121 | "id": "000014", 122 | "structure_id": 7, 123 | "label": "Putamen vol_inmm3 (mm^3)", 124 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001874", 125 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 126 | "hasUnit": "mm^3", 127 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 128 | }, 129 | "KWYK(structure='Pallidum', measure='number_voxels', unit='voxels')": { 130 | "id": "000015", 131 | "structure_id": 8, 132 | "label": "Pallidum number_voxels (voxels)", 133 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006514", 134 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 135 | "hasUnit": "voxel", 136 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 137 | }, 138 | "KWYK(structure='Pallidum', measure='vol_inmm3', unit='mm^3')": { 139 | "id": "000016", 140 | "structure_id": 8, 141 | "label": "Pallidum vol_inmm3 (mm^3)", 142 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006514", 143 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 144 | "hasUnit": "mm^3", 145 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 146 | }, 147 | "KWYK(structure='Brain-Stem', measure='number_voxels', unit='voxels')": { 148 | "id": "000017", 149 | "structure_id": 9, 150 | "label": "Brain-Stem number_voxels (voxels)", 151 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002298", 152 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 153 | "hasUnit": "voxel", 154 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 155 | }, 156 | "KWYK(structure='Brain-Stem', measure='vol_inmm3', unit='mm^3')": { 157 | "id": "000018", 158 | "structure_id": 9, 159 | "label": "Brain-Stem vol_inmm3 (mm^3)", 160 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002298", 161 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 162 | "hasUnit": "mm^3", 163 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 164 | }, 165 | "KWYK(structure='Hippocampus', measure='number_voxels', unit='voxels')": { 166 | "id": "000019", 167 | "structure_id": 10, 168 | "label": "Hippocampus number_voxels (voxels)", 169 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001954", 170 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 171 | "hasUnit": "voxel", 172 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 173 | }, 174 | "KWYK(structure='Hippocampus', measure='vol_inmm3', unit='mm^3')": { 175 | "id": "000020", 176 | "structure_id": 10, 177 | "label": "Hippocampus vol_inmm3 (mm^3)", 178 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001954", 179 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 180 | "hasUnit": "mm^3", 181 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 182 | }, 183 | "KWYK(structure='Amygdala', measure='number_voxels', unit='voxels')": { 184 | "id": "000021", 185 | "structure_id": 11, 186 | "label": "Amygdala number_voxels (voxels)", 187 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001876", 188 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 189 | "hasUnit": "voxel", 190 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 191 | }, 192 | "KWYK(structure='Amygdala', measure='vol_inmm3', unit='mm^3')": { 193 | "id": "000022", 194 | "structure_id": 11, 195 | "label": "Amygdala vol_inmm3 (mm^3)", 196 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001876", 197 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 198 | "hasUnit": "mm^3", 199 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 200 | }, 201 | "KWYK(structure='CSF', measure='number_voxels', unit='voxels')": { 202 | "id": "000023", 203 | "structure_id": 12, 204 | "label": "CSF number_voxels (voxels)", 205 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001359", 206 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 207 | "hasUnit": "voxel", 208 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 209 | }, 210 | "KWYK(structure='CSF', measure='vol_inmm3', unit='mm^3')": { 211 | "id": "000024", 212 | "structure_id": 12, 213 | "label": "CSF vol_inmm3 (mm^3)", 214 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001359", 215 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 216 | "hasUnit": "mm^3", 217 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 218 | }, 219 | "KWYK(structure='Accumbens-area', measure='number_voxels', unit='voxels')": { 220 | "id": "000025", 221 | "structure_id": 13, 222 | "label": "Accumbens-area number_voxels (voxels)", 223 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001882", 224 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 225 | "hasUnit": "voxel", 226 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 227 | }, 228 | "KWYK(structure='Accumbens-area', measure='vol_inmm3', unit='mm^3')": { 229 | "id": "000026", 230 | "structure_id": 13, 231 | "label": "Accumbens-area vol_inmm3 (mm^3)", 232 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0001882", 233 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 234 | "hasUnit": "mm^3", 235 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 236 | }, 237 | "KWYK(structure='VentralDC', measure='number_voxels', unit='voxels')": { 238 | "id": "000027", 239 | "structure_id": 14, 240 | "label": "VentralDC number_voxels (voxels)", 241 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 242 | "hasUnit": "voxel", 243 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 244 | }, 245 | "KWYK(structure='VentralDC', measure='vol_inmm3', unit='mm^3')": { 246 | "id": "000028", 247 | "structure_id": 14, 248 | "label": "VentralDC vol_inmm3 (mm^3)", 249 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 250 | "hasUnit": "mm^3", 251 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 252 | }, 253 | "KWYK(structure='Corpus_Callosum', measure='number_voxels', unit='voxels')": { 254 | "id": "000029", 255 | "structure_id": 15, 256 | "label": "Corpus_Callosum number_voxels (voxels)", 257 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002336", 258 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 259 | "hasUnit": "voxel", 260 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 261 | }, 262 | "KWYK(structure='Corpus_Callosum', measure='vol_inmm3', unit='mm^3')": { 263 | "id": "000030", 264 | "structure_id": 15, 265 | "label": "Corpus_Callosum vol_inmm3 (mm^3)", 266 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002336", 267 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 268 | "hasUnit": "mm^3", 269 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 270 | }, 271 | "KWYK(structure='ctx-bankssts', measure='number_voxels', unit='voxels')": { 272 | "id": "000031", 273 | "structure_id": 16, 274 | "label": "ctx-bankssts number_voxels (voxels)", 275 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0028622", 276 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 277 | "hasUnit": "voxel", 278 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 279 | }, 280 | "KWYK(structure='ctx-bankssts', measure='vol_inmm3', unit='mm^3')": { 281 | "id": "000032", 282 | "structure_id": 16, 283 | "label": "ctx-bankssts vol_inmm3 (mm^3)", 284 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0028622", 285 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 286 | "hasUnit": "mm^3", 287 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 288 | }, 289 | "KWYK(structure='ctx-caudalanteriorcingulate', measure='number_voxels', unit='voxels')": { 290 | "id": "000033", 291 | "structure_id": 17, 292 | "label": "ctx-caudalanteriorcingulate number_voxels (voxels)", 293 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0028715", 294 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 295 | "hasUnit": "voxel", 296 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 297 | }, 298 | "KWYK(structure='ctx-caudalanteriorcingulate', measure='vol_inmm3', unit='mm^3')": { 299 | "id": "000034", 300 | "structure_id": 17, 301 | "label": "ctx-caudalanteriorcingulate vol_inmm3 (mm^3)", 302 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0028715", 303 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 304 | "hasUnit": "mm^3", 305 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 306 | }, 307 | "KWYK(structure='ctx-caudalmiddlefrontal', measure='number_voxels', unit='voxels')": { 308 | "id": "000035", 309 | "structure_id": 18, 310 | "label": "ctx-caudalmiddlefrontal number_voxels (voxels)", 311 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006445", 312 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 313 | "hasUnit": "voxel", 314 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 315 | }, 316 | "KWYK(structure='ctx-caudalmiddlefrontal', measure='vol_inmm3', unit='mm^3')": { 317 | "id": "000036", 318 | "structure_id": 18, 319 | "label": "ctx-caudalmiddlefrontal vol_inmm3 (mm^3)", 320 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006445", 321 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 322 | "hasUnit": "mm^3", 323 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 324 | }, 325 | "KWYK(structure='ctx-cuneus', measure='number_voxels', unit='voxels')": { 326 | "id": "000037", 327 | "structure_id": 19, 328 | "label": "ctx-cuneus number_voxels (voxels)", 329 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006092", 330 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 331 | "hasUnit": "voxel", 332 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 333 | }, 334 | "KWYK(structure='ctx-cuneus', measure='vol_inmm3', unit='mm^3')": { 335 | "id": "000038", 336 | "structure_id": 19, 337 | "label": "ctx-cuneus vol_inmm3 (mm^3)", 338 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006092", 339 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 340 | "hasUnit": "mm^3", 341 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 342 | }, 343 | "KWYK(structure='ctx-entorhinal', measure='number_voxels', unit='voxels')": { 344 | "id": "000039", 345 | "structure_id": 20, 346 | "label": "ctx-entorhinal number_voxels (voxels)", 347 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002728", 348 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 349 | "hasUnit": "voxel", 350 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 351 | }, 352 | "KWYK(structure='ctx-entorhinal', measure='vol_inmm3', unit='mm^3')": { 353 | "id": "000040", 354 | "structure_id": 20, 355 | "label": "ctx-entorhinal vol_inmm3 (mm^3)", 356 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002728", 357 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 358 | "hasUnit": "mm^3", 359 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 360 | }, 361 | "KWYK(structure='ctx-fusiform', measure='number_voxels', unit='voxels')": { 362 | "id": "000041", 363 | "structure_id": 21, 364 | "label": "ctx-fusiform number_voxels (voxels)", 365 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002766", 366 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 367 | "hasUnit": "voxel", 368 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 369 | }, 370 | "KWYK(structure='ctx-fusiform', measure='vol_inmm3', unit='mm^3')": { 371 | "id": "000042", 372 | "structure_id": 21, 373 | "label": "ctx-fusiform vol_inmm3 (mm^3)", 374 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002766", 375 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 376 | "hasUnit": "mm^3", 377 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 378 | }, 379 | "KWYK(structure='ctx-inferiorparietal', measure='number_voxels', unit='voxels')": { 380 | "id": "000043", 381 | "structure_id": 22, 382 | "label": "ctx-inferiorparietal number_voxels (voxels)", 383 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006088", 384 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 385 | "hasUnit": "voxel", 386 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 387 | }, 388 | "KWYK(structure='ctx-inferiorparietal', measure='vol_inmm3', unit='mm^3')": { 389 | "id": "000044", 390 | "structure_id": 22, 391 | "label": "ctx-inferiorparietal vol_inmm3 (mm^3)", 392 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006088", 393 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 394 | "hasUnit": "mm^3", 395 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 396 | }, 397 | "KWYK(structure='ctx-inferiortemporal', measure='number_voxels', unit='voxels')": { 398 | "id": "000045", 399 | "structure_id": 23, 400 | "label": "ctx-inferiortemporal number_voxels (voxels)", 401 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002751", 402 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 403 | "hasUnit": "voxel", 404 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 405 | }, 406 | "KWYK(structure='ctx-inferiortemporal', measure='vol_inmm3', unit='mm^3')": { 407 | "id": "000046", 408 | "structure_id": 23, 409 | "label": "ctx-inferiortemporal vol_inmm3 (mm^3)", 410 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002751", 411 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 412 | "hasUnit": "mm^3", 413 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 414 | }, 415 | "KWYK(structure='ctx-isthmuscingulate', measure='number_voxels', unit='voxels')": { 416 | "id": "000047", 417 | "structure_id": 24, 418 | "label": "ctx-isthmuscingulate number_voxels (voxels)", 419 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0027061", 420 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 421 | "hasUnit": "voxel", 422 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 423 | }, 424 | "KWYK(structure='ctx-isthmuscingulate', measure='vol_inmm3', unit='mm^3')": { 425 | "id": "000048", 426 | "structure_id": 24, 427 | "label": "ctx-isthmuscingulate vol_inmm3 (mm^3)", 428 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0027061", 429 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 430 | "hasUnit": "mm^3", 431 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 432 | }, 433 | "KWYK(structure='ctx-lateraloccipital', measure='number_voxels', unit='voxels')": { 434 | "id": "000049", 435 | "structure_id": 25, 436 | "label": "ctx-lateraloccipital number_voxels (voxels)", 437 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006114", 438 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 439 | "hasUnit": "voxel", 440 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 441 | }, 442 | "KWYK(structure='ctx-lateraloccipital', measure='vol_inmm3', unit='mm^3')": { 443 | "id": "000050", 444 | "structure_id": 25, 445 | "label": "ctx-lateraloccipital vol_inmm3 (mm^3)", 446 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006114", 447 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 448 | "hasUnit": "mm^3", 449 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 450 | }, 451 | "KWYK(structure='ctx-lateralorbitofrontal', measure='number_voxels', unit='voxels')": { 452 | "id": "000051", 453 | "structure_id": 26, 454 | "label": "ctx-lateralorbitofrontal number_voxels (voxels)", 455 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022716", 456 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 457 | "hasUnit": "voxel", 458 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 459 | }, 460 | "KWYK(structure='ctx-lateralorbitofrontal', measure='vol_inmm3', unit='mm^3')": { 461 | "id": "000052", 462 | "structure_id": 26, 463 | "label": "ctx-lateralorbitofrontal vol_inmm3 (mm^3)", 464 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022716", 465 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 466 | "hasUnit": "mm^3", 467 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 468 | }, 469 | "KWYK(structure='ctx-lingual', measure='number_voxels', unit='voxels')": { 470 | "id": "000053", 471 | "structure_id": 27, 472 | "label": "ctx-lingual number_voxels (voxels)", 473 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002943", 474 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 475 | "hasUnit": "voxel", 476 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 477 | }, 478 | "KWYK(structure='ctx-lingual', measure='vol_inmm3', unit='mm^3')": { 479 | "id": "000054", 480 | "structure_id": 27, 481 | "label": "ctx-lingual vol_inmm3 (mm^3)", 482 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002943", 483 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 484 | "hasUnit": "mm^3", 485 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 486 | }, 487 | "KWYK(structure='ctx-medialorbitofrontal', measure='number_voxels', unit='voxels')": { 488 | "id": "000055", 489 | "structure_id": 28, 490 | "label": "ctx-medialorbitofrontal number_voxels (voxels)", 491 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022352", 492 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 493 | "hasUnit": "voxel", 494 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 495 | }, 496 | "KWYK(structure='ctx-medialorbitofrontal', measure='vol_inmm3', unit='mm^3')": { 497 | "id": "000056", 498 | "structure_id": 28, 499 | "label": "ctx-medialorbitofrontal vol_inmm3 (mm^3)", 500 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022352", 501 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 502 | "hasUnit": "mm^3", 503 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 504 | }, 505 | "KWYK(structure='ctx-middletemporal', measure='number_voxels', unit='voxels')": { 506 | "id": "000057", 507 | "structure_id": 29, 508 | "label": "ctx-middletemporal number_voxels (voxels)", 509 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002771", 510 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 511 | "hasUnit": "voxel", 512 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 513 | }, 514 | "KWYK(structure='ctx-middletemporal', measure='vol_inmm3', unit='mm^3')": { 515 | "id": "000058", 516 | "structure_id": 29, 517 | "label": "ctx-middletemporal vol_inmm3 (mm^3)", 518 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002771", 519 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 520 | "hasUnit": "mm^3", 521 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 522 | }, 523 | "KWYK(structure='ctx-parahippocampal', measure='number_voxels', unit='voxels')": { 524 | "id": "000059", 525 | "structure_id": 30, 526 | "label": "ctx-parahippocampal number_voxels (voxels)", 527 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002973", 528 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 529 | "hasUnit": "voxel", 530 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 531 | }, 532 | "KWYK(structure='ctx-parahippocampal', measure='vol_inmm3', unit='mm^3')": { 533 | "id": "000060", 534 | "structure_id": 30, 535 | "label": "ctx-parahippocampal vol_inmm3 (mm^3)", 536 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002973", 537 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 538 | "hasUnit": "mm^3", 539 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 540 | }, 541 | "KWYK(structure='ctx-paracentral', measure='number_voxels', unit='voxels')": { 542 | "id": "000061", 543 | "structure_id": 31, 544 | "label": "ctx-paracentral number_voxels (voxels)", 545 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0007190", 546 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 547 | "hasUnit": "voxel", 548 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 549 | }, 550 | "KWYK(structure='ctx-paracentral', measure='vol_inmm3', unit='mm^3')": { 551 | "id": "000062", 552 | "structure_id": 31, 553 | "label": "ctx-paracentral vol_inmm3 (mm^3)", 554 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0007190", 555 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 556 | "hasUnit": "mm^3", 557 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 558 | }, 559 | "KWYK(structure='ctx-parsopercularis', measure='number_voxels', unit='voxels')": { 560 | "id": "000063", 561 | "structure_id": 32, 562 | "label": "ctx-parsopercularis number_voxels (voxels)", 563 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002980", 564 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 565 | "hasUnit": "voxel", 566 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 567 | }, 568 | "KWYK(structure='ctx-parsopercularis', measure='vol_inmm3', unit='mm^3')": { 569 | "id": "000064", 570 | "structure_id": 32, 571 | "label": "ctx-parsopercularis vol_inmm3 (mm^3)", 572 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002980", 573 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 574 | "hasUnit": "mm^3", 575 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 576 | }, 577 | "KWYK(structure='ctx-parsorbitalis', measure='number_voxels', unit='voxels')": { 578 | "id": "000065", 579 | "structure_id": 33, 580 | "label": "ctx-parsorbitalis number_voxels (voxels)", 581 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002593", 582 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 583 | "hasUnit": "voxel", 584 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 585 | }, 586 | "KWYK(structure='ctx-parsorbitalis', measure='vol_inmm3', unit='mm^3')": { 587 | "id": "000066", 588 | "structure_id": 33, 589 | "label": "ctx-parsorbitalis vol_inmm3 (mm^3)", 590 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002593", 591 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 592 | "hasUnit": "mm^3", 593 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 594 | }, 595 | "KWYK(structure='ctx-parstriangularis', measure='number_voxels', unit='voxels')": { 596 | "id": "000067", 597 | "structure_id": 34, 598 | "label": "ctx-parstriangularis number_voxels (voxels)", 599 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002629", 600 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 601 | "hasUnit": "voxel", 602 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 603 | }, 604 | "KWYK(structure='ctx-parstriangularis', measure='vol_inmm3', unit='mm^3')": { 605 | "id": "000068", 606 | "structure_id": 34, 607 | "label": "ctx-parstriangularis vol_inmm3 (mm^3)", 608 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002629", 609 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 610 | "hasUnit": "mm^3", 611 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 612 | }, 613 | "KWYK(structure='ctx-pericalcarine', measure='number_voxels', unit='voxels')": { 614 | "id": "000069", 615 | "structure_id": 35, 616 | "label": "ctx-pericalcarine number_voxels (voxels)", 617 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022534", 618 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 619 | "hasUnit": "voxel", 620 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 621 | }, 622 | "KWYK(structure='ctx-pericalcarine', measure='vol_inmm3', unit='mm^3')": { 623 | "id": "000070", 624 | "structure_id": 35, 625 | "label": "ctx-pericalcarine vol_inmm3 (mm^3)", 626 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022534", 627 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 628 | "hasUnit": "mm^3", 629 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 630 | }, 631 | "KWYK(structure='ctx-postcentral', measure='number_voxels', unit='voxels')": { 632 | "id": "000071", 633 | "structure_id": 36, 634 | "label": "ctx-postcentral number_voxels (voxels)", 635 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002581", 636 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 637 | "hasUnit": "voxel", 638 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 639 | }, 640 | "KWYK(structure='ctx-postcentral', measure='vol_inmm3', unit='mm^3')": { 641 | "id": "000072", 642 | "structure_id": 36, 643 | "label": "ctx-postcentral vol_inmm3 (mm^3)", 644 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002581", 645 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 646 | "hasUnit": "mm^3", 647 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 648 | }, 649 | "KWYK(structure='ctx-posteriorcingulate', measure='number_voxels', unit='voxels')": { 650 | "id": "000073", 651 | "structure_id": 37, 652 | "label": "ctx-posteriorcingulate number_voxels (voxels)", 653 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002740", 654 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 655 | "hasUnit": "voxel", 656 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 657 | }, 658 | "KWYK(structure='ctx-posteriorcingulate', measure='vol_inmm3', unit='mm^3')": { 659 | "id": "000074", 660 | "structure_id": 37, 661 | "label": "ctx-posteriorcingulate vol_inmm3 (mm^3)", 662 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002740", 663 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 664 | "hasUnit": "mm^3", 665 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 666 | }, 667 | "KWYK(structure='ctx-precentral', measure='number_voxels', unit='voxels')": { 668 | "id": "000075", 669 | "structure_id": 38, 670 | "label": "ctx-precentral number_voxels (voxels)", 671 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002703", 672 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 673 | "hasUnit": "voxel", 674 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 675 | }, 676 | "KWYK(structure='ctx-precentral', measure='vol_inmm3', unit='mm^3')": { 677 | "id": "000076", 678 | "structure_id": 38, 679 | "label": "ctx-precentral vol_inmm3 (mm^3)", 680 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002703", 681 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 682 | "hasUnit": "mm^3", 683 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 684 | }, 685 | "KWYK(structure='ctx-precuneus', measure='number_voxels', unit='voxels')": { 686 | "id": "000077", 687 | "structure_id": 39, 688 | "label": "ctx-precuneus number_voxels (voxels)", 689 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006093", 690 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 691 | "hasUnit": "voxel", 692 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 693 | }, 694 | "KWYK(structure='ctx-precuneus', measure='vol_inmm3', unit='mm^3')": { 695 | "id": "000078", 696 | "structure_id": 39, 697 | "label": "ctx-precuneus vol_inmm3 (mm^3)", 698 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006093", 699 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 700 | "hasUnit": "mm^3", 701 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 702 | }, 703 | "KWYK(structure='ctx-rostralanteriorcingulate', measure='number_voxels', unit='voxels')": { 704 | "id": "000079", 705 | "structure_id": 40, 706 | "label": "ctx-rostralanteriorcingulate number_voxels (voxels)", 707 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022438", 708 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 709 | "hasUnit": "voxel", 710 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 711 | }, 712 | "KWYK(structure='ctx-rostralanteriorcingulate', measure='vol_inmm3', unit='mm^3')": { 713 | "id": "000080", 714 | "structure_id": 40, 715 | "label": "ctx-rostralanteriorcingulate vol_inmm3 (mm^3)", 716 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0022438", 717 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 718 | "hasUnit": "mm^3", 719 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 720 | }, 721 | "KWYK(structure='ctx-rostralmiddlefrontal', measure='number_voxels', unit='voxels')": { 722 | "id": "000081", 723 | "structure_id": 41, 724 | "label": "ctx-rostralmiddlefrontal number_voxels (voxels)", 725 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006446", 726 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 727 | "hasUnit": "voxel", 728 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 729 | }, 730 | "KWYK(structure='ctx-rostralmiddlefrontal', measure='vol_inmm3', unit='mm^3')": { 731 | "id": "000082", 732 | "structure_id": 41, 733 | "label": "ctx-rostralmiddlefrontal vol_inmm3 (mm^3)", 734 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006446", 735 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 736 | "hasUnit": "mm^3", 737 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 738 | }, 739 | "KWYK(structure='ctx-superiorfrontal', measure='number_voxels', unit='voxels')": { 740 | "id": "000083", 741 | "structure_id": 42, 742 | "label": "ctx-superiorfrontal number_voxels (voxels)", 743 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002661", 744 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 745 | "hasUnit": "voxel", 746 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 747 | }, 748 | "KWYK(structure='ctx-superiorfrontal', measure='vol_inmm3', unit='mm^3')": { 749 | "id": "000084", 750 | "structure_id": 42, 751 | "label": "ctx-superiorfrontal vol_inmm3 (mm^3)", 752 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002661", 753 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 754 | "hasUnit": "mm^3", 755 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 756 | }, 757 | "KWYK(structure='ctx-superiorparietal', measure='number_voxels', unit='voxels')": { 758 | "id": "000085", 759 | "structure_id": 43, 760 | "label": "ctx-superiorparietal number_voxels (voxels)", 761 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006094", 762 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 763 | "hasUnit": "voxel", 764 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 765 | }, 766 | "KWYK(structure='ctx-superiorparietal', measure='vol_inmm3', unit='mm^3')": { 767 | "id": "000086", 768 | "structure_id": 43, 769 | "label": "ctx-superiorparietal vol_inmm3 (mm^3)", 770 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0006094", 771 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 772 | "hasUnit": "mm^3", 773 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 774 | }, 775 | "KWYK(structure='ctx-superiortemporal', measure='number_voxels', unit='voxels')": { 776 | "id": "000087", 777 | "structure_id": 44, 778 | "label": "ctx-superiortemporal number_voxels (voxels)", 779 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002769", 780 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 781 | "hasUnit": "voxel", 782 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 783 | }, 784 | "KWYK(structure='ctx-superiortemporal', measure='vol_inmm3', unit='mm^3')": { 785 | "id": "000088", 786 | "structure_id": 44, 787 | "label": "ctx-superiortemporal vol_inmm3 (mm^3)", 788 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002769", 789 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 790 | "hasUnit": "mm^3", 791 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 792 | }, 793 | "KWYK(structure='ctx-supramarginal', measure='number_voxels', unit='voxels')": { 794 | "id": "000089", 795 | "structure_id": 45, 796 | "label": "ctx-supramarginal number_voxels (voxels)", 797 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002688", 798 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 799 | "hasUnit": "voxel", 800 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 801 | }, 802 | "KWYK(structure='ctx-supramarginal', measure='vol_inmm3', unit='mm^3')": { 803 | "id": "000090", 804 | "structure_id": 45, 805 | "label": "ctx-supramarginal vol_inmm3 (mm^3)", 806 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002688", 807 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 808 | "hasUnit": "mm^3", 809 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 810 | }, 811 | "KWYK(structure='ctx-frontalpole', measure='number_voxels', unit='voxels')": { 812 | "id": "000091", 813 | "structure_id": 46, 814 | "label": "ctx-frontalpole number_voxels (voxels)", 815 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002795", 816 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 817 | "hasUnit": "voxel", 818 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 819 | }, 820 | "KWYK(structure='ctx-frontalpole', measure='vol_inmm3', unit='mm^3')": { 821 | "id": "000092", 822 | "structure_id": 46, 823 | "label": "ctx-frontalpole vol_inmm3 (mm^3)", 824 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002795", 825 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 826 | "hasUnit": "mm^3", 827 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 828 | }, 829 | "KWYK(structure='ctx-temporalpole', measure='number_voxels', unit='voxels')": { 830 | "id": "000093", 831 | "structure_id": 47, 832 | "label": "ctx-temporalpole number_voxels (voxels)", 833 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002576", 834 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 835 | "hasUnit": "voxel", 836 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 837 | }, 838 | "KWYK(structure='ctx-temporalpole', measure='vol_inmm3', unit='mm^3')": { 839 | "id": "000094", 840 | "structure_id": 47, 841 | "label": "ctx-temporalpole vol_inmm3 (mm^3)", 842 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0002576", 843 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 844 | "hasUnit": "mm^3", 845 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 846 | }, 847 | "KWYK(structure='ctx-transversetemporal', measure='number_voxels', unit='voxels')": { 848 | "id": "000095", 849 | "structure_id": 48, 850 | "label": "ctx-transversetemporal number_voxels (voxels)", 851 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0003939", 852 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 853 | "hasUnit": "voxel", 854 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 855 | }, 856 | "KWYK(structure='ctx-transversetemporal', measure='vol_inmm3', unit='mm^3')": { 857 | "id": "000096", 858 | "structure_id": 48, 859 | "label": "ctx-transversetemporal vol_inmm3 (mm^3)", 860 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0003939", 861 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 862 | "hasUnit": "mm^3", 863 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 864 | }, 865 | "KWYK(structure='ctx-insula', measure='number_voxels', unit='voxels')": { 866 | "id": "000097", 867 | "structure_id": 49, 868 | "label": "ctx-insula number_voxels (voxels)", 869 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0034891", 870 | "datumType": "http://uri.interlex.org/base/ilx_0102597", 871 | "hasUnit": "voxel", 872 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 873 | }, 874 | "KWYK(structure='ctx-insula', measure='vol_inmm3', unit='mm^3')": { 875 | "id": "000098", 876 | "structure_id": 49, 877 | "label": "ctx-insula vol_inmm3 (mm^3)", 878 | "isAbout": "http://purl.obolibrary.org/obo/UBERON_0034891", 879 | "datumType": "http://uri.interlex.org/base/ilx_0738276", 880 | "hasUnit": "mm^3", 881 | "measureOf": "http://uri.interlex.org/base/ilx_0112559" 882 | } 883 | } 884 | --------------------------------------------------------------------------------