Skip to content

bel-commons/bel-commons

Repository files navigation

BEL Commons Travis-CI Build Status Documentation Status

An environment for curating, validating, and exploring knowledge assemblies encoded in Biological Expression Language (BEL) to support elucidating disease-specific, mechanistic insight.

Installation

BEL Commons can be installed easily from PyPI with the following code in your favorite shell:

$ pip install bel_commons

Get the latest code on GitHub with:

$ python3 -m pip install git+https://github.com/bel-commons/bel-commons.git

It's also suggested to use a relational database management system like PostgreSQL and install their corresponding connectors:

$ python3 -m pip install psycopg2-binary

Run with Manual Setup

A test server can be easily run with:

$ bel-commons run

A more powerful server like gunicorn can also be used like:

$ gunicorn bel_commons.wsgi:flask_app

Running with the Parser

To run the parser, you'll need an instance of a message queue like RabbitMQ (or any other message queue supported by Celery), a results backend like Redis, and a worker. It's best to run in docker if you want to do this.

Run with docker-compose

Clone this repo from GitHub

$ git clone https://github.com/bel-commons/bel-commons.git
$ cd bel-commons

Create a file called .env and generate both SECRET_KEY and SECURITY_PASSWORD_SALT.

SECRET_KEY=mypassword
SECURITY_PASSWORD_SALT=mypassword
BUTLER_NAME="BEL Commons Butler"
BUTLER_EMAIL=bel@example.com
BUTLER_PASSWORD=butlerpassword

Other options:

  • If you want to run BEL Commons so networks can be made private, add DISALLOW_PRIVATE=false.
  • If you want to disable self-serve user registration, add SECURITY_REGISTERABLE=false.
  • If you want to run BEL Commons so none of the pages/endpoints are accessible without login, add LOCKDOWN=true.
  • If you want to automatically add some example networks, add REGISTER_EXAMPLES=true.

Run docker-compose. If you don't have it, check the docker-compose installation guide:

$ docker-compose up

If you want it to run in the background, use docker-compose up --detach.

Ports exposed:

  • 5002: BEL Commons web application
  • 5432: PostgreSQL database

Figure our your container ID with:

docker ps | grep bel

Check the logs with:

docker exec -it <your container id> /usr/bin/tail -f web_log.txt

Same can be done for celery_log.txt or worker_log.txt.

Make an existing user an admin with:

docker exec -it <your container id> bel-commons manage users make-admin <user email>

Reset the Database

For the times when you just have to burn it down and start over:

  1. bel-commons manage drop will nuke the database and output a user list
  2. bel-commons manage load will automatically add the most recently exported user list
  3. bel-commons manage examples load will automatically load some example networks and data sets

Citation

If you find BEL Commons useful in your work, please consider citing [Hoyt2018] and [Hoyt2017]:

[Hoyt2018]Hoyt, C. T., Domingo-Fernández, D., & Hofmann-Apitius, M. (2018). BEL Commons: an environment for exploration and analysis of networks encoded in Biological Expression Language. Database, 2018(3), 1–11.
[Hoyt2017]Hoyt, C. T., Konotopez, A., & Ebeling, C., (2017). PyBEL: a computational framework for Biological Expression Language. Bioinformatics, 34(4), 703–704.

Acknowledgements

Supporters

This project has been supported by several organizations:

Logo

The BEL Commons logo was designed by Scott Colby.

About

An environment for curating, validating, and exploring knowledge assemblies encoded in BEL

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •