Galaxy is a an open, web-based platform for data intensive biomedical research.
Setting up app
First we need to clone repo
hg clone https://bitbucket.org/galaxy/galaxy-dist/
cd galaxy-dist
hg update stable
Now that we have repo cloned we need to do a few things.
First create Procfile
web: sh run.sh
Next we need requirements.txt for some reason some of the eggs don’t download properly so we use pip to install them
pyyaml
bioblend
paramiko
simplejson
A manifest.yml is needed to cf-ssh
---
applications:
- name: galaxy
memory: 1G
instances: 1
services:
- galaxy-pg
Lets create app and some services to bind to it. I’m showing this on https://run.pivotal.io/ so your service may vary. We need a tool called cf-pancake here. It is used to get all the services attached to app and turn them into environment variables which is later used.
cf cs elephantsql turtle galaxy-pg
cf push galaxy --no-start
cf bs galaxy galaxy-pg
cf-pancake set-env galaxy
Note: that a variable ELEPHANTSQL_URI was set. This is used later on.
Create the config file.
cp config/galaxy.ini.sample config/galaxy.ini
Look for the similar lines and change them to have the following.
port = PORT
host = 0.0.0.0
...
database_connection = ELEPHANTSQL_URI
Note: we used variable earlier.
Add the following lines after #!/bin/sh
sed -i "s|ELEPHANTSQL_URI|$ELEPHANTSQL_URI|g" config/galaxy.ini
sed -i "s/PORT/$PORT/g" config/galaxy.ini
Database migration take a while so in order to do this before starting app we use cf-ssh to start run to create database tables.
cf-ssh manifest.yml
sh run.sh
cf push galaxy
And that’s it. You have Galaxy up and running and can play with it.
I got it up and running on Pivotal Web Services.