subcortex-visualization 1.2.0__tar.gz → 1.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {subcortex_visualization-1.2.0/subcortex_visualization.egg-info → subcortex_visualization-1.2.1}/PKG-INFO +44 -19
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/README.md +43 -18
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/pyproject.toml +1 -1
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/setup.py +1 -1
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/segmentation.py +6 -15
- subcortex_visualization-1.2.1/subcortex_visualization/utils.py +45 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1/subcortex_visualization.egg-info}/PKG-INFO +44 -19
- subcortex_visualization-1.2.0/subcortex_visualization/utils.py +0 -20
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/LICENSE.txt +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/MANIFEST.in +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/setup.cfg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/__init__.py +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/AICHA_subcortex.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/AICHA_subcortex_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Brainnetome_subcortex.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Brainnetome_subcortex_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Melbourne_S1_subcortex.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Melbourne_S1_subcortex_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Melbourne_S2_subcortex.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Melbourne_S2_subcortex_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Melbourne_S3_subcortex.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Melbourne_S3_subcortex_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Melbourne_S4_subcortex.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Melbourne_S4_subcortex_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/SUIT_cerebellar_lobule.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/SUIT_cerebellar_lobule_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Thalamus_Nuclei_HCP.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/Thalamus_Nuclei_HCP_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/__init__.py +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/aseg_subcortex.nii.gz +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/atlases/aseg_subcortex_lookup.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/AICHA_L.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/AICHA_L_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/AICHA_R.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/AICHA_R_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/AICHA_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/AICHA_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Brainnetome_L.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Brainnetome_L_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Brainnetome_R.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Brainnetome_R_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Brainnetome_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Brainnetome_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S1_L.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S1_L_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S1_R.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S1_R_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S1_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S1_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S2_L.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S2_L_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S2_R.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S2_R_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S2_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S2_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S3_L.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S3_L_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S3_R.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S3_R_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S3_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S3_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S4_L.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S4_L_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S4_R.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S4_R_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S4_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Melbourne_S4_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/SUIT_cerebellar_lobule_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/SUIT_cerebellar_lobule_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Thalamus_Nuclei_HCP_L.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Thalamus_Nuclei_HCP_L_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Thalamus_Nuclei_HCP_R.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Thalamus_Nuclei_HCP_R_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Thalamus_Nuclei_HCP_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/Thalamus_Nuclei_HCP_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/__init__.py +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/aseg_L.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/aseg_L_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/aseg_R.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/aseg_R_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/aseg_both.svg +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/data/aseg_both_ordering.csv +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/plotting.py +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization.egg-info/SOURCES.txt +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization.egg-info/dependency_links.txt +0 -0
- {subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: subcortex_visualization
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: A package to visualize subcortical and cerebellar brain data in two dimensions.
|
|
5
5
|
Author: Annie G. Bryant
|
|
6
6
|
Author-email: "Annie G. Bryant" <anniegbryant@gmail.com>
|
|
@@ -23,9 +23,9 @@ License-File: LICENSE.txt
|
|
|
23
23
|
Dynamic: author
|
|
24
24
|
Dynamic: license-file
|
|
25
25
|
|
|
26
|
-
#
|
|
26
|
+
# subcortex_visualization: A toolbox for custom data visualization in the subcortex and cerebellum
|
|
27
27
|
|
|
28
|
-
[](https://doi.org/10.64898/2026.01.23.699785)
|
|
29
29
|
|
|
30
30
|
This package (implemented in Python and R) currently includes the following nine subcortical and cerebellar atlases for data visualization in two-dimensional vector graphics:
|
|
31
31
|
|
|
@@ -36,11 +36,11 @@ More information about these atlases, including the process of rendering the sur
|
|
|
36
36
|
## 🙋♀️ Motivation
|
|
37
37
|
|
|
38
38
|
This visualization package was created to generate two-dimensional subcortex images in the style of the popular [`ggseg` package](https://github.com/ggseg/ggseg) in R.
|
|
39
|
-
We based our vector graphic outlines on the three-dimensional subcortical meshes either (1) provided as part of the [ENIGMA toolbox](https://github.com/MICA-MNI/ENIGMA) for the aseg atlas or (2) meshes generated in-house using rendering software from [Chris Rorden's lab](https://github.com/neurolabusc) ([Surf Ice](https://github.com/neurolabusc/surf-ice); check out [`custom_segmentation_pipeline/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/
|
|
39
|
+
We based our vector graphic outlines on the three-dimensional subcortical meshes either (1) provided as part of the [ENIGMA toolbox](https://github.com/MICA-MNI/ENIGMA) for the aseg atlas or (2) meshes generated in-house using rendering software from [Chris Rorden's lab](https://github.com/neurolabusc) ([Surf Ice](https://github.com/neurolabusc/surf-ice); check out [`custom_segmentation_pipeline/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/custom_segmentation) or the [project website page](https://anniegbryant.github.io/subcortex_visualization/custom_segmentation/) for more information).
|
|
40
40
|
|
|
41
41
|
The below graphic summarizes the transformation from 3D volumetric meshes to 2D surfaces, starting from the [Melbourne Subcortex Atlas](https://github.com/yetianmed/subcortex/tree/master) as published in [Tian et al. (2020)](https://www.nature.com/articles/s41593-020-00711-6) at the 'S1' resolution.
|
|
42
42
|
|
|
43
|
-
<img src="docs-site/docs/images/Melbourne_S1_subcortical_atlas_info.png" width="
|
|
43
|
+
<img src="docs-site/docs/images/Melbourne_S1_subcortical_atlas_info.png" width="50%">
|
|
44
44
|
|
|
45
45
|
While [`ggseg`](https://github.com/ggseg/ggseg) offers subcortical plotting with the `aseg` atlas, it is [not currently possible](https://github.com/ggseg/ggseg/issues/104) to show data from all seven subcortical regions (accumbens, amygdala, caudate, hippocampus, pallidum, putamen, thalamus) in the same figure.
|
|
46
46
|
Moreover, there is currently no other software available to visualize any of the other above subcortical, thalamic, or cerebellar atlases in two dimensions with real data, motivating the development of this package.
|
|
@@ -89,12 +89,12 @@ plot_subcortical_data(hemisphere='L', cmap='plasma',
|
|
|
89
89
|
fill_title = "Subcortical region index")
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
<img src="docs-site/docs/images/example_aseg_subcortex_plot.png" width="
|
|
92
|
+
<img src="docs-site/docs/images/example_aseg_subcortex_plot.png" width="60%">
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
### 📚 Tutorial
|
|
96
96
|
|
|
97
|
-
For a guide that goes through all the functionality and atlases available in this package, we compiled a simple walkthrough tutorial in [tutorial.ipynb](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial.ipynb).
|
|
97
|
+
For a guide that goes through all the functionality and atlases available in this package, we compiled a simple walkthrough tutorial in Python ([tutorial.ipynb](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial.ipynb)) and R ([tutorial_R.md](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial_R.md)).
|
|
98
98
|
To plot real data in the subcortex, your `subcortex_data` should be a Python `pandas.DataFrame` or an R `data.frame` structured as follows (here we've just assigned an integer index to each region):
|
|
99
99
|
|
|
100
100
|
| region | value | Hemisphere |
|
|
@@ -141,11 +141,11 @@ plot_subcortical_data(subcortex_data=example_continuous_data, atlas='aseg',
|
|
|
141
141
|
cmap=white_blue_red_cmap, midpoint=0)
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
-
<img src="docs-site/docs/images/example_aseg_subcortex_normdist.png" width="
|
|
144
|
+
<img src="docs-site/docs/images/example_aseg_subcortex_normdist.png" width="75%">
|
|
145
145
|
|
|
146
|
-
### Available atlases
|
|
146
|
+
### 🗺️ Available atlases
|
|
147
147
|
|
|
148
|
-
The following
|
|
148
|
+
The following subcortical and cerebellar atlases are currently supported with more information at the [project website](https://anniegbryant.github.io/subcortex_visualization/atlas_info/):
|
|
149
149
|
|
|
150
150
|
* `aseg`: The `aseg` parcellation atlas from FreeSurfer
|
|
151
151
|
* `Melbourne_S1`: The Melbourne Subcortex Atlas at granularity level S1, from [Tian et al. *Nature Neuroscience* (2020)](https://www.nature.com/articles/s41593-020-00711-6)
|
|
@@ -157,10 +157,17 @@ The following nine subcortical atlases are currently supported with more informa
|
|
|
157
157
|
* `Thalamus_Nuclei_HCP`: The thalamic nuclei atlas derived from HCP data, from [Najdenovska et al. *Scientific Data* (2018)](https://www.nature.com/articles/sdata2018270)
|
|
158
158
|
* `SUIT`: The SUIT cerebellum atlas, from [Diedrichsen *Neuroimage* (2006)](https://doi.org/10.1016/j.neuroimage.2006.05.056)
|
|
159
159
|
|
|
160
|
+
### 🌟 Atlas wishlist
|
|
161
|
+
|
|
162
|
+
These atlases are on the 'vision board' for me to add to the package next (community pull requests absolutely welcome to incorporate these in the meantime):
|
|
163
|
+
|
|
164
|
+
* Thalamus-Optimized Multi-Atlas Segmentation (THOMAS) atlas: High-resolution segmentation of thalamic nuclei ([file link](https://zenodo.org/records/5499504)), recently expanded to all deep grey nuclei as described in [Saranathan et al. (2025)](https://doi.org/10.1002/hbm.70350)
|
|
165
|
+
* Brainstem (suggested by [@RaviBot](https://github.com/RaviBot)): Brainstem Navigator atlas ([file link](https://www.nitrc.org/projects/brainstemnavig)), as described in [Bianciardi et al. (2015)](https://doi.org/10.1089/brain.2015.0347)
|
|
166
|
+
* CIT168 Reinforcement Learning Atlas (suggested by [@GalKepler](https://github.com/GalKepler)): Subcortical atlas ([file link](https://osf.io/jkzwp/wiki)) that includes the principal nuclei involved in reinforcement learning, as described in [Pauli et al. (2018)](https://doi.org/10.1038/sdata.2018.63)
|
|
160
167
|
|
|
161
168
|
## 💡 Want to generate your own mesh and/or parcellation?
|
|
162
169
|
|
|
163
|
-
<img src="docs-site/docs/images/custom_vector_method.png" width="
|
|
170
|
+
<img src="docs-site/docs/images/custom_vector_method.png" width="60%">
|
|
164
171
|
|
|
165
172
|
This package provides nine subcortical, thalamic, and cerebellar atlases as a starting point.
|
|
166
173
|
The workflow can readily be extended to your favorite segmentation atlas, though!
|
|
@@ -168,21 +175,39 @@ We have a dedicated folder for a custom segmentation pipeline that will walk you
|
|
|
168
175
|
1. Rendering a series of triangulated surface meshes from your parcellation atlas (starting from a .nii.gz volume), using the [`surfice_atlas`](https://github.com/neurolabusc/surfice_atlas) software, both developed by [Chris Rorden's lab](https://github.com/rordenlab); and
|
|
169
176
|
2. Tracing the outline of each region in the rendered mesh in vector graphic editing software (we use Inkscape in the tutorial as a powerful and free option), to yield a two-dimensional image of your atlas in scalable vector graphic (.svg) format.
|
|
170
177
|
|
|
171
|
-
Check out the walkthrough in the [`
|
|
178
|
+
Check out the walkthrough in the [`custom_segmentation/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/custom_segmentation) folder or the [project website page](https://anniegbryant.github.io/subcortex_visualization/custom_segmentation/) for more information on how to render your own volumetric segmentation with an interactive mesh and convert to a two-dimensional vector graphic that can be integrated with this package.
|
|
172
179
|
|
|
173
|
-
##
|
|
180
|
+
## 🔗 Citing this package
|
|
174
181
|
|
|
175
|
-
|
|
182
|
+
If you use this package in a scientific publication, blog post, etc., please read and cite the [associated preprint](https://www.biorxiv.org/content/10.64898/2026.01.23.699785):
|
|
176
183
|
|
|
177
|
-
|
|
184
|
+
* 📕 Bryant, Annie G. (2026). Subcortex visualization: A toolbox for custom data visualization in the subcortex and cerebellum. *bioRxiv*, 2026-01. doi:10.64898/2026.01.23.699785.
|
|
178
185
|
|
|
179
|
-
|
|
186
|
+
<details closed>
|
|
187
|
+
<summary>Click here for a BibTex reference:</summary>
|
|
180
188
|
|
|
181
|
-
|
|
189
|
+
```
|
|
190
|
+
@article{bryant2026subcortex,
|
|
191
|
+
title = {Subcortex visualization: A toolbox for custom data visualization in the subcortex and cerebellum},
|
|
192
|
+
url = {https://www.biorxiv.org/content/10.64898/2026.01.23.699785},
|
|
193
|
+
doi = {10.64898/2026.01.23.699785},
|
|
194
|
+
journal = {bioRxiv},
|
|
195
|
+
publisher={Cold Spring Harbor Laboratory},
|
|
196
|
+
author = {Bryant, Annie G.},
|
|
197
|
+
pages = {2026--01},
|
|
198
|
+
year = {2026}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
</details>
|
|
203
|
+
|
|
204
|
+
## 🙏 Acknowledgments
|
|
182
205
|
|
|
183
|
-
|
|
206
|
+
Thank you very much to [Sidhant Chopra](https://github.com/sidchop), [Chris Rorden](https://github.com/rordenlab), [Justine Hansen](https://github.com/justinehansen), and [Ye Tian](https://github.com/yetianmed) for their suggestions and continued development of open tools for neuroimaging visualization that enabled the development of this project!
|
|
184
207
|
|
|
185
|
-
|
|
208
|
+
We're also very grateful for ongoing contributions from members of the GitHub community:
|
|
209
|
+
|
|
210
|
+
[](https://github.com/anniegbryant/subcortex_visualization/graphs/contributors)
|
|
186
211
|
|
|
187
212
|
## ❓📧 Questions, comments, or suggestions always welcome!
|
|
188
213
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# subcortex_visualization: A toolbox for custom data visualization in the subcortex and cerebellum
|
|
2
2
|
|
|
3
|
-
[](https://doi.org/10.64898/2026.01.23.699785)
|
|
4
4
|
|
|
5
5
|
This package (implemented in Python and R) currently includes the following nine subcortical and cerebellar atlases for data visualization in two-dimensional vector graphics:
|
|
6
6
|
|
|
@@ -11,11 +11,11 @@ More information about these atlases, including the process of rendering the sur
|
|
|
11
11
|
## 🙋♀️ Motivation
|
|
12
12
|
|
|
13
13
|
This visualization package was created to generate two-dimensional subcortex images in the style of the popular [`ggseg` package](https://github.com/ggseg/ggseg) in R.
|
|
14
|
-
We based our vector graphic outlines on the three-dimensional subcortical meshes either (1) provided as part of the [ENIGMA toolbox](https://github.com/MICA-MNI/ENIGMA) for the aseg atlas or (2) meshes generated in-house using rendering software from [Chris Rorden's lab](https://github.com/neurolabusc) ([Surf Ice](https://github.com/neurolabusc/surf-ice); check out [`custom_segmentation_pipeline/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/
|
|
14
|
+
We based our vector graphic outlines on the three-dimensional subcortical meshes either (1) provided as part of the [ENIGMA toolbox](https://github.com/MICA-MNI/ENIGMA) for the aseg atlas or (2) meshes generated in-house using rendering software from [Chris Rorden's lab](https://github.com/neurolabusc) ([Surf Ice](https://github.com/neurolabusc/surf-ice); check out [`custom_segmentation_pipeline/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/custom_segmentation) or the [project website page](https://anniegbryant.github.io/subcortex_visualization/custom_segmentation/) for more information).
|
|
15
15
|
|
|
16
16
|
The below graphic summarizes the transformation from 3D volumetric meshes to 2D surfaces, starting from the [Melbourne Subcortex Atlas](https://github.com/yetianmed/subcortex/tree/master) as published in [Tian et al. (2020)](https://www.nature.com/articles/s41593-020-00711-6) at the 'S1' resolution.
|
|
17
17
|
|
|
18
|
-
<img src="docs-site/docs/images/Melbourne_S1_subcortical_atlas_info.png" width="
|
|
18
|
+
<img src="docs-site/docs/images/Melbourne_S1_subcortical_atlas_info.png" width="50%">
|
|
19
19
|
|
|
20
20
|
While [`ggseg`](https://github.com/ggseg/ggseg) offers subcortical plotting with the `aseg` atlas, it is [not currently possible](https://github.com/ggseg/ggseg/issues/104) to show data from all seven subcortical regions (accumbens, amygdala, caudate, hippocampus, pallidum, putamen, thalamus) in the same figure.
|
|
21
21
|
Moreover, there is currently no other software available to visualize any of the other above subcortical, thalamic, or cerebellar atlases in two dimensions with real data, motivating the development of this package.
|
|
@@ -64,12 +64,12 @@ plot_subcortical_data(hemisphere='L', cmap='plasma',
|
|
|
64
64
|
fill_title = "Subcortical region index")
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
<img src="docs-site/docs/images/example_aseg_subcortex_plot.png" width="
|
|
67
|
+
<img src="docs-site/docs/images/example_aseg_subcortex_plot.png" width="60%">
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
### 📚 Tutorial
|
|
71
71
|
|
|
72
|
-
For a guide that goes through all the functionality and atlases available in this package, we compiled a simple walkthrough tutorial in [tutorial.ipynb](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial.ipynb).
|
|
72
|
+
For a guide that goes through all the functionality and atlases available in this package, we compiled a simple walkthrough tutorial in Python ([tutorial.ipynb](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial.ipynb)) and R ([tutorial_R.md](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial_R.md)).
|
|
73
73
|
To plot real data in the subcortex, your `subcortex_data` should be a Python `pandas.DataFrame` or an R `data.frame` structured as follows (here we've just assigned an integer index to each region):
|
|
74
74
|
|
|
75
75
|
| region | value | Hemisphere |
|
|
@@ -116,11 +116,11 @@ plot_subcortical_data(subcortex_data=example_continuous_data, atlas='aseg',
|
|
|
116
116
|
cmap=white_blue_red_cmap, midpoint=0)
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
<img src="docs-site/docs/images/example_aseg_subcortex_normdist.png" width="
|
|
119
|
+
<img src="docs-site/docs/images/example_aseg_subcortex_normdist.png" width="75%">
|
|
120
120
|
|
|
121
|
-
### Available atlases
|
|
121
|
+
### 🗺️ Available atlases
|
|
122
122
|
|
|
123
|
-
The following
|
|
123
|
+
The following subcortical and cerebellar atlases are currently supported with more information at the [project website](https://anniegbryant.github.io/subcortex_visualization/atlas_info/):
|
|
124
124
|
|
|
125
125
|
* `aseg`: The `aseg` parcellation atlas from FreeSurfer
|
|
126
126
|
* `Melbourne_S1`: The Melbourne Subcortex Atlas at granularity level S1, from [Tian et al. *Nature Neuroscience* (2020)](https://www.nature.com/articles/s41593-020-00711-6)
|
|
@@ -132,10 +132,17 @@ The following nine subcortical atlases are currently supported with more informa
|
|
|
132
132
|
* `Thalamus_Nuclei_HCP`: The thalamic nuclei atlas derived from HCP data, from [Najdenovska et al. *Scientific Data* (2018)](https://www.nature.com/articles/sdata2018270)
|
|
133
133
|
* `SUIT`: The SUIT cerebellum atlas, from [Diedrichsen *Neuroimage* (2006)](https://doi.org/10.1016/j.neuroimage.2006.05.056)
|
|
134
134
|
|
|
135
|
+
### 🌟 Atlas wishlist
|
|
136
|
+
|
|
137
|
+
These atlases are on the 'vision board' for me to add to the package next (community pull requests absolutely welcome to incorporate these in the meantime):
|
|
138
|
+
|
|
139
|
+
* Thalamus-Optimized Multi-Atlas Segmentation (THOMAS) atlas: High-resolution segmentation of thalamic nuclei ([file link](https://zenodo.org/records/5499504)), recently expanded to all deep grey nuclei as described in [Saranathan et al. (2025)](https://doi.org/10.1002/hbm.70350)
|
|
140
|
+
* Brainstem (suggested by [@RaviBot](https://github.com/RaviBot)): Brainstem Navigator atlas ([file link](https://www.nitrc.org/projects/brainstemnavig)), as described in [Bianciardi et al. (2015)](https://doi.org/10.1089/brain.2015.0347)
|
|
141
|
+
* CIT168 Reinforcement Learning Atlas (suggested by [@GalKepler](https://github.com/GalKepler)): Subcortical atlas ([file link](https://osf.io/jkzwp/wiki)) that includes the principal nuclei involved in reinforcement learning, as described in [Pauli et al. (2018)](https://doi.org/10.1038/sdata.2018.63)
|
|
135
142
|
|
|
136
143
|
## 💡 Want to generate your own mesh and/or parcellation?
|
|
137
144
|
|
|
138
|
-
<img src="docs-site/docs/images/custom_vector_method.png" width="
|
|
145
|
+
<img src="docs-site/docs/images/custom_vector_method.png" width="60%">
|
|
139
146
|
|
|
140
147
|
This package provides nine subcortical, thalamic, and cerebellar atlases as a starting point.
|
|
141
148
|
The workflow can readily be extended to your favorite segmentation atlas, though!
|
|
@@ -143,21 +150,39 @@ We have a dedicated folder for a custom segmentation pipeline that will walk you
|
|
|
143
150
|
1. Rendering a series of triangulated surface meshes from your parcellation atlas (starting from a .nii.gz volume), using the [`surfice_atlas`](https://github.com/neurolabusc/surfice_atlas) software, both developed by [Chris Rorden's lab](https://github.com/rordenlab); and
|
|
144
151
|
2. Tracing the outline of each region in the rendered mesh in vector graphic editing software (we use Inkscape in the tutorial as a powerful and free option), to yield a two-dimensional image of your atlas in scalable vector graphic (.svg) format.
|
|
145
152
|
|
|
146
|
-
Check out the walkthrough in the [`
|
|
153
|
+
Check out the walkthrough in the [`custom_segmentation/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/custom_segmentation) folder or the [project website page](https://anniegbryant.github.io/subcortex_visualization/custom_segmentation/) for more information on how to render your own volumetric segmentation with an interactive mesh and convert to a two-dimensional vector graphic that can be integrated with this package.
|
|
147
154
|
|
|
148
|
-
##
|
|
155
|
+
## 🔗 Citing this package
|
|
149
156
|
|
|
150
|
-
|
|
157
|
+
If you use this package in a scientific publication, blog post, etc., please read and cite the [associated preprint](https://www.biorxiv.org/content/10.64898/2026.01.23.699785):
|
|
151
158
|
|
|
152
|
-
|
|
159
|
+
* 📕 Bryant, Annie G. (2026). Subcortex visualization: A toolbox for custom data visualization in the subcortex and cerebellum. *bioRxiv*, 2026-01. doi:10.64898/2026.01.23.699785.
|
|
153
160
|
|
|
154
|
-
|
|
161
|
+
<details closed>
|
|
162
|
+
<summary>Click here for a BibTex reference:</summary>
|
|
155
163
|
|
|
156
|
-
|
|
164
|
+
```
|
|
165
|
+
@article{bryant2026subcortex,
|
|
166
|
+
title = {Subcortex visualization: A toolbox for custom data visualization in the subcortex and cerebellum},
|
|
167
|
+
url = {https://www.biorxiv.org/content/10.64898/2026.01.23.699785},
|
|
168
|
+
doi = {10.64898/2026.01.23.699785},
|
|
169
|
+
journal = {bioRxiv},
|
|
170
|
+
publisher={Cold Spring Harbor Laboratory},
|
|
171
|
+
author = {Bryant, Annie G.},
|
|
172
|
+
pages = {2026--01},
|
|
173
|
+
year = {2026}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
</details>
|
|
178
|
+
|
|
179
|
+
## 🙏 Acknowledgments
|
|
157
180
|
|
|
158
|
-
|
|
181
|
+
Thank you very much to [Sidhant Chopra](https://github.com/sidchop), [Chris Rorden](https://github.com/rordenlab), [Justine Hansen](https://github.com/justinehansen), and [Ye Tian](https://github.com/yetianmed) for their suggestions and continued development of open tools for neuroimaging visualization that enabled the development of this project!
|
|
159
182
|
|
|
160
|
-
|
|
183
|
+
We're also very grateful for ongoing contributions from members of the GitHub community:
|
|
184
|
+
|
|
185
|
+
[](https://github.com/anniegbryant/subcortex_visualization/graphs/contributors)
|
|
161
186
|
|
|
162
187
|
## ❓📧 Questions, comments, or suggestions always welcome!
|
|
163
188
|
|
|
@@ -3,14 +3,14 @@ import os
|
|
|
3
3
|
import numpy as np
|
|
4
4
|
import pandas as pd
|
|
5
5
|
|
|
6
|
-
#
|
|
7
|
-
from
|
|
6
|
+
# neuromaps imports
|
|
7
|
+
from neuromaps.parcellate import Parcellater
|
|
8
8
|
|
|
9
9
|
# Files
|
|
10
10
|
from importlib.resources import files
|
|
11
11
|
|
|
12
12
|
def apply_atlas_to_data(functional_map, atlas, func_name='Functional map'):
|
|
13
|
-
"""Apply subcortical atlas to functional map and extract mean signal per region.
|
|
13
|
+
"""Apply subcortical atlas(es) to a given functional map and extract mean signal per region.
|
|
14
14
|
Parameters
|
|
15
15
|
----------
|
|
16
16
|
functional_map : str or Nifti1Image
|
|
@@ -45,18 +45,9 @@ def apply_atlas_to_data(functional_map, atlas, func_name='Functional map'):
|
|
|
45
45
|
this_atlas_LUT = pd.read_csv(files("subcortex_visualization.atlases").joinpath(f"{this_atlas_file}_lookup.csv"), header=None)
|
|
46
46
|
this_atlas_LUT.columns = ['Index', 'Region']
|
|
47
47
|
|
|
48
|
-
#
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
memory="nilearn_cache",
|
|
52
|
-
standardize=False
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
# Apply masker to functional map
|
|
56
|
-
functional_map_parc = masker.fit_transform(functional_map)
|
|
57
|
-
|
|
58
|
-
# Make sure the results are one-column
|
|
59
|
-
functional_map_parc = functional_map_parc.flatten()
|
|
48
|
+
# Use the Parcellator object from neuromaps to apply the atlas to the functional map
|
|
49
|
+
parcellator = Parcellater(this_atlas_volume_path, 'MNI152')
|
|
50
|
+
functional_map_parc = parcellator.fit_transform(functional_map, 'MNI152', True).squeeze()
|
|
60
51
|
|
|
61
52
|
# Merge region and index
|
|
62
53
|
functional_map_parc_df = pd.DataFrame({'Functional_Map': func_name,
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Necessary imports
|
|
2
|
+
import pandas as pd
|
|
3
|
+
import numpy as np
|
|
4
|
+
|
|
5
|
+
# Files
|
|
6
|
+
from importlib.resources import files
|
|
7
|
+
|
|
8
|
+
def get_atlas_regions(atlas_name):
|
|
9
|
+
"""Print the names of regions in a given subcortical/cerebellar atlas.
|
|
10
|
+
Parameters
|
|
11
|
+
----------
|
|
12
|
+
atlas_name : str
|
|
13
|
+
Name of the subcortical/cerebellar atlas.
|
|
14
|
+
|
|
15
|
+
Returns
|
|
16
|
+
-------
|
|
17
|
+
np.ndarray
|
|
18
|
+
Array of region names in the specified atlas, ordered by segmentation index.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
# If the atlas is the SUIT cerebellar lobules, use hemisphere of 'both'
|
|
22
|
+
if atlas_name == 'SUIT_cerebellar_lobule':
|
|
23
|
+
hemisphere = 'both'
|
|
24
|
+
|
|
25
|
+
# Load ordering file
|
|
26
|
+
atlas_ordering = pd.read_csv(files("subcortex_visualization.data").joinpath(f"{atlas_name}_{hemisphere}_ordering.csv"))
|
|
27
|
+
|
|
28
|
+
# Identify regions for left/right cerebellar cortex versus vermis
|
|
29
|
+
hemisphere_regions = atlas_ordering.query("Hemisphere == 'L'").sort_values('seg_index').region.unique()
|
|
30
|
+
vermis_regions = atlas_ordering.query("Hemisphere=='V'").sort_values('seg_index').region.unique()
|
|
31
|
+
|
|
32
|
+
# Return both lists of regions as a tuple
|
|
33
|
+
return (hemisphere_regions, vermis_regions)
|
|
34
|
+
|
|
35
|
+
# Else, use left hemisphere just to get names
|
|
36
|
+
else:
|
|
37
|
+
hemisphere='L'
|
|
38
|
+
|
|
39
|
+
# Load ordering file
|
|
40
|
+
atlas_ordering = pd.read_csv(files("subcortex_visualization.data").joinpath(f"{atlas_name}_{hemisphere}_ordering.csv"))
|
|
41
|
+
|
|
42
|
+
# Sort by segmentation index and print the array of region names
|
|
43
|
+
unique_regions = atlas_ordering.sort_values('seg_index').region.unique()
|
|
44
|
+
|
|
45
|
+
return unique_regions
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: subcortex_visualization
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: A package to visualize subcortical and cerebellar brain data in two dimensions.
|
|
5
5
|
Author: Annie G. Bryant
|
|
6
6
|
Author-email: "Annie G. Bryant" <anniegbryant@gmail.com>
|
|
@@ -23,9 +23,9 @@ License-File: LICENSE.txt
|
|
|
23
23
|
Dynamic: author
|
|
24
24
|
Dynamic: license-file
|
|
25
25
|
|
|
26
|
-
#
|
|
26
|
+
# subcortex_visualization: A toolbox for custom data visualization in the subcortex and cerebellum
|
|
27
27
|
|
|
28
|
-
[](https://doi.org/10.64898/2026.01.23.699785)
|
|
29
29
|
|
|
30
30
|
This package (implemented in Python and R) currently includes the following nine subcortical and cerebellar atlases for data visualization in two-dimensional vector graphics:
|
|
31
31
|
|
|
@@ -36,11 +36,11 @@ More information about these atlases, including the process of rendering the sur
|
|
|
36
36
|
## 🙋♀️ Motivation
|
|
37
37
|
|
|
38
38
|
This visualization package was created to generate two-dimensional subcortex images in the style of the popular [`ggseg` package](https://github.com/ggseg/ggseg) in R.
|
|
39
|
-
We based our vector graphic outlines on the three-dimensional subcortical meshes either (1) provided as part of the [ENIGMA toolbox](https://github.com/MICA-MNI/ENIGMA) for the aseg atlas or (2) meshes generated in-house using rendering software from [Chris Rorden's lab](https://github.com/neurolabusc) ([Surf Ice](https://github.com/neurolabusc/surf-ice); check out [`custom_segmentation_pipeline/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/
|
|
39
|
+
We based our vector graphic outlines on the three-dimensional subcortical meshes either (1) provided as part of the [ENIGMA toolbox](https://github.com/MICA-MNI/ENIGMA) for the aseg atlas or (2) meshes generated in-house using rendering software from [Chris Rorden's lab](https://github.com/neurolabusc) ([Surf Ice](https://github.com/neurolabusc/surf-ice); check out [`custom_segmentation_pipeline/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/custom_segmentation) or the [project website page](https://anniegbryant.github.io/subcortex_visualization/custom_segmentation/) for more information).
|
|
40
40
|
|
|
41
41
|
The below graphic summarizes the transformation from 3D volumetric meshes to 2D surfaces, starting from the [Melbourne Subcortex Atlas](https://github.com/yetianmed/subcortex/tree/master) as published in [Tian et al. (2020)](https://www.nature.com/articles/s41593-020-00711-6) at the 'S1' resolution.
|
|
42
42
|
|
|
43
|
-
<img src="docs-site/docs/images/Melbourne_S1_subcortical_atlas_info.png" width="
|
|
43
|
+
<img src="docs-site/docs/images/Melbourne_S1_subcortical_atlas_info.png" width="50%">
|
|
44
44
|
|
|
45
45
|
While [`ggseg`](https://github.com/ggseg/ggseg) offers subcortical plotting with the `aseg` atlas, it is [not currently possible](https://github.com/ggseg/ggseg/issues/104) to show data from all seven subcortical regions (accumbens, amygdala, caudate, hippocampus, pallidum, putamen, thalamus) in the same figure.
|
|
46
46
|
Moreover, there is currently no other software available to visualize any of the other above subcortical, thalamic, or cerebellar atlases in two dimensions with real data, motivating the development of this package.
|
|
@@ -89,12 +89,12 @@ plot_subcortical_data(hemisphere='L', cmap='plasma',
|
|
|
89
89
|
fill_title = "Subcortical region index")
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
<img src="docs-site/docs/images/example_aseg_subcortex_plot.png" width="
|
|
92
|
+
<img src="docs-site/docs/images/example_aseg_subcortex_plot.png" width="60%">
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
### 📚 Tutorial
|
|
96
96
|
|
|
97
|
-
For a guide that goes through all the functionality and atlases available in this package, we compiled a simple walkthrough tutorial in [tutorial.ipynb](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial.ipynb).
|
|
97
|
+
For a guide that goes through all the functionality and atlases available in this package, we compiled a simple walkthrough tutorial in Python ([tutorial.ipynb](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial.ipynb)) and R ([tutorial_R.md](https://github.com/anniegbryant/subcortex_visualization/blob/main/tutorial_R.md)).
|
|
98
98
|
To plot real data in the subcortex, your `subcortex_data` should be a Python `pandas.DataFrame` or an R `data.frame` structured as follows (here we've just assigned an integer index to each region):
|
|
99
99
|
|
|
100
100
|
| region | value | Hemisphere |
|
|
@@ -141,11 +141,11 @@ plot_subcortical_data(subcortex_data=example_continuous_data, atlas='aseg',
|
|
|
141
141
|
cmap=white_blue_red_cmap, midpoint=0)
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
-
<img src="docs-site/docs/images/example_aseg_subcortex_normdist.png" width="
|
|
144
|
+
<img src="docs-site/docs/images/example_aseg_subcortex_normdist.png" width="75%">
|
|
145
145
|
|
|
146
|
-
### Available atlases
|
|
146
|
+
### 🗺️ Available atlases
|
|
147
147
|
|
|
148
|
-
The following
|
|
148
|
+
The following subcortical and cerebellar atlases are currently supported with more information at the [project website](https://anniegbryant.github.io/subcortex_visualization/atlas_info/):
|
|
149
149
|
|
|
150
150
|
* `aseg`: The `aseg` parcellation atlas from FreeSurfer
|
|
151
151
|
* `Melbourne_S1`: The Melbourne Subcortex Atlas at granularity level S1, from [Tian et al. *Nature Neuroscience* (2020)](https://www.nature.com/articles/s41593-020-00711-6)
|
|
@@ -157,10 +157,17 @@ The following nine subcortical atlases are currently supported with more informa
|
|
|
157
157
|
* `Thalamus_Nuclei_HCP`: The thalamic nuclei atlas derived from HCP data, from [Najdenovska et al. *Scientific Data* (2018)](https://www.nature.com/articles/sdata2018270)
|
|
158
158
|
* `SUIT`: The SUIT cerebellum atlas, from [Diedrichsen *Neuroimage* (2006)](https://doi.org/10.1016/j.neuroimage.2006.05.056)
|
|
159
159
|
|
|
160
|
+
### 🌟 Atlas wishlist
|
|
161
|
+
|
|
162
|
+
These atlases are on the 'vision board' for me to add to the package next (community pull requests absolutely welcome to incorporate these in the meantime):
|
|
163
|
+
|
|
164
|
+
* Thalamus-Optimized Multi-Atlas Segmentation (THOMAS) atlas: High-resolution segmentation of thalamic nuclei ([file link](https://zenodo.org/records/5499504)), recently expanded to all deep grey nuclei as described in [Saranathan et al. (2025)](https://doi.org/10.1002/hbm.70350)
|
|
165
|
+
* Brainstem (suggested by [@RaviBot](https://github.com/RaviBot)): Brainstem Navigator atlas ([file link](https://www.nitrc.org/projects/brainstemnavig)), as described in [Bianciardi et al. (2015)](https://doi.org/10.1089/brain.2015.0347)
|
|
166
|
+
* CIT168 Reinforcement Learning Atlas (suggested by [@GalKepler](https://github.com/GalKepler)): Subcortical atlas ([file link](https://osf.io/jkzwp/wiki)) that includes the principal nuclei involved in reinforcement learning, as described in [Pauli et al. (2018)](https://doi.org/10.1038/sdata.2018.63)
|
|
160
167
|
|
|
161
168
|
## 💡 Want to generate your own mesh and/or parcellation?
|
|
162
169
|
|
|
163
|
-
<img src="docs-site/docs/images/custom_vector_method.png" width="
|
|
170
|
+
<img src="docs-site/docs/images/custom_vector_method.png" width="60%">
|
|
164
171
|
|
|
165
172
|
This package provides nine subcortical, thalamic, and cerebellar atlases as a starting point.
|
|
166
173
|
The workflow can readily be extended to your favorite segmentation atlas, though!
|
|
@@ -168,21 +175,39 @@ We have a dedicated folder for a custom segmentation pipeline that will walk you
|
|
|
168
175
|
1. Rendering a series of triangulated surface meshes from your parcellation atlas (starting from a .nii.gz volume), using the [`surfice_atlas`](https://github.com/neurolabusc/surfice_atlas) software, both developed by [Chris Rorden's lab](https://github.com/rordenlab); and
|
|
169
176
|
2. Tracing the outline of each region in the rendered mesh in vector graphic editing software (we use Inkscape in the tutorial as a powerful and free option), to yield a two-dimensional image of your atlas in scalable vector graphic (.svg) format.
|
|
170
177
|
|
|
171
|
-
Check out the walkthrough in the [`
|
|
178
|
+
Check out the walkthrough in the [`custom_segmentation/`](https://github.com/anniegbryant/subcortex_visualization/tree/main/custom_segmentation) folder or the [project website page](https://anniegbryant.github.io/subcortex_visualization/custom_segmentation/) for more information on how to render your own volumetric segmentation with an interactive mesh and convert to a two-dimensional vector graphic that can be integrated with this package.
|
|
172
179
|
|
|
173
|
-
##
|
|
180
|
+
## 🔗 Citing this package
|
|
174
181
|
|
|
175
|
-
|
|
182
|
+
If you use this package in a scientific publication, blog post, etc., please read and cite the [associated preprint](https://www.biorxiv.org/content/10.64898/2026.01.23.699785):
|
|
176
183
|
|
|
177
|
-
|
|
184
|
+
* 📕 Bryant, Annie G. (2026). Subcortex visualization: A toolbox for custom data visualization in the subcortex and cerebellum. *bioRxiv*, 2026-01. doi:10.64898/2026.01.23.699785.
|
|
178
185
|
|
|
179
|
-
|
|
186
|
+
<details closed>
|
|
187
|
+
<summary>Click here for a BibTex reference:</summary>
|
|
180
188
|
|
|
181
|
-
|
|
189
|
+
```
|
|
190
|
+
@article{bryant2026subcortex,
|
|
191
|
+
title = {Subcortex visualization: A toolbox for custom data visualization in the subcortex and cerebellum},
|
|
192
|
+
url = {https://www.biorxiv.org/content/10.64898/2026.01.23.699785},
|
|
193
|
+
doi = {10.64898/2026.01.23.699785},
|
|
194
|
+
journal = {bioRxiv},
|
|
195
|
+
publisher={Cold Spring Harbor Laboratory},
|
|
196
|
+
author = {Bryant, Annie G.},
|
|
197
|
+
pages = {2026--01},
|
|
198
|
+
year = {2026}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
</details>
|
|
203
|
+
|
|
204
|
+
## 🙏 Acknowledgments
|
|
182
205
|
|
|
183
|
-
|
|
206
|
+
Thank you very much to [Sidhant Chopra](https://github.com/sidchop), [Chris Rorden](https://github.com/rordenlab), [Justine Hansen](https://github.com/justinehansen), and [Ye Tian](https://github.com/yetianmed) for their suggestions and continued development of open tools for neuroimaging visualization that enabled the development of this project!
|
|
184
207
|
|
|
185
|
-
|
|
208
|
+
We're also very grateful for ongoing contributions from members of the GitHub community:
|
|
209
|
+
|
|
210
|
+
[](https://github.com/anniegbryant/subcortex_visualization/graphs/contributors)
|
|
186
211
|
|
|
187
212
|
## ❓📧 Questions, comments, or suggestions always welcome!
|
|
188
213
|
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Necessary imports
|
|
2
|
-
import pandas as pd
|
|
3
|
-
import numpy as np
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# Files
|
|
7
|
-
from importlib.resources import files
|
|
8
|
-
|
|
9
|
-
def get_atlas_regions(atlas_name):
|
|
10
|
-
|
|
11
|
-
# Use left hemisphere just to get names
|
|
12
|
-
hemisphere='L'
|
|
13
|
-
|
|
14
|
-
# Load ordering file
|
|
15
|
-
atlas_ordering = pd.read_csv(files("subcortex_visualization.data").joinpath(f"{atlas_name}_{hemisphere}_ordering.csv"))
|
|
16
|
-
|
|
17
|
-
# Sort by segmentation index and print the array of region names
|
|
18
|
-
unique_regions = atlas_ordering.sort_values('seg_index').region.unique()
|
|
19
|
-
|
|
20
|
-
return unique_regions
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{subcortex_visualization-1.2.0 → subcortex_visualization-1.2.1}/subcortex_visualization/plotting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|