Frequently Asked Questions
Question 1: How do I compile BarraCUDA?
To compile BarraCUDA, make sure you have GCC 4.3 or above and CUDA toolkit SDK version 3.2 or above installed in the system. The software should compile automatically by typing in the root directory of the source package:
and the binary "barracuda" should be generated and placed in 'bin' folder.
Question 2: I can't compile BarraCUDA on my computer, why?
There are plenty of causes that prevent BarraCUDA from running. First, please make sure that you have latest CUDA toolkit installed in your computer. There was a bug in the earlier versions (before version 3.2) that prevents BarraCUDA from running properly.
The second most common problem is missing library 'zlib' which you can download using 'yum' or 'apt-get'. The library is named 'zlib-devel' or 'zlib1g-dev' depending on your linux distribution
Question 3: How do I test if BarraCUDA is working?
To perform a quick test to see if BarraCUDA can work with the GPU in your system, you can type:
and it should list out all the CUDA-capable devices available in your system, e.g. for a PC with an NVIDIA Geforce GTX295, Tesla C1060, and a C2050 it will list:
1 895 13
2 4095 13
3 3071 20
The first number is the CUDA device number, followed by the amount of GPU memory in MB and the third is CUDA compute capability, 13 means 1.3.
A set of budding yeast data is included in the software package and it is a trimmed version of 65536 35 bp sequencing reads from accession SRR002062 from the NCBI Sequencing Read Archive. In order to test the functionality of BarraCUDA, you will need to perform the BWT-transformation of the yeast genome by:
Then perform the alignment by:
And finally convert the SAI format to SAM:
Question 4: What GPU would you recommend for BarraCUDA?
In general we would recommend the fastest GPU in order to get the maximum alignment throughput. The main requirement for BarraCUDA to work however, is to have enough VRAM to hold the BWT encoded reference sequence and buffer for alignment. The Tesla/Quadro cards are recommended for 24/7 usage (reliability) but the GeForce series e.g. GTX560Ti will also do the job equally well. For large genomes such as human, mouse or rat, we would recommend a GeForce GTX580 (3GB) or GTX680
Please refer to the system requirements section for detailed VRAM requirements.
Question 5: Can I use a Geforce 210?
Like CPUs where you can have very slow Atom processors to very high-end Xeon processors, the performance gap between GPUs can also be dramatic due to huge differences in the number of CUDA cores (e.g. 210 has 16, GTX680 has 1536), GPU clock speed, and memory bandwidth, etc. You can still perform alignment on a GeForce 210 but it is very likely to take longer than running the software on your CPU.
Question 6: Where can I find the manual for BarraCUDA?
The manual page is included in the package in file 'barracuda.1'. You could either do 'man barracuda.1' or copy and create a .gz file in the appropiate man directory (e.g. /usr/share/man/man8).
Question 7: Why do I get a 'segmentation fault' error when I index the genome?
By default, BarraCUDA will choose the appropiate algorithm for indexing reference genome. However if you specify the algorithm for BWT encoding please make sure that you chose 'is' for genomes smaller than 2GB and 'bwtsw' for those larger than 2GB.
Question 8: Why am I getting intermittent 'Unspecified Launch Failure' errors?
BarraCUDA uses up a lot of GPU resources and these include both the GPU itself and memory allocation. However, the current X11 driver has been troublesome in sharing access to the GPU from time to time, especially if you are running high definition graphics with heavy openGL effects (e.g. compiz). It may happen that the driver is not releasing the access to the GPU in time for BarraCUDA resulting in the launch failure.
If you are experience similar intermittent problems we would recommend you to lower the resolution and turn off any openGL effects in X11. In fact we would recommend using a dedicated GPU for CUDA and another one for GUI display.
Question 9: BarraCUDA freezes when it works with large genomes using a Quadro or Tesla card
BarraCUDA uses up a lot of GPU memory and for some unknown reasons this causes problems when ECC is enabled on Tesla and Quadro cards. We are still working on this issue and please for the time being leave ECC off for BarraCUDA.
Question 10: Can I use BWTs generated from BWA?
Yes and No. The most recent version of BWA (v0.6+) has changed the BWT data structure and the files do not work with BarraCUDA any more. That's said, BarraCUDA can work with BWTs generated by earlier versions of BWA (v0.5.x)
Question 11: Now I have generated some alignments in the .sai file, can I use BWA to do the SAM conversion (samse/sampe)?
Yes you can, only when you specify with option '-b' when you perform the alignment to tell BarraCUDA to generate BWA 0.5.x compatible files. Due to recent changes in BWA data structure, you have to use BWA 0.5.x for SAM conversion.
On the other hand, you cannot use BarraCUDA samse/sampe command on .sai files generated by BWA.
Question 12: Is there any multithreading in SAMSE or SAMPE command?
The 'samse' command is now CUDA accelerated thanks to Dag Lyberg
Unfortunately, the 'sampe' command is still in the works the moment. However, in the meantime, we have integrated posix multithreading to the core and it is now 3-4x faster with a 6-core CPU
Question 13: What happen if I have multiple CUDA GPUs in my computer?
For computers with more than one CUDA-capable GPU, BarraCUDA automatically selects the best GPU based on the number of CUDA cores. Users can also specify which CUDA device the software is to be executed on by using the '-C' option followed by the device number.
NEW! In order to take advantage of multiple GPUs in a system, we have now included a generic 'manyfish' shell script to align reads using multiple GPUs. This script automatically detects the number of CUDA devices in the computer, splits the input .fastq read files according to the number of CUDA devices and calls multiple instances of BarraCUDA to align sequencing reads in parallel. Once the alignment finishes, the script joins the files back into one single SAI file.
In order to use the 'manyfish' scripts, you have to put the BarraCUDA binary into the default path by:
*Please note that 'barracuda-multi-se' and 'barracuda-multi-pe' are now superseded by 'manyfish' and are no longer supported.
Question 14: I have a question that is not listed here, what can I do?
You can contact us by sending email to yhbl2_at_cam.ac.uk and we will try to help as much as possible.
Last updated 27 Jul 2012