Running Galaxy on Cloud Foundry

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.

Spread the word

twitter icon facebook icon linkedin icon