interactive-viewer
v2.7.0
Published
HBP interactive atlas viewer. Integrating KG query, dataset previews & more. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular
Downloads
10
Readme
siibra-explorer - Interactive viewer for multilevel brain atlases
Authors: Big Data Analytics Group, Institute of Neuroscience and Medicine (INM-1), Forschungszentrum Jülich GmbH
Copyright 2020-2021, Forschungszentrum Jülich GmbH
siibra-explorer
is an frontend module wrapping around nehuba for visualizing volumetric brain volumes at possible high resolutions, and connecting to siibra-api
for offering access to brain atlases of different species, including to navigate their brain region hierarchies, maps in different coordinate spaces, and linked regional data features. It provides metadata integration with the EBRAINS knowledge graph, different forms of data visualisation, and a structured plugin system for implementing custom extensions.
Getting Started
A live version of the Interactive Atlas Viewer is available at https://interactive-viewer.apps.hbp.eu. This section is useful for developers who would like to develop this project.
General information
Interactive atlas viewer is built with Angular (v12.0), Bootstrap (v4), and fontawesome icons. Some other notable packages used are ngrx/store for state management.
Releases newer than v0.2.9 also uses a nodejs backend, which uses passportjs for user authentication, express as a http framework.
Develop
Prerequisites
- latest version of node 12.x.x or node 14.x.x
Environments
It is recommended to manage your environments with .env
file.
Buildtime environments
Please see build_env.md
Deploy environments
Please see deploy_env.md
e2e test environments
Please see e2e_env.md
Start dev server
To run a dev server, run:
$ git clone https://github.com/HumanBrainProject/interactive-viewer
$ cd interactive-viewer
$ npm i
$ npm run dev-server
Start backend (in a separate terminal):
$ cd deploy
$ node server.js
Build
$ npm run build-aot
Develop plugins
Below demonstrates an example workflow for developing plugins:
$ # build aot version of the atlas viewer
$ npm run build-aot
$ cd deploy
$ # run server with PLUGIN_URLS
$ PLUGIN_URLS=http://localhost:3333/manifest.json;http://localhost:3334/manifest.json node server.js
Interactive Atlas Viewer attempts to fetch list of manifests:
GET {BACKEND_URL}/plugins
The response from this endpoint will be:
[
"http://localhost:3333/manifest.json",
"http://localhost:3334/manifest.json"
]
When user launches the viewer, the atlas viewer will attempt to fetch the metadata of the plugins:
GET http://localhost:3333/manifest.json
GET http://localhost:3334/manifest.json
The response from these endpoints are expected to adhere to manifests.
When the user launches the plugin, the viewer will fetch templateUrl
and scriptUrl
, if necessary.
Plugin developers can start their own webserver, use interactive-viewer-plugin-template, or (coming soon) provide link to a github repository.
Contributing
Feel free to raise an issue in this repo and/or file a PR.
Versioning
Commit history prior to v0.2.0 is available in the legacy-v0.2.0 branch. The repo was rewritten to remove its dependency on neuroglancer and nehuba. This allowed for simpler webpack config, faster build time and AOT compilation.
License
Apache-2.0
Acknowledgements
This software code is funded from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 945539 (Human Brain Project SGA3).