多個探針對應同一個基因取最大表達量探針極簡代碼

這個需求實在是太常見了,很多時候我們下載的表達矩陣,都是基因的探針ID作爲行名來標記,如下:

這個變量是 dat,一個表達矩陣, 所以需要對探針進行註釋,並且篩選。

首先看看註釋的結果:

很明顯可以看到,很多基因都是有多個探針的,而且每個探針的中位表達量不一樣,這裏我們可以選擇最大的探針保留。

代碼很簡單:

  dat[1:4,1:4]  
  library(hgu133plus2.db)
  ids=toTable(hgu133plus2SYMBOL)
  head(ids)
  dat=dat[ids$probe_id,]
  dat[1:4,1:4] 
  ids$median=apply(dat,1,median)
  ids=ids[order(ids$symbol,ids$median,decreasing = T),]
  ids=ids[!duplicated(ids$symbol),]
  dat=dat[ids$probe_id,]
  rownames(dat)=ids$symbol
  dat[1:4,1:4]  

過濾後的表達矩陣如下:

可以手動簡單檢查一些探針的轉換情況來驗證代碼是否準確無誤。

不過,如果你連表達矩陣都不知道如何生成,那麼你需要補充的基礎知識就比較多了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章