The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Package {genoaligner}


Type: Package
Title: GPU-Portable Pairwise Sequence Alignment (WFA + Smith-Waterman)
Version: 1.0.0
Description: Pairwise sequence alignment from one portable C++17 core: edit-distance (Levenshtein / WFA-equivalent) and Smith-Waterman local alignment, both with score and CIGAR reconstruction. The core builds and runs anywhere (it is the CPU backend, so it needs no GPU toolchain); the wavefront/GPU backend (ROCm/CUDA) computes the same results with acceleration and is tracked in the sibling C++ repository. A batch API aligns many pairs in one call and reports how many were resolved, so silent under-serving is impossible. Designed to slot into data.frame/tibble pipelines.
URL: https://github.com/alrobles/genoaligner-r, https://alrobles.github.io/genoaligner-r/
BugReports: https://github.com/alrobles/genoaligner-r/issues
License: MIT + file LICENSE
Encoding: UTF-8
Language: en-US
Depends: R (≥ 4.1.0)
Imports: Rcpp
LinkingTo: Rcpp
Suggests: testthat (≥ 3.0.0), knitr, rmarkdown, spelling
SystemRequirements: C++17
NeedsCompilation: yes
Config/testthat/edition: 3
Config/roxygen2/version: 8.0.0
Packaged: 2026-09-13 20:33:24 UTC; alrobles
Author: Angel Robles-Fernandez [aut, cre]
Maintainer: Angel Robles-Fernandez <a.l.robles.fernandez@gmail.com>
Repository: CRAN
Date/Publication: 2026-09-24 04:20:02 UTC

genoaligner: GPU-portable pairwise sequence alignment

Description

Pairwise sequence alignment from one portable C++17 core: edit distance (Levenshtein / WFA-equivalent) and Smith-Waterman local alignment, both with score and CIGAR reconstruction. The core builds and runs anywhere (it is the CPU backend, so it needs no GPU toolchain); the sibling C++ library tracks the GPU (ROCm/CUDA) backend that computes the same results with wavefront acceleration.

Details

The two entry points are align (edit distance bounded by smax) and align_sw (local Smith-Waterman with affine gaps). Both are vectorised over pairs, so a two-column pipeline (query, reference) maps straight to a data.frame of scores and CIGARs.

Author(s)

Maintainer: Angel Robles-Fernandez a.l.robles.fernandez@gmail.com

Authors:

See Also

Useful links:


Align pairs by edit distance

Description

Computes the Levenshtein edit distance (substitution = 1, insertion = 1, deletion = 1) between each pair of sequences, with an optional CIGAR reconstruction. This is the same distance the WFA formulation computes; wavefront/GPU speed is a backend concern, the result is identical.

Usage

align(pattern, text, smax = 64, with_cigar = TRUE)

Arguments

pattern

Character vector; query sequences (recycled to match text).

text

Character vector; reference sequences (recycled to match pattern). NA entries produce NA rows.

smax

Numeric; maximum edit distance searched, in [0, 511]. Pairs whose true distance exceeds it are unresolved by design.

with_cigar

Logical; if FALSE only scores are computed (cheaper, no traceback) and cigar is NA.

Details

A pair is resolved only when its true distance is at most smax; otherwise score is NA and the pair is reported as resolved = FALSE. The count of resolved pairs is deliberately visible: a caller that only reads scores can silently miss that most input was abandoned when smax is set too tightly.

Value

A data.frame with one row per pair and columns: score (edit distance, NA if unresolved), resolved (logical), cigar (over {M, X, I, D}, NA if unresolved or !with_cigar), rescore_ok and wellformed_ok (validation flags computed in the library).

CIGAR convention (identical for align and align_sw): M/X consume a text and a pattern base; I consumes an extra text base; D consumes an extra pattern base.

Examples

align("ACGTACGT", "ACGTTCGT", smax = 8)
align(c("AAAACCC", "ACGT"), c("AAAATCC", "ACCT"), smax = 8)

Smith-Waterman local alignment

Description

Local alignment with affine gap penalties {match, mismatch, gap_open, gap_extend}. Penalties are positive and subtracted. A pair with score == 0 has no positive-scoring local alignment (disjoint sequences); all four coordinates are -1 and cigar is empty.

Usage

align_sw(text, pattern, scoring = c(2L, -3L, 5L, 2L), with_cigar = TRUE)

Arguments

text

Character vector; row-axis sequences (recycled).

pattern

Character vector; column-axis sequences (recycled).

scoring

Numeric vector of length 4, named or positional: (match, mismatch, gap_open, gap_extend). Recycled if a single vector is given. The defaults are an example, not a recommendation.

with_cigar

Logical; if FALSE, only score and end coordinates are computed (start coordinates and cigar are NA/-1).

Value

A data.frame with one row per pair and columns: score, start_i, start_j, end_i, end_j (0-based coordinates of the aligned span, -1 when score is 0/unknown), cigar (over the span), rescore_ok, wellformed_ok and too_large (the pair's matrix exceeded the supported size limit).

Examples

align_sw("TTTACGTGTT", "ACGTGT", scoring = c(2, -3, 5, 2))
align_sw(c("ACGTACGT", "GGGG"), c("ACGTTCGT", "ACGT"), c(2, -3, 5, 2))

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.