Skip to content
Snippets Groups Projects
Unverified Commit e76fbbda authored by xgui3783's avatar xgui3783 Committed by GitHub
Browse files

Merge pull request #1312 from FZJ-INM1-BDA/dev

v2.11.0 push to staging
parents 5d9dc0d5 39ce70cd
No related branches found
No related tags found
No related merge requests found
Showing
with 564 additions and 28 deletions
......@@ -7,7 +7,7 @@ on:
# changes to .openshift directory... mostly devops config
- '.openshift/*'
# docs (docs are built on readthedocs any way)
- 'docs/*'
- 'docs/**/*'
jobs:
build-docker-img:
......@@ -18,14 +18,22 @@ jobs:
PRODUCTION: 'true'
DOCKER_REGISTRY: 'docker-registry.ebrains.eu/siibra/'
SIIBRA_API_STABLE: 'https://siibra-api-stable.apps.hbp.eu/v3_0,https://siibra-api-stable-ns.apps.hbp.eu/v3_0,https://siibra-api-stable.apps.jsc.hbp.eu/v3_0'
SIIBRA_API_STABLE: 'https://siibra-api-stable.apps.hbp.eu/v3_0,https://siibra-api-stable.apps.jsc.hbp.eu/v3_0'
SIIBRA_API_RC: 'https://siibra-api-rc.apps.hbp.eu/v3_0'
SIIBRA_API_LATEST: 'https://siibra-api-latest.apps-dev.hbp.eu/v3_0'
SIIBRA_API_LOCAL: 'http://localhost:10081/v3_0'
LOCAL_TAG: 'local-10081'
strategy:
matrix:
build: [ 'local', 'prod' ]
steps:
- uses: actions/checkout@v2
- name: 'Set matomo env var'
# if matrix.build is local, only run if master or dev
if: ${{ !(matrix.build == 'local' && github.ref != 'refs/heads/master' && github.ref != 'refs/heads/dev') }}
run: |
echo "Using github.ref: $GITHUB_REF"
......@@ -52,8 +60,17 @@ jobs:
echo "SIIBRA_API_ENDPOINTS=${{ env.SIIBRA_API_LATEST }}" >> $GITHUB_ENV
fi
fi
if [[ "${{ matrix.build }}" == "local" ]]
then
echo "SIIBRA_API_ENDPOINTS=${{ env.SIIBRA_API_LOCAL }}" >> $GITHUB_ENV
echo "MATOMO_URL=" >> $GITHUB_ENV
echo "MATOMO_ID=" >> $GITHUB_ENV
fi
- name: 'Set version variable & expmt feature flag'
# if matrix.build is local, only run if master or dev
if: ${{ !(matrix.build == 'local' && github.ref != 'refs/heads/master' && github.ref != 'refs/heads/dev') }}
run: |
if [[ "$GITHUB_REF" == 'refs/heads/master' ]] || [[ "$GITHUB_REF" == 'refs/heads/staging' ]]
then
......@@ -63,8 +80,14 @@ jobs:
echo "EXPERIMENTAL_FEATURE_FLAG=true" >> $GITHUB_ENV
fi
- name: 'Build docker image'
# if matrix.build is local, only run if master or dev
if: ${{ !(matrix.build == 'local' && github.ref != 'refs/heads/master' && github.ref != 'refs/heads/dev') }}
run: |
DOCKER_BUILT_TAG=${{ env.DOCKER_REGISTRY }}siibra-explorer:$BRANCH_NAME
if [[ "${{ matrix.build }}" == "local" ]]
then
DOCKER_BUILT_TAG="$DOCKER_BUILT_TAG"-${{ env.LOCAL_TAG }}
fi
echo "Building $DOCKER_BUILT_TAG"
docker build \
--build-arg MATOMO_URL=$MATOMO_URL \
......@@ -77,6 +100,8 @@ jobs:
echo "DOCKER_BUILT_TAG=$DOCKER_BUILT_TAG" >> $GITHUB_ENV
- name: 'Push to docker registry'
# if matrix.build is local, only run if master or dev
if: ${{ !(matrix.build == 'local' && github.ref != 'refs/heads/master' && github.ref != 'refs/heads/dev') }}
run: |
echo "Login to docker registry"
docker login \
......
......@@ -32,6 +32,7 @@ jobs:
with:
tag_name: ${{ needs.check-version.outputs.package-version }}
release_name: Release ${{ needs.check-version.outputs.package-version }}
body_path: docs/releases/v${{ needs.check-version.outputs.package-version }}.md
draft: false
prerelease: false
......
......@@ -4,7 +4,7 @@ ARG BACKEND_URL
ENV BACKEND_URL=${BACKEND_URL}
ARG SIIBRA_API_ENDPOINTS
ENV SIIBRA_API_ENDPOINTS=${SIIBRA_API_ENDPOINTS:-https://siibra-api-stable.apps.hbp.eu/v2_0,https://siibra-api-stable-ns.apps.hbp.eu/v2_0,https://siibra-api-stable.apps.jsc.hbp.eu/v2_0}
ENV SIIBRA_API_ENDPOINTS=${SIIBRA_API_ENDPOINTS:-https://siibra-api-stable.apps.hbp.eu/v3_0,https://siibra-api-stable.apps.jsc.hbp.eu/v3_0}
ARG STRICT_LOCAL
ENV STRICT_LOCAL=${STRICT_LOCAL:-false}
......@@ -74,7 +74,7 @@ COPY --from=builder /iv/common /common
# Copy the express server
COPY --from=builder /iv/deploy .
# Copy built interactive viewer
# Copy built siibra explorer
COPY --from=compressor /iv ./public
RUN chown -R node:node /iv-app
......
......@@ -4,7 +4,7 @@
[![Documentation Status](https://readthedocs.org/projects/siibra-explorer/badge/?version=latest)](https://siibra-explorer.readthedocs.io/)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
# siibra-explorer - Interactive viewer for multilevel brain atlases
# siibra-explorer - Interactive atlas viewer for multilevel brain atlases
*Authors: Big Data Analytics Group, Institute of Neuroscience and Medicine (INM-1), Forschungszentrum Jülich GmbH*
......@@ -14,11 +14,11 @@ Copyright 2020-2021, Forschungszentrum Jülich GmbH
## Getting Started
A live version of the Interactive Atlas Viewer is available at [https://atlases.ebrains.eu/viewer/](https://atlases.ebrains.eu/viewer/). This section is useful for developers who would like to develop this project.
A live version of the siibra explorer is available at [https://atlases.ebrains.eu/viewer/](https://atlases.ebrains.eu/viewer/). This section is useful for developers who would like to develop this project.
### General information
Interactive atlas viewer is built with [Angular (v13.0)](https://angular.io/), [Bootstrap (v4)](http://getbootstrap.com/), and [fontawesome icons](https://fontawesome.com/). Some other notable packages used are [ngrx/store](https://github.com/ngrx/platform) for state management.
Siibra explorer is built with [Angular (v14.0)](https://angular.io/), [Bootstrap (v4)](http://getbootstrap.com/), and [fontawesome icons](https://fontawesome.com/). Some other notable packages used are [ngrx/store](https://github.com/ngrx/platform) for state management.
Releases newer than [v0.2.9](https://github.com/HumanBrainProject/interactive-viewer/tree/v0.2.9) also uses a nodejs backend, which uses [passportjs](http://www.passportjs.org/) for user authentication, [express](https://expressjs.com/) as a http framework.
......
# Build-time environment variables
As interactive atlas viewer uses [webpack define plugin](https://webpack.js.org/plugins/define-plugin/), where necessary, the environmental variables are `JSON.stringify`'ed and directly replaced in the code.
As siibra-explorer uses [webpack define plugin](https://webpack.js.org/plugins/define-plugin/), where necessary, the environmental variables are `JSON.stringify`'ed and directly replaced in the code.
| name | description | default | example |
| --- | --- | --- | --- |
......
......@@ -90,7 +90,7 @@
}
exports.CONST = {
KG_TOS: `The interactive viewer queries HBP Knowledge Graph Data Platform ("KG") for published datasets.
KG_TOS: `Siibra explorer queries EBRAINS Knowledge Graph Data Platform ("KG") for published datasets.
Access to the data and metadata provided through KG requires that you cite and acknowledge said data and metadata according to the Terms and Conditions of the Platform.
......
# Quickstart
| Action | Desktop | Touch devices |
| --- | --- |
| --- | --- | --- |
| Translate / Pan | `[drag]` any of the slice views | `[drag]` any of the slice views |
| Oblique rotation | `<shift>` + `[drag]` any of the slice views | `[rotate]` any of the slice views |
| Zoom | `[mousewheel]` | `[pinch zoom]` |
......@@ -11,6 +8,8 @@
| Next 10 slice | `<ctrl>` + `<shift>` + `[mousewheel]` | - |
| Toggle delineation | `[q]` | - |
| Toggle cross hair | `[a]` | - |
| Multiple region select | `<ctrl>` + `[click]` on region | - |
| Context menu | `[right click]` | - |
---
......
# Deployment
Latest stable version of interactive atlas viewer is continously deployed to the following URL:
Latest stable version of siibra explorer is continously deployed to the following URL:
- <https://interactive-viewer.apps.hbp.eu/>
- <https://atlases.ebrains.eu/viewer/>
## Dependency monitoring
Interactive atlas viewer interacts with a number of other ebrains services. Monitoring these services contributes to the stability of the webapplication.
Siibra explorer interacts with a number of other ebrains services. Monitoring these services contributes to the stability of the webapplication.
### Probability & continuous maps availability
......
......@@ -26,7 +26,7 @@ const getQuickStartMdPr = (async () => {
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://unpkg.com/dompurify@latest/dist/purify.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive Atlas Viewer Quickstart</title>
<title>Siibra Explorer Quickstart</title>
<style>
.padded { padding: 1.5rem; }
</style>
......
# Deploy plugin
This section details how plugins can be deployed on ebrains infrastructure (openshift). It should also apply more generally to other infrastructure providers with openshift and/or k8s flavors.
## Prerequisite
- Docker
- Access to self hosted docker registry (e.g. docker-registry.ebrains.eu) [1]
- Access to openshift cluster (e.g. okd.hbp.eu)
- openshift cli `oc` installed [https://github.com/openshift/origin/releases/tag/v3.11.0](https://github.com/openshift/origin/releases/tag/v3.11.0) (for CLI approach)
## How
!!! warning
This guide assumes the plugin developers are using the template repo provided at [https://github.com/FZJ-INM1-BDA/siibra-toolbox-template](https://github.com/FZJ-INM1-BDA/siibra-toolbox-template), such as [https://github.com/fzj-inm1-bda/siibra-jugex/tree/feat_workerFrontend](https://github.com/fzj-inm1-bda/siibra-jugex/tree/feat_workerFrontend)
!!! info
This guide assumes plugin developers successfully tested their plugin locally.
!!! info
This guide is suitable for deploying the application for the initial deployment of the application. Documentation on updating of deployed services can be found at [update_plugin_deployment.md](update_plugin_deployment.md)
You can deploy the plugin either via GUI or CLI.
## How (via CLI)
0. (can be skipped if project already created) Goto https://docker-registry.ebrains.eu/ , create a project (hereafter referred to as `<project_name>`). Decide a namespace for your current project, hereafter referred to as `<app_name>`
1. In root working directory, build server image with
```sh
docker build \
-f http.server.dockerfile \
-t docker-registry.ebrains.eu/<project_name>/<app_name>:latest-server \
.
```
2. In root working directory, build worker image with
```sh
docker build \
-f http.worker.dockerfile \
-t docker-registry.ebrains.eu/<project_name>/<app_name>:latest-worker \
.
```
3. Login to docker registry via CLI
```sh
docker login -u <USERNAME> -p <PASSWORD> docker-registry.ebrains.eu
```
!!! info
Most docker registry do **not** require you to use your actual password. In docker-registry.ebrains.eu (Harbor), you can obtain a token with auto expiry by clicking your profile > CLI Secret.
4. Push both worker and server images to docker registry
```sh
docker push docker-registry.ebrains.eu/<project_name>/<app_name>:latest-worker
docker push docker-registry.ebrains.eu/<project_name>/<app_name>:latest-server
```
5. Login to openshift admin dashboard. (Create a project if you haven't already, hereafter referred to as `<okd_project_name>`). Enter your project by clicking it.
6. Copy `openshift-service-tmpl.yml` to our working directory, or `cd` into this directory
7. Copy the login command via `(top right) [Your Username]` > `Copy Login Command`. Launch a terminal, paste the login command and hit enter.
8. Select the project with `oc project <okd_project_name>`
9. Start the service with
```sh
oc new-app \
-f openshift-service-tmpl.yml \
-p TOOLBOX_NAME=my_app \
-p TOOLBOX_ROUTE=https://my_app_route.apps.hbp.eu \
-p TOOLBOX_WORKER_IMAGE=docker-registry.ebrains.eu/<project_name>/<app_name>:latest-worker \
-p TOOLBOX_SERVER_IMAGE=docker-registry.ebrains.eu/<project_name>/<app_name>:latest-server
```
## How (via GUI)
for 0. - 5. (follow How (via CLI))
6. Deploy a redis instance via GUI:
- `(top right) Add to project` > `Deploy Image` > `(radio button) Image Name`
- enter `docker-registry.ebrains.eu/monitoring/redis:alpine3.17` in the text field
- click `(button) [magnifying glass]`
- change or remember the `name` attribute. Hereafter this attribute will be referred to as `<redis_instance_name>`
- click `(primary button) Deploy`
7. Deploy the server via GUI:
- `(top right) Add to project` > `Deploy Image` > `(radio button) Image Name`
- enter `docker-registry.ebrains.eu/<project_name>/<app_name>:latest-server` in the text field
- click `(button) [magnifying glass]`
- under `Environment Variables`, add the following environment variables[2]:
- `SIIBRA_TOOLBOX_CELERY_BROKER`=`redis://<redis_instance_name>:6379`
- `SIIBRA_TOOLBOX_CELERY_RESULT`=`redis://<redis_instance_name>:6379`
- under `Labels`, add the following labels:
- `app_role`=`server`
- click `(primary button) Deploy`
8. Deploy worker via GUI: repeat 7. but
- use `docker-registry.ebrains.eu/<project_name>/<app_name>:latest-worker` as the image
- under `Labels` use the following labels:
- `app_role`=`worker`
9. Create route (TBD)
[1] dockerhub rate/count limits pulls from IP addresses. It is likely that the openshift cluster would easily exceed the quota.
[2] you may have to adjust the variable names if you have changed them in your project
version: '3'
services:
redis:
image: redis
restart: always
siibra-api:
depends_on:
- redis
image: docker-registry.ebrains.eu/siibra/siibra-api:0.3
ports:
- '10081:5000'
environment:
REDIS_HOST: redis
REDIS_PORT: '6379'
# comment out below to run siibra with default configuration
SIIBRA_USE_CONFIGURATION: /data/siibra-configuration
volumes:
- </path/to/your/volume/>:/data/siibra-configuration
# comment out above to run siibra with default configuration
siibra-explorer:
ports:
- '10082:3000'
depends_on:
- siibra-api
image: docker-registry.ebrains.eu/siibra/siibra-explorer:dev-local-10081
environment:
PORT: '3000'
# Local configuration
This documentation outlines how advanced users can run siibra-explorer targeted at a siibra-configuration directory on their own machine
!!! info
siibra-configuration only contain atlas metadata. As a result, the procedure described in this document still requires an active internet connection to function.
## Why
Advanced users may wish to run local instances of siibra-explorer against local siibra-configuration for any number of reasons:
- Data cannot yet be made public
- Testing the integration of atlas/template/parcellation/features
- etc
## Prerequisite
- This document assumes the user validated that the configuration is visible in siibra-python (TODO add link).
- Docker & docker-compose
## Steps
- copy the [docker-compose.yml](docker-compose.yml) file to your working directory
- replace `</path/to/your/volume/>` with path to siibra-configuration on your machine
- run `docker-compose up -d`
- siibra-explorer should be running on http://localhost:10082
- to teardown, run `docker-compose down`
!!! info
First visit of each endpoints of cold started siibra-api often takes very long. The result is cached by by redis middleware, and subsequent visits will result in millisecond response time. If at first the page does not load, try refreshing once every 5 second.
!!! info
If you make any changes to the configuration, you will have to teardown and restart.
apiVersion: template.openshift.io/v1
kind: Template
labels:
template: siibra-toolbox-deploy-template
metadata:
annotations:
description: Deploy siibra toolbox
tags: python,async
name: siibra-toolbox-deploy-template
objects:
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: siibra-toolbox-deploy-${TOOLBOX_NAME}
name: siibra-toolbox-deploy-${TOOLBOX_NAME}-redis
spec:
replicas: 3
revisionHistoryLimit: 10
selector:
deploymentconfig: siibra-toolbox-deploy-${TOOLBOX_NAME}-redis
template:
metadata:
labels:
app: siibra-toolbox-deploy-${TOOLBOX_NAME}
deploymentconfig: siibra-toolbox-deploy-${TOOLBOX_NAME}-redis
spec:
containers:
- image: docker-registry.ebrains.eu/monitoring/redis:alpine3.17
imagePullPolicy: Always
name: redis
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: siibra-toolbox-deploy-${TOOLBOX_NAME}
app_role: worker
name: siibra-toolbox-deploy-${TOOLBOX_NAME}-worker
spec:
replicas: 3
revisionHistoryLimit: 10
selector:
deploymentconfig: siibra-toolbox-deploy-${TOOLBOX_NAME}-worker
template:
metadata:
labels:
app: siibra-toolbox-deploy-${TOOLBOX_NAME}
app_role: worker
deploymentconfig: siibra-toolbox-deploy-${TOOLBOX_NAME}-worker
spec:
containers:
- env:
- name: SIIBRA_TOOLBOX_NAME
value: ${SIIBRA_TOOLBOX_NAME}
- name: SIIBRA_TOOLBOX_CELERY_BROKER
value: redis://redis:6379
- name: SIIBRA_JURGEX_CELERY_RESULT
value: redis://redis:6379
# see [2]
# - name: SIIBRA_TOOLBOX_DATA_DIR
# value: ${SHARED_VOLUME_MOUNT}
# see [1]
# - name: SIIBRA_TOOLBOX_LOG_DIR
# value: ${LOG_VOLUME_MOUNT}
image: ${TOOLBOX_WORKER_IMAGE}
imagePullPolicy: Always
name: siibra-toolbox-deploy-${TOOLBOX_NAME}-worker
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
# see [2]
# - mountPath: ${SHARED_VOLUME_MOUNT}
# name: volume-${SHARED_VOLUME_WORKER_VOLUME_NAME}
# see [1]
# - mountPath: ${LOG_VOLUME_MOUNT}
# name: volume-${LOG_VOLUME_WORKER_VOLUME_NAME}
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
# see [2]
# - name: volume-${SHARED_VOLUME_WORKER_VOLUME_NAME}
# persistentVolumeClaim:
# claimName: toolbox-storage
# see [1]
# - name: volume-${LOG_VOLUME_WORKER_VOLUME_NAME}
# persistentVolumeClaim:
# claimName: log-volume
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: siibra-toolbox-deploy-${TOOLBOX_NAME}
app_role: server
name: siibra-toolbox-deploy-${TOOLBOX_NAME}-server
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
deploymentconfig: siibra-toolbox-deploy-${TOOLBOX_NAME}-server
template:
metadata:
labels:
app: siibra-toolbox-deploy-${TOOLBOX_NAME}
app_role: server
deploymentconfig: siibra-toolbox-deploy-${TOOLBOX_NAME}-server
spec:
containers:
- env:
- name: SIIBRA_TOOLBOX_NAME
value: ${SIIBRA_TOOLBOX_NAME}
- name: SIIBRA_TOOLBOX_CELERY_BROKER
value: redis://redis:6379
- name: SIIBRA_JURGEX_CELERY_RESULT
value: redis://redis:6379
# see [2]
# - name: SIIBRA_TOOLBOX_DATA_DIR
# value: ${SHARED_VOLUME_MOUNT}
# see [1]
# - name: SIIBRA_TOOLBOX_LOG_DIR
# value: ${LOG_VOLUME_MOUNT}
image: ${TOOLBOX_SERVER_IMAGE}
imagePullPolicy: Always
# You can choose to have a liveness probe.
# Here, it is at /ready
# uncomment if you have
# livenessProbe:
# failureThreshold: 3
# httpGet:
# path: /ready
# port: 6001
# scheme: HTTP
# initialDelaySeconds: 10
# periodSeconds: 10
# successThreshold: 1
# timeoutSeconds: 1
name: siibra-toolbox-deploy-${TOOLBOX_NAME}-server
ports:
- containerPort: 6001
protocol: TCP
# You can choose to have a readiness probe.
# Here, it is at /ready
# uncomment if you have
# readinessProbe:
# failureThreshold: 3
# httpGet:
# path: /ready
# port: 6001
# scheme: HTTP
# initialDelaySeconds: 3
# periodSeconds: 10
# successThreshold: 1
# timeoutSeconds: 6
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
# see [2]
# - mountPath: ${SHARED_VOLUME_MOUNT}
# name: volume-${SHARED_VOLUME_SERVER_VOLUME_NAME}
# see [1]
# - mountPath: ${LOG_VOLUME_MOUNT}
# name: volume-${LOG_VOLUME_SERVER_VOLUME_NAME}
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
# see [2]
# - name: volume-${SHARED_VOLUME_SERVER_VOLUME_NAME}
# persistentVolumeClaim:
# claimName: toolbox-storage
# see [1]
# - name: volume-${LOG_VOLUME_SERVER_VOLUME_NAME}
# persistentVolumeClaim:
# claimName: log-volume
- apiVersion: v1
kind: Service
metadata:
labels:
app: siibra-toolbox-deploy-${TOOLBOX_NAME}
name: siibra-toolbox-deploy-${TOOLBOX_NAME}-service
spec:
ports:
- name: 6001-tcp
port: 6001
protocol: TCP
targetPort: 6001
selector:
deploymentconfig: siibra-toolbox-deploy-${TOOLBOX_NAME}-server
type: ClusterIP
- apiVersion: v1
kind: Route
metadata:
labels:
app: siibra-toolbox-deploy-${TOOLBOX_NAME}
name: siibra-toolbox-deploy-${TOOLBOX_NAME}-route
spec:
host: ${TOOLBOX_ROUTE}
port:
targetPort: 6001-tcp
tls:
insecureEdgeTerminationPolicy: Redirect
termination: edge
to:
kind: Service
name: siibra-toolbox-deploy-${TOOLBOX_NAME}-service
weight: 100
wildcardPolicy: None
parameters:
- description: Toolbox name
name: TOOLBOX_NAME
required: true
- description: Toolbox Route, without scheme (i.e. no https?://). should be [a-z0-9][a-z0-9-][a-z0-9].apps(-dev)?.hbp.eu
name: TOOLBOX_ROUTE
required: true
- description: Docker image for the worker
name: TOOLBOX_WORKER_IMAGE
required: true
- description: Docker image for the server
name: TOOLBOX_SERVER_IMAGE
required: true
- description: Randomly generated volume name. Do not overwrite
from: '[a-z0-9]{8}'
generate: expression
name: SHARED_VOLUME_SERVER_VOLUME_NAME
- description: Randomly generated volume name. Do not overwrite
from: '[a-z0-9]{8}'
generate: expression
name: SHARED_VOLUME_WORKER_VOLUME_NAME
- description: Randomly generated volume name. Do not overwrite
from: '[a-z0-9]{8}'
generate: expression
name: LOG_VOLUME_SERVER_VOLUME_NAME
- description: Path where shared volume will be mounted. Applies to both server and
worker pods.
name: SHARED_VOLUME_MOUNT
value: /siibra_toolbox_volume
- description: Randomly generated volume name. Do not overwrite
from: '[a-z0-9]{8}'
generate: expression
name: LOG_VOLUME_WORKER_VOLUME_NAME
- description: Randomly generated volume name. Do not overwrite
from: '[a-z0-9]{8}'
generate: expression
name: LOG_VOLUME_SERVER_VOLUME_NAME
- description: Path where shared volume will be mounted. Applies to both server and
worker pods.
name: LOG_VOLUME_MOUNT
value: /siibra_toolbox_logs
# [1] enabling logging volume
#
# If you would like shared log storage between worker and server
# create a persistent log storage named `log-volume`
# Then uncomment this block
# [2] enabling shared data volume
#
# If you would like shared data storage between worker and server
# create a persistent data storage named `toolbox-storage`
# Then uncomment this block
TBD
\ No newline at end of file
# Interactive Atlas Viewer
# Siibra Explorer
The interactive atlas viewer is a browser based viewer of brain atlases. Tight integration with the Human Brain Project Knowledge Graph allows seamless querying of semantically and spatially anchored datasets.
The siibra explorer is a browser based viewer of brain atlases. Tight integration with the ebrains Knowledge Graph allows seamless querying of semantically and spatially anchored datasets.
![](images/desktop_bigbrain_cortical.png)
## Links
- production: <https://interactive-viewer.apps.hbp.eu>
- production: <https://atlases.ebrains.eu/viewer/>
- support: [support@ebrains.eu](mailto:support@ebrains.eu?subject=[interactive%20atlas%20viewer]%20queries)
# v2.11.0
## Feature
- Automatically selects human multilevel atlas on startup, if no atlases are selected
- Allow multiple region selection for visualization purposes (`<ctrl>` + `[click]` on region)
- Allow point to be selected (`[right click]`) and enabling map assignment
- Allow atlas download
## Behind the scenes
- fixed unit tests
- updated checklist.md, removed outdated checklist item
- Reorganised help, quick tour and about page
- Simplify volume of interest wireframe show/hide
# System requirements
Interactive atlas viewer relies on [WebGL2.0](https://en.wikipedia.org/wiki/WebGL). Whilst a large proportion of modern browsers support this technology, some browser vendors do not. Most notably, __none__ of the Apple browsers (Safari on MacOS, [**any** browser on iOS](https://developer.apple.com/app-store/review/guidelines/#software-requirements)) support WebGL2.0.
Siibra exporer relies on [WebGL2.0](https://en.wikipedia.org/wiki/WebGL).
!!! info
To check if your device and browser combination support webgl 2.0, visit <https://get.webgl.org/webgl2/>.
......@@ -8,11 +8,9 @@ Interactive atlas viewer relies on [WebGL2.0](https://en.wikipedia.org/wiki/WebG
## Desktop
- PC (Windows/Linux/MacOS)
- Latest Chrome/Firefox
- Latest Chrome/Firefox/Safari
- Dedicated graphics card (optional, but will drastically improve the performance)
## Mobile
- Android Smartphone
- Latest Chrome/Firefox
- Latest Chrome/Firefox/Safari
# Exploring a connectivity matrix for the selected brain parcellation
Via the <https://github.com/FZJ-INM1-BDA/HBP-connectivity-component>, the interactive atlas viewer allows interactive exploration of a connectivity matrix, that is defined for the currently selected brain parcellation and available from the HBP Knowledge Graph. As of now, this function is only available for the `JuBrain Cytoarchitectonic Atlas.
Via the <https://github.com/FZJ-INM1-BDA/HBP-connectivity-component>, the siibra explorer allows interactive exploration of a connectivity matrix, that is defined for the currently selected brain parcellation and available from the HBP Knowledge Graph. As of now, this function is only available for the `JuBrain Cytoarchitectonic Atlas.
## Launching the connectivity browser
......
......@@ -2,7 +2,7 @@
## Navigating the viewer
The interactive atlas viewer can be accessed from either a desktop or an Android mobile device. The navigation scheme vary slightly between the two platforms.
The siibra explorer can be accessed from either a desktop or an Android mobile device. The navigation scheme vary slightly between the two platforms.
| | Desktop | Mobile |
| --- | --- | --- |
......@@ -41,6 +41,6 @@ From here, `click` on `Navigate`.
## Navigation status panel
You can find the navigation status in the lower left corner of the interactive atlas viewer. You can reset the `position`, `rotation` and/or `zoom`, as well as toggling the units between `physical` (mm) and `voxel`.
You can find the navigation status in the lower left corner of the siibra explorer. You can reset the `position`, `rotation` and/or `zoom`, as well as toggling the units between `physical` (mm) and `voxel`.
[![](images/navigation_status.png)](images/navigation_status.png)
# Searching
The interactive viewer fetches datasets semantically linked to [selected regions](selecting.md#selecting-deselecting-regions). If no regions are selected, all datasets associated with a parcellation will be returned.
Siibra explorer fetches datasets semantically linked to [selected regions](selecting.md#selecting-deselecting-regions). If no regions are selected, all datasets associated with a parcellation will be returned.
[![](images/bigbrain_search_interface.png)](images/bigbrain_search_interface.png)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment