From 26e1fcf16475301783090cf0e9bf95def59652b1 Mon Sep 17 00:00:00 2001 From: martindemko <325073@mail.muni.cz> Date: Wed, 17 Jun 2026 23:41:38 +0200 Subject: [PATCH 1/3] Fixes cases when tool ID includes spaces --- templates/galaxy/config/tpv_rules_meta.yml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/galaxy/config/tpv_rules_meta.yml.j2 b/templates/galaxy/config/tpv_rules_meta.yml.j2 index 02e0ebc..10655ab 100644 --- a/templates/galaxy/config/tpv_rules_meta.yml.j2 +++ b/templates/galaxy/config/tpv_rules_meta.yml.j2 @@ -344,7 +344,7 @@ destinations: ssh_key: | {{ pulsar_ssh_key | indent(width=8,first=False) }} outputs_to_working_directory: false - submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb -l walltime={int(walltime)}:00:00 -q {queue} -N {{ pulsar.nfs_prefix }}_j{job.id}__{tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" + submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb -l walltime={int(walltime)}:00:00 -q {queue} -N {{ pulsar.nfs_prefix }}_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" env: TMPDIR: $SCRATCHDIR TMP: $SCRATCHDIR From 8cb2e0b6c0c3a5bf9b986488c4b5ceacd4778bf5 Mon Sep 17 00:00:00 2001 From: martindemko <325073@mail.muni.cz> Date: Thu, 18 Jun 2026 12:55:51 +0200 Subject: [PATCH 2/3] fixes more submit_native_specification in TPV config --- templates/galaxy/config/tpv_rules_meta.yml.j2 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/galaxy/config/tpv_rules_meta.yml.j2 b/templates/galaxy/config/tpv_rules_meta.yml.j2 index 10655ab..b4833f4 100644 --- a/templates/galaxy/config/tpv_rules_meta.yml.j2 +++ b/templates/galaxy/config/tpv_rules_meta.yml.j2 @@ -401,7 +401,7 @@ destinations: inherits: tpv_pulsar runner: pulsar_tpv_runner params: - submit_native_specification: "-l place=exclhost -l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb -l walltime={int(walltime)}:00:00 -q {queue} -N pulsar-re_j{job.id}__{tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" + submit_native_specification: "-l place=exclhost -l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb -l walltime={int(walltime)}:00:00 -q {queue} -N pulsar-re_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" scheduling: require: - exclusive @@ -426,7 +426,7 @@ destinations: runner: pulsar_tpv_runner params: singularity_enabled: false - submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb:ngpus={int(gpus)}:gpu_mem={int(gpu_mem)}gb -l walltime={int(walltime)}:00:00 -q galaxy_gpu@pbs-m1.metacentrum.cz -N pulsar_cz_j{job.id}__{tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" + submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb:ngpus={int(gpus)}:gpu_mem={int(gpu_mem)}gb -l walltime={int(walltime)}:00:00 -q galaxy_gpu@pbs-m1.metacentrum.cz -N pulsar_cz_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" scheduling: require: - rosettafold @@ -452,7 +452,7 @@ destinations: params: singularity_run_extra_arguments: '--nv' singularity_volumes: '$job_directory:ro,$tool_directory:ro,$job_directory/outputs:rw,$working_directory:rw,$SCRATCHDIR,$ALPHAFOLD_DB:/data/2.3:ro' - submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb:ngpus={int(gpus)}:gpu_mem={int(gpu_mem)}gb -l walltime={int(walltime)}:00:00 -q {{ pulsar.pbs_gpu_queue }} -N {{ pulsar.nfs_prefix }}_j{job.id}__{tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" + submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb:ngpus={int(gpus)}:gpu_mem={int(gpu_mem)}gb -l walltime={int(walltime)}:00:00 -q {{ pulsar.pbs_gpu_queue }} -N {{ pulsar.nfs_prefix }}_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" scheduling: require: - alphafold From 961458024ad01d43f580bfe3d01037b4a344e8d2 Mon Sep 17 00:00:00 2001 From: martindemko <325073@mail.muni.cz> Date: Thu, 18 Jun 2026 15:27:54 +0200 Subject: [PATCH 3/3] rearranges submit_native_specifications in TPV config --- templates/galaxy/config/tpv_rules_meta.yml.j2 | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/templates/galaxy/config/tpv_rules_meta.yml.j2 b/templates/galaxy/config/tpv_rules_meta.yml.j2 index b4833f4..a968594 100644 --- a/templates/galaxy/config/tpv_rules_meta.yml.j2 +++ b/templates/galaxy/config/tpv_rules_meta.yml.j2 @@ -344,7 +344,11 @@ destinations: ssh_key: | {{ pulsar_ssh_key | indent(width=8,first=False) }} outputs_to_working_directory: false - submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb -l walltime={int(walltime)}:00:00 -q {queue} -N {{ pulsar.nfs_prefix }}_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" + submit_native_specification: >- + -l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb + -l walltime={int(walltime)}:00:00 + -q {queue} + -N {{ pulsar.nfs_prefix }}_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'} env: TMPDIR: $SCRATCHDIR TMP: $SCRATCHDIR @@ -401,7 +405,12 @@ destinations: inherits: tpv_pulsar runner: pulsar_tpv_runner params: - submit_native_specification: "-l place=exclhost -l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb -l walltime={int(walltime)}:00:00 -q {queue} -N pulsar-re_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" + submit_native_specification: >- + -l place=exclhost + -l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb + -l walltime={int(walltime)}:00:00 + -q {queue} + -N {{ pulsar.nfs_prefix }}_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'} scheduling: require: - exclusive @@ -426,7 +435,11 @@ destinations: runner: pulsar_tpv_runner params: singularity_enabled: false - submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb:ngpus={int(gpus)}:gpu_mem={int(gpu_mem)}gb -l walltime={int(walltime)}:00:00 -q galaxy_gpu@pbs-m1.metacentrum.cz -N pulsar_cz_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" + submit_native_specification: >- + -l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb:ngpus={int(gpus)}:gpu_mem={int(gpu_mem)}gb + -l walltime={int(walltime)}:00:00 + -q {{ pulsar.pbs_gpu_queue }} + -N {{ pulsar.nfs_prefix }}_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'} scheduling: require: - rosettafold @@ -452,7 +465,11 @@ destinations: params: singularity_run_extra_arguments: '--nv' singularity_volumes: '$job_directory:ro,$tool_directory:ro,$job_directory/outputs:rw,$working_directory:rw,$SCRATCHDIR,$ALPHAFOLD_DB:/data/2.3:ro' - submit_native_specification: "-l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb:ngpus={int(gpus)}:gpu_mem={int(gpu_mem)}gb -l walltime={int(walltime)}:00:00 -q {{ pulsar.pbs_gpu_queue }} -N {{ pulsar.nfs_prefix }}_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'}" + submit_native_specification: >- + -l select=1:ncpus={int(cores)}:mem={int(mem)}gb:scratch_local={int(scratch)}gb:ngpus={int(gpus)}:gpu_mem={int(gpu_mem)}gb + -l walltime={int(walltime)}:00:00 + -q {{ pulsar.pbs_gpu_queue }} + -N {{ pulsar.nfs_prefix }}_j{job.id}__{(tool.id if '/' not in tool.id else tool.id.split('/')[-2]+'_v'+tool.id.split('/')[-1]).replace(' ','_')}__{user.username if user and hasattr(user, 'username') else 'anonymous'} scheduling: require: - alphafold