BarraCUDA
Overview
The aim of the BarraCUDA project is to develop a sequence mapping software that utilizes the massive parallelism of graphics processing units (GPUs) to accelerate the inexact alignment of short sequence reads to a particular location on a reference genome. BarraCUDA can align a paired-end library containing 14 million pairs of 76bp reads to the human genome in about 9 minutes from fastq files to SAM alignment using an NVIDIA Tesla K80. The alignment throughput can be boosted further by using multiple GPUs (up to 8) at the same time.
Being based on BWA version 0.6 from the Sanger Institute, BarraCUDA delivers a high level of alignment fidelity and is comparable to other mainstream alignment programs. It can perform gapped alignment with gap extensions, in order to minimize the number of false variant calls in re-sequencing studies.
Software Features
NVIDIA CUDA accelerated FM-index inexact alignment algorithm
Supports gapped alignment with gap extensions
Top of the class alignment fidelity
Outputs in popular SAM format for downstream analyses
6-10X the speed of 12 Xeon CPU cores*
New code base and now work with BWT from BWA 0.6.x+
Supports up to 8x concurrent GPUs in one host computer
Supports mainstream NVIDIA Geforce, Quadro, and Tesla graphics cards
NVIDIA Tesla K20, K40 and K80 are recommended for large genomes
Using
Use the module name barracuda
to discover versions available and to load the application.
Basic Command Line
[]$ barracuda
Barracuda, Version 0.7.0r107
Usage: barracuda <command> [options]
Command: index index sequences in the FASTA format
aln gapped/ungapped alignment
samse generate alignment (single ended)
sampe generate alignment (paired ended)
fastmap identify super-maximal exact matches
fa2pac convert FASTA to PAC format
pac2bwt generate BWT from PAC
pac2bwtgen alternative algorithm for generating BWT
bwtupdate update .bwt to the new format
bwt2sa generate SA from BWT and Occ
pac2cspac convert PAC to color-space PAC
stdsw standard SW/NW alignment
Test Example: On a non-gpu node
[]$ barracuda deviceQuery
Barracuda, Version 0.7.0r107
[core] Error_2 on cudaGetDeviceCount
CUDA driver version is insufficient for CUDA runtime version
Test Example: On a gpu node
[...tlog1]$ salloc --account=arcc --time=05:00 --nodes=1 --gres=gpu:3
[...@mdbg01 ...]$ srun barracuda deviceQuery
Barracuda, Version 0.7.0r107
0 12212 52
1 6083 35
2 6083 35
Note
Remember, this software utilizes GPUs, so you will have to request an appropriate node within your job allocation request.
You also need to run using
srun
otherwise the GPU requested allocation will not be available. So, in the last example, if you forget thesrun
the following will happen: