You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: paper/paper.bib
+20Lines changed: 20 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -99,6 +99,17 @@ @article{Hunter:2007
99
99
url = {https://doi.org/10.1109/MCSE.2007.55}
100
100
}
101
101
102
+
@article{Chopra:2023,
103
+
title = {A Practical Guide for Generating Reproducible and Programmatic Neuroimaging Visualizations},
104
+
author = {Chopra, Siddharth and Labache, Lo{\"i}c and Juh{\'a}sz, Csaba and Iturria-Medina, Yasser and Bellec, Pierre and Misic, Bratislav and Vos de Wael, Reinder and Bernhardt, Boris C. and Valk, Sofie L.},
105
+
journal = {Aperture Neuro},
106
+
volume = {3},
107
+
pages = {1--20},
108
+
year = {2023},
109
+
doi = {10.52294/001c.85104},
110
+
url = {https://doi.org/10.52294/001c.85104}
111
+
}
112
+
102
113
@article{Marcus:2011,
103
114
title = {Informatics and Data Mining Tools and Strategies for the Human Connectome Project},
104
115
author = {Marcus, Daniel S. and Harwell, John and Olsen, Timothy and Hodge, Michael and Glasser, Matthew F. and Prior, Fred and Jenkinson, Mark and Laumann, Timothy and Curtiss, Sandra W. and Van Essen, David C.},
@@ -155,3 +166,12 @@ @article{VosdeWael:2020
155
166
doi = {10.1038/s42003-020-0794-7},
156
167
url = {https://doi.org/10.1038/s42003-020-0794-7}
157
168
}
169
+
170
+
@article{Bryant:2026,
171
+
title={Subcortex visualization: A toolbox for custom data visualization in the subcortex and cerebellum},
Copy file name to clipboardExpand all lines: paper/paper.md
+23-9Lines changed: 23 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,36 +13,50 @@ authors:
13
13
affiliations:
14
14
- name: Clinical Memory Research Unit, Department of Clinical Sciences Malmö, Faculty of Medicine, Lund University, Lund, Sweden
15
15
index: 1
16
-
date: 11 May 2026
16
+
date: 14 May 2026
17
17
bibliography: paper.bib
18
18
---
19
19
20
20
# Summary
21
21
22
-
Neuroimaging analyses often produce results in several anatomical representations. A single study may include values defined in atlas-based regions, such as cortical parcels, subcortical structures, white-matter bundles, or connectivity matrices, as well as continuous voxel-wise and vertex-wise maps. Communicating these results requires figures that are anatomically interpretable, visually consistent, and reproducible from the same computational workflow used to generate the data.
22
+
Neuroimaging analyses often produce results in several anatomical representations. A single study may include values defined in atlas-based regions, such as cortical parcels, subcortical structures, or white-matter bundles, as well as continuous voxel-wise and vertex-wise maps and region-to-region connectivity matrices. Communicating these results requires figures that are anatomically interpretable, visually consistent, and reproducible from the same computational workflow used to generate the data.
23
23
24
-
`yabplot` (yet another brain plot) is an open-source Python package for creating three-dimensional neuroimaging visualizations across these representations. It provides a unified interface for plotting cortical parcellations, vertex-wise cortical data, voxel-wise volumetric data, subcortical structures, white-matter bundles, tractometry results, and connectome graphs. The package is intended for researchers who want to create publication-ready figures directly from Python scripts or Jupyter notebooks, without switching between multiple specialized graphical applications. Inputs depend on the function, but include NIfTI images, surface files, tractography files, arrays, dictionaries, and matrices, which are mapped to standard or user-defined anatomical resources.
24
+
`yabplot` (yet another brain plot) is an open-source Python package for creating three-dimensional neuroimaging visualizations across these representations. It provides a unified interface for plotting cortical parcellations, vertex-wise cortical data, voxel-wise volumetric data, subcortical structures, white-matter bundles, tractometry results, and connectome graphs. The package is intended for researchers who want to create publication-ready figures directly from Python scripts or Jupyter notebooks, without switching between multiple specialized graphical applications. Supported inputs depend on the plotting function and include NIfTI images, surface files, tractography files, arrays, dictionaries, tabular data, and matrices. These inputs are mapped to standard or user-defined anatomical resources.
25
25
26
26
The package builds on established scientific Python libraries. It uses `nibabel` for neuroimaging file input/output [@Brett:2024], `numpy` for numerical array operations [@Harris:2020], `pandas` for tabular and labelled data inputs [@McKinney:2010], `scipy` for interpolation, filtering, and sparse matrix operations [@Virtanen:2020], `pooch` for resource retrieval and caching [@Uieda:2020], `scikit-image` for extracting surface meshes from volumetric masks [@vanDerWalt:2014], `pyvista` for three-dimensional mesh representation, scene construction, and rendering [@Sullivan:2019], `trame` for interactive browser-based visualization [@Jourdain:2025], and `matplotlib` for static figure composition and customization [@Hunter:2007]. By combining these tools behind a compact plotting API, `yabplot` handles data mapping, mesh creation, camera placement, lighting, and rendering while retaining compatibility with standard Python plotting workflows.
27
27
28
-

28
+

29
29
30
30
# Statement of need
31
31
32
+
Researchers working with neuroimaging data often need to communicate results across several anatomical representations, including cortical regions, vertex-wise maps, subcortical structures, voxel-wise maps, white matter tracts, and connectivity matrices [@Chopra:2023]. The target users of `yabplot` are neuroimaging researchers and students who want to generate consistent 3D figures directly in Python-based data analysis workflows.
33
+
34
+
Producing such figures can be difficult when each representation requires a different application or plotting library. Switching between tools can require data conversion, manual screenshot-based workflows, and repeated adjustment of lighting, camera angles, colormaps, and output formatting. `yabplot` addresses this need by providing a unified, scriptable interface for common 3D neuroimaging visualizations, with consistent styling and output handling across modalities.
35
+
36
+
# State of the field
37
+
32
38
The neuroimaging visualization ecosystem includes many mature and widely used tools. Connectome Workbench supports surface-based visualization and Human Connectome Project resources [@Marcus:2011], MRtrix3 provides diffusion MRI processing and tractography visualization [@Tournier:2019], and BrainNet Viewer supports graph-based visualization of human connectomes [@Xia:2013]. In Python, Nilearn provides accessible statistical neuroimaging visualization, especially for slice-based, glass-brain, and machine-learning workflows [@Abraham:2014], while BrainSpace supports surface-based visualization in the context of macroscale gradients and connectomics [@VosdeWael:2020].
33
39
34
-
These tools cover important parts of the visualization workflow, but producing a coherent figure that combines different representations of neuroimaging data can still require several packages or applications. This introduces practical barriers. Researchers may need to translate data between different input conventions; manual screenshot-based workflows make figure generation harder to reproduce; and differences in lighting style and camera perspective can make results appear visually inconsistent within the same research study.
40
+
These tools cover important parts of the visualization workflow, but they are often specialized for one representation or analysis domain. Rather than replacing these packages, `yabplot` provides a complementary layer focused on consistent, publication-oriented 3D figure generation across cortical, subcortical, tractography, voxel-wise, and connectome data. This unified focus is the main reason for building a new package rather than contributing a modality-specific feature to an existing tool.
41
+
42
+
# Software design
43
+
44
+
`yabplot` is organized around high-level plotting functions that share common utilities for data mapping, mesh handling, camera presets, color handling, background anatomy, and output generation. This design trades some low-level rendering flexibility for consistency and ease of use across modalities. Users provide data values and an anatomical target, choose views and visual styling, and receive a rendered static figure or interactive object.
45
+
46
+
A further design goal is to separate the Python package from large anatomical resources. Supported atlases, meshes, and tract resources are retrieved on demand and cached locally, keeping the core installation lightweight while making resource use explicit. The package also supports custom user-defined anatomical resources through atlas-building and mesh-construction utilities, allowing users to adapt the workflow to study-specific parcellations, segmentations, and tractography datasets rather than being limited to bundled templates.
47
+
48
+
# Research impact
35
49
36
-
`yabplot`addresses this gap by focusing on unified, scriptable, publication-oriented 3D rendering of common neuroimaging result types within a single Python environment. Its plotting functions follow a shared pattern: users provide data values and an anatomical target, choose views and visual styling, and receive a rendered figure or interactive object. High-level functions are provided for regional cortical data (`plot_cortical`), vertex-wise cortical data (`plot_vertexwise`), voxel-wise volumes (`plot_voxelwise`), subcortical structures (`plot_subcortical`), white-matter bundles (`plot_tracts`), and connectivity matrices (`plot_connectome`). These functions share common building blocks for data mapping, mesh construction, camera presets, color handling, background anatomy for context, and output generation, while still exposing modality-specific options where needed.
50
+
`yabplot`is designed to support reproducible figure generation in neuroimaging projects that combine several anatomical representations. The package is publicly available on PyPI, documented with example workflows, archived with a Zenodo DOI, and tested through continuous integration. Early user feedback has informed support for Matplotlib-compatible customization, custom atlas generation, and expanded plotting functionality.
37
51
38
-
A further design goal is to separate the Python package from large anatomical resources. `yabplot`retrieves supported atlases, meshes, and tract resources on demand and caches them locally, keeping the core installation lightweight while making resource use explicit. The package also supports custom user-defined anatomical resources through atlas-building and mesh-construction utilities, allowing users to adapt the workflow to study-specific parcellations, segmentations, and tractography datasets. By bringing these visualization tasks into a consistent interface, the package lowers the technical barrier to high-quality 3D neuroimaging figures and supports reproducible scientific communication.
52
+
Beyond standalone figure generation, `yabplot`is already used by the external `subcortex_visualization`package [@Bryant:2026], where its atlas-building and rendering utilities support a semi-automated workflow for converting volumetric segmentations into SVG-based custom atlas visualizations. These community-readiness signals provide a foundation for near-term use in neuroimaging studies requiring consistent 3D visualization across modalities.
39
53
40
54
# AI usage disclosure
41
55
42
-
Generative AI models have been utilized in the development process of `yabplot` and in the drafting of this manuscript. The author reviewedand verified all AI-generated content.
56
+
Generative AI tools, including ChatGPT and Gemini, were used during the development of `yabplot` and preparation of this manuscript. They were used for code refactoring suggestions, debugging assistance, documentation drafting, and manuscript outlining. The author reviewed, edited, and verified all AI-assisted code, documentation, and manuscript text, and takes full responsibility for the submitted software and manuscript.
43
57
44
58
# Acknowledgements
45
59
46
-
The author would like to thank the early contributors, including Anthony J Barrows, Jannis Denecke, and Anthony Gagnon, for their valuable code improvements and feedback during the development of this package. `yabplot` relies on the work of the broader neuroimaging and scientific Python communities, including the developers and maintainers of `nibabel`, `numpy`, `scipy`, `pandas`, `pyvista`, `trame`, `matplotlib`, `pooch`, `scikit-image`, and the atlas resources supported by the package. Users should cite the original publications for any atlases used in their analyses.
60
+
The author would like to thank the early contributors, including Anthony J. Barrows, Jannis Denecke, and Anthony Gagnon, for their valuable code improvements and feedback during the development of this package. `yabplot` relies on the work of the broader neuroimaging and scientific Python communities, including the developers and maintainers of `nibabel`, `numpy`, `scipy`, `pandas`, `pyvista`, `trame`, `matplotlib`, `pooch`, `scikit-image`, and the atlas resources supported by the package. Users should cite the original publications for any atlases used in their analyses.
0 commit comments