Genevieve
Genevieve client: using GenNotes, report ClinVar for individual genomes & add consensus notes
Install / Use
/learn @OpenHumans/GenevieveREADME
Genevieve
Genevieve client: retrieve Open Humans genome data and, using GenNotes, report ClinVar matches & add consensus notes.
Notes on reusability
Genevieve has been adapted for a specific Open Humans integration: users are expected to log in via their Open Humans account and authorize Genevieve's project within Open Humans.
This limits its reusability, but the source of Genevieve is shared to enable alternate approaches.
The underlying database Genevieve draws upon and edits is GenNotes: https://github.com/PersonalGenomesOrg/gennotes
Because GenNotes is decoupled from Genevieve, alternate versions of this project could be created that accept genetic data in a different manner (e.g. via direct upload) and retrieve variant information from the same GenNotes database.
Please check with Madeleine Ball before using the term "Genevieve" to describe an alternate version of this app.
Local installation/development set-up
Dependencies
- Python 3.5.1
- postgres (
apt-get install libpq-dev python-devandapt-get install postgresql postgresql-contribin Debian/Ubuntu) - RabbitMQ (
apt-get install rabbitmq-serverin Debian/Ubuntu)- Ubuntu should automatically start the server, but in case that doesn't happen: You can stop the server with
sudo rabbitmqctl stopand start it running in the background withsudo rabbitmq-server --detached.
- Ubuntu should automatically start the server, but in case that doesn't happen: You can stop the server with
Set up the PostgreSQL database
- In Debian/Ubuntu
- Become the postgres user:
sudo su - postgres - Create a database (example name 'mydb'):
createdb mydb - Create a user (example user 'jdoe'):
createuser -P jdoe - Enter the password at prompt (example password: 'pa55wd')
- run PostgreSQL command line:
psql- Give this user privileges on this database, e.g.:<br>
GRANT ALL PRIVILEGES ON DATABASE mydb TO jdoe; - Also allow this user to create new databases (needed for running tests),
e.g.:<br>
ALTER USER jdoe CREATEDB; - Quit:
\q
- Give this user privileges on this database, e.g.:<br>
- Exit postgres user login:
exit
- Become the postgres user:
Clone repository and set up .env
- Clone the repository
git clone https://github.com/PersonalGenomesOrg/genevieve
- Copy
env.exampleto.env(note the leading dot!)- Set your
SECRET_KEYwith a random string. - Set up email. The easiest for development purposes is probably:
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" - Set up other environment variables following instructions in env.example.
- Set your
Install Python dependencies
- Using pip and virtualenv, install required packages in a virtualenv
- If pip + virtualenv are new to you, check out OpenHatch's pip and virtualenv mission (this has instructions and/or links to guides for Debian/Ubuntu, Fedora, and Mac OS X).
- Make a virtual environment, e.g.
mkvirtualenv genevieve - Install packages in this virtual environment:
pip install -r requirements.txt - Later steps which need to be done in this virtual environment will be marked with [in virtualenv]
Migrate database, start celery, and run the site
- [in virtualenv] Initialize the database:
python manage.py migrate - [in virtualenv] Run celery: In one window, run celery (used for genome processing):
celery -A genevieve_client worker -l info - [in virtualenv] Run the web server: In another window, run:
python manage.py runserver
You can now load Genevieve in your web browser by visiting http://localhost:8000/
