2013-03-14 38 views
1

我正嘗試使用biomaRt將超過90k探針ID的列表轉換爲基因符號,但遇到問題。使用getBM函數,我可以看到只有22k的人具有相應的基因符號,但輸出是長度爲22k的矢量,我無法看到與初始探針ID列表的對應關係。使用getBMlist,我可以得到一個輸出,爲那些不匹配的探針指定na值,但該函數給出了一條警告消息,指出getBMlist不適用於大型列表。我如何獲得90k基因符號和na值的輸出?如何使用biomaRt將安捷倫探針ID列表轉換爲基因符號並且具有na值?

+0

當你設置'uniqueRows = FALSE',我的意思是'getBM(attributes = ...,uniqueRows = FALSE)',你有什麼? – agstudy 2013-03-14 18:26:08

+0

我得到了相同基因符號的重複。這對插入那些未找到的探針的na值沒有幫助。 – user794479 2013-03-15 04:02:40

+1

我不清楚你試圖這麼做嗎?你可以把你的'getBM'重新請求添加到OP中,你會得到什麼結果。快速閱讀文檔,你應該得到一個data.frame與2列... – agstudy 2013-03-15 04:13:16

回答

2

要獲得probeID和基因符號之間的映射,您需要在biomaRt屬性中包含probeID。

這裏是我如何做它採用安捷倫芯片我的一些工作:

genes<-c("A_23_P10060", "A_23_P10091", "A_23_P103951", "A_23_P10525", "A_23_P105732", "A_23_P10605", "NM_005325") 

library(biomaRt) 
ensembl<-useMart("ensembl", dataset="hsapiens_gene_ensembl") 

ensembl.id<-grep("ENST", genes, value=T) 
agilent.df<-getBM(attributes = c("hgnc_symbol","efg_agilent_wholegenome_4x44k_v1"), filters=c("efg_agilent_wholegenome_4x44k_v1"),values=genes, mart=ensembl) 

genes<-merge(x = as.data.frame(genes),y = agilent.df, by.y="efg_agilent_wholegenome_4x44k_v1", all.x=T, by.x="genes") 

有一個非常好的biomaRt tutorial可引導您雖然同樣的過程。如果你運行這個代碼,你會注意到一個探針對於一個hgnc_symbol會有「」,這是因爲它存在於合奏集市中,但沒有指定的基因符號。

相關問題