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 commands to help with batch changes
Latest commit 3c969bc Nov 12, 2019
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
genome - Changed default on JSONField to callable Jul 30, 2019
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
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 Update log paths to absolute Jul 30, 2019
LICENSE updated citation in README Nov 7, 2019
celeryd Guide and celery script update Jun 19, 2018 removed setting export since it caused issues with task discovery Jun 5, 2018 - Changed default on JSONField to callable Jul 30, 2019
instructions.txt First commit Jul 6, 2017 argument for concurrency May 17, 2018
tox.ini Updated args Aug 7, 2019


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


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 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';

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 settings.local

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

Management commands

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

python migrate
python createsuperuser
python createreferences
python createlicences
python collectstatic

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

python savereferences
python savesiteinfo

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

python 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 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 createinitialrevisions

To delete the recorded history for a particular model:

python 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.