Biospytial is a modular open source knowledge engine designed to import, organise, analyse and visualise big spatial ecological datasets using the power of graph theory. It handles species occurrences and their taxonomic classification for performing ecological analysis on biodiversity and species distributions.
The engine uses a hybrid graph-relational approach to store and access information linked with relationships that are stored in a graph database, while tabular and geospatial (vector and raster) data are stored in a relational database management system (Postgis 9.x). The graph data structure provides a scalable design that eases the problem of merging datasets from different sources.
The linkage relationships use semantic structures (objects and predicates) to answer scientific questions represented as complex data structures stored in the graph database.
Biospytial comprises three interconnected components:
- Geospatial Processing unit (GPU) supported by a RDBMS with geoprocessing capabilities
- Graph Storage and Querying Unit (supported by Neo4J)
- A graph-relational package, The Biospytial Computing Engine (BCE) that integrates all the system’s components.
It also includes tools like: interactive notebooks and command-line suite for analyzing biodiversity across scales and space.*
The suite is currently installed in a Docker container. (molgor/biospytial) It uses a neo4j and a postgis backend that can be found in the molgor repository in the Docker Hub. Instructions for installing are located here
The jupyter notebook is automatically loaded. To access it use a webbrowser and go to the following url:
If a token is requested run the following command:
./getJupyterToken.sh
Copy the Use the token value and paste it in the webpage.
Currently there are two examples, more are coming!
Use the ssh service
ssh -p 2323 biospytial@localhost
The password is biospytial.
It is recommended to change this password if it is intended to use in operational mode.
Happy coding 😄
We can load a process visualizer to see if everything is working properly
docker run -it -d -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock dockersamples/visualizer
Visit the webpage [your_host]:8080
The datasets are available in binary format to be run by the Biospytial system. This include the necessary data for running the examples provided in the manuscript submitted to a peer-reviewed journal.
There are two folders here:
postgisdb
: the binary data files used by the Relational Geoprocessing Unit (RGP)neo4jdb
: the binary data files used by the Graph Storage and Processing Unit (GSPU)
The two folders should be mounted on their respective module (service in docker jargon). This is done by adding the absolute path of these folders into the docker compose file.
- The name of the service for the RGP is postgis.
- The name of the service for the GSPU is neo4j.
The PATH to change is in the section: volumes
Assuming that the path for the data is:
/home/foo/biospytial-data
The volume
section should be changed to:
volumes:
- '/home/foo/biospytial-data/postgisdb:/DataVolumes'
Similarly for the neo4j service:
volumes:
- '/home/foo/biospytial-data/neo4jdb:/DataVolumes'
The docker compose files are stored in the Biospytial source code, inside the folder container_files
.
These files are:
biospytial_stack.yml
(Linux)biospytial_stackOSX.yml
(Mac)
The software is under review, data will be available after passing this stage.
Date: July 23th, 2019 Author: Juan Escamilla Molgora