R/decode_qualities.R

Defines functions decode_qualities

Documented in decode_qualities

#' Decodes a FastQ quality string into Phred scores
#'
#' @param qualities A single fastq quality string
#' @param offset The Phred encoding offset value
#'
#' @return A numeric vector of Phred scores
#' @export
#'
#' @examples
#' decode_qualities("???#;ABAAAHHHHGHFGDHEG@GG@GDGGB>DDDGBDD=")
decode_qualities <- function(qualities, offset=33) {

  assertthat::assert_that(assertthat::is.scalar(qualities))
  assertthat::assert_that(assertthat::is.string(qualities))
  assertthat::assert_that(assertthat::is.scalar(offset))
  assertthat::assert_that(assertthat::is.number(offset))

  if (!(offset==33 | offset==64)) {
    base::stop("Offset can only be 33 or 64")
  }

  as.integer(base::charToRaw(qualities)) - offset -> phred_scores

  if (any(phred_scores < 1)) {
    base::stop("Negative phred scores produced - check offset")
  }

  return(phred_scores)
}
s-andrews/packagetest documentation built on Dec. 22, 2021, 8:21 p.m.