Configuring Galaxy

Simple configuration

  1. First install TPV into your Galaxy virtual environment.

    TPV is a conditional dependency of Galaxy since Galaxy 22.05. If TPV is enabled in your Galaxy job configuration, it will automatically be installed in the Galaxy virtualenv. Otherwise, or if you wish to upgrade to a newer version of TPV, you can use the process below to install manually:

    cd <galaxy_home>
    source .venv/bin/activate
    pip install --upgrade total-perspective-vortex
    
  2. Edit your job_conf.yml in the <galaxy_home>/config folder and add the highlighted sections to it.

    You can refer to a local file for the tpv_config_files setting, or alternatively, provider a link to a remote url.

     1runners:
     2  local:
     3    load: galaxy.jobs.runners.local:LocalJobRunner
     4    workers: 4
     5  drmaa:
     6    load: galaxy.jobs.runners.drmaa:DRMAAJobRunner
     7  k8s:
     8    load: galaxy.jobs.runners.kubernetes:KubernetesJobRunner
     9
    10handling:
    11  assign:
    12    - db-skip-locked
    13
    14execution:
    15  default: tpv_dispatcher
    16  environments:
    17    tpv_dispatcher:
    18      runner: dynamic
    19      type: python
    20      function: map_tool_to_destination
    21      rules_module: tpv.rules
    22      tpv_config_files:
    23        - https://github.com/galaxyproject/total-perspective-vortex/raw/main/tpv/tests/fixtures/mapping-rules.yml
    24        - config/tpv_rules_local.yml
    25    local:
    26      runner: local
    27    k8s_environment:
    28      runner: k8s
    29      docker_enabled: true
    
  3. Add your own custom rules to your local tpv_config_file, following instructions in the next section.

Combining multiple remote and local configs

TPV allows rules to be loaded from remote or local sources.

1tpv_dispatcher:
2 runner: dynamic
3 type: python
4 function: map_tool_to_destination
5 rules_module: tpv.rules
6 tpv_config_files:
7   - https://usegalaxy.org/shared_rules.yml
8   - config/tpv_rules_australia.yml

The config files listed first are overridden by config files listed later. The normal rules of inheritance apply. This allows a central database of common rules to be maintained, with individual, site-specific overrides.