Bowtie

An ultrafast memory-efficient short read aligner

Bowtie is an ultrafast, memory-efficient short read aligner. It aligns short DNA sequences (reads) to the human genome at a rate of over 25 million 35-bp reads per hour. Bowtie indexes the genome with a Burrows-Wheeler index to keep its memory footprint small: typically about 2.2 GB for the human genome (2.9 GB for paired-end). Open Source Software

Site Map

Latest Release

Links

Related Tools

Pre-built indexes

Consider using Illumina's iGenomes collection. Each iGenomes archive contains pre-built Bowtie and Bowtie 2 indexes.

H. sapiens, NCBI GRCh38 2.7 GB
H. sapiens, NCBI GRCh38
with 1KGenomes major SNPs
2.7 GB
  How we built this, FASTA
H. sapiens, UCSC hg19 2.7 GB
 colorspace: full
H. sapiens, UCSC hg19
with 1KGenomes major SNPs
2.7 GB
  How we built this, FASTA
H. sapiens, UCSC hg18 2.7 GB
 colorspace: full
H. sapiens, NCBI v37 2.7 GB
 colorspace: full
H. sapiens, NCBI v36 2.7 GB
 colorspace: full
M. musculus, UCSC mm8 2.4 GB
 colorspace: full
M. musculus, UCSC mm9 2.4 GB
 colorspace: full
M. musculus, NCBI v37 2.4 GB
 colorspace: full
R. norvegicus, UCSC rn4 2.4 GB
 colorspace: full
B. taurus, UMD v3.0 2.4 GB
 colorspace: full
C. familiaris, UCSC canFam2 2.4 GB
 colorspace: full
G. gallus, UCSC, galGal3 1.1 GB
 colorspace: full
D. melanogaster, Flybase, r5.22 150 MB
 colorspace: full
A. thaliana, TAIR, TAIR9 120 MB
 colorspace: full
C. elegans, Wormbase, WS200 75 MB
 colorspace: full
S. cerevisiae, CYGD 15 MB
 colorspace: full
E. coli, NCBI, st. 536 5 MB
 colorspace: full

All indexes are for assemblies, not contigs. Unplaced or unlocalized sequences and alternate haplotype assemblies are excluded.

Some unzip programs cannot handle archives >2 GB. If you have problems downloading or unzipping a >2 GB index, try downloading in two parts.

Check .zip file integrity with MD5s.

Publications

Contributors

Related links

1.3.1 - 09/13/2021

  • Fixed an overflow issue in bowtie-build that would sometimes yield corrupt "large" (64-bit) indexes; the resulting index would sometimes cause bowtie to hang. Note: bowtie2-build does not have this issue.
  • Fixed an issue in bowtie causing XM:i SAM optional field to sometimes be off by 1 when using the -m/-M flags.
  • Fixed an issue that would sometimes cause deadlocks in bowtie when running multithreaded.
  • Fixed an issue causing build errors when compiling against a pre-C++11 standard.

1.3.0 - 07/22/2020

  • Fixed an issue causing bowtie to report incorrect results when using a Bowtie 2 index.
  • New, more efficient implementation of --reorder for keeping SAM output lines in same order as input reads
  • Added -x parameter for specifying index. bowtie still supports specifying an index via positional parameter, but this behavior will be deprecated.
  • Migrated python scripts to python3.
  • Fully removed colorspace functionality.
  • Added support for compiling on ARM architectures.
  • Fixed an issue preventing bowtie from outputting newlines in --max and --un output files.
  • Fixed an issue causing alignment results to vary based on read names.
  • Fixed an issue preventing --no-unal from suppressing unmapped reads.
  • Removed dependence on some third-party libraries, simplifying the code and improving portability.
  • Fix an issue preventing bowtie from running with many threads on big-endian machines.

1.2.3 - 07/05/2019

  • Added support for reading and inspecting Bowtie 2 indexes. Bowtie 2 indexes can now be used with either Bowtie or Bowtie 2.
  • Added support for building an index from a gzipped-compressed FASTA.
  • Fixed issue preventing bowtie from reporting repeated alignments when -M is specified.
  • Fixed issue with -F mode omitting final base of each read.
  • Fixed clipping of first letter of first read in batches after first.
  • Fixed an issue preventing bowtie wrapper script from finding indexes.

1000-Genomes major-allele SNP references -- 4/26/2019

  • For each base where the typical reference has the non-majority allele (according to the 1000 Genomes Project, we substituted in the majority allele instead
  • Links for indexes added to sidebar, as are links for the edited FASTA files
  • We made versions both for GRCh38 primary assembly and hg19 assembly
  • See how we created them
  • Only SNPs (single-base substitutions) are considered for now; indels are future work
  • Because only SNPs are considered, coordinates (e.g. gene annotations) are the same as for typical GRCh38 and hg19 assemblies. Most downstream tools are unaffected as long as major-allele-edited FASTAs are used wherever genome sequences are required.

1.2.2 - 12/11/2017

Update (12/12/2017): We have had to re-release this version of bowtie to address an issue when compiling with pthreads (make NO_TBB=1).

  • Fixed major issue causing corrupt SAM output when using many threads (-p/--threads) on certain systems
  • Fixed major issue with incorrect alignment offsets being reported in --large-index mode
  • Fixed major issue with reads files being skipped when multiple inputs were specified together with -p/--threads
  • The official LICENSE of Bowtie was changed to Artistic License 2.0. This fixes an issue with the previous LICENSE, which mistakenly combined elements of different open-source licenses.
  • Fixed issue where bowtie would still run for a long time even when -u was set to a small number.
  • Fixed spurious "Reads file contained a pattern with more than 1024 quality values" error for some colorspace inputs.
  • Fixed issue with --strata sometimes failing to suppress alignments at lower strata.
  • Fixed issue with ends of paired-end reads sometimes appearing in non-adjacent lines of the SAM output with -p/--threads >1
  • Fixed issue whereby the read name of end #2 was not always truncated at the first whitespace character
  • Code simplifications

1.2.1.1 - 06/13/2017

  • Fixed an issue causing Bowtie to segfault when processing reads from stdin

1.2.1 - 06/12/2017

Please note that Bowtie will be switching to the Artistic 2.0 license in the next release.
Pre-build binaries now include statically linked TBB and zlib libraries no longer requiring that these libraries be pre-installed.

  • Fixed an issue which caused Bowtie to hang during parallell index building when running an optimized binary
  • Deprecated --refout option. It will be fully removed in the next release
  • Added parallel index building with the bowtie2-build --threads option (credit to Aidan Reilly)
  • Added native support for gzipped read files. The wrapper script is no longer responsible for this, which simplifies the wrapper and improves speed and thread scaling.
  • Added support for interleaved paired-end FASTQ inputs (--interleaved)
  • Fixed issue where first character of some read names was omitted from SAM output when using tabbed input formats
  • Fixed issue that caused Bowtie to hang when aligning FASTA inputs with more than one thread
  • Bowtie wrapper now works even when invoked via a symlink in a different directory from the executables
  • Fixed issue preventing reading --12 input on stdin
  • Added --no-unal option for suppressing unmapped reads in SAM output

1.2.0 - 12/12/2016

This is a major release with some larger and many smaller changes. These notes emphasize the large changes. See commit history for details.

  • Code related to read parsing was completely rewritten to improve scalability to many threads. In short, the critical section is simpler and parses input reads in batches rather than one at a time. The improvement applies to all read formats.
  • --reads-per-batch command line parameter added to specify the number of reads to read from the input file at once
  • TBB is now the default threading library. We consistently found TBB to give superior thread scaling. It is widely available and widely installed. That said, we are also preserving a "legacy" version of Bowtie that, like previous releases, does not use TBB. To compile Bowtie source in legacy mode use NO_TBB=1. To use legacy binaries, download the appropriate binary archive with "legacy" in the name.
  • Bowtie now uses a queue-based lock rather than a spin or heavyweight lock. We find this gives superior thread scaling; we saw an order-of-magnitude throughput improvements at 120 threads in one experiment, for example.
  • Unnecessary thread synchronization removed
  • Fixed colorspace parsing when primer base is present
  • Fixed bugs related to --skip command line option

1.1.2 - 6/23/2015

  • Fixed the building process for Mac OS X Yosemite.
  • Added install target (make install) for Linux to better aid package building process and the overall installation process.
  • Added support for Intel TBB threading, providing better thread scaling in most situations. The default build still uses TinyThread but TBB is used with make WITH_TBB=1.
  • Fixed minor issue related with managing the number of threads spawned.
  • Fixed minor issue which may have caused a memory leak after an exception was thrown.
  • Fixed bug that caused bowtie to crash if a read was trimmed more than the read's length on 5' end.
  • Added minor corrections/addition to the manual.
  • Fixed bug that caused the wrapper to incorrectly identify the bowtie binary.

Older news