Bowtie 2 NEWS
Bowtie 2 is now available for download from the project website,
http://bowtie-bio.sf.net/bowtie2. 2.0.0-beta1 is the first version released to
the public and 2.2.1 is the latest version. Bowtie 2 is licensed under
the GPLv3 license. See `LICENSE' file for details.
Please report any issues using the Sourceforge bug tracker:
Version Release History
Version 2.2.4 - Oct 22, 2014
* Fixed a Mavericks OSX specific bug caused by some linkage ambiguities.
* Added lz4 compression option for the wrapper.
* Fixed the vanishing --no-unal help line.
* Added the static linkage for MinGW builds.
* Added extra seed-hit output.
* Fixed missing 0-length read in fastq --passthrough output.
* Fixed an issue that would cause different output in -a mode depending on random seed.
Version 2.2.3 - May 30, 2014
* Fixed a bug that made loading an index into memory crash sometimes.
* Fixed a silent failure to warn the user in case the -x option is missing.
* Updated al, un, al-conc and un-conc options to avoid confusion in cases
where the user does not provide a base file name.
* Fixed a spurious assert that made bowtie2-inspect debug fail.
Version 2.2.2 - April 10, 2014
* Improved performance for cases where the reference contains ambiguous
or masked nucleobases represented by Ns.
Version 2.2.1 - February 28, 2014
* Improved way in which index files are loaded for alignment. Should fix
efficiency problems on some filesystems.
* Fixed a bug that made older systems unable to correctly deal with bowtie
relative symbolic links.
* Fixed a bug that, for very big indexes, could determine to determine file
* Fixed a bug where using --no-unal option incorrectly suppressed
* Dropped a perl dependency that could cause problems on old systems.
* Added --no-1mm-upfront option and clarified documentation for parameters
governing the multiseed heuristic.
Version 2.2.0 - February 10, 2014
* Improved index querying efficiency using "population count" instructions
available since SSE4.2.
* Added support for large and small indexes, removing 4-billion-nucleotide
barrier. Bowtie 2 can now be used with reference genomes of any size.
* Fixed bug that could cause bowtie2-build to crash when reference length
is close to 4 billion.
* Fixed issue in bowtie2-inspect that caused -e mode not to output
* Added a CL: string to the @PG SAM header to preserve information about
the aligner binary and paramteres.
* No longer releasing 32-bit binaries. Simplified manual and Makefile
* Credits to the Intel(r) enabling team for performance optimizations
included in this release. Thank you!
* Phased out CygWin support.
* Added the .bat generation for Windows.
* Fixed some issues with some uncommon chars in fasta files.
* Fixed wrappers so bowtie can now be used with symlinks.
Bowtie 2 on GitHub - February 4, 2014
* Bowtie 2 source now lives in a public GitHub repository:
Version 2.1.0 - February 21, 2013
* Improved multithreading support so that Bowtie 2 now uses native Windows
threads when compiled on Windows and uses a faster mutex. Threading
performance should improve on all platforms.
* Improved support for building 64-bit binaries for Windows x64 platforms.
* Bowtie is using a spinlocking mechanism by default.
* Test option --nospin is no longer available. However bowtie2 can always
be recompiled with EXTRA_FLAGS="-DNO_SPINLOCK" in order to drop the
default spinlock usage.
Version 2.0.6 - January 27, 2013
* Fixed issue whereby spurious output would be written in --no-unal mode.
* Fixed issue whereby multiple input files combined with --reorder would
cause truncated output and a memory spike.
* Fixed spinlock datatype for Win64 API (LLP64 data model) which made it
crash when compiled under Windows 7 x64.
* Fixed bowtie2 wrapper to handle filename/paths operations in a more
platform independent manner.
* Added pthread as a default library option under cygwin, and pthreadGC
* Fixed some minor issues that made MinGW compilation fail.
Version 2.0.5 - January 4, 2013
* Fixed an issue that would cause excessive memory allocation when aligning
to very repetitive genomes.
* Fixed an issue that would cause a pseudo-randomness-related assert to be
thrown in debug mode under rare circumstances.
* When bowtie2-build fails, it will now delete index files created so far so
that invalid index files don't linger.
* Tokenizer no longer has limit of 10,000 tokens, which was a problem for
users trying to index a very large number of FASTA files.
* Updated manual's discussion of the -I and -X options to mention that
setting them farther apart makes Bowtie 2 slower.
* Renamed COPYING to LICENSE and created a README to be GitHub-friendly.
Version 2.0.4 - December 17, 2012
* Fixed issue whereby --un, --al, --un-conc and --al-conc options would
incorrectly suppress SAM output.
* Fixed minor command-line parsing issue in wrapper script.
* Fixed issue on Windows where wrapper script would fail to find
* Updated some of the index-building scripts and documentation.
* Updated author's contact info in usage message.
Version 2.0.3 - December 14, 2012
* Fixed thread safely issues that could cause crashes with a large number of
threads. Thanks to John O’Neill for identifying these issues.
* Fixed some problems with pseudo-random number generation that could cause
unequal distribution of alignments across equally good candidate loci.
* The --un, --al, --un-conc, and --al-conc options (and their compressed
analogs) are all much faster now, making it less likely that they become
the bottleneck when Bowtie 2 is run with large -p.
* Fixed issue with innaccurate mapping qualities, XS:i, and YS:i flags when
--no-mixed and --no-discordant are specified at the same time.
* Fixed some compiler warnings and errors when using clang++ to compile.
* Fixed race condition in bowtie2 script when named pipes are used.
* Added more discussion of whitespace in read names to manual.
Version 2.0.2 - October 31, 2012
* Fixes a couple small issues pointed out to me immediately after 2.0.1
* Mac binaries now built on 10.6 in order to be forward-compatible with more
Mac OS versions
* Small changes to source to make it compile with gcc versions up to 4.7
Version 2.0.1 - October 31, 2012
* First non-beta release.
* Fixed an issue that would cause Bowtie 2 to use excessive amounts of
memory for closely-matching and highly repetitive reads under some
* Fixed a bug in --mm mode that would fail to report when an index file
could not be memory-mapped.
* Added --non-deterministic option, which better matches how some users
expect the pseudo-random generator inside Bowtie 2 to work. Normally, if
you give the same read (same name, sequence and qualities) and --seed, you
get the same answer. --non-deterministic breaks that guarantee. This can
be more appropriate for datasets where the input contains many identical
reads (same name, same sequence, same qualities).
* Fixed a bug in bowtie2-build would yield corrupt index files when memory
settings were adjusted in the middle of indexing.
* Clarified in manual that --un (or --un-*) options print reads exactly as
they appeared in the input, and that they are not necessarily written in
the same order as they appeared in the input.
* Fixed issue whereby wrapper would incorrectly interpret arguments with
--al as a prefix (e.g. --all) as --al.
* Added option --omit-sec-seq, which causes Bowtie 2 to set SEQ and QUAL
fields to "*" for secondary alignments.
Version 2.0.0-beta7 - July 9, 2012
* Fixed an issue in how Bowtie 2 aligns longer reads in --local mode. Some
alignments were incorrectly curtailed on the left-hand side.
* Fixed issue --un (or --un-*) would fail to output unaligned reads when
--no-unal was also specified.
* Fixed issue whereby --un-* were significantly slowing down Bowtie 2 when
-p was set greater than 1.
* Fixed issue that would could cause hangs in -a mode or when -k is set
* Fixed issue whereby the SAM FLAGS field could be set incorrectly for
secondary paired-end alignments with -a or -k > 1.
* When input reads are unpaired, Bowtie 2 no longer removes the trailing /1
or /2 from the read name.
* -M option is now deprecated. It will be removed in subsequent versions.
What used to be called -M mode is still the default mode, and -k and -a
are still there alternatives to the default mode, but adjusting the -M
setting is deprecated. Use the -D and -R options to adjust the effort
expended to find valid alignments.
* Gaps are now left-aligned in a manner similar to BWA and other tools.
* Fixed issue whereby wrapper script would not pass on exitlevel correctly,
sometimes spuriously hiding non-0 exitlevel.
* Added documentation for YT:Z to manual.
* Fixed documentation describing how Bowtie 2 searches for an index given an
* Fixed inconsistent documentation for the default value of the -i parameter
Version 2.0.0-beta6 - May 7, 2012
* Bowtie 2 now handles longer reads in a more memory-economical fashion,
which should prevent many out-of-memory issues for longer reads.
* Error message now produced when -L is set greater than 32.
* Added a warning message to warn when bowtie2-align binary is being run
directly, rather than via the wrapper. Some functionality is provided by
the wrapper, so Bowtie 2 should always be run via the bowtie2 executable
rather than bowtie2-align.
* Fixed an occasional crashing bug that was usually caused by setting the
seed length relatively short.
* Fixed an issue whereby the FLAG, RNEXT and PNEXT fields were incorrect for
some paired-end alignments. Specifically, this affected paired-end
alignments where both mates aligned and one or both mates aligned
* Fixed issue whereby compressed input would sometimes be mishandled.
* Renamed --sam-* options to omit the "sam-" prefix for brevity. The old
option names will also work.
* Added --no-unal option to suppress SAM records corresponding to unaligned
reads, i.e., records where FLAG field has 0x4 set.
* Added --rg-id option and enhanced the documentation for both --rg-id and
--rg. Users were confused by the need to specify --rg "ID:(something)" in
order for the @RG line to be printed; hopefully this is clearer now.
* Index updates: indexes linked to in the right-hand sidebar have been
updated to include the unplaced contigs appearing in the UCSC "random"
FASTA files. This makes the indexes more complete. Also, an index for
the latest mouse assembly, mm10 (AKA "GRCm38") has been added.
Version 2.0.0-beta5 - December 14, 2011
* Added --un, --al, --un-conc, and --al-conc options that write unpaired
and/or paired-end reads to files depending on whether they align at least
once or fail to align.
* Added --reorder option. When enabled, the order of the SAM records output
by Bowtie 2 will match the order of the input reads even when -p is set
greater than 1. This is disabled by default; enabling it makes Bowtie 2
somewhat slower and use somewhat more memory when -p is set greater than
* Changed the default --score-min in --local mode to G,20,8. This ought to
improve sensitivity and accuracy in many cases.
* Improved error reporting.
* Fixed some minor documentation issues.
* Note: I am aware of an issue whereby longer reads (>10,000 bp) drive the
memory footprint way up and often cause an out-of-memory exception. This
will be fixed in a future version.
Version 2.0.0-beta4 - December 5, 2011
* Accuracy improvements.
* Speed improvements in some situations.
* Fixed a handful of crashing bugs.
* Fixed some documentation bugs.
* Fixed bug whereby --version worked incorrectly.
* Fixed formatting bug with MD:Z optional field that would sometimes fail to
follow a mismatch with a number.
* Added -D option for controlling the maximum number of seed extensions that
can fail in a row before we move on. This option or something like it
will eventually replace the argument to -M.
* Added -R option to control maximum number of times re-seeding is attempted
for a read with repetitive seeds.
* Changed default to --no-dovetail. Specifying --dovetail turns it back on.
* Added second argument for --mp option so that user can set maximum and
minimum mismatch penalties at once. Also tweaked the formula for
calculating the quality-aware mismatch penalty.
Version 2.0.0-beta3 - November 1, 2011
* Accuracy improvements.
* Speed improvements in some situations.
* Fixed a handful of crashing bugs.
* Fixed a bug whereby number of repetitively aligned reads could be
misreported in the summary output.
Version 2.0.0-beta2 - October 16, 2011
* Added manual, both included in the download package and on the website.
The website will always have the manual for the latest version.
* Added Linux 32-bit and 64-bit binary packages. Mac OS X packages to come.
Still working on a Windows package.
* Fixed a bug that led to crashes when seed-alignment result memory was
* Changed the --end-to-end mode --score-min default to be less permissive.
The previous threshold seemed to be having an adverse effect on accuracy,
though the fix implemented in this version comes at the expense of some
* Changed the --end-to-end mode -M default to be lower by 2 notches. This
offsets any detrimental effect that the previous change would have had on
speed, without a large adverse impact on accuracy. As always, setting -M
higher will yield still greater accuracy at the expense of speed.
Version 2.0.0-beta1 - September 22, 2011
* First public release.
* Caveats: as of now, the manual is incomplete, there's no tutorial, and no
example genome or example reads. All these will be fixed in upcoming
* Only a source package is currently available. Platform-specific binaries
will be included in future releases.