R包猿:提取密码子中的前两个核苷酸

R package ape: extract the first two nucleotide in the codon

我有一个包含 DNA 序列的 fasta 文件。 我想删除每个密码子中的第三个核苷酸。 我以为我可以 select 子集步骤中的前 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 我可以 select 每个密码子中的第一个、第二个和第三个核苷酸,但我不能 select 第一和第二个。

>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

有什么建议吗?

您可以 select 通过排除第三个来 select 第一个和第二个:

test3[-seq(3, length(test3), by = 3)]