Я проверяю, присутствует ли последовательность в начале и в конце более длинной последовательности. Я подумал об использовании identical
, но это дает мне удивительный результат:
library(Biostrings)
EcoRI <- DNAString("GAATTC")
myseq <- DNAString("GAATTCGGGGAAAATTTTCCCCGAATTC")
EcoRI
# 6-letter "DNAString" instance
#seq: GAATTC
subseq(myseq, 1, 6)
# 6-letter "DNAString" instance
#seq: GAATTC
subseq(myseq, 23, 28)
# 6-letter "DNAString" instance
#seq: GAATTC
identical(EcoRI, subseq(myseq, 1, 6))
#TRUE
identical(EcoRI, subseq(myseq, 23, 28))
#FALSE
identical(subseq(myseq, 1, 6), subseq(myseq, 23, 28))
#FALSE
Простое решение заключается в использовании:
identical(toString(EcoRI), toString(subseq(myseq, 23, 28)))
# TRUE
Но я не понимаю, почему identical
вкл DNAString
объекты возвращают FALSE
иногда.
Сравнивает ли identical
также атрибуты offset
?
attributes(EcoRI)$offset
#[1] 0
attributes(subseq(myseq, 1, 6))$offset
#[1] 0
attributes(subseq(myseq, 23, 28))$offset
#[1] 22