Skip to content


Subversion checkout URL

You can clone with
Download ZIP
The sources of the openSNP website
Ruby HTML JavaScript CSS Shell

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app Makes sure that papers' SNPs are unique. Adds non-working rake task t…
bin Revert "Make tests fail if test coverage drops"
config Forgot mailers
db Dump production schema
doc added rails skeleton
lib Makes sure that papers' SNPs are unique. Adds non-working rake task t…
public removing paths initializer
script Add Munin plugin for the parse queue length
spec Revert "Make tests fail if test coverage drops"
test Removed redundant factories fixed tests
testdata Updated gems, changed some bootstrap-files.
tmp fixing tests and a little refactoring
.gitignore Revert "Make tests fail if test coverage drops"
.hound.yml Tell Hound where the Rubocop config is
.rspec Fix tests
.rubocop.yml Add Rails specific config for rubocop
.rubocop_todo.yml Re-generate .rubocop_todo.yml with -R flag
.ruby-gemset Newest RVM uses .ruby-gemset instead of .rvmrc, also updated to 2.0.0…
.travis.yml Merge pull request #193 from tsujigiri/move-to-new-travis-infrastructure
Capfile Further work on capistrano staging-evironment
Gemfile removed vegas from Gemfile for #184
Gemfile.lock Updates vulnerable gems
Guardfile Add spring and guard Reintroduces license, somehow disappeared
Procfile Added Procfile for Foreman support Add Rails specific config for rubocop
Rakefile Run all the tests with rake test
Vagrantfile setting up capistrano
beautifier.rb Updated gems, changed some bootstrap-files. Fixes the sidekiq-CSS-issue in production
marshalled_snpedia_array Updates mediawiki gem. Fixes test by updating cassette.
serverscript Remove even more last traces of Solr
turnoffserver Updated gems, changed some bootstrap-files.

openSNP Build Status

a repository to which users can upload their SNP-sets (and exome-VCFs) from 23andme, deCODEme, FamilyTreeDNA, AncestryDNA and IYG-format (for participants of EBI genotyping). On upload, SNPs are annotated using the PLoS and Mendeley-APIs to show users the newest scientific research results on their SNPs. Each SNP is also linked to the relevant page on SNPedia. SNPs are ranked according to how many results could be gathered for SNPedia, PLoS and Mendeley (in that order). Users can send each other private messages as well as comment on SNPs and Phenotypes.

Users can enter phenotypes to assist future research. Search is handled using postgres directly via pg_search.

RSS-feeds are provided for uploaded genotypes and new publications.

You can monitor the sidekiq-workers on localhost:3000/sidekiq (useful in killing leftover tasks)

To load all standard achievements into the database run

rake db:seed OR rake db:setup (which also sets up the entire db)

Getting Started

Install Dependencies

  • redis
  • hiredis
  • postgres

Setup Config

# edit database.yml to point to your postgresql database
cp config/database.yml.example config/database.yml

cp config/app_config.yml.example config/app_config.yml

Generate Secret Token

bundle rake secret > secret_token

Initialize Database

bundle exec rake db:setup

Run Tests

bundle exec rake


You need to have the following running to ensure that everything works:


sidekiq -q preparse,2 -q parse,2 -q deletegenotype -q fitbit -q fixphenotypes -q frequency -q genomegov -q mailnewgenotype -q mendeley_details -q mendeley -q pgp -q plos_details -q plos -q zipfulldata -q snpedia -q zipgenotyping -C config/sidekiq.yml -e development

rails s(erver)

Note: "serverscript" starts all these in detached screen-sessions.

To see all rake-tasks:

rake -vT


Deployment is handled via capistrano (thanks Helge!). The most important capistrano tasks:

cap deploy

deploys the newest version to production.

cap sidekiq:{start,stop,restart}

handles the Sidekiq workers. Has to be started on reboot!


For Fedora 19:

yum install postgresql postgresql-devel hiredis hiredis-devel libxslt-devel libxslt libxml2 libxml2-devel


If you want to contribute to openSNP, you are more than welcome to do so:

  • We use the issue tracker at GitHub for everything that needs to be done.
  • Running rake notes may give you some hints about things that can be improved.
  • In order to help improving the overall code style, take a look into .rubocop_todo.yml. In order to learn what it is all about take a look at rubocop and specifically this section of the README to learn more about it.
Something went wrong with that request. Please try again.