R包biomaRt: 轉(zhuǎn)換ID刁卜、注釋基因、GO通路

從我寫的RNA-seq摸索:4. edgeR/limma/DESeq2差異基因分析→ggplot2作火山圖→biomaRt轉(zhuǎn)換ID并注釋中提取出來這部分曙咽,方便以后修改補充

參考這篇

1 我們利用useMart()函數(shù)選擇“ENSEMBL_MART_ENSEMBL”蛔趴,并將其賦值給my_mart對象

library('biomaRt')
library("curl")

my_mart <-useMart("ensembl")

在ensembl數(shù)據(jù)庫中包含了77個數(shù)據(jù)集,可用下面這樣的方式查看

datasets <- listDatasets(my_mart)
View(datasets)
datasets

2 選擇一個數(shù)據(jù)集datasset例朱,這里選人類的

my_dataset <- useDataset("hsapiens_gene_ensembl",
                         mart = my_mart)

3 ??根據(jù)ensembl ID獲取基因名孝情、描述或染色體信息

??????這里前半部分有誤!請一定往下看解決辦法

my_newid <- getBM(attributes = c("ensembl_gene_id","external_gene_name","description","chromosome_name"),
                  filters = "ensembl_gene_id",
                  values = newinput,
                  mart = my_dataset)

image.png

??這里一直報錯洒嗤,并且輸出的為內(nèi)容為0行
??找到原因是:EBI數(shù)據(jù)庫??沒有小數(shù)點??箫荡,所以需要進一步替換為整數(shù)的形式。需要把小數(shù)點去掉S媪ァ羔挡!這個很重要,所以需要加一個步驟

①還是將差異文件的行名提取出來

inputdata <- as.data.frame(row.names(deseq_res))

②這里將匹配到的.以及后面的數(shù)字連續(xù)匹配并替換為空派撕,并重新賦值婉弹,一定要是data.frame格式

newinput <- as.data.frame(gsub("\\.\\d*", "", inputdata[,1]))

getBM()轉(zhuǎn)換ID

1)attributes參數(shù):用來指定輸出的數(shù)據(jù)類型睬魂,就是你要什么终吼,比如entrezgene,hgnc_id氯哮。忘記的話可以用listAttributes(你的dataset名字)查看
2)filters參數(shù):用來指定數(shù)據(jù)的輸入類型际跪,比如你的原始信息是基因的ensembl ID商佛,并且有這些基因的染色體位置信息,那么此處的filter就是ensembl_gene_idchromosome_name等姆打。
3)values參數(shù):就是你待轉(zhuǎn)換ID的數(shù)據(jù)
4)mart參數(shù):此前定義的數(shù)據(jù)庫良姆,此處就是my_dataset

那么在我這里:
attributes :我想要輸出"ensembl_gene_id",轉(zhuǎn)換后的"external_gene_name",轉(zhuǎn)換后的"description"
filters:我的原始信息"ensembl_gene_id"
mart:之前建立的數(shù)據(jù)庫

listAttributes(你的dataset) 可以查看可供選擇的attributes
listAttributes(my_dataset)
my_result <- getBM(attributes = c("ensembl_gene_id","external_gene_name","description"),
                  filters = "ensembl_gene_id",
                  values = newinput,
                  mart = my_dataset)

ID轉(zhuǎn)換成功后

這樣就完成了對ensembl_id的轉(zhuǎn)化和注釋

4 最后需要把結(jié)果文件deseq_res和注釋文件my_result兩者merge起來

merge需要有相同的gene_id
??但是一定要看看自己文件里的gene_id是不是一致,如果有一個為小數(shù)幔戏,就要再添加一列取整后的gene_id

deseq_resgene_id有小數(shù)點 所以再加一列變成new_deseq_res玛追,新增加的列名為gene_new_id
new_deseq_res <- as.data.frame(deseq_res)
new_deseq_res$gene_new_id <- gsub("\\.\\d*", "", deseq_res$gene_id)
② 修改一下列名,把含有小數(shù)點的列命名為gene_all_id,取整后的為gene_id,這一步是為了方便merge
colnames(new_deseq_res) <- c('baseMean', 'log2FoldChange','lfcSE','stat','pvalue','padj','gene_all_id','gene_id')
new_deseq_res
merge兩個文件闲延,即new_deseq_resmy_resullt痊剖,生成final_res文件

by = intersect(names(x), names(y)) 為取兩個文件所有列名中列名相同的那列!

final_res <- merge(my_result, new_deseq_res, by = intersect(names(my_result), names(new_deseq_res)))
write.table(final_res, 'C:/Users/wang/Desktop/final_result.txt',row.names = FALSE, sep = '\t', quote = FALSE)

結(jié)果文件

5 還可以找到某個基因所在的通路GO號

參考這篇

① 選出要查找的基因
#舉個例子
entrez = c("673", "837")
② 利用ensembl構(gòu)建my_martmy_dataset
my_mart <-useMart("ensembl") 

#`listDatasets()`可以查看可用的`datasets`
datasets <- listDatasets(my_mart)
View(datasets)

#構(gòu)建`my_dataset`
my_dataset <- useDataset("hsapiens_gene_ensembl",
                         mart = my_mart)
③ 查看可輸出的attributes
listAttributes(my_dataset)
④ 查找GOid
GOid <- getBM(attributes = c('entrezgene_id', 'go_id'),
              filters = 'entrezgene_id',
              values = entrez,
              mart = my_dataset)
結(jié)果

6 與5相反垒玲,可以通過所在的通路GO號找到某個基因

getBM(attributes = c('entrezgene_id', 'ensembl_gene_id'),
      filters = 'go',
      values = 'GO:0005524',
      mart = my_dataset)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載陆馁,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末合愈,一起剝皮案震驚了整個濱河市叮贩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌佛析,老刑警劉巖益老,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異说莫,居然都是意外死亡杨箭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門储狭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來互婿,“玉大人,你說我怎么就攤上這事辽狈〈炔危” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵刮萌,是天一觀的道長驮配。 經(jīng)常有香客問我,道長着茸,這世上最難降的妖魔是什么壮锻? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮涮阔,結(jié)果婚禮上猜绣,老公的妹妹穿的比我還像新娘。我一直安慰自己敬特,他們只是感情好掰邢,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布牺陶。 她就那樣靜靜地躺著,像睡著了一般辣之。 火紅的嫁衣襯著肌膚如雪掰伸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天怀估,我揣著相機與錄音狮鸭,去河邊找鬼。 笑死多搀,一個胖子當著我的面吹牛怕篷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酗昼,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼廊谓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了麻削?” 一聲冷哼從身側(cè)響起蒸痹,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎呛哟,沒想到半個月后叠荠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡扫责,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年榛鼎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鳖孤。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡者娱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苏揣,到底是詐尸還是另有隱情黄鳍,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布平匈,位于F島的核電站框沟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏增炭。R本人自食惡果不足惜忍燥,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隙姿。 院中可真熱鬧梅垄,春花似錦、人聲如沸孟辑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饲嗽。三九已至炭玫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間貌虾,已是汗流浹背吞加。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留尽狠,地道東北人衔憨。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像袄膏,于是被迫代替她去往敵國和親践图。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容