我有一个参考和查询序列:
ref_seq <- "ATTT"
df <- data.frame(V1=c("AATT", "TTTT", "GGTT"))
我想返回与参考相比每个查询序列中不匹配的位置:
seqdiff <- function(seq1, seq2) {
seq <- strsplit(c(seq1, seq2), split= '')
mismatches <- which(seq[[1]] != seq[[2]])
return(mismatches)
}
apply(X=df, MARGIN=2, function(x) seqdiff(x, ref_seq))
# V1
# [1,] 1
# [2,] 2
预期输出:
# V1
# [1,] 2
# [2,] 1
# [3,] 1 2