2014-10-04 65 views
2

我有一個名爲「P.obj」的GRanges文件,我想在其中提取/子集「name」列中包含的特定基因ID。我想提取的特定Gene ID包含在R對象「plus」中,其中列名也稱爲「name」 我知道如何通過重疊進行子集並找到重疊,但我無法弄清楚如何通過基因進行子集名稱。從GRanges的Gene 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()施加到非類型「NULL」的(列表或向量)

回答

2

你想要的信息是在GRanges「元數據」列,與任一mcols()$訪問。此外,您正在尋找集合成員%in%,而不是身份。所以

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

考慮詢問有關Bioconductor包裝上的Bioconductor的問題support site

相關問題