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 the srun the following will happen: