Table of Contents

Quast

QUAST stands for QUality ASsessment Tool. The tool evaluates genome assemblies by computing various metrics. Quast was developed by the Algorithmic Biology Lab at the St. Petersburg Academic University of the Russian Academy of Sciences. For more documentation on Quast click here

Enviornment Setup

Quast is used as a python command line tool, so we will need to load the python module to run the script, do this by adding this line to either the .bashrc file or the PBS script when you run your tests.

module load python

Create a directory to run the Quast jobs and copy the test data from the Quast version folder as shown below.

razor-l2:jokinsey:~$ mkdir QUAST-JOBS
razor-l2:jokinsey:~$ cd QUAST-JOBS/
razor-l2:jokinsey:~/QUAST-JOBS$ cp -r /share/apps/quast/quast-3.1/test_data/ .

Serial Example

Inside your $HOME/QUAST-JOBS directory create a PBS script named quastTest.pbs with the information below, to run Quast on the sample inputs.

#!/bin/bash
#PBS -N Quast
#PBS -q tiny12core
#PBS -j oe
#PBS -m abe
#PBS -M jokinsey@uark.edu
#PBS -o Quast.$PBS_JOBID
#PBS -l nodes=1:ppn=12
#PBS -l walltime=00:10:00

cd $PBS_O_WORKDIR
cp -r test_data/ /scratch/$PBS_JOBID
cd /scratch/$PBS_JOBID

python /share/apps/quast/quast-3.1/quast.py test_data/contigs_1.fasta test_data/contigs_2.fasta -R test_data/reference.fasta.gz -G test_data/genes.gff
mv /scratch/$PBS_JOBID/quast_results/results* $PBS_O_WORKDIR/quast_results/

This script will run Quast on the inputs located in the /scratch/$PBS_JOBID directory. If you would like to know more about the values and flags used refer to the manual here.

The output for the job should be located in $HOME/QUAST-JOBS/quastresults/results<whenthejobwassubmitted>.

All thats left is to submit the job.

razor-l2:jokinsey:~/QUAST-JOBS$ qsub quastTest.pbs

We did not specify an output directory therefore Quast will create a directory quastresults/results<DATE> where the output of the job will be stored. It will also create a directory quast_results/latest where the most recent job's output will be stored.

Many files will be given as output, and all of there descriptions are listed in the manual. A simplified listing of the output will be in the report.txt file.

Parallel Example

When Quast is run it will determine the number of available processors which we specify in the PBS script with the value of ppn. Quast also allows manual specification of the number of allowed threads, which can decrease the time of the job. Change the PBS script above to include thread specification.

#!/bin/bash
#PBS -N Quast
#PBS -q tiny12core
#PBS -j oe
#PBS -m abe
#PBS -M jokinsey@uark.edu
#PBS -o Quast.$PBS_JOBID
#PBS -l nodes=1:ppn=12
#PBS -l walltime=00:10:00

cd $PBS_O_WORKDIR
cp -r test_data/ /scratch/$PBS_JOBID
cd /scratch/$PBS_JOBID

python /share/apps/quast/quast-3.1/quast.py --threads 12 test_data/contigs_1.fasta test_data/contigs_2.fasta -R test_data/reference.fasta.gz -G test_data/genes.gff
mv /scratch/$PBS_JOBID/quast_results/results* $PBS_O_WORKDIR/quast_results/

This changes the maximum thread count to 12 as we don't want to run more threads on a node than their are cores on that node, because with hyper-threading turned off any more would kill efficiency.