水稻的基因號(hào)大致分為兩類未桥,一類是RAP號(hào)栽渴,格式為“Os-Chr-g-number”所森,另一類是MSU號(hào)囱持,格式為“LOC_Os-Chr-g-number”。平時(shí)做各種分析時(shí)焕济,需要你輸入的基因號(hào)都有指定的要求纷妆,因此學(xué)習(xí)基因的ID轉(zhuǎn)換至關(guān)重要。
在水稻中有一些網(wǎng)頁工具能完成ID的轉(zhuǎn)換晴弃,如Ensemble Plants(http://plants.ensembl.org/index.html)凭需,RAP-Db(https://rapdb.dna.affrc.go.jp/),RIGW(http://rice.hzau.edu.cn/rice/)肝匆,但是畢竟網(wǎng)頁工具只是提供最基本的功能,況且作為一名生信工具的使用者顺献,更應(yīng)該會(huì)用代碼的方式來解決問題旗国,既批量又高效。
下面我將來介紹由Ensemble開發(fā)的R包-biomaRt來完成基因號(hào)的批量轉(zhuǎn)換注整。
1.Installation
#一鍵安裝
BiocManager::install("biomaRt")
#加載
library(biomaRt)
2.Data Import
#按順序挑了10個(gè)基因
Os01g0100100
Os01g0100200
Os01g0100300
Os01g0100400
Os01g0100466
Os01g0100500
Os01g0100600
Os01g0100650
Os01g0100700
Os01g0100800
a <- read.csv('testgene.txt',sep = '\t')
3.getBM做ID轉(zhuǎn)換
getBM函數(shù)能曾,它就四個(gè)參數(shù)度硝。 getBM函數(shù)唯一的用處,就是做各種ID轉(zhuǎn)換寿冕。
1.filter來控制根據(jù)什么東西來過濾蕊程,可是不同數(shù)據(jù)庫的ID,也可以是染色體定位系統(tǒng)坐標(biāo)驼唱。
2.Attributes來控制我們想獲得什么藻茂,一般是不同數(shù)據(jù)庫的ID。
3.Values是我們用來檢索的關(guān)鍵詞向量玫恳。
4.Mart是我們前面選擇好的數(shù)據(jù)庫辨赐。
3.1建立與ensemble數(shù)據(jù)庫的鏈接
#在ensemble plants上能看到所有已提交的物種信息
ensembl = useMart(biomart = "plants_mart",host = "http://plants.ensembl.org")
#查看ensemble plants都有哪些物種信息,并設(shè)置為該物種信息京办。
dataset <- listDatasets(mart = ensembl)
head(dataset)
ensembl = useMart(biomart = "plants_mart",host = "http://plants.ensembl.org",dataset="osativa_eg_gene")
#查看該dataset上都有哪些屬性掀序,方便后面做添加
attributes <- listAttributes(ensembl)
3.2 正式做ID轉(zhuǎn)換及信息添加
這里我碰到一個(gè)BUG,之前看人里面做ID轉(zhuǎn)換惭婿,Ensemble ID都是以E開頭的不恭,我也就想當(dāng)然的認(rèn)為水稻的Ensemble ID也是以E開頭的,沒有想到财饥,原來RAP號(hào)就是水稻的Ensemble ID换吧,畢竟官網(wǎng)給的基因組文件是是‘IRGSP-1.0’,也難怪佑力。至于我后面選的這個(gè)參數(shù)式散,external_gene_name,就是我們平時(shí)稱呼的基因名字打颤,加上這個(gè)感覺更容易理解一點(diǎn)暴拄。
supplement <- getBM(attributes =c("ensembl_gene_id",'external_gene_name',"description"),filters = "ensembl_gene_id",values = a,mart = ensembl)
轉(zhuǎn)換成GO ID并附上GO描述
supplements <- getBM(attributes =c("ensembl_gene_id",'go_id','goslim_goa_description'),
filters = "ensembl_gene_id",values = a,mart = ensembl)
轉(zhuǎn)換成NCBI ID
supplements <- getBM(attributes =c("ensembl_gene_id",'entrezgene_id'),
filters = "ensembl_gene_id",values = a,mart = ensembl)
如果想在差異基因后面加上基因描述,后面就可以選用merge()函數(shù)编饺,根據(jù)基因ID來進(jìn)行merge乖篷。
參考鏈接
http://bioconductor.org/packages/release/bioc/html/biomaRt.html