Skip to content

Commit

Permalink
Utility function to convert a DNA character string into an integer ve…
Browse files Browse the repository at this point in the history
…ctor
  • Loading branch information
andrelmartins committed Jan 29, 2013
1 parent 15ecc2d commit 26b2c6a
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion pkg/R/twobit.R
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ twobit.sequence <- function(twobit, name, start, end) {

#' Reverse complement sequence
#'
#' @param seq sequence character string
#' @param sequence DNA character string
#' @return character string
#' @export
twobit.reverse.complement <- function(sequence) {
Expand All @@ -59,3 +59,18 @@ twobit.reverse.complement <- function(sequence) {
rawToChar(res)
}


#' Convert DNA character sequence to integer sequence
#'
#' @param sequence DNA character string
#' @param base integer values for each nucleotide are A:base, C:base+1, G:base+2, T:base+3, N:base+4
#' @return integer vector
#' @export
twobit.sequence.to.integer <- function(sequence, base=1) {
alphH = charToRaw("ACGTN")
seq = toupper(sequence)
rawSeq = charToRaw(seq)

sapply(rawSeq, function(raw) base + which(alphH == raw) - 1)
}

0 comments on commit 26b2c6a

Please sign in to comment.