The Blue Brain Nexus is a provenance based, semantic enabled data management platform enabling the definition of an arbitrary domain of application for which there is a need to create and manage entities as well as their relations (e.g. provenance). For example, the domain of application managed by the Nexus platform deployed at Blue Brain is to digitally reconstruct and simulate the brain.
At the heart of the Blue Brain Nexus platform lies the Knowledge Graph, at Blue Brain, it will allow scientists to:
-
Register and manage neuroscience relevant entity types through schemas that can reuse or extend community defined schemas (e.g. schema.org, bioschema.org, W3C-PROV) and ontologies (e.g. brain parcellation schemes, cell types, taxonomy).
-
Submit data to the platform and describe their provenance using the W3C PROV model. Provenance is about how data or things are generated (e.g. protocols, methods used...), when (e.g. timeline) and by whom (e.g. people, software...). Provenance supports the data reliability and quality assessment as well as enables workflow reproducibility. Platform users can submit data either through web forms or programmatic interfaces.
-
Search, discover, reuse and derive high-quality neuroscience data generated within and outside the platform for the purpose of driving their own scientific endeavours. Data can be examined by species, contributing laboratory, methodology, brain region, and data type, thereby allowing functionality not currently available elsewhere. The data are predominantly organized into atlases (e.g. Allen CCF, Waxholm) and linked to the KnowledgeSpace – a collaborative community-based encyclopedia linking brain research concepts to the latest data, models and literature.
It is to be noted that many other scientific fields (Astronomy, Agriculture, Bioinformatics, Pharmaceutical industry, ...) are in need of such a technology. Consequently, Blue Brain Nexus core technology is being developed to be agnostic of the domain it might be applied to.
The easiest way to run BlueBrain Nexus locally is to use docker-compose.
In order to run Nexus on your local machine make sure that you have Docker and Docker Compose installed. Docker compose comes bundled together with docker which you can download from Docker website.
Download the docker-compose template
and the Nginx router configuration into a
directory of your choice, for instance ~/docker/nexus/
.
Initialize the docker swarm and then deploy the template with Docker Stacks:
docker swarm init
docker stack deploy nexus --compose-file=docker-compose.yaml
If you’re running it for the first time it will take a few moments to download the required docker images. After all the containers have started you should be able to open the Nexus Landing Page locally on the port 80.
Please visit Running Locally section of the documentation for more detailed instructions.
The overall documentation of the platform is available here. In the following section of this document, we will also point to specific components documentation.
Please check out our tutorials:
- Nexus KG Schema Format
- Jupyter notebook with basic operations using Nexus
- Comprehensive example (real use case): workflow (IPython notebook) and productivity toolkit (Python modules).
Please take a look at these slides for a short technical introduction to Nexus.
Given the current product roadmap, here are the components that make Blue Brain Nexus:
Now let's take a look at these components individually.
This service is the heart of the Blue Brain Nexus platform. It allows users to define their domain, populate the knowledge graph with data, attach data files to entities. It also provides semantic search facilities to discover similar and relevant data in the platform.
Status: active development
Source code: https://github.com/BlueBrain/nexus-kg
Documentation: https://bbp-nexus.epfl.ch/staging/docs/kg/
This service is a relay to any OAUTH2 identity service the platform maintainers decide to configure authentication against. The purpose of this service is to provide a unified identity service for the nexus platform irrespective of which actual underlying service is being used. Furthermore, this service is managing the privileges granted on entities to users.
Status: active development
Source code: https://github.com/BlueBrain/nexus-iam
Documentation: https://bbp-nexus.epfl.ch/staging/docs/iam/
This service manages the main resource groupings used throughout the platform.
Status: active development
Source code: https://github.com/BlueBrain/nexus-admin
Documentation: coming soon
This library is meant to contain reusable utilities of the Nexus platform. Amongst other things, this library contains commons-types, commons-http, shacl-validator, sparql-client, elastic-client.
Status: active development
Source code: https://github.com/BlueBrain/nexus-commons
A collection of small libraries / utilities commonly used in building Nexus services.
Status: active development
Source code: https://github.com/BlueBrain/nexus-service
This library contains all the code related to the management of our Scala projects using SBT. Its purpose is to promote reuse of build code across all projects.
Status: active development
Source code: https://github.com/BlueBrain/sbt-nexus
This web application is the landing page of a Blue Brain Nexus deployment. It gives access to basic statistics about your instance and pointer to other web applications, documentation, tutorials...
Status: active development Source code: https://github.com/BlueBrain/nexus-dashboard
This web application allows users of the nexus platform to search in the knowledge graph. Beyond searching and inspecting data stored in the platform, its purpose is to enable the discovery of similar and related data.
Status: active development
Source code: https://github.com/BlueBrain/nexus-search-webapp
This web application enables users to securely browse entity and data stored in the knowledge graph by drilling down through organisations, domains, schemas and instances. Once an instance of interest has been found, you can navigate the knowledge graph following entity relations.
Status: active development
Source code: https://github.com/BlueBrain/nexus-explorer
This library contains all the code shared by nexus web applications in order to promote their reuse.
Status: active development
Source code: https://github.com/BlueBrain/nexus-webapp-commons
This prototypic web application will allow users to enter data into the knowledge graph using forms generated automatically from domain’s schemas. This application is meant for low scale data integration while large scale will be done programmatically through APIs.
Status: currently inactive Source code: https://github.com/BlueBrain/nexus-registration-webapp
SHACL version of a subset of schemas defined by schema.org that are commonly used in Blue Brain Nexus.
Status: active development
Source code: https://github.com/BlueBrain/nexus-schemaorg
Data management oriented SHACL version of W3C PROV-O.
Status: active development Source code: https://github.com/BlueBrain/nexus-prov
Data models that Blue Brain has developed in order to facilitate the integration of specific neuroscience data.
Status: active development
Source code: https://github.com/BlueBrain/nexus-bbp-domains
A community effort to develop open SHACL schemas for FAIR (Findable, Accessible, Interoperable, Reproducible) neuroscience data.
Status: active development
Source code: https://github.com/INCF/neuroshapes
A command line interface (CLI) to operate basic operation on a Nexus deployment.
Status: active development Source code: https://github.com/BlueBrain/nexus-cli
The Human Brain Project has developed an open source library called Pyxus to facilitate the use of Nexus with Python. This library will help Python users to integrate their tools with the Blue Brain Nexus platform. Initially, it will mainly enable the interface with the Knowledge Graph service.
Status: active development Source code: https://github.com/HumanBrainProject/pyxus