An environment for curating, validating, and exploring knowledge assemblies encoded in Biological Expression Language (BEL) to support elucidating disease-specific, mechanistic insight.
BEL Commons can be installed easily from PyPI with the following code in your favorite shell:
$ pip install bel_commonsGet the latest code on GitHub with:
$ python3 -m pip install git+https://github.com/bel-commons/bel-commons.gitIt's also suggested to use a relational database management system like PostgreSQL and install their corresponding connectors:
$ python3 -m pip install psycopg2-binaryA test server can be easily run with:
$ bel-commons runA more powerful server like gunicorn can also be used like:
$ gunicorn bel_commons.wsgi:flask_appTo 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.
Clone this repo from GitHub
$ git clone https://github.com/bel-commons/bel-commons.git
$ cd bel-commonsCreate 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"
[email protected]
BUTLER_PASSWORD=butlerpasswordOther 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 upIf 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 belCheck the logs with:
docker exec -it <your container id> /usr/bin/tail -f web_log.txtSame 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>For the times when you just have to burn it down and start over:
bel-commons manage dropwill nuke the database and output a user listbel-commons manage loadwill automatically add the most recently exported user listbel-commons manage examples loadwill automatically load some example networks and data sets
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. |
This project has been supported by several organizations:
- University of Bonn
- Bonn Aachen International Center for IT
- Fraunhofer Institute for Algorithms and Scientific Computing
- Fraunhofer Center for Machine Learning
- IMI (in the AETIONOMY project)
The BEL Commons logo was designed by Scott Colby.