這個需求實在是太常見了,很多時候我們下載的表達矩陣,都是基因的探針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]
過濾後的表達矩陣如下:
可以手動簡單檢查一些探針的轉換情況來驗證代碼是否準確無誤。
不過,如果你連表達矩陣都不知道如何生成,那麼你需要補充的基礎知識就比較多了。