Skip to content
This repository has been archived by the owner on Jan 18, 2020. It is now read-only.

Latest commit

 

History

History
202 lines (142 loc) · 5.57 KB

README.md

File metadata and controls

202 lines (142 loc) · 5.57 KB

Varify Development

Build Status Coverage Status

More information on the data models, commands, and loader can be found on the varify-data-warehouse repository.

Need some help?

Join our chat room and speak with our dev team: http://www.hipchat.com/gZcKr0p3y

Dependencies

Listed are the download links to each dependency, however most OSes have a package manager or binaries that can be easily installed. Most of the below links describe alternate download and install methods.

On Mac OS X, Homebrew is the recommended way to install most of these of these libraries.

Install the Sass gem:

gem install sass

Install the Bourbon gem:

gem install bourbon

Deployment Dependencies

Note, the INSTALL file contains instructions for setting up a server running RedHat Enterprise Linux Server 6.3.

Optional Dependencies (SolveBio)

SolveBio provides easy integration with external datasets such as ClinVar, OMIM, dbSNP, and PubMed. It is currently integrated into the variant resource, and populates a portion of the variant details view in the Varify web client.

SolveBio is currently in Private Beta, but Varify users can get access by signing up at solvebio.com.

To enable SolveBio within Varify, first install the Python package:

pip install solvebio

Then, make sure that the SOLVEBIO_API_KEY Django setting is set either via an environment variable (see global_settings.py) or explicitly in your local_settings.py. You can find your API key from your account page on the SolveBio website.

Setup & Install

Distribute, Pip and virtualenv are required. To check if you have them:

which pip easy_install virtualenv

If nothing prints out, install the libraries corresponding to the commands below:

Watch out for sudo! The root user $PATH most likely does not include /usr/local/bin. If you did not install Python through your distro's package manager, use the absolute path to the new Python binary to prevent installing the above libraries with the wrong version (like Python 2.4 on CentOS 5), e.g. /usr/local/bin/python2.7.

curl http://python-distribute.org/distribute_setup.py | python
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
pip install virtualenv

Create your virtualenv:

virtualenv varify-env
cd varify-env
. bin/activate

Clone the repo:

git clone https://github.com/cbmi/varify.git
cd varify

Install the requirements:

pip install -r requirements.txt

Under Mac OS X 10.8 or later, with XCode 5.1 or later, the following may be necessary in order for pip to install requirements:

export CFLAGS=-Qunused-arguments

Start the postgres server. This may look something like:

initdb /usr/local/var/postgres -E utf8

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

Create the varify database, you might first want to make sure you are a user

createuser --user postgres -s -r yourusername
createdb varify

Start memcached

memcached -d

Start redis

redis-server /usr/local/etc/redis.conf

If you are on a Mac, you will need to start postfix to allow SMTP:

sudo postfix start

Initialize the Django and Varify schemas

./bin/manage.py syncdb
./bin/manage.py migrate

Then either start the built-in Django server:

./bin/manage.py runserver

or run a uwsgi process:

uwsgi --ini server/uwsgi/local.ini --protocol http --socket 127.0.0.1:8000 --check-static _site

Makefile Commands

  • build - builds and initializes all submodules, compiles SCSS and optimizes JavaScript
  • watch - watches the SCSS files in the background for changes and automatically recompiles the files
  • unwatch - stops watching the SCSS files
  • sass - one-time explicit recompilation of SCSS files

Fabfile Commands

  • deploy:[<branch>@]<commit> - deploy a specific Git commit or tag

Local Settings

local_settings.py is intentionally not versioned (via .gitignore). It should contain any environment-specific settings and/or sensitive settings such as passwords, the SECRET_KEY and other information that should not be in version control. Defining local_settings.py is not mandatory but will warn if it does not exist.

Sass Development

Sass is awesome. SCSS is a superset of CSS so you can use as much or as little SCSS syntax as you want. It is recommended to write all of your CSS rules as SCSS, since at the very least the Sass minifier can be taken advantage of.

Execute the following commands to begin watching the static files and collect the files (using Django's collectstatic command):

make sass collect watch

Note, the sass target is called first to ensure the compiled files exist before attempting to collect them.