A framework for dynamically integrating rich, interactive web apps into the SPARC portal in accordance with FAIR principles.
- About
- Introduction
- The problem
- Our solution - sparc-plugins
- Supported features
- Benefits of sparc-plugins
- Designed to enable FAIRness
- Future developments
- Running example plugins
- Tutorials for creating new plugins
- Reporting issues
- Contributing
- Cite us
- License
- Team
- Acknowledgements
Welcome to the repository of Team sparc-plugins (Team D) from the 2025 SPARC Codeathon.
Learn more about the Codeathon here, and meet our team members in the Team Section below.
Note: No work was done on this project prior to the start of the Codeathon.
The NIH Common Fund SPARC program(Stimulating Peripheral Activity to Relieve Conditions) aims to advance our understanding of peripheral nervesโthose that connect the brain and spinal cord to the rest of the bodyโand how their electrical signals regulate internal organ function. The ultimate goal is to develop therapeutic devices that modulate nerve activity to improve organ function and treat conditions such as hypertension, heart failure, and gastrointestinal disorders.
SPARC is a collaborative effort involving 60 research groups across 90 institutions and companies, working on over >60 anatomies, organs and systems in 8 species.
The SPARC Portal provides a single user-facing online interface to access resources developed by the SPARC community that can be shared, cited visualised, computed, and used for virtual experimentation. Key features include:
- A collection of ~350 well-curated datasets in a standardised format, containing multimodal data: physiology, morphology, anatomy, transcriptomics, computational results etc. These datasets can be explored under the "Find Data" section of the SPARC Portal, and resources are provided describing how how to navigate a SPARC dataset and how a dataset is formatted.
- Web tools for exploring SPARC resources that are directly integrated into the portal, including:
- Searching datasets with pre-configured filters
- Pre-configured data viewers e.g. gallery, image, plot, scaffold, segmentation, simulation, and dataset viewers
- Viewing anatomical and functional connectivity maps using pre-configured visualisation interfaces
Despite its rich offering, the SPARC portal currently lacks the ability for users to easily:
- Perform customised searches across datasets and knowledge bases
- Extend or modify existing functionality such as data viewers or connectivity map visualisations
- Add new interactive features such as:
- Advanced services like image segmentation using state-of-the-art tools
- Integration of AI chatbots
- Access these capabilities during dataset or model development
- Enable non-technical users to contribute or rapidly prototype new features
These capabilities are essential to overcome current limitations in flexibility, accessibility, and extensibility of the SPARC Portal, and to enable a FAIR-aligned, community-driven approach to developing and interacting with SPARC resources.
Implementing any of the above requires expert software engineers familiar with the SPARC codebase. Changes necessitate updating the portal codebase, performing testing and review, and redeployingโcausing significant overhead to the SPARC community.
To address this problem, we have developed SPARC Plugins (sparc-plugins)โ a framework for dynamically integrating rich, interactive web apps into the SPARC portal in accordance with FAIR principles.
The sparc-plugins toolkit currently supports the following capabilities:
A new dedicated Plugins Page on the SPARC Portal where users can browse and activate plugins. These plugins have the ability to:
- Access SPARC datasets and knowledge bases
- Reuse, extend or modify existing data viewers and connectivity map visualisations
- Link to oSPARC computational services
- Integrate rich, interactive content, such as:
Provides an automated and streamlined experience for plugin development, registration, testing, and review directly through the Plugins Page of the SPARC Portal.
- Create new plugins by reusing existing plugin examples
- Register plugins by referencing their code repositories directly on the Plugins Page
- Plugins are automatically built and integrated into the portal for testing
- Submit plugins to the SPARC development team for review
- Approved plugins may be merged into the main SPARC codebase for long-term support
Integration of generative AI tools to empower non-technical users to rapidly prototype and test new plugins directly within the SPARC portal
A container-based development environment with the following additional features:
- Includes a local deployment of the SPARC Portal
- Plugins can be registed by referencing source code stored locally
- Plugins can load locally stored SDS datasets without them needing to be accessible from the SPARC portal
- Enables integration of external services via existing APIs or custom backends to test advanced plugin features
Example plugins are provided to demonstrate these capabilties.
The sparc-plugins ecosystem enhances the SPARC portal by aligning with the FAIR principles and enabling a more dynamic, inclusive, and scalable research environment. This will increase the impact of SPARC community developements.
- Enables customized search and filtering across datasets and knowledge bases.
- Improves discoverability of data and tools through plugin-driven interfaces.
- Allows users to interact with datasets and models through feature rich plugins.
- Supports integration of external services without requiring portal downtime.
- Facilitates seamless integration with oSPARC and other computational platforms via APIs.
- Encourages modular development using standardized interfaces and containerized environments.
- Promotes reuse of SPARC portal viewers and connectivity map visualisations that can be extended and shared across the community.
- Supports automated plugin deployment and versioning for long-term sustainability.
- Accelerates development and testing of new features without disrupting the main portal.
- Encourages experimentation with advanced technologies like AI, 3D visualization, and segmentation.
- Reduces reliance on core engineering teams, enabling broader participation and faster iteration.
- Empowers non-technical users to contribute via generative AI tools.
When plugins are built, the source code and build files for each plugin are stored in the SPARC Dataset Structure (using sparc-me), with metadata populated using information from the plugin registration page. These datasets can be contributed to the SPARC Portal to enable plugins to be FAIR.
- Making the sparc-plugin developement environment available directly from within oSPARC.
- Use sparc-flow to store plugins descriptions in a standard tool description language such as the common workflow language, enabling them to be integrated into simulation workflows. This workflows can then be used to process SPARC data in new ways and generate new datasets e.g. using sparc-me, directly within these plugins.
- Adopt a micro frontend architecture to take modularity provided by sparc-plugins even furtherโenabling each plugin or UI module to be developed, deployed, and maintained as an independent application. In addition to existing benefits, this will:
- Allow users to use different frameworks or technologies for each plugin e.g. Vue, React, Angular.
- Improve scalability and maintainability by isolating concerns across components.
- Strengthen alignment with FAIR principles, especially interoperability and reusability, by promoting standardized interfaces and reusable UI modules.
- Demonstrate how SPARC plugins can be integrated into portals on other platforms being developed around the world including the Auckland Bioengineering Institute's 12 Labours DigitalTWINS platform, which is being deployed within New Zealand's public health system.
Example plugins have been created to demonstrate the capabilites of sparc-plugins.
They can be accessed by navigating to the Plugins page of the SPARC portal on the cloud-based development environment. Select the 'Launch' button next to the desired plugin to initiate it.
Documentation for how to use these plugins, along with the source code for the front end (client) and backend (API) of each of these plugins is located in the links below.
Note: for the purposes of the Codeathon, the cloud-based development environment has been hosted on the ARDC Nectar Research Cloud. Any backend API required for the clients have been hosted externally as described in the example's API documentation below.
| Examples | Description | Documentation |
|---|---|---|
| 1 | Hello world. | Client |
| 2 | Reusing and extending the existing Simulation Viewer SPARC portal component. | Client |
| 3 | Using a Large Language Model (LLM) chatbot to explore SPARC portal resources including SPARC datasets and knowledge bases. | Client, API |
| 4 | Viewing 3D medical images in sparc datasets and annotating them using an existing pre-trained state-of-the-art AI annotation tool. | Client, API |
| Tutorial | Description | Development environment |
|---|---|---|
| 1 | Creating and testing plugins using the Cloud-based development environment. | Cloud |
| 2 | Reusing and extending an existing SPARC portal component (simulationvuer) as a plugin. This includes functionality for loading data from curated SDS datasets in the SPARC portal and linking to oSPARC services. | Cloud |
| 3 | Creating plugins that link to external services. | Cloud |
| 4 | Creating plugins using generative AI from the Cloud-based development environment. | Cloud |
| 5 | Creating and testing plugins using the local development environment. This includes functionality for loading data from locally stored SDS datasets. | Local |
To report an issue or suggest a new feature, please use the issues page. Issue templates are provided to allow users to report bugs, and documentation or feature requests. Please check existing issues before submitting a new one.
Fork this repository and submit a pull request to contribute. Before doing so, please read our Code of Conduct and Contributing Guidelines. Pull request templates are provided to help guide developers in describing their contribution, mentioning the issues related to the pull request and describing their testing environment.
If you use sparc-plugins to make new discoveries or use the source code, please cite us as follows: Please note that the Zenodo link is a placeholder and can only be added once this repository is made public (after the codathon is completed).
Kekayan Nanthakumar, Xinyue Zhong, Linkun Gao, Thiranja Prasad Babarenda Gamage, Chinchien Lin (2025). sparc-plugins: v1.0.0 - An ecosystem for dynamically integrating accessible feature rich interactive tools into the SPARC portal in accordance with FAIR principles. Zenodo. https://doi.org/XXXX/zenodo.XXXX.
sparc-plugins is fully open source and distributed under the very permissive Apache License 2.0. See LICENSE for more information.
- Kekayan Nanthakumar (Developer, Writer - Documentation)
- Xinyue Zhong (Developer, Writer - Documentation)
- Linkun Gao (Developer, Writer - Documentation)
- Thiranja Prasad Babarenda Gamage (Writer - Documentation)
- Chinchien Lin (Lead, SysAdmin)
We would like to thank the organizers of the 2025 SPARC Codeathon for their guidance and support during this Codeathon.
