Galaxy Installation and Initial Configuration

Installation

Requirements

  • Recent versions of Galaxy support Python 3, i.e. the Python version used by MiModD should also work for running Galaxy.
  • The installation procedure for Galaxy requires git. To see whether the tool is installed on your system, type git on the command line and see whether that brings up a help or an error message. You can obtain git from https://git-scm.com/downloads or, on Linux, via your OS package manager.

You do not have to understand how the following installation commands work, just note that git clone and the first run of Galaxy need internet access to download Galaxy and all third-party code it depends on. If you are trying to install Galaxy from behind a proxy and experience problems at the cloning step then this link may be helpful.

  1. Obtain Galaxy by running

    git clone -b master https://github.com/galaxyproject/galaxy/
    

    Note

    This will give you the latest version of Galaxy considered stable by the developers. If you would like to obtain a specific official release of Galaxy instead, replace master with the identifier of that release. For example:

    git clone -b release_19.09 https://github.com/galaxyproject/galaxy/
    

    will obtain the September 2019 release of Galaxy (the first one to support Python 3).

    Hint

    Detailed installation instructions for Galaxy can be found at https://galaxyproject.org/admin/get-galaxy/ and this page should also list the command to get the latest official release.

  2. Use your existing Python 3 to create an environment for Galaxy to store its dependencies in

    python3 -m venv galaxy/.venv
    
  3. Start Galaxy for the first time

    cd galaxy
    sh run.sh
    

    sh run.sh, is how you actually start Galaxy. The first time, this will be a long process because a lot of auto-configuration gets done for you - just be patient. Once Galaxy is serving you can start using it.

    To stop the server just press Ctrl + C.


Initial configuration

To be able to work with your new Galaxy productively and to integrate MiModD into it, you will have to do a bit of manual configuration work on it.

Notes

  • All command line examples in this section assume that you are starting out in the top-level directory of your Galaxy instance (i.e., the galaxy directory if you went with the default name).

  • Most of the steps shown here are also described in the section Running Galaxy in a production environment and on a few scattered other pages of the official Galaxy Admin Documentation, which may be a useful complementary source of information.

  • Any changes to configuration files will not affect a running instance of Galaxy immediately, but only after restarting it.

  • We are describing here the process of preparing a freshly installed Galaxy at the latest version for use with MiModD.

    If you are trying to prepare a pre-existing instance of Galaxy instead, some of the steps below may require modifications. In particular,

    • the main configuration file of your instance may be called galaxy.ini instead of galaxy.yml and you will have to modify all commands below that use the file, accordingly.
    • Settings inside that .ini file will follow the format parameter = value instead of parameter: value and you must stick to this format when making changes.

Generate configuration files from templates

Create a copy of the main configuration template file config/galaxy.yml.sample and name it galaxy.yml. Likewise, copy the file config/tool_conf.xml.sample and name the copy tool_conf.xml.

From the command line this can be done via:

cp config/galaxy.yml.sample config/galaxy.yml
cp config/tool_conf.xml.sample config/tool_conf.xml

This is described as an optional configuration step in the Galaxy Documentation, but is required to integrate MiModD into your installation.

Edit the main configuration file

Open the freshly generated galaxy.yml file in a text editor. Its content consists mostly of configuration settings of the form parameter: value and of comment lines starting with #. Some parameter settings are also deactivated with a leading #.

Make sure that the two lines that set the parameters

  • tool_config_file and
  • tool_dependency_dir

are active, i.e. remove any leading #.

Optional configuration steps

Note

The following steps are not necessary to get MiModD accessible through Galaxy, but it may be a good idea to configure your new Galaxy instance completely while you are at it.

Set up Admin accounts

You and/or some other user(s) may want to have their Galaxy accounts promoted to Admin accounts, which allows these users to access additional configuration options from within the Galaxy web interface. The process is described here in the Galaxy Admin manual.

Note

The prospective Admin users should first create personal, password-protected user accounts through the web interface.

Multi-user production setup of Galaxy

Hint

As the title says, steps described in this section are only relevant if you are planning to have your Galaxy instance accessed by users other than yourself.

  • check that your galaxy.yml file includes the exact following parameter settings (all activated, i.e., no leading #) or modify the corresponding lines accordingly:

    debug: false
    use_interactive: false
    
  • connect your Galaxy to a database server as suggested in the Galaxy documentation; this is a relatively advanced topic, but taking the time to install an actual database server application (e.g. PostgreSQL) that Galaxy can use to manage its internal database becomes really important when multiple jobs are going to be run on your Galaxy instance in parallel.


Integration with MiModD

This section assumes that you

Then to integrate MiModD into your Galaxy instance, all you have to do is to

  1. run:

    python3 -m MiModD.enablegalaxy <PATH_TO_LOCAL_GALAXY>
    

    where <PATH_TO_LOCAL_GALAXY> should be replaced with the path to (and including the top-level directory of) your Galaxy instance, and python3 refers to the python executable that you used to install MiModD.

  2. (re)start Galaxy

Warning

Do not use the MiModD.enablegalaxy command, when your instance of Galaxy runs another standard installation of MiModD already. This is going to result in version conflicts and possibly unreproducible results.

It is safe though to run the command multiple times for the same installation of MiModD, with other versions of MiModD present on your system that are not enabled for this Galaxy instance, or in the presence of another MiModD version installed from a Galaxy tool shed.

See also

  • The enablegalaxy tool for detailed information on how the MiModD.enablegalaxy command is working and when you might want to call it with additional options
  • MiModD and Galaxy for more on the interaction between MiModD and Galaxy