How to write/use qiime2 script for LSF (bsub) + docker set up?

Hello all,

I'm looking for guidance on how to write a non-interactive job script for qiime2. The HPC I have access to uses LSF and docker images, which are both new to me. So far, I have been creating an interactive shell to use qiime2 (I created a .sh file that I submit) and have used the below when submitting the job:

#! /bin/bash
 bsub -Is -G [compute-group] -q general-interactive -R 'rusage[mem=16GB]' -a 'docker(' /bin/bash

This has worked fine and, if I need to increase RAM, I re-submit with 16GB replaced with 32GB. However, an issue is that this shell has a 24 hour limit and so does the vpn I use to access the HPC. If I wanted to submit a non-interactive job (no time limit unless you specify it) for any qiime2 commands (e.g., dada2, cutadapt, etc), how would I write a script for this?

I have seen some write their scripts like this:

#BSUB -J [JobName]
#BSUB -L /bin/bash
#BSUB -R "rusage[mem=32G]"
#BSUB -q general 
#BSUB -u [email protected]
#BSUB -o OutErr.%J
#BSUB -a 'docker('


What would I put under "Executable Code"? Would it just be the qiime2 command I want to use? Would this also be a .sh file that I submit?

Any help or guidance to resources would be greatly appreciated! Thank you so much.

Hi @MBugay,
I think our docs on docker would be helpful for you. Here is a step by step tutorial: Running The Moving Pictures Tutorial In Docker (2018.11) and here is our install guide that has a little info on running commands with docker: Installing QIIME 2 using Docker — QIIME 2 2023.2.0 documentation

Hope that helps!


Hi @cherman2

Thank you! I'll try out the tutorial and see what happens

1 Like

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.