R/decode_qualities.R

Defines functions decode_qualities

Documented in decode_qualities

#' Decode fastq qualities into Phred scores
#'
#' @param qualities A single element vector of encoded qualities
#' @param offset The Phred score offset value to use
#'
#' @return A numberic 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/marchr documentation built on March 23, 2022, 12:09 a.m.