Hyve, a compositional visualisation engine for neuroimaging data

Presented During:

Monday, June 24, 2024: 5:45 PM - 7:00 PM
COEX  
Room: Grand Ballroom 103  

Poster No:

2244 

Submission Type:

Abstract Submission 

Authors:

Rastko Ciric1, Anna Xu2, Russell Poldrack2

Institutions:

1Stanford University, Mountain View, CA, 2Stanford University, Stanford, CA

First Author:

Rastko Ciric  
Stanford University
Mountain View, CA

Co-Author(s):

Anna Xu  
Stanford University
Stanford, CA
Russell Poldrack  
Stanford University
Stanford, CA

Introduction:

By embedding data within geometric structures, visualisation provides a gateway to understanding and communicating complex information. In neuroimaging, embedding data in brain geometries improves the tractability of high-dimensional data; visualisation software (e.g., [1-3]) is thus critical in brain mapping. However, the geometries that structure neuroimaging datasets can be highly heterogeneous. MR data, for example, are often reconstructed as image intensity values in a regularly sampled three-dimensional Euclidean volume. By contrast, the convoluted sheet of the mammalian cerebral cortex can be modeled as a two-dimensional Riemannian manifold, which software suites approximate as a polygon mesh[4-5]. Maps of brain connectivity have the intrinsic topology of a graph, with vertices that can be embedded either in physical coordinates or algorithmically in a low-dimensional space[3,6]. Measures of brain function further extend these geometries in the dimension of time.

Existing software has often addressed this heterogeneity by implementing separate plotting routines for different geometries. Here, we introduce the software library hyve (the hypercoil[7] visualisation engine) to implement an alternative compositional approach. Under our approach, users construct a new visualisation protocol by composing an abstract base plotting routine with a chain of functional atoms called primitives (Fig 1). Each functional primitive imbues the base routine with a distinct functionality, forming the basis of a modular, flexible, and extensible system for building reusable plotting protocols.

Methods:

hyve is an open-source Python library, based on PyVista[8] and VTK[9], for creating visualisations of neuroimaging data. The versatility of the hyve visualisation system comes from compositional functional programming. Under this programming paradigm, complex visualisation protocols are constructed by composing atomic functions, called primitives, in a combinatorial manner. Composition is performed under hyve.plotdef, the main function of hyve's user interface, which transforms an abstract visualisation loop into a concrete protocol for creating a specific visualisation artefact. Users construct a reusable visualisation protocol by combining geometric primitives for representing data geometries, input primitives for common data formats and research objectives, and output primitives for producing interactive plots, configurable snapshots, or editable multi-panel figures. hyve also writes automatic documentation for user-constructed functions, maps over parameters to automate serial production of multiple visualisation artefacts, and includes a figure builder API and metadata system for semantically laying out scene representations.
Supporting Image: OHBMFig1.png
 

Results:

Input primitives specify transformations to be applied to data before they are passed to the core visualisation loop; these transformations include inter alia parcellation, coordinate detection, and archive queries. Output primitives determine the type of artefact that a visualisation protocol creates to represent a scene, which broadly fall into two categories: interactive and static. An interactive scene representation is characterised by a capacity to manipulate the view angle. Interactive scene representations include display windows and portable, persistent HTML files. hyve protocols that produce static scene representations (suitable for publication in legacy media) accept a "views" argument for specifying view angles on the scene. "Autocam" primitives use a heuristic or rule to automatically select a view or views. Each call to hyve's core plotting loop returns both a visualisation artefact and a metadata dictionary; hyve can also use this metadata dictionary to semantically construct editable SVGs through its figure builder API (Fig 2).
Supporting Image: OHBMFig2.png
 

Conclusions:

In conclusion, we provide a tutorial notebook for hyve, available at https://github.com/hypercoil/notebooks/blob/main/nb/hyve/hyve-constructive.ipynb , to orient new users.

Modeling and Analysis Methods:

Other Methods

Neuroinformatics and Data Sharing:

Workflows 2
Informatics Other 1

Keywords:

Data analysis
Design and Analysis
Informatics
MRI
Open-Source Code
Open-Source Software
Workflows
Other - visualisation; data interpretation; data visualization

1|2Indicates the priority used for review

Provide references using author date format

[1] Claudi et al. (2021) Visualizing anatomically registered data with brainrender. eLife, 10, e65751.
[2] Combrisson et al. (2019) Visbrain: A Multi-Purpose GPU-Accelerated Open-Source Suite for Multimodal Brain Data Visualization. Frontiers in Neuroinformatics, 13, 14.
[3] Xia et al. (2013) BrainNet Viewer: A Network Visualization Tool for Human Brain Connectomics (P. Csermely, Ed.). PLoS ONE, 8(7), e68910.
[4] Greve et al. (2014) Cortical surface-based analysis reduces bias and variance in kinetic modeling of brain PET data. NeuroImage, 92, 225–236.
[5] Pang et al. (2023) Geometric constraints on human brain function. Nature, 618(7965), 566–574.
[6] Fanton and Thompson (2023) NetPlotBrain : A Python package for visualizing networks and brains. Network Neuroscience, 7(2), 461–477.
[7] Ciric et al. (2022) Differentiable programming for functional connectomics. Proceedings of Machine Learning Research, 419–455, Vol. 193).
[8] Sullivan and Kaszynski (2019) PyVista: 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK). Journal of Open Source Software, 4(37), 1450.
[9] Schroeder et al. (2006). The visualization toolkit: An object-oriented approach to 3D graphics. Ingram.