Ultrafast and Memory-Efficient Alignment of Short DNA Sequences to the Human Genome
Genome Biology, 2009 · paper · Biomedicine
Introduces Bowtie, a program that aligns short DNA sequencing reads to large genomes using Burrows-Wheeler indexing. For the human genome, it aligns over 25 million reads per CPU hour using about 1.3 gigabytes of memory.
Checked: PDF from europepmc.org, fetched 4 Oct 2026. Page numbers are those of that PDF.
5 findings
Substance Table 2 (filtered read set; "The filter eliminates 438,145 out of 8,839,010 reads") prints 'Reads mapped per hour (millions)' of "29.8", "0.78", "28.3" and "0.47", which reproduce only with the unfiltered 8.84 M reads; with the 8.40 M filtered reads they would be about 28.3, 0.74, 26.9 and 0.45.
- p. 2 Table 2, Bowtie PC row, Reads mapped per hour
29.8
- p. 2 Table 2, Maq PC row
0.78
- p. 2 Table 2, Bowtie Server row
28.3
- p. 2 Table 2, Maq Server row
0.47
Only the authors can say what is right here.
Judge's note: Read Table 2 and its footnote on the page 2 image. All four printed rates equal 8,839,010 reads divided by wall-clock time; using the 8,400,865 reads left after filtering gives values about 5% lower in every row. Table 1 rates check out with 8.84 M (e.g. 33.8 for 15 m 41 s), so the method of calculation is not in doubt. No statement in the paper says the rate is per input read before filtering. The speed-up column is unaffected. Only the authors can say whether per-input-read was intended, hence author_query.
Second check: another model agreed
Report a problem with this finding
Reference or label Figure 1 caption swaps panels (b) and (c): it says "(b) Steps taken by EXACTMATCH to identify the range of rows ... prefixed by 'aac'. (c) UNPERMUTE repeatedly applies the last first (LF) mapping", but the drawn panel (b) is UNPERMUTE and panel (c) is EXACTMATCH, as the body text says ("Figure 1b illustrates UNPERMUTE"; "EXACTMATCH algorithm (Figure 1c)").
- p. 3 Figure 1 caption
(b) Steps taken by EXACTMATCH to identify the range
- p. 3 Figure 1 caption
(c) UNPERMUTE repeatedly applies the last first (LF) mapping
- p. 4 Burrows-Wheeler indexing, first paragraph on page
Figure 1b illustrates
- p. 4 Burrows-Wheeler indexing, second paragraph on page
EXACTMATCH algorithm (Figure 1c)
Judge's note: On the page 3 image, the panel labelled (c) (top right) shows three matrices headed 'aac' with a narrowing row range, i.e. EXACTMATCH for the query 'aac'. The panel labelled (b) (bottom) shows six matrices headed g, cg, acg, aacg, caacg, acaacg in red with LF arrows, i.e. UNPERMUTE recovering the text. The body text on page 4 agrees with the drawing; the caption has the two descriptions on the wrong letters.
Second check: another model agreed
Report a problem with this finding
Wording "With its default options, Bowtie's sensitivity measured in terms of reads aligned is equal to SOAP's and somewhat less than Maq's." In Table 1 default Bowtie aligns 71.9% against SOAP's 67.3%; the run comparable to SOAP (67.4%) is the non-default '-v 2' mode.
- p. 3 Rationale, last paragraph
With its default options, Bowtie's sensitivity measured in terms of reads aligned is equal to SOAP's and somewhat less than Maq's.
- p. 2 Table 1, rows Bowtie -v 2 / SOAP / Bowtie
67.4
- p. 7 Comparison to SOAP and Maq
SOAP (67.3%) and Bowtie -v 2 (67.4%) have comparable sensitivity
Only the authors can say what is right here.
Judge's note: Sentence read on the page 3 image, Table 1 on the page 2 image. The Table 1 footnote and page 7 state that '-v 2' (with '--maxns 5') was used for the SOAP comparison and that the default policy is the Maq-like one. With default options Bowtie's rate is 4.6 points above SOAP's, not equal; and even the -v 2 figures (67.4 vs 67.3) are called 'comparable' elsewhere, not equal. The sentence misattributes the SOAP comparison to the default mode.
Second check: another model agreed
Report a problem with this finding
Wording "BWT(T) has the same length as the original text T" is off by one: the transform is taken over T$, and Figure 1a shows T = 'acaacg' (6 characters) with transform 'gc$aaac' (7 characters).
- p. 3 Burrows-Wheeler indexing, second paragraph
BWT(T) has the same
- p. 3 Figure 1a
g c $ a a a c
Judge's note: Read the paragraph and Figure 1a on the page 3 image. The text defines T as the text before '$' is appended and BWT(T) as the last column of the matrix of rotations of T$, so it has |T|+1 characters; the figure shows exactly that. The sentence should say the length of T$. Minor imprecision with no effect on results.
Second check: another model agreed
Report a problem with this finding
Wording "Both wall-clock and CPU times are given to demonstrate that input/output load and CPU contention are not significant factors", but Table 3 SOAP at 50 bp has CPU time "48 h 42 m 4 s" against wall clock "66 h 26 m 53 s" (36% longer), and the 691× speed-up rests on the wall-clock figure.
- p. 6 Performance results, second paragraph (right column)
Both wall-clock and CPU times are given to demonstrate that input/output load and CPU contention are not significant factors.
- p. 8 Table 3, 50 bp, SOAP row
48 h 42 m 4 s
- p. 8 Table 3, 50 bp, SOAP row, wall clock time
66 h 26 m 53 s
Only the authors can say what is right here.
Judge's note: Table 3 read on the page 8 image. For SOAP the wall-clock time exceeds CPU time by 36% at 50 bp and about 8% at 36 bp, which is not consistent with the general claim that I/O and contention are insignificant. Speed-ups are stated to be wall-clock ratios; 691x reproduces from wall clock, and the CPU-time ratio would be about 528x. No explanation for the SOAP gap is given in the paper.
Second check: another model agreed
Report a problem with this finding
4 minor (typos and the like; most checked by the judge only)
Typo Author name misspelled in the text: "Baeza-Yaetes and Perleberg [13]"; reference 13 reads "Baeza-Yates RA, Perleberg CH".
- p. 2 Rationale, continuation at top of body text
Baeza-Yaetes and Perleberg [13]
- p. 10 Reference 13
Baeza-Yates RA, Perleberg CH
- p. 2
rithm developed by Baeza-Yaetes and Perleberg [13]
Judge's note: The page 2 image shows 'Baeza-Yaetes' in the body text; the reference list entry 13 (page 10 text) has 'Baeza-Yates'. Internal inconsistency within the paper; the text spelling is the odd one out.
Second check: none (judge only)
Report a problem with this finding
Typo Project name inconsistent: "1,000 Genome project" in the Table 1 and Table 3 footnotes and in Index building (page 7), against "1,000 Genomes project" on pages 1, 2 and 6.
- p. 2 Table 1 footnote
8.84 M reads from the 1,000 Genome project
- p. 7 Index building, second paragraph
Genome
- p. 8 Table 3 footnote
the 1,000 Genome project
- p. 6 Performance results, first paragraph
1,000 Genomes project pilot
Judge's note: Seen on the page 2 image (Table 1 footnote 'Genome'; body text 'Genomes' twice) and the page 8 image (Table 3 footnote 'Genome'). Page 6 'Genomes project pilot' and page 7 'Genome project' read from the text. Same data set (SRR001115) named both ways.
Second check: none (judge only)
Report a problem with this finding
Typo Column header spelled three ways: "Bowtie speed-up" (Tables 1 and 3), "Bowtie speed up" (Table 2), "Speedup" (Table 4).
- p. 2 Table 1 header
Bowtie speed-up
- p. 8 Table 4 header
Speedup
Judge's note: All three forms seen on the page 2 and page 8 images. Cosmetic house-style inconsistency; meaning unchanged.
Second check: none (judge only)
Report a problem with this finding
Typo Figure 2, bottom row, second stack from left: the second (c) cell reads "349, 349", outside the c block "104, 184" shown in the rightmost stacks; every other c-slot value in the figure lies within 104-184.
- p. 5 Figure 2, Inexact, bottom row, second box from left, second cell
349, 349
- p. 5 Figure 2, right-hand column of every row
104, 184
Only the authors can say what is right here.
Judge's note: Read on the page 5 image: the stack is 102,103 / 349,349 / 270,273 / 396,399. The stacks list a, c, g, t ranges in order with first-character blocks 1-104, 104-184, 184-278, 278-401; all other cells in the figure fall in their own block (c slots: 104,124; 177,177; 145,145; 140,140; 167,174; 160,160). 349 lies in the t block. It is an empty range in an illustrative figure and does not affect the path shown; probably a slip (e.g. for 149, 149), which only the authors can confirm.
Second check: none (judge only)