<h2 id="version-2.5.4---may-16-2024">Version 2.5.4 - May 16, 2024</h2>
<h3 id="bowtie2">bowtie2</h3>
<ul>
  <li>Added <code><a href="manual.shtml#bowtie2-sam-opt-config">--sam-opt-config</a></code> command line option for toggling
    SAM Opt flags. See MANUAL for details.</li>
  <li>Fixed an issue causing <code>bowtie2</code>’s memory usage to
    increase over time when aligning BAM files.</li>
  <li>Changed bowtie2 to continue flushing output in the event of a
    partial write.</li>
  <li>Changed the behavior of <code>bowtie2-build</code> to throw an
    exception if it is unable to write the BWT (.1.bt2, .1.rev.bt2). In
    prior versions <code>bowtie2-build</code>, would silently ignore the
    error which has led some to report the absence of the BWT files in a
    “completed” index build.</li>
  <li>Reverted the changes made in v2.5.0 that sometimes caused unique
    concordant alignments to be overcounted.</li>
</ul>

<h2>New Indexes for Cow, Chimp, and Rat, added to the sidebar - May 08, 2024</h2>
<ul>
   <li><a href="https://genome-idx.s3.amazonaws.com/bt/ARS-UCD2.0.zip"><i>B. taurus</i>, ARS-UCD2.0</a></li>
   <li><a href="https://genome-idx.s3.amazonaws.com/bt/NHGRI_mPanTro3-v2.0.zip"><i>P. troglodytes</i>, mPanTro3-v2</a></li>
   <li><a href="https://genome-idx.s3.amazonaws.com/bt/GRCr8.zip"><i>R. norvegicus</i>, GRCr8</a></li>
</ul>

<h2>Version 2.5.3 - Jan 16, 2024</h2>
<h3 id="bowtie2">bowtie2</h3>
<ul>
  <li>Fixed an issue causing <code>bowtie2</code>'s memory usage to increase over time.</li>
  <li>Fixed an issue causing <code>bowtie2</code> to crash when processing eempty FASTQ records.</li>
  <li>Fixed an issue causing <code>bowtie2</code> to erroneously treat <code><a href="manual.shtml#bowtie2-options-f">-f</a></code>
      and <code><a href="manual.shtml#bowtie2-options-F">-F</a></code> as mutually exclusive.</li>
</ul>
<h3 id="bowtie2-build">bowtie2-build</h3>
<ul>
  <li>Add optional support for <code><a href="https://github.com/IlyaGrebnov/libsais">libsais</a></code>
      to <code>bowtie2-build</code> for faster index building.</li>
  N.B. -- small indexes are capped at <em>2GB</em> when using <code>libsais</code> as opposed to <em>4GB</em> when using
  the default blockwise algorithm. See <a href="manual.shtml#building-from-source">MANUAL</a> for details.
</ul>

<h2>Version 2.5.2 - Oct 13, 2023</h2>
<h3 id="bowtie2">bowtie2</h3>
<ul>
  <li>Fixed an issue preventing <code>bowtie2</code> from utilizing the specified number of CPU cores</li>
  <li>Fixed an issue causing <code>bowtie2</code> to segfault when reading compressed inputs on Windows</li>
  <li>Fixed an issue causing <code>bowtie2</code> to segfault while parsing interleaved reads</li>
  <li>Overhauled the FASTQ parser with better tolerance for empty lines</li>
</ul>

<h2>Version 2.5.1 - Feb 17, 2023</h2>
<h3 id="bowtie2">bowtie2</h3>
<ul>
    <li>Fixed an issue affecting <code>bowtie2</code> alignment accuracy.</li>
    <li>Updated the versions of the NCBI <code>NGS</code> and <code>VDB</code> libraries used by <code>bowtie2</code>.</li>
    <li>Fixed a segmentation fault that would occur while aligning SRA data.</li>
    <li>Fixed an issue preventing <code><a href="manual.shtml#bowtie2-options-un-mates">--un-mates</a></code> from properly saving unaligned mates.</li>
</ul>

<h2>Version 2.5.0 - Oct 31, 2022</h2>
<h3 id="bowtie2">bowtie2</h3>
<ul>
    <li>Overall improvements in the use of prefetch instructions. (contribution by Igor Sfiligoi)</li>
    <li>Made input/output fully asynchronous by using a dedicated thread. (contribution by Igor Sfiligoi)</li>
    <li>Added support for AVX2 256-bit instructions with can be enabled by setting the <code>SSE_AXV2</code> environment variable at compile time. (contribution by Igor Sfiligoi)</li>
    <li>Fixed an issue causing <code>bowtie2</code> to crash when processing ZSTD files with high compression ratios.</li>
    <li>Changed the way that unique alignments are counted in summary message to better match up with filters on SAM output</li>
</ul>

<h2>Version 2.4.5 - Jan 16, 2022</h2>
<h3 id="bowtie2">bowtie2</h3>
<ul>
    <li>Fixed issues with <code>bowtie2</code> BAM parser that would cause <code>bowtie2</code> to crash when processing input that was encoded with tools other than samtools e.g. Picard.</li>
    <li>Fixed an issue causing <code>bowtie2</code> to drop certain optional fields when when aligning BAM reads with the <code><a href="manual.shtml#bowtie2-options-preserve-tags">--preserve-tags</a></code> option.</li>
    <li>Fixed an issue causing <code>bowtie2</code> to produce mangled SAM output when specifying <code><a href="manual.shtml#bowtie2-options-sam-append-comment">--sam-append-comment</a></code> together with the <code>--passthrough</code> option.</li>
    <li>Appended <code>GO:query</code> to SAM <code>@HD</code> entry to indicate that reads are grouped by query name, bump SAM version to 1.5 to indicate support for this change.</li>
</ul>

<h3 id="bowtie2-build">bowtie2-build</h3>
<ul>
    <li>Implemented thread pool to address performance regressions introduced during the switch to C++11 threads.</li>
    <li>Fixed an issue causing masked-sequence metadata to be omitted from index. This issue would subsequently result in sequence data, <code>@SQ</code>, being left out from alignment SAM header.</li>
    <li>Included <code>.tmp</code> extension to index files currenlty being built. The extension is removed only upon successful build. This change seeks to address the assumption that <code>bowtie2-build</code> ran successfully without building the reverse indexes.</li>
    <li>Fixed an issue causing <code>bowtie2-build</code> to sometimes incorrectly calculate input size. This issue would result in the wrong index type being chosen and only happened with GZip compressed files.</li>
</ul>

<h3 id="bowtie2-inspect">bowtie2-inspect</h3>
<ul>
    <li>Added a new <code><a href="manual.shtml#bowtie2-inspect-options-o">-o/--output</a></code> option to save the output of <code>bowtie2-inspect</code> to a file instead of being dumped to standard output.</li>
</ul>

<h2>Version 2.4.4 - May 23, 2021</h2>
<ul>
    <li>Fixed an issue that would sometimes cause deadlocks in <code>bowtie2</code> when running multithreaded</li>
</ul>

<h2>Version 2.4.3 - May 13, 2021</h2>
<ul>
    <li>Replaced TBB concurrency with C++ threads</li>
    <li>Added native support for processing Zstd-compressed read files to <code>>bowtie2</code></li>
    <li>Added native support for processing Zstd-compressed reference-genome files to bowtie2-build</li>
    <li>Fixed an issue causing <code>bowtie2</code> to report incorrect alignments on big-endian machines</li>
    <li>Fixed an issue causing <code>bowtie2</code> to incorrectly process BAM files on big-endian machines</li>
    <li>Fixed an issue causing <code>bowtie2</code> to set an incorrect MAPQ when AS and XS are the maximum for read length</li>
    <li>Add support for building on Apple M1 processors</li>
</ul>

<h2>Version 2.4.2 - Oct 5, 2020 </h2>
<ul>
    <li>Fixed an issue that would cause the <code>bowtie2</code> wrapper script to throw an error when using wrapper-specific arguments.</li>
    <li>Added new <code><a href="manual.shtml#bowtie2-options-sam-append-comment">--sam-append-comment</a></code> flag that appends comment from FASTA/Q read to corresponding SAM record.</li>
    <li>Fixed an issue that would cause <code>qupto</code>, <code><a href="manual.shtml#bowtie2-options-u">-u</a></code>, to overflow when there are &gt;= 2<sup>32</sup> query sequences (PR #312).</li>
    <li>Fixed an issue that would cause bowtie2-build script to incorrectly process reference files.</li>
</ul>

<h2>Version 2.4.1 - Feb 28, 2020</h2>
<ul>
    <li>Fixed an issue that would cause the <code>bowtie2</code> wrapper script to incorrectly process certain arguments</li>
</ul>

<h2>Version 2.4.0 - Feb 25, 2020</h2>
<ul>
    <li>Fixed an issue in <code>-b &lt;bam&gt;</code> input mode where one might prematurely close the read file pointer causing “Bad file descriptor” in other threads</li>
    <li>Fixed an issue that could cause <code>bowtie2</code> to crash in <code><a href="manual.shtml#bowtie2-options-no-1mm-upfront">--no-1mm-upfront</a></code> mode</li>
    <li>Modified <code>bowtie2-build</code> to better handle of flags and positional parameters</li>
    <li>Migrated all <code>python</code> scripts to <code>python3</code></li>
    <li>Added support for wildcards in input files to <code>bowtie2</code>, e.g. <code>bowtie2 -x index -q *.fq</code> as opposed to <code>bowtie2 -x index -q 1.fq,2.fq,3.fq...</code></li>
    <li>Fixed an issue causing <code>bowtie2</code> to incorrectly process read names with slash mates plus extra characters (see <a href="https://github.com/BenLangmead/bowtie2/issues/265">#265</a>)</li>
    <li>Clarified support for overriding presets with more specific options e.g <code>bowtie2 -x index --local --very-fast-local --L22 -q reads.fq</code> will set the seed length to 22, overriding the 25 set by <code><a href="manual.shtml#bowtie2-options-very-fast-local">--very-fast-local</a></code></li>
    <li>Modified SAM output for <code><a href="manual.shtml#bowtie2-options-k">-k</a></code>/<code><a href="manual.shtml#bowtie2-options-a">-a</a></code> so that supplementary alignments get assigned a MAPQ of 255</li>
    <li>Fixed an issue that would sometimes cause <code>bowtie2-build</code> to not generate reverse index files</li>
    <li>Added preliminary support for ppc64le architectures with the help of SIMDE project (see <a href="https://github.com/BenLangmead/bowtie2/issues/271">#271</a>)</li>
    <li>Fixed an issue causing <code>bowtie2</code> to incorrectly calculate the MAPQ when <code><a href="manual.shtml#bowtie2-options-mp">--mp</a></code> was specified in combination with <code><a href="manual.shtml#bowtie2-options-ignore-quals">--ignore-quals</a></code></li>
</ul>


<h2>1000-Genomes major-allele SNP references -- April 26, 2019</h2>
<ul>
    <li>For each base where the typical reference has the non-majority allele (according to the <a href="http://www.internationalgenome.org">1000 Genomes Project</a>, we substituted in the majority allele instead
    <li>Links for indexes added to sidebar, as are links for the edited FASTA files
    <li>We made versions both for GRCh38 primary assembly and hg19 assembly
    <li>See <a href="https://github.com/BenLangmead/bowtie-majref">how we created them</a>
    <li>Only SNPs (single-base substitutions) are considered for now; indels are future work
    <li>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.
</ul>

<h2>Version 2.3.5.1 - April 16, 2019</h2>
<ul>
    <li>Added official support for BAM input files</li>
    <li>Added official support for CMake build system</li>
    <li>Added changes to Makefile for creating Reproducible builds (via <a href="https://github.com/BenLangmead/bowtie2/pull/210">#210</a>)</li>
    <li>Fix an issue whereby building on aarch64 would require patching sed commands (via <a href="https://github.com/BenLangmead/bowtie2/pull/243">#243</a>)</li>
    <li>Fix an issue whereby <code>bowtie2</code> would incorrectly throw an error while processing <code><a href="manual.shtml#bowtie2-options-interleaved">--interleaved</a></code> input</li>
</ul>

<h2>Version 2.3.5 - March 16, 2019</h2>
<p>Check out the <a href="http://bit.ly/bt2ui-beta">Bowtie 2 UI</a>, currently in beta, a <a href="https://shiny.rstudio.com">shiny</a>, frontend to the Bowtie2 command line.</p>

<ul>
    <li>Added support for obtaining input reads directly from the Sequence Read Archive, via NCBI’s <a href="https://github.com/ncbi/ngs">NGS language bindings</a>. This is activated via the <a href="manual.shtml#bowtie2-options-sra-acc"><code>--sra-acc</code></a> option. This implementation is based on Daehwan Kim’s in <a href="https://ccb.jhu.edu/software/hisat2">HISAT2</a>. Supports both unpaired and paired-end inputs.</li>
    <li>Bowtie 2 now compiles on ARM architectures (via <a href="https://github.com/BenLangmead/bowtie2/pull/216">#216</a>)</li>
    <li><code><a href="manual.shtml#bowtie2-options-interleaved">--interleaved</a></code> can now be combined with FASTA inputs (worked only with FASTQ before)</li>
    <li>Fixed issue whereby large indexes were not successfully found in the <code>$BOWTIE2_INDEXES</code> directory</li>
    <li>Fixed input from FIFOs (e.g. via process substitution) to distinguish gzip-compressed versus uncompressed input</li>
    <li>Fixed issue whereby arguments containing <code>bz2</code> <code>lz4</code> were misinterpretted as files</li>
    <li>Fixed several compiler warnings</li>
    <li>Fixed issue whereby both ends of a paired-end read could have negative TLEN if they exactly coincided</li>
    <li>Fixed issue whereby <code>bowtie2-build</code> would hang on end-of-file (via <a href="https://github.com/BenLangmead/bowtie2/pull/228">#228</a>)</li>
    <li>Fixed issue whereby wrapper script would sometimes create zombie processes (via <a href="https://github.com/BenLangmead/bowtie2/pull/51">#51</a>)</li>
    <li>Fixed issue whereby <code>bowtie2-build</code> and <code>bowtie2-inspect</code> wrappers would fail on some versions of Python/PyPy</li>
    <li>Replaced old, unhelpful <code>README.md</code> in the project with a version that includes badges, links and some highlights from the manual</li>
    <li>Note: BAM input support and CMake build support both remain experimental, but we expect to finalize them in the next release</li>
</ul>

<h2>Version 2.3.4.3 - September 17, 2018</h2>
<ul>
    <li>Fixed an issue causing <code>bowtie2-build</code> and <code>bowtie2-inspect</code> to output incomplete help text.</li>
    <li>Fixed an issue causing <code>bowtie2-align</code> to crash.</li>
    <li>Fixed an issue preventing <code>bowtie2</code> from processing paired and/or unpaired FASTQ reads together with interleaved FASTQ reads.</li>
</ul>

<h2>Version 2.3.4.2 - August 07, 2018</h2>
<ul>
    <li>Fixed issue causing <code>bowtie2</code> to fail in <code><a href="manual.shtml#bowtie2-options-fast-local">--fast-local</a></code> mode.</li>
    <li>Fixed issue causing <code><a href="manual.shtml#bowtie2-options-soft-clipped-unmapped-tlen">--soft-clipped-unmapped-tlen</a></code> to be a positional argument.</li>
    <li>New option <code><a href="manual.shtml#bowtie2-options-trim-to">--trim-to</a> N</code> causes <code>bowtie2</code> to trim reads longer than <code>N</code> bases to exactly <code>N</code> bases.  Can trim from either 3&#39; or 5&#39; end, e.g. <code><a href="manual.shtml#bowtie2-options-trim-to">--trim-to</a> 5:30</code> trims reads to 30 bases, truncating at the 5&#39; end.</li>
    <li>Updated <a href="manual.shtml#building-from-source">&quot;Building from source&quot;</a> manual section with additional instructions on installing TBB.</li>
    <li>Several other updates to manual, including new mentions of <a href="http://bioconda.github.io">Bioconda</a> and <a href="https://biocontainers.pro">Biocontainers</a>.</li>
    <li>Fixed an issue preventing <code>bowtie2</code> from processing more than one pattern source when running single threaded.</li>
    <li>Fixed an issue causing <code>bowtie2</code> and <code>bowtie2-inspect</code> to crash if the index contains a gap-only segment.</li>
    <li>Added <i>experimental</i> BAM input mode <code>-b</code>. Works only with unpaired input reads and BAM files that are sorted by read name (<code>samtools sort -n</code>). BAM input mode also supports the following options:<li>
        &nbsp&nbsp&nbsp&nbsp<code>--preserve-sam-tags</code>: Preserve any optional fields present in BAM record</li>
        &nbsp&nbsp&nbsp&nbsp<code>--align-paired-reads</code>: Paired-end mode for BAM files</li>
    <li>Add <i>experimental</i> CMake support</li>
</ul>

<h2>Thread-scaling paper appears - July 19, 2018</h2>
<ul>
    <li>Our latest work on Bowtie's core thread scaling capabilities <a href="https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/bty648/5055585">just appeared Open Access in the journal Bioinformatics</a></li>
</ul>
