#' Find instances of a smaller DNA pattern in a larger DNA sequence.
#'
#' @param sq sequence
#' @param pattern query pattern
#' @param soft whether or not to ignore when a base is missing
#' @export
sq_match <- function(sq, pattern, soft = FALSE) {
ret <- rep(F, length(sq))
if (length(pattern) > length(sq)) {
return(FALSE)
} else {
for (i in seq(0, (length(sq) - length(pattern)))) {
window <- rep(F, length(pattern))
for (j in seq(1, length(pattern))) {
if (
(soft & (pattern[j] == "N")) |
(pattern[j] == sq[i + j])
) {
window[j] <- TRUE
}
}
if (all(window)) {
ret[(i + 1):(i + length(pattern))] <- TRUE
}
}
}
return(ret)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.