CHANGES 
-----------------------
* 2026-11-03
  RbowtieCuda version 1.4.6

  - nvbio (host banded affine alignment): the score reported for a banded wavefront window is now
    the cost of the alignment that is actually emitted. The banded engines credit a cell with the
    wavefront it was reached on, and where the rows run out the traceback completes a tail up to
    that credit -- a tail the wavefront never proved. Base by base, the emitted path then costs one
    gap-open (or one mismatch) more than the number advertised. Measured on the 20 real windows of
    nvbio-test: the 13 whose longest gap run is a single symbol were exact, and all 7 with a run of
    two symbols or more costed more than they advertised, always in that direction. On the host the
    window is now answered by the affine banded DP under the aligner's own penalties, and both the
    score call and the traceback report the cost of the path the traceback emits, so a report that
    no alignment earns cannot pass. Device code is untouched, and keeps the per-window budgets the
    GPU needs.
  - Known, still open upstream: the same defect sits in the direction encoding of the shared banded
    Gotoh traceback (a direction-continuation bit is stored on the cell next to the one it
    describes), so the device traceback and nvBowtie in banded Gotoh mode keep the one-event
    under-credit; only the host path is repaired here.
  - Affine gap convention made explicit: a WFA engine charges a gap of L symbols as
    gap_open + L * gap_extension, where the nvbio DP family charges gap_open + (L-1) *
    gap_extension. The WfahScoreScheme adaptor bridges the two (gap_open_dp = gap_open +
    gap_extension); without it the banded DP and the wavefront disagreed by one extension per gap.
  - nvbio-test: the banded WFA cases are self-checking. Each site now carries the expected score as
    well as the expected CIGAR, and the test compares the score, the CIGAR and the cost of the
    emitted path. 12 of the 15 banded sites moved to the score the banded semantics really
    produces -- a start free along the text, anchored at the end of the pattern, the end of the text
    swept over the last row of the pattern -- where the window anchored at both of its ends is kept
    by the corresponding full-length WFA case.
  - Banded kernels: a prefetch no longer reads past the bound of its row in the banded
    Smith-Waterman and WFA kernels, and a window is no longer accepted when the text is shorter
    than the pattern.

* 2026-11-02
  RbowtieCuda version 1.4.5

  - nvBowtie: single-end SAM output is now produced by a dedicated background writer thread fed by
    a small ring buffer, so record formatting and disk writes overlap the GPU alignment of the next
    batches. Selected with --cache-writes (single-end SAM output). Combined with --batch-size 64 it
    divided the wall time of a 1M-read benchmark by about 3.7 (4.96 s -> 1.34 s on 1M x 10 bp reads
    against a 46 Mbp chromosome); --batch-size caps the reads per batch in thousands (min 16,
    default 1024) and is now documented in nvBowtie_usage().
  - nvBowtie: much faster SAM record emission: the writer is buffered and hands a whole block of
    records to the disk with a single fwrite, instead of ~30 stdio calls per record.
  - nvBowtie: WFA alignment (--wfa / --scoring wfa) is faster thanks to improved wavefront
    kernels, and its admissible-score cutoff now follows --max-dist: raising --max-dist in WFA mode
    now maps more reads, as it already did in edit-distance mode.
  - nvBowtie: fixed a paired-end crash (cudaErrorInvalidValue during a host-to-device copy)
    introduced by the page-locked host buffers of version 1.4.4: page-lock registrations are now
    size-aware, so host buffers that grow are re-registered over their full span.
  - The --cache-writes option is not recommended for paired-end alignments (the legacy path is
    kept) and is ignored for BAM output, with a warning; it costs a small ring buffer (~100 MB).
    The nvBowtie() wrapper now strips the flag itself in those two cases: a warning is issued for
    paired-end, a message for BAM output; single-end SAM output keeps the flag and its queue mode.

* 2026-10-07
  RbowtieCuda version 1.4.4

  - nvBowtie: faster paired-end opposite-mate scoring using a Myers bit-vector core, enabled by
    default; use --opposite-myers 0 to restore the previous algorithm. Alignment output is
    unchanged (bit-identical SAM records); the scoring stage is ~1.7x faster on GPU.
  - CUDA architectures are auto-detected at build time (native code for the installed GPUs, with a
    PTX fallback), replacing the previously hard-coded target.
  - Faster host/GPU transfers through page-locked buffers and stream-scoped synchronisation.
  - Faster BWT occurrence-table construction on CPU.

  
* 2026-05-08
  RbowtieCuda version 1.4.3

  - Fix for an issue with the Thrust library

* 2026-04-10
  RbowtieCuda version 1.0.11

  - Installation modifications


* 2025-10-12
  RbowtieCuda version 1.0.10

  - Installation modifications


* 2025-09-25
  RbowtieCuda version 1.0.9

  - nvBowtie, nvBWT and nvbio_test propagate their error messages to the R interface
  - Improved diagnostic messages during package installation
  - Improved program stability
  - Faster startup
  - Compatible with CUDA 13.0
  - The program needs 16 GB of RAM to be compiled (with Sys.setenv(MAKEFLAGS="-j8"))


* 2025-04-17
  RbowtieCuda version 1.0.1

  - The package is available on Bioconductor






