Bowtie Changelog

What's new in Bowtie 2.5.3

Jan 18, 2024
  • Fixed an issue causing `bowtie2`'s memory usage to increase over time.
  • Fixed an issue causing `bowtie2` to crash when processing empty FASTQ records.
  • Fixed an issue that would cause `bowtie2` to erroneously treat `-f` and `-F` as mutually exclusive.
  • Add optional support for `libsais` to `bowtie2-build` for faster index building.
  • N.B. -- small indexes are capped at 2GB when using `libsais` as opposed to 4GB when using the
  • default blockwise algorithm. See MANUAL for more details.

New in Bowtie 2.3.4 (Jan 4, 2018)

  • Fixed major issue causing corrupt SAM output when using many threads (-p/--threads) on certain systems.
  • Fixed an issue whereby bowtie2 processes could overwrite each others' named pipes on HPC systems.
  • Fixed an issue causing bowtie2-build and bowtie2-inspect to return prematurely on Windows.
  • Fixed issues raised by compiler "sanitizers" that could potentially have caused memory corruption or undefined behavior.
  • Added the "continuous FASTA" input format (`-F`) for aligning all the k-mers in the sequences of a FASTA file. Useful for determining mapability of regions of the genome, and similar tasks.

New in Bowtie 2.3.3.1 (Oct 6, 2017)

  • Fixed an issue causing input files to be skipped when running multi-threaded alignment
  • Fixed an issue causing the first character of a read name to be dropped while parsing reads split across multiple input files

New in Bowtie 2.3.2 (May 12, 2017)

  • Added support for interleaved paired-end FASTQ inputs (--interleaved)
  • Now reports MREVERSE SAM flag for unaligned end when only one end of a pair aligns
  • Fixed issue where first character of some read names was omitted from SAM output when using tabbed input formats
  • Added --sam-no-qname-trunc option, which causes entire read name, including spaces, to be written to SAM output. This violates SAM specification, but can be useful in applications that immediately postprocess the SAM.
  • Fixed compilation error caused by pointer comparison issue in aligner_result.cpp
  • Removed termcap and readline dependencies introduced in v2.3.1
  • Fixed compilation issues caused by gzbuffer function when compiling with zlib v1.2.3.5 and earlier. Users compiling against these libraries will use the zlib default buffer size of 8Kb when decompressing read files.
  • Fixed issue that would cause Bowtie 2 hang when aligning FASTA inputs with more than one thread

New in Bowtie 2.3.0 (Apr 20, 2017)

  • *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.
  • * 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` (TODO: insert actual flag here). 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 issue with parsing FASTA records with greater-than symbol in the name</li>
  • * Now detects and reports inconsistencies between `--score-min` and `--ma`</li>
  • * Changed default for `--bmaxdivn` to yield better memory footprint and running time when building an index with many threads

New in Bowtie 2.2.5 (Mar 25, 2015)

  • Fixed some situations where incorrectly we could detect a Mavericks platform.
  • Fixed some manual issues including some HTML bad formating.
  • Make sure the wrapper correctly identifies the platform under OSX.
  • Fixed --rg/--rg-id options where included spaces were incorrectly treated.
  • Various documentation fixes added by contributors.
  • Fixed the incorrect behavior where parameter file names may contain spaces.
  • Fixed bugs related with the presence of spaces in the path where bowtie binaries are stored.
  • Improved exception handling for missformated quality values.
  • Improved redundancy checks by correctly account for soft clipping.

New in Bowtie 2.2.4 (Oct 23, 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.

New in Bowtie 2.2.3 (Oct 23, 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.

New in Bowtie 2.2.2 (Apr 11, 2014)

  • Improved performance for cases where the reference contains ambiguous or masked nucleobases represented by Ns.

New in Bowtie 2.2.1 (Apr 11, 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 offsets correctly.
  • Fixed a bug where using --no-unal option incorrectly suppressed un/--un-conc output.
  • 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.

New in Bowtie 2.2.0 (Apr 11, 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 nucleotides properly.
  • 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 accordingly.
  • 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.

New in Bowtie 2.1.0 (Apr 10, 2014)

  • 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.

New in Bowtie 1.0.1 (Mar 21, 2014)

  • Improved index querying efficiency using "population count" instructions available since SSE4.2.
  • Credits to the Intel(r) enabling team for performance optimizations included in this release. Thank you!

New in Bowtie 1.0.0 (Apr 11, 2013)

  • Due to general performance improvements spinlocking is now used by default. The EXTRA_FLAGS=-DNO_SPINLOCK may be used to reverse this during compilation.
  • Fixed some racing conditions.
  • CygWin builds are using now pthreah lib.
  • Changed MinGW to optionally use pthread lib on Win32 platforms.
  • Changed the Windows build to use native Windows threads by default.
  • Renamed COPYING to LICENSE to be more GitHub-friendly.
  • 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.
  • Removed references to no-longer-implemented --cutoff option for bowtie-build

New in Bowtie 0.12.9 (Dec 27, 2012)

  • Fixed a bug whereby read names would not be truncated at first whitespace character in unmapped or maxed-out SAM records.
  • Fixed errors and warnings when compiling with clang++.
  • Fixed most errors and warnings when compiling with recent versions of g++, though you may need to add EXTRA_FLAGS=-Wno-enum-compare to avoid all warnings.

New in Bowtie 0.12.8 (May 8, 2012)

  • Fixed a bug that would sometimes cause an immediate segmentation fault in --sam mode.
  • Fixed make_galGal3.sh script to not omit chromosome 25.
  • Removed -B option from usage message for bowtie-build; that option is not implemented.
  • Fixed issue that could cause Bowtie not to compile when BOWTIE_PTHREADS is left undefined and pthreads.h is not present.
  • Elaborated documentation for -B/--offbase option to indicate that it only affects offsets in the default output mode, not in SAM mode.

New in Bowtie 0.12.7 (Sep 14, 2010)

  • Fixes the all-gap reference sequence issue that was present in Bowtie 0.12.6. Index files produced by bowtie-build 0.12.5 and earlier (back to 0.10.*) are compatible with bowtie 0.12.7. Index files produced by bowtie-build 0.12.7 are backward compatible with bowtie 0.12.5 and earlier as long as the first reference sequence is not all-gaps (or, when colorspace indexes, as long as the first reference sequence has two consecutive ACGT characters in it somewhere).
  • Indexes where the first sequence consists of all gaps or other non-ACGT characters are not handled properly by Bowtie versions 0.12.5 and older, but are handled properly by Bowtie 0.12.7.
  • REMOVED: bowtie-build's --old-reverse option; the old reverse- index scheme is again the default. The new scheme is disabled pending further refinement.

New in Bowtie 0.12.6 (Sep 14, 2010)

  • Modified bowtie-inspect's default mode to use the bit-encoded reference portion of the index to reconstruct the reference sequence, rather than the ebwt portion. This makes bowtie-inspect much faster and uses less memory, and the output for a colorspace index will now be in nucleotide space. To get the behavior of the old default, use the new -e/--ebwt-ref option.
  • Fixed bug whereby SOLiD QV strings without a trailing space would fail to parse.
  • Moved to a new default way of building the reverse index. Revert to the old behavior with bowtie-build's new --old-reverse option. The new reverse index format is forward and backward compatible with `bowtie`, unless otherwise noted in a future version.
  • Fixed issue that would sometimes cause bowtie-build to crash when building a large index with a low --offrate.
  • Fixed build issue that would cause bowtie-build built on one version of Linux to die with a "floating point error" on other versions. bowtie now simply skips reads with 0 characters. Previously it would print an error and exit.
  • Fixed a bug whereby alignment cost could sometimes be miscalculated. Stratum was unaffected.
  • bowtie now simply skips reads with 0 characters. Previously it would print an error and exit.

New in Bowtie 0.12.5 (Sep 14, 2010)

  • Fixed spurious "Error while writing string output; not all characters written" errors in -S/--sam mode.

New in Bowtie 0.12.4 (Apr 6, 2010)

  • Periods in read sequences are now treated as Ns instead of ignored. This should help with some problems where Bowtie erroneously reports "Reads file contained a pattern with more than 1024 quality values..." for data from recent versions of the Illumina GA pipeline.
  • Fixed a bug whereby some error and warning messages would be printed on top of each other in -p/--threads mode.
  • Chunk-exhaustion warnings messages are now suppressed when --quiet is specified.
  • Fixed small issue in quality decoding whereby no-confidence colors would incorrectly influence decoded quality of adjacent bases.

New in Bowtie 0.12.3 (Feb 18, 2010)

  • Fixed a significant bug in -C/--color mode whereby quality values for SNP nucleotide positions are erroneously penalized.
  • Fixed a bug in -S/--sam mode whereby if whitespace occurred in the original read name, it would be printed in the QNAME field in violation of the SAM spec. Bowtie now truncates read names at the first whitespace character before printing.
  • When input is FASTQ and -C/--color is enabled, Bowtie is now tolerant of output from FASTQ converters that include the primer base and where the quality string is one character shorter than the sequence string (due to the primer). This fixes issues users have reported using output from BFAST's solid2fastq.
  • Added support for SOLiD-style _QV files, via the -Q/--quals, --Q1 and --Q2 options. These options are used in combination with -C/--color and -f to align parallel colorspace read/quality files without having to convert to FASTQ.

New in Bowtie 0.12.2 (Feb 8, 2010)

  • When -C/--color is enabled, the default paired-end orientation is now --ff, not --fr. The new default fits typical SOLiD output.
  • Fixed a bug whereby very large reads could cause bowtie to crash in --best mode
  • After 0.12.1, some issues remained whereby bowtie would fail to trim the primer in colorspace (e.g. in -c mode). All input modes should now have fully-functioning colorspace primer trimming.
  • Fixed a bug whereby decoded colorspace qualities could overflow and erroneously become low qualities.
  • Fixed a bug that could produce incorrect paired-end alignment results in -n mode when using paired-end orientation modes other than --fr Even with the bug, reported results are reasonable; but the seed edit constraint ( -n ) may have been applied to the wrong end of one of the mates.
  • Changed --chunkmbs default up to 64 from 32.
  • Better error checking and reporting for some bowtie options.
  • Some basic testing scripts are now bundled with Bowtie (in scripts/test), which should make it easier to regression-test.
  • Fixed mm9 colorspace index.

New in Bowtie 0.12.1 (Feb 8, 2010)

  • IMPORTANT: Fixed bug whereby bowtie would fail to remove both the primer base and the first color when parsing .csfasta files with primer bases in -C -f mode. A workaround for users of version 0.12.0 is to use -5 1 in that situation.
  • Fixed bug whereby, when -M limit was exceeded for an unpaired read, the number output in the 7th column (or the XM:i optional field) for the randomly-selected alignment was too low by 1.
  • Added discussion to manual about a pitfall regarding SOLiD paired-end input, i.e., not all entries necessarily have corresponding mates in the other file.

New in Bowtie 0.12.0 (Feb 8, 2010)

  • Added missing README.markdown file
  • Minor documentation additions

New in Bowtie 0.12.0 Beta 1 (Feb 8, 2010)

  • Added SOLiD colorspace support
  • Colorspace indexes are distinct from standard letterspace indexes and must be built with a separate invocation of bowtie-build (with -C option)
  • Running bowtie with -C causes Bowtie to align in colorspace. Both index and reads must be in colorspace.
  • Colorspace memory requirement is the same as paired-end alignment in letterspace (normal) mode. Paired-end alignment does not increase the memory requirement further in colorspace.
  • csfasta, csfastq, and "raw" read formats are all supported with -C. In read sequences, 0 means "blue" and is intechangeable with A, likewise 1 (C) means "green", 2 (G) means "orange" and 3 (T) means "red".
  • Colorspace versions of indexes added (see sidebar)
  • New manual section discussing colorspace features
  • Fixed a few SAM output issues
  • @PG line now properly uses colons instead of equals signs
  • Removed /1, /2 suffixes for paired-end reads in SAM mode
  • Added --sam-RG option that permits the user to insert set values for flags that appear on the @RG line
  • Fixed lingering pthreads bugs that could cause Bowtie to hang or crash toward the end of execution with -p > 1.
  • Fixed performance-related bug that would cause paired-end alignment to be artificially slow in many situations.
  • Fixed issue with random number generation that would result in non-random selection of alignments in some situations.
  • bowtie -f now supports fasta files with reads split across multiple lines
  • New --suppress option suppresses unwanted columns of output
  • The MANUAL file was converted to markdown format, facilitating conversion to various other formats using tools like pandoc
  • Deprecated: bowtie: --concise, bowtie-build: --big, --little
  • Removed: -z/--phased, -b/--binout, bowtie-maptool, bowtie-maqconvert

New in Bowtie 0.11.3 (Feb 8, 2010)

  • Fixed crashing bug in -S/--sam mode when the number of reference sequences in the index is very large.
  • Added --sam-nohead option to suppress output of SAM headers in -S/--sam mode.
  • Added --sam-nosq option to suppress output of @SQ SAM headers in -S/--sam mode. These can become a nuisance when the reference index contains a very large number of sequences.
  • Fixed a bug in bowtie-build's auto-configure mode that would cause it to underestimate the amount of memory required by a set of parameters. This in turn would cause the index to be corrupted.

New in Bowtie 0.11.2 (Feb 8, 2010)

  • Fixed issue whereby --max option was disabled.

New in Bowtie 0.11.1 (Feb 8, 2010)

  • SAM output: changed XS:i optional field to be named XA:i to avoid a conflict with TopHat's XS:i field.

New in Bowtie 0.10.1 (Jul 22, 2009)

  • Now when -3/-5 are used in combination with -I/-X, the -I/-X constraints are interpreted as applying to the original insert, not the trimmed insert.
  • Fixed issue whereby -I option was ignored; -I option works now.
  • Fixed a bug whereby some large indexes were incorrectly reported as corrupt by bowtie-build.
  • Fixed issue whereby negative quality values were wrongly rejected when both --integer-quals and --solexa-quals were specified.
  • The -l/--seedlen parameter can now be adjusted down to 5 (previously had to be >= 20).
  • Fixed several minor memory leaks and out-of-bounds issues. The Linux version of the bowtie aligner now receives a clean bill of health from valgrind's memcheck.
  • Other minor bugfixes.