我有一个包含DNA seq的fasta文件。 我想删除每个密码子中的第3个核苷酸。 我想我可以在子集步骤中选择前2个核苷酸。
我在R中工作,使用ape和seqinr包
>read.dna("test3", format="fasta")-> test3
>test3
1 DNA sequences in binary format stored in a matrix.
All sequences of same length: 888
Labels: XX_00004
Base composition:
a c g t
0.223 0.222 0.293 0.262
使用函数seq
我可以在每个密码子中单独选择第一个,第二个和第三个核苷酸,但我不能选择第一个和第二个核苷酸。第二
>test3[seq(1, length(test3), by = 3)]
1 DNA sequence in binary format stored in a vector.
Sequence length: 296
Base composition:
a c g t
0.256 0.249 0.374 0.121
>test3[seq(1:2, length(test3), by = 3)]
Error in seq.default(1:2, length(test3), by = 3) :
'from' must be of length 1
> test3[seq(from=1, to=2, length(test3), by = 3)]
Error in seq.default(from = 1, to = 2, length(test3), by = 3) :
too many arguments
有任何建议怎么做?
答案 0 :(得分:2)
您可以通过排除第三个来选择第一个和第二个:
test3[-seq(3, length(test3), by = 3)]