Biowulf at the NIH
RSS Feed
MIRA on Biowulf

MIRA is a whole genome shotgun and EST sequence assembler for Sanger, 454, Solexa (Illumina), IonTorrent data and PacBio (the later at the moment only CCS and error-corrected CLR reads). It can be seen as a Swiss army knife of sequence assembly developed and used in the past 12 years to get assembly jobs done efficiently - and especially accurately. That is, without actually putting too much manual work into finishing the assembly.

The environment variable(s) need to be set properly first. The easiest way to do this is by using the modules commands as in the example below.

$ module avail mira
---------------------- /usr/local/Modules/3.2.9/modulefiles --------------------------------
mira/3.2.1            mira/3.4.0            mira/

$ module load mira

$ module list
Currently Loaded Modulefiles:
1) mira/ $ module unload mira $ module load mira/ $ module list Currently Loaded Modulefiles: 1) mira/ $ module show mira ------------------------------------------------------------------- /usr/local/Modules/3.2.9/modulefiles/mira/ module-whatis Sets up mira prepend-path PATH /usr/local/apps/mira/ -------------------------------------------------------------------

Important Note

Make sure to add "-DI:trt=/scratch" to your mira command to avoid error message.

Submitting a single batch job

1. Create a script file alone the following lines:

# This file is YourOwnFileName
#PBS -N yourownfilename
#PBS -m be
#PBS -k oe

mkdir /data/$USER/mira/
cp -rL /usr/local/apps/mira/demo /data/$USER/mira/
cd /data/$USER/mira/demo
module load mira
mira -job=denovo,genome,normal,sanger -MI:sonfs=no -DI:trt=/scratch \
	-lowqualitydata -LR:eq=scf SANGER_SETTINGS -LR:ft=fofnexp:mxti=no | tee log_assembly.txt

2. Submit the script using the 'qsub' command on Biowulf.

$ qsub -l nodes=1:g8 /data/$USER/theScriptFileAbove


Useful commands:

freen: see

qstat: search for 'qstat' on for it's usage.

jobload: search for 'jobload' on for it's usage.


Submitting a swarm of jobs

Using the 'swarm' utility, one can submit many jobs to the cluster to run concurrently.

Set up a swarm command file (eg /data/username/cmdfile). Here is a sample file:

cd /data/$USER/mira1; mira -job=denovo,genome,normal,sanger -MI:sonfs=no -DI:trt=/scratch........
cd /data/$USER/mira2; mira -job=denovo,genome,normal,sanger -MI:sonfs=no -DI:trt=/scratch........

-f: the swarm command file name above (required)
--module: setup environmental variables for each swarm job
-g: GB of memory needed for each line of the commands in the swarm file above.(optional)

By default, each line of the commands above will be executed on '1' processor core of a node and uses 1GB of memory. If this is not what you want, you will need to specify '-g' flags when you submit the job on biowulf.

Say if each line of the commands above also will need to use 10gb of memory instead of the default 1gb of memory, make sure swarm understands this by including '-g 10' flag:

$ swarm -g 10 -f cmdfile --module mira

For more information regarding running swarm, see swarm.html


Running an interactive job

User may need to run jobs interactively sometimes. Such jobs should not be run on the Biowulf login node. Instead allocate an interactive node as described below, and run the interactive job there.

$ qsub -I -l nodes=1:g8
qsub: waiting for job 2236960.biobos to start
qsub: job 2236960.biobos ready

$ cd /data/$USER/mira
$ module load mira
$ mira -job=denovo,genome,normal,sanger -MI:sonfs=no -DI:trt=/scratch \
-lowqualitydata -LR:eq=scf SANGER_SETTINGS -LR:ft=fofnexp:mxti=no | tee log_assembly.txt
$ exit
qsub: job 2236960.biobos completed

User may add property of node in the qsub command to request specific interactive node. For example, if you need a node with 24gb of memory to run job interactively, do this:

[user@biowulf]$ qsub -I -l nodes=1:g24:c16