如何按名称对DNAStringSet对象进行子集化?

问题描述 投票:1回答:1

假设我有这个DNAStringSet(例如)

dataset1

  A DNAStringSet instance of length 38874
        width seq names                  
    [1]  2617 GGC yellow
    [2]  4306 ACG blue
    [3]  1070 CTC red
    [4]  1870 CAC white
    [5]  3732 CAC brown
    ...   ... ...
[38870]   390 TGC black
[38871]  1970 CAG orange

我有一个包含其中一些序列名称的向量:

dataset2 <- c("blue","black","red","brown")

我如何将dataset1中具有dataset2名称的序列子集化?

r bioconductor
1个回答
1
投票

DNAStringSet对象可以按名称子集,就像使用方括号表示法的普通R列表一样:

afastafile <- DNAStringSet(c("GCAAATGGG", "CCCGGGTT", "AAAGGGTT", "TTTGGGCC")) 
names(afastafile) <- c("ABC1_1", "ABC2_1", "ABC3_1", "ABC4_1")

afastafile
  A DNAStringSet instance of length 4
    width seq                       names               
[1]     9 GCAAATGGG                 ABC1_1
[2]     8 CCCGGGTT                  ABC2_1
[3]     8 AAAGGGTT                  ABC3_1
[4]     8 TTTGGGCC                  ABC4_1

nms <- c('ABC1_1', 'ABC3_1')
afastafile[nms]

  A DNAStringSet instance of length 2
    width seq                        names               
[1]     9 GCAAATGGG                  ABC1_1
[2]     8 AAAGGGTT                   ABC3_1

在你的情况下,你只是做dataset1[dataset2]

© www.soinside.com 2019 - 2024. All rights reserved.