Galaxy
https://docs.rc.uab.edu/
Please use the new documentation url https://docs.rc.uab.edu/ for all Research Computing documentation needs.
As a result of this move, we have deprecated use of this wiki for documentation. We are providing read-only access to the content to facilitate migration of bookmarks and to serve as an historical record. All content updates should be made at the new documentation site. The original wiki will not receive further updates.
Thank you,
The Research Computing Team
Overview
Galaxy is an easy-to-use, open-source, scalable framework for tool and data integration. Galaxy provides access to tools (mainly comparative genomics) through an interface (e.g., a web-based interface). The Galaxy framework is implemented in the Python programming language.
End Users
A public instance of Galaxy maintained by Penn State University is at http://usegalaxy.org/
Developers
To get started with installing your own Galaxy instance, the only required component is Python (2.4,2.5, and 2.6). Four simple steps will get you started with your own Galaxy instance
- clone the mercurial galaxy distribution
hg clone http://www.bx.psu.edu/hg/galaxy galaxy_dist
or get a source tarball - execute setup.sh
- execute run.sh
- go to http://localhost:8080
- Galaxy runs on a local webserver, PasteScript written in Python. PasteScript is based on Python's library module simplehttpserverand implemented with the help of python package, WSGIUtils
- For deployment to production environments, Galaxy documentation suggests using a proxy server like Apache/Nginx to serve up static content and for handling authnz. As mentioned in Galaxy's ApacheProxy documentation, here's how to edit Apache's httpd.conf to proxy Galaxy on port 80
<Proxy http://localhost:8080> Order deny,allow Allow from all </Proxy> RewriteEngine on RewriteRule ^/galaxy$ /galaxy/ [R] RewriteRule ^/galaxy/static/style/(.*) /Users/pnm/project/galaxy_dist/static/june_2007_style/blue/$1 [L] RewriteRule ^/galaxy/static/scripts/(.*) /Users/pnm/project/galaxy_dist/static/scripts/packed/$1 [L] RewriteRule ^/galaxy/static/(.*) /Users/pnm/project/galaxy_dist/static/$1 [L] RewriteRule ^/galaxy/favicon.ico /Users/pnm/project/galaxy_dist/static/favicon.ico [L] RewriteRule ^/galaxy/robots.txt /Users/pnm/project/galaxy_dist/static/robots.txt [L] RewriteRule ^/galaxy(.*) http://localhost:8080$1 [P]
- Change the path to where you have cloned/installed Galaxy
- http://localhost/galaxy should bring up Galaxy on port 80 now
Note: if you are using CentOS/RedHat as your platform, you may need to adjust or disable SELinux in order to allow Apache to access parts of the file system that are not part of the shipped default Directory directives of the Apache config. You will see unexplained "permission denied" errors in the errors.log if you are bitten by this.
Apache and Postgres Setup
In production mode it is recommended that something other than SQLlite and the python web server be used, preferably postgres and apache. When setting up apache to proxy requests to the python web server on CentOS it is critical that the default CentOS security policy be overridden to allow proxying as shown below.
setsebool -P httpd_can_network_relay=1
Additionally, redirects to the file system are blocked by selinux security policy. The current workaround for that is to running:
setenforce 0
A better solution will be to allow access to the required directories using chcon like this:
chcon -R -t httpd_user_content_t galaxy_dist/
This has been done and appears to work, allowing selinux to be turned back on.
Additionally, postgres ident privileges should be changed. One workaround is to set postgres to trust all local users as shown below in /var/lib/pgsql/data/pg_hba.conf
local all all trust
SMTP Configuration In lib/galaxy/config.py and universe_wsgi.ini
self.smtp_server = kwargs.get( 'smtp_server', "vera.dpo.uab.edu" ) and #smtp_server = vera.dpo.uab.edu
Shibboleth Installation
The instructions for the base rpm install on the SP (your galaxy box) are here:
https://spaces.internet2.edu/display/SHIB2/NativeSPLinuxInstall
When doing a yum install, it will install both 32 bit and 64 bit giving this error:
Cannot load /usr/lib/shibboleth/mod_shib_22.so into server: /usr/lib/shibboleth/mod_shib_22.so: wrong ELF class: ELFCLASS32
This can be fixed by doing:
I have found that if you edit "/etc/httpd/conf.d/shib.conf" and alter the LoadModule line and change "LoadModule mod_shib /usr/lib/shibboleth/mod_shib_22.so" to "LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_22.so" shibboleth sp will then start correctly.
Python
Galaxy makes some assumptions about python being > 2.4 as of February 2011. A completely new galaxy specific install of python 2.6.6 was done on the CentOS 5 galaxy VM. Some directions are found here: http://bda.ath.cx/blog/2009/04/08/installing-python-26-in-centos-5-or-rhel5/
Additionally, steps on installing mercurial can be found here: http://jake.murzy.com/post/2992010793/installing-and-setting-up-mercurial-rhel-centos-apache
Errors/Bugs
As per galaxy-dev email I sent the file: lib/galaxy/model/migrate/versions/0068_rename_sequencer_to_external_services.py Contains SQL errors as it tries to rename a SEQUENCE with the incorrect sytax. ALTER TABLE should be used, not ALTER SEQUENCE. This file has errors in 2 locations. The problem remains as of February the 7th, 2011.