| Literature DB >> 23741504 |
Ruibang Luo1, Thomas Wong, Jianqiao Zhu, Chi-Man Liu, Xiaoqian Zhu, Edward Wu, Lap-Kei Lee, Haoxiang Lin, Wenjuan Zhu, David W Cheung, Hing-Fung Ting, Siu-Ming Yiu, Shaoliang Peng, Chang Yu, Yingrui Li, Ruiqiang Li, Tak-Wah Lam.
Abstract
To tackle the exponentially increasing throughput of Next-Generation Sequencing (NGS), most of the existing short-read aligners can be configured to favor speed in trade of accuracy and sensitivity. SOAP3-dp, through leveraging the computational power of both CPU and GPU with optimized algorithms, delivers high speed and sensitivity simultaneously. Compared with widely adopted aligners including BWA, Bowtie2, SeqAlto, CUSHAW2, GEM and GPU-based aligners BarraCUDA and CUSHAW, SOAP3-dp was found to be two to tens of times faster, while maintaining the highest sensitivity and lowest false discovery rate (FDR) on Illumina reads with different lengths. Transcending its predecessor SOAP3, which does not allow gapped alignment, SOAP3-dp by default tolerates alignment similarity as low as 60%. Real data evaluation using human genome demonstrates SOAP3-dp's power to enable more authentic variants and longer Indels to be discovered. Fosmid sequencing shows a 9.1% FDR on newly discovered deletions. SOAP3-dp natively supports BAM file format and provides the same scoring scheme as BWA, which enables it to be integrated into existing analysis pipelines. SOAP3-dp has been deployed on Amazon-EC2, NIH-Biowulf and Tianhe-1A.Entities:
Mesh:
Year: 2013 PMID: 23741504 PMCID: PMC3669295 DOI: 10.1371/journal.pone.0065632
Source DB: PubMed Journal: PLoS One ISSN: 1932-6203 Impact factor: 3.240
Figure 1Alignment workflow.
For each read (paired-end specifically, single-end is only with step 1 and step 3), the alignment would be decided in at most three steps. In step 1, SOAP3-dp aligns both ends of a read-pair to the reference genome by using GPU version 2way-BWT algorithm (Methods). Pairs with only one end aligned proceed to step 2 for a GPU accelerated dynamic programming (Methods) alignment at candidate regions inferred from the aligned end. Pairs with both ends unaligned in step 1 and those ends failed in step 2 proceed to step 3 to perform a more comprehensive alignment across the whole genome until all seed hits (substrings from the read) are examined or until a sufficient number of alignments are examined.
Benchmarking using real reads.
| GPU | CPU | |||||||||||||||||||||||||||
| Dataset | Volume (Gbp) | SOAP3-dp (Full SA) | SOAP3 | BarraCUDA | CUSHAW | BWA | Bowtie2 | SeqAlto | GEM | CUSHAW2 | ||||||||||||||||||
| % | Time (s) | Mem. | % | Time (fold) | Mem. | % | Time (fold) | Mem. | % | Time (fold) | Mem. | % | Time (fold) | Mem. | % | Time (fold) | Mem. | % | Time (fold) | Mem. | % | Time (fold) | Mem. | % | Time (fold) | Mem. | ||
| realYHPE100 | 12.24 | 98.12% | 1,079 | 19 | −10.60% | 2.63 | 21.1 | −6.39% | 14.03 | 4.1 | −3.13% | 46.79 | 2.7 | −4.14% | 16.03 | 4.9 | −3.87% | 12.04 | 3.5 | −0.48% | 14.25 | 7.2 | −2.86% | 3.54 | 4.5 | −1.39% | 12.09 | 3.6 |
| realYHPE150 | 56.23 | 97.16% | 6,835 | 19.6 | −28.33% | 0.64 | 22.7 | −10.99% | 7.22 | 4.3 | −10.11% | 24.57 | 3.1 | −8.05% | 15.26 | 5.0 | −7.45% | 7.82 | 3.5 | −3.65% | 17.69 | 7.2 | −5.85% | 3.76 | 5 | −6.47% | 8.04 | 3.6 |
| SRR211279 | 5.07 | 97.21% | 439 | 18.4 | −6.83% | 1.05 | 20.8 | −5.08% | 13.42 | 4.1 | −2.22% | 54.22 | 2.1 | −2.81% | 16.27 | 4.9 | −0.69% | 12.00 | 3.5 | −0.48% | 17.29 | 7.2 | −2.44% | 4.11 | 4.6 | −2.14% | 12.03 | 3.6 |
The percentage of reads aligned and time consumption of aligners other than SOAP3-dp are recorded as the difference or ratio based on SOAP3-dp's figures. The ‘%’ column represents ‘Properly paired’ for PE reads. ‘Mem.’ represents the peak memory consumption in gigabytes during alignment.
Comparison on 16 sets of programs and parameters using 100 bp paired-end simulated reads.
| GPU | CPU | |||||||||||||||||
| 6M 100 bp Paired-end reads, 1.2 Gbp bases. 500 bp insert size, 25 bp standard deviation. | SOAP3-dp | SOAP3-dp | SOAP3-dp | SOAP3-dp | SOAP3-dp | SOAP3 | Bowtie2 (Sensititve) | Bowtie2 (Very-Sensititve) | Bowtie2 (Very-fast) | BWA | SeqAlto | SeqAlto (Fast alignement) | CUSHAW2 | GEM | GEM | GEM | ||
| Configuration | CPU (thread: core i7-3930k) | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | |||
| GPU (device: GTX680) | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||
| Computational | Total Elapsed | sec. | 132 | 137 | 162 | 111 | 112 | 132 | 966 | 1974 | 672 | 1154 | 495 | 379 | 1303 | 416 | 446 | 298 |
| Resources | Fold | - | 1.04 | 1.23 | 0.84 | 0.85 | 1.00 | 7.32 | 14.95 | 5.09 | 8.74 | 3.75 | 2.87 | 9.87 | 3.15 | 3.38 | 2.26 | |
| Loading Index | sec. | 32 | 46 | 74 | 74 | 74 | 74 | 38 | 38 | 38 | 53+1+1 | 96 | 96 | 40 | 40+1 | 40+1 | 40+1 | |
| Alignment | sec. | 100 | 91 | 88 | 37 | 38 | 58 | 928 | 1936 | 634 | 370+369+360 | 399 | 283 | 1263 | 199+176 | 238+167 | 90+167 | |
| Fold | - | 0.91 | 0.88 | 0.37 | 0.38 | 0.58 | 9.28 | 19.36 | 6.34 | 10.99 | 3.99 | 2.83 | 12.63 | 3.75 | 4.05 | 2.57 | ||
| Avg. Memory | GB | 9.3 | 11.9 | 17.2 | 17.2 | 17.2 | 17.3 | 3.3 | 3.3 | 3.3 | 3.5 | 7 | 6.9 | 3.6 | 4.3 | 4.3 | 4.3 | |
| Peak Memory | GB | 9.7 | 12.5 | 18.1 | 18.1 | 18.1 | 19.2 | 3.5 | 3.5 | 3.5 | 4.8 | 7.2 | 7.2 | 3.6 | 4.3 | 4.3 | 4.3 | |
| Alignment | Aligned | # | 11,999,827 | 11,870,740 | 11,999,763 | 11,999,936 | 11,998,226 | 11,998,804 | 12,000,000 | 11,995,872 | 11,999,975 | 11,999,763 | 11,999,484 | 11,995,422 | ||||
| Metrics | Diff. | - | −129,087 | −64 | 109 | −1,601 | −1,023 | 173 | −3,955 | 148 | −64 | −343 | −4,405 | |||||
| Properly Paired | # | 11,999,460 | 11,742,902 | 11,998,912 | 11,999,344 | 11,996,528 | 11,997,254 | 11,999,976 | 11,995,410 | 11,977,218 | 11,998,994 | 11,997,702 | 11,991,992 | |||||
| Diff. | - | −256,558 | −548 | −116 | −2,932 | −2,206 | 516 | −4,050 | −22,242 | −466 | −1,758 | −7,468 | ||||||
| Incorrectly Aligned | # | 40,561 | 138,655 | 143,012 | 141,373 | 147,764 | 85,297 | 95,672 | 99,243 | 99,243 | 56,514 | 61,642 | 61,887 | |||||
| Diff. | - | 98,094 | 102,451 | 100,812 | 107,203 | 44,736 | 55,111 | 58,682 | 150,036 | 15,953 | 21,081 | 21,326 | ||||||
| Sensitivity | % | 99.66% | 97.77% | 98.81% | 98.82% | 98.75% | 99.28% | 99.20% | 99.14% | 99.17% | 99.53% | 99.48% | 99.45% | |||||
| Diff. | - | −1.89% | −0.85% | −0.84% | −0.91% | −0.38% | −0.46% | −0.52% | −0.49% | −0.13% | −0.18% | −0.21% | ||||||
| FDR | % | 0.34% | 1.17% | 1.19% | 1.18% | 1.23% | 0.71% | 0.80% | 0.83% | 0.83% | 0.47% | 0.51% | 0.52% | |||||
| Diff. | - | 0.83% | 0.85% | 0.84% | 0.89% | 0.37% | 0.46% | 0.49% | 0.49% | 0.13% | 0.18% | 0.18% | ||||||
Alignment results by the three entries of SOAP3-dp (1/4 SA, 1/2 SA, Full SA) are identical.
The time consumption of BWA is calculated as “align left reads”+“align right reads”+“sampe”. The index loading times of “align right reads” and “sampe” modules are 1 second due to the reason that, index files were cached during “align left reads”. However, datasets larger than the host memory will flush the cache during alignment.
The alignment time consumption of GEM is calculated as “alignment”+“convert to SAM format”. The conversion module was run with 4 threads in consistent with the alignment module.
SOAP3-dp, SOAP3, SeqAlto and GEM aligners explicitly provide index loading time consumption. The index loading time for Bowtie2, CUSHAW2 and BWA are calculated by the total size of index, divided by 100 MB/s, which is the average network file system speed of the testing environment. The index loading time maybe underestimated while the time processing the index was not calculated.
The alignment times were explicitly provided by the aligners (include results processing and input/output time) or calculated by total elapsed time minus estimated index loading time.
Sensitivity is calculated as “Correctly aligned reads”/“All simulated reads”. The higher the better.
FDR is calculated as “Incorrectly aligned reads”/“All aligned reads”. The lower the better.
Figure 2Speed and sensitivity of alignment using simulated paired-end reads.
We recorded the number of correct and incorrect alignments stratified by reported mapping quality for each dataset. We then calculated the cumulative number of correct and incorrect alignments from high to low mapping quality. We considered an alignment correct only if the leftmost position was within 50 bp of the position assigned by the simulator on the same strand according to the previous study of Bowtie2 to avoid soft-clipping artifacts.
Figure 3The accumulated number of incorrectly aligned reads categorized at different mapping quality scores by the five aligners.
Figure 4Alignment time consumption of using GPU card “GTX680” and previous generation GPU card “Tesla C2070” respectively.
Summary of alignment and variation calling using SOAP3-dp and BWA with different parameters and datasets.
| Running time | SNP | Indels | ||||||||||
| Program/Type | (h) | Reads aligned | Properly Paired | w/o | w/ | w/o | w/ | |||||
| Aln. | GATK | Total | dbSNP | Homozygous | Total | dbSNP | Homozygous | Total | Total | |||
| BWA (Default, PE100) | 99 | 32 | 93.30% | 92.10% | 3,996,730 | 3,926,590 | 1,620,269 | 3,922,841 | 3,876,262 | 1,609,899 | 370,231 | 383,347 |
| BWA (-o 1 -e 50 -L, PE100) | 3,363 | 36 | 96.74% | 94.80% | 4,040,813 | 3,955,380 | 1,609,729 | 3,946,627 | 3,896,737 | 1,601,049 | 385,216 | 417,832 |
| SOAP3-dp (Default, PE100) | 6 | 35 | 98.03% | 96.98% | 4,120,165 | 4,028,414 | 1,615,376 | 4,015,725 | 3,956,371 | 1,604,106 | 407,533 | 406,845 |
| BWA (Default, PE150) | 266 | 46 | 90.30% | 89.17% | 3,963,085 | 3,897,866 | 1,621,742 | 3,911,386 | 3,862,977 | 1,616,767 | 350,201 | 384,684 |
| SOAP3-dp (Default, PE150) | 14 | 92 | 97.66% | 96.54% | 4,139,625 | 4,055,314 | 1,612,213 | 4,067,552 | 4,002,750 | 1,612,351 | 409,925 | 422,427 |
PE100 and PE150 represent the 100 bp and 150 bp paired-end reads of YH sample. ‘w/’ and ‘w/o’ indicates whether the alignments were processed with and without GATK's local realignment respectively. ‘dbSNP’ is the number of detected SNPs found in dbSNP v135. The running times were rounded to hour.
Figure 5The length distribution of Indels identified by SOAP3-dp and BWA respectively using full set of 100 bp paired-end YH sample reads.
a. Indels smaller than or equal to 20 bp, b. larger than 20 bp.