Metadata-Version: 2.1
Name: bel-commons
Version: 0.3.1
Summary: A web application exposing core PyBEL functionalities
Home-page: https://github.com/bel-commons/bel-commons
Author: Charles Tapley Hoyt
Author-email: cthoyt@gmail.com
Maintainer: Charles Tapley Hoyt
Maintainer-email: cthoyt@gmail.com
License: MIT
Download-URL: https://github.com/bel-commons/bel-commons/releases
Project-URL: Bug Tracker, https://github.com/bel-commons/bel-commons/issues
Project-URL: Source Code, https://github.com/bel-commons/bel-commons
Keywords: Biological Expression Language,BEL,Systems Biology,Networks Biology
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires-Python: >=3.7
Requires-Dist: pybel (<0.15.0,>=0.14.9)
Requires-Dist: pybel-tools (<0.9.0,>=0.8.0)
Requires-Dist: bio2bel (<0.4.0,>=0.3.0)
Requires-Dist: requests
Requires-Dist: click
Requires-Dist: tqdm
Requires-Dist: easy-config
Requires-Dist: dataclasses-json
Requires-Dist: ols-client
Requires-Dist: networkx (>=2.1)
Requires-Dist: pandas
Requires-Dist: scikit-learn
Requires-Dist: numpy
Requires-Dist: sqlalchemy
Requires-Dist: celery[redis]
Requires-Dist: psycopg2-binary
Requires-Dist: flask (>=1.0.0)
Requires-Dist: flask-bootstrap
Requires-Dist: flask-wtf
Requires-Dist: flask-security
Requires-Dist: flask-admin
Requires-Dist: flask-sqlalchemy
Requires-Dist: email-validator
Requires-Dist: werkzeug
Requires-Dist: jsonschema
Requires-Dist: flasgger
Requires-Dist: raven
Requires-Dist: gunicorn
Provides-Extra: bio2bel
Requires-Dist: bio2bel-hgnc ; extra == 'bio2bel'
Requires-Dist: bio2bel-chebi ; extra == 'bio2bel'
Requires-Dist: bio2bel-mirtarbase ; extra == 'bio2bel'
Requires-Dist: bio2bel-entrez ; extra == 'bio2bel'
Requires-Dist: bio2bel-expasy ; extra == 'bio2bel'
Requires-Dist: bio2bel-interpro ; extra == 'bio2bel'
Requires-Dist: bio2bel-go ; extra == 'bio2bel'
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: sphinx-click ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs'

BEL Commons |build| |docs|
==========================
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 <https://pypi.python.org/pypi/bel_commons>`_ with the following code in
your favorite shell:

.. code-block:: sh

    $ pip install bel_commons

Get the latest code on `GitHub <https://github.com/bel-commons/bel-commons>`_
with:

.. code-block:: sh

    $ 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:

.. code-block:: sh

    $ python3 -m pip install psycopg2-binary

Usage
-----
Run BEL Commons
~~~~~~~~~~~~~~~
A test server can be easily run with:

.. code-block:: sh

    $ bel-commons run

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

.. code-block:: sh

    $ 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 <https://www.rabbitmq.com>`_ (or
any other message queue supported by `Celery <https://pypi.python.org/pypi/celery>`_), a results backend like
`Redis <https://redis.io/>`_, and a worker. It's best to run in docker if you want to do this.

Run with Docker
~~~~~~~~~~~~~~~
Clone this repo from GitHub

.. code-block:: sh

   $ 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``.

.. code-block:: sh

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

Run docker compose:

.. code-block:: sh

    $ docker-compose up

Ports exposed:

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


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
              <https://doi.org/10.1093/database/bay126>`_. *Database*, 2018(3), 1–11.
.. [Hoyt2017] Hoyt, C. T., Konotopez, A., & Ebeling, C., (2017). `PyBEL: a computational framework for Biological
              Expression Language <https://doi.org/10.1093/bioinformatics/btx660>`_. *Bioinformatics*,
              34(4), 703–704.

Acknowledgements
----------------
Supporters
~~~~~~~~~~
This project has been supported by several organizations:

- `University of Bonn <https://www.uni-bonn.de>`_
- `Bonn Aachen International Center for IT <http://www.b-it-center.de>`_
- `Fraunhofer Institute for Algorithms and Scientific Computing <https://www.scai.fraunhofer.de>`_
- `Fraunhofer Center for Machine Learning <https://www.cit.fraunhofer.de/de/zentren/maschinelles-lernen.html>`_
- `IMI <https://www.imi.europa.eu/>`_ (in the `AETIONOMY <http://www.aetionomy.eu/>`_ project)

Logo
~~~~
The BEL Commons `logo <https://github.com/pybel/pybel-art>`_ was designed by `Scott Colby <https://github.com/scolby33>`_.

.. |build| image:: https://travis-ci.com/bel-commons/bel-commons.svg?branch=master
    :target: https://travis-ci.com/bel-commons/bel-commons
    :alt: Travis-CI Build Status

.. |docs| image:: https://readthedocs.org/projects/bel-commons/badge/?version=latest
    :target: https://bel-commons.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status


