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