从GRanges文件中的基因ID的R对象进行子集化

时间:2014-10-04 14:46:15

标签: r subset

我有一个名为" P.obj"的GRanges文件。我想要提取/子集列中包含的特定基因ID" name"。我想要提取的特定基因ID包含在R对象"加"列名称也称为"名称" 我理解如何通过重叠进行分组并找到重叠,但我无法弄清楚如何按基因名称进行子集化。

> P.obj
GRangesList of length 4:
$exons
GRanges with 604591 ranges and 2 metadata columns:
           seqnames               ranges strand   |     score            name
              <Rle>            <IRanges>  <Rle>   | <integer>     <character>
       [1]     chr1 [66999066, 66999090]      +   |         1 ENST00000237247
       [2]     chr1 [66999929, 67000051]      +   |         2 ENST00000237247
       [3]     chr1 [67091530, 67091593]      +   |         3 ENST00000237247
       [4]     chr1 [67098753, 67098777]      +   |         4 ENST00000237247
       [5]     chr1 [67099763, 67099846]      +   |         5 ENST00000237247
       ...      ...                  ...    ... ...       ...             ...
  [604587]    chr22 [51227323, 51227600]      +   |         4 ENST00000423888
  [604588]    chr22 [51222290, 51222500]      +   |         1 ENST00000480246
  [604589]    chr22 [51223601, 51223721]      +   |         2 ENST00000480246
  [604590]    chr22 [51237083, 51239737]      +   |         3 ENST00000480246
  [604591]    chr22 [51237083, 51237551]      +   |         1 ENST00000427528

...
<3 more elements>
---
seqlengths:
  chr1  chr2  chr3  chr4  chr5  chr6 ... chr17 chr18 chr19 chr20 chr21 chr22
    NA    NA    NA    NA    NA    NA ...    NA    NA    NA    NA    NA    NA

> plus
             name
1 ENST00000237247
3 ENST00000480246
5 ENST00000427528

我试过了: P.obj [P.obj $名称==加$名称]

但是我收到一条错误消息: 警告信息: 在is.na(e1)中:is.na()应用于类型为&#39; NULL&#39;

的非(列表或向量)

1 个答案:

答案 0 :(得分:2)

您需要的信息位于GRanges'元数据'列中,可通过mcols()$访问。此外,您正在寻找集合成员资格%in%,而不是身份。所以

P.obj[P.obj$name %in% plus$name]

考虑在Bioconductor support site上询问有关Bioconductor包的问题。