Tenho uma referência e sequências de consulta:
ref_seq <- "ATTT"
df <- data.frame(V1=c("AATT", "TTTT", "GGTT"))
Gostaria de retornar as posições incompatíveis na sequência para cada consulta em comparação com a referência:
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
Resultado esperado:
# V1
# [1,] 2
# [2,] 1
# [3,] 1 2