【问题标题】:How can I subset a DNAStringSet object by name?如何按名称对 DNAStringSet 对象进行子集化?
【发布时间】:2019-04-13 03:30:43
【问题描述】:

假设我有这个 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 中的那些序列进行子集化?

【问题讨论】:

  • 也许,把它读成data.frame然后做df1$names[df1$names %in% dataset2]

标签: r bioconductor


【解决方案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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-07
    • 2020-12-28
    • 2012-10-10
    • 2020-09-25
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多