Skip to content
MaveDB database web application
Python HTML CSS Other
Branch: master
Clone or download
afrubin Merge pull request #106 from VariantEffect/manage_adduser
Adds two new manage.py commands to help with batch changes
Latest commit 3c969bc Nov 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
accounts Not sorted by mod date Jul 30, 2019
api Set licence comment meta to 'None' Aug 6, 2019
core
data
dataset
genome - Changed default on JSONField to callable Jul 30, 2019
main
mavedb - Changed default on JSONField to callable Jul 30, 2019
metadata Resume using `citation_html` Aug 7, 2019
requirements Security patches; metapub and eutils revert Aug 7, 2019
search
settings Set eager Aug 6, 2019
urn - Changed default on JSONField to callable Jul 30, 2019
variant - Changed default on JSONField to callable Jul 30, 2019
webtests - Changed default on JSONField to callable Jul 30, 2019
.coveragerc Added tox; update coveragerc ignore list Aug 6, 2019
.gitignore
CentOS6.md Update log paths to absolute Jul 30, 2019
LICENSE
README.md updated citation in README Nov 7, 2019
celeryd Guide and celery script update Jun 19, 2018
celeryd.sh removed setting export since it caused issues with task discovery Jun 5, 2018
for_admins.md - Changed default on JSONField to callable Jul 30, 2019
instructions.txt
manage.py First commit Jul 6, 2017
start_celery.sh argument for concurrency May 17, 2018
tox.ini
update.sh Updated args Aug 7, 2019

README.md

About

MaveDB is a biological database for Multiplex Assays of Variant Effect (MAVE) datasets. The primary installation of MaveDB is located at https://www.mavedb.org. For more information about MaveDB or to cite MaveDB please refer to the MaveDB paper in Genome Biology.

Installation

Required software

Setting up a server will require some configuration. Detailed instructions on setting up MaveDB using CentOS 6 on an Amazon Web Services EC2 instance can be found in the MaveDB documentation. If you are running a local development server, then you can skip this setup and start below.

MaveDB was developed using Python 3.4.3, but should be compatible with any later Python 3 version. Python 2 is not supported. Running MaveDB requires the following software:

User authentication with OAuth and ORCID iD requires additional setup and may not be suitable for a local development server. See the ORCID API documentation for a description of OAuth and detailed instructions.

Required Python packages

The packages required to run local and live versions of MaveDB are listed in the requirements/base.txt file in the repository.

Requirements files including additional packages for local, production and staging environments are provided. These files include the base requirements file, so the appropriate file can be installed using pip install -r requirements/<environment>.txt.

PostgreSQL setup

By default the local server will use the following PostgreSQL settings:

    {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "NAME": "mavedb",
        "USER": "mave_admin",
        "PASSWORD": "abc123",
        "HOST": "localhost",
        "PORT": ""
    }

Once PostgreSQL is installed. You will need to create a new user mave_admin with password abc123. The default port for PostgreSQL is 5432. Using the psql command line interface, this can be achieved using the following code:

CREATE DATABASE mavedb;
CREATE USER mave_admin WITH PASSWORD 'abc123';
ALTER ROLE mave_admin SET client_encoding to 'utf8';
ALTER ROLE mave_admin SET default_transaction_isolation TO 'read committed';
GRANT ALL PRIVILEGES ON DATABASE mavedb TO mave_admin;

Once the database has been configured, you will need to start the PostgreSQL server before running the MaveDB local/live server. See the PostgreSQL documentation for details.

Asynchronous task management

You will need to start the RabbitMQ service if you plan to use a worker pool for concurrency. Once rabbitmq-server is added to your path, you can start the server using the following command on CentOS and Debian systems:

service rabbitmq-server start

To start a worker pool, you may use the provided shell script:

bash start_celery.sh settings.local

Alternatively, if you are in a production environment and would like to use the default configuration in mavedb/settings.py, do not supply an argument.

Management commands

Before starting the server you will need to run the following utility commands:

python managy.py migrate
python manage.py createsuperuser
python manage.py createreferences
python manage.py createlicences
python manage.py collectstatic

Additional utility commands have been created that can serialize reference genomes in the database and serialize the current SiteInformation singleton to JSON:

python manage.py savereferences
python manage.py savesiteinfo

To update or create the SiteInformation singleton from a JSON file, use the command:

python manage.py updatesiteinfo

This will update the existing instance or create a new one if necessary. The data files loaded by the above commands are located in the data subdirectory.

Django-reversion

Django-reversion has been integrated with the site. This is a well maintained model versioning application that keeps a history of each instance in the database for models that have been registered. There are two key commands to run when deploying:

python manage.py createinitialrevisions

To delete the recorded history for a particular model:

python manage.py deleterevisions <appname.modelname> --keep=[int] --days=[int]

This will keep anything from last n days or keep at least n history items.

You can’t perform that action at this time.