使用biomaRt進(jìn)行ID轉(zhuǎn)化

biomart使用說(shuō)明:http://www.bioconductor.org/packages/release/bioc/vignettes/biomaRt/inst/doc/biomaRt.html
前置注意:使用biomart包中的listensembl/usemart函數(shù)的時(shí)候间狂,一定注意看一下幫助文章,一般來(lái)講默認(rèn)的數(shù)據(jù)庫(kù)是最新的hg38(以人為例)火架,而目前很多的ID都來(lái)自上一版本的基因組hg37前标,因此我們需要訪問(wèn)上版本的host即http://grch37.ensembl.org/,默認(rèn)的host是www.ensembl.org距潘,這一點(diǎn)一定要注意炼列!
另外有關(guān)hg38和hg37的區(qū)別,在最新版的ensembl中音比,移除了hg37中的部分ID俭尖,同時(shí)將其賦予了新的id或與其它基因信息合并(由官方名變?yōu)閯e名),因此需要格外注意洞翩!

######################################################## 
#-------------------------------------------------------
# Topic:biomaRt的使用
# Author:Wang Haiquan
# Date:Wed May 20 11:11:39 2020
# Mail:mg1835020@smail.nju.edu.cn
#-------------------------------------------------------
########################################################

library(biomaRt)
listMarts()#檢查biomart是否可以訪問(wèn)稽犁,以及查看可以使用的web service
ensembl1 <- useMart("ensembl")
ensembl <- useMart("ENSEMBL_MART_ENSEMBL")#選擇使用的biomart,需要選擇listmarts輸出的biomart
identical(ensembl,ensembl1)#usemart中傳入ensembl骚亿,等價(jià)于傳入ENSEMBL_MART_ENSEMBL
listDatasets(ensembl)#查看選中的biomart中包含的dataset已亥,在ensembl 100版本中ENSEMBL_MART_ENSEMBL biomart中共有203個(gè)數(shù)據(jù)庫(kù)
head(listDatasets(ensembl))
#    dataset(物種數(shù)據(jù)集)                   description(物種名及參考基因組版本)          version(參考基因組版本)
# 1   acalliptera_gene_ensembl             Eastern happy genes (fAstCal1.2)             fAstCal1.2
# 2 acarolinensis_gene_ensembl               Anole lizard genes (AnoCar2.0)              AnoCar2.0
# 3  acchrysaetos_gene_ensembl              Golden eagle genes (bAquChr1.2)             bAquChr1.2
# 4  acitrinellus_gene_ensembl               Midas cichlid genes (Midas_v5)               Midas_v5
# 5  amelanoleuca_gene_ensembl                        Panda genes (ailMel1)                ailMel1
# 6    amexicanus_gene_ensembl Mexican tetra genes (Astyanax_mexicanus-2.0) Astyanax_mexicanus-2.0
#小鼠的ensembl名: mmusculus_gene_ensembl,參考基因組為GRCm38.p6
#人的ensembl名:hsapiens_gene_ensembl,參考基因組為GRCh38.p13
ensembl <- useDataset("hsapiens_gene_ensembl",mart = ensembl)

#-------------------------------------------------------
#Function:使用getBM函數(shù)進(jìn)行ID轉(zhuǎn)換
#-------------------------------------------------------

#getBM一共四個(gè)參數(shù)
#attributes : is a vector of attributes that one wants to retrieve (=the output of the query)
#需要轉(zhuǎn)化成什么樣的ID類型来屠,可以使用listAttributes(ensembl)查看可以轉(zhuǎn)化的ID類型
attributes<-listAttributes(ensembl)
head(attributes)
#                            name                  description         page
# 1               ensembl_gene_id               Gene stable ID feature_page
# 2       ensembl_gene_id_version       Gene stable ID version feature_page
# 3         ensembl_transcript_id         Transcript stable ID feature_page
# 4 ensembl_transcript_id_version Transcript stable ID version feature_page
# 5            ensembl_peptide_id            Protein stable ID feature_page
# 6    ensembl_peptide_id_version    Protein stable ID version feature_page
#filters : is a vector of filters that one wil use as input to the query
#限制轉(zhuǎn)化的id的范圍,如果我只想轉(zhuǎn)化X染色體上的基因虑椎,可以通過(guò)設(shè)置chromosome_name=X來(lái)設(shè)置,可以使用listFilters(ensembl)查看可以選擇的filter類型
filters = listFilters(ensembl)
head(filters)
#                 name                            description
# 1    chromosome_name               Chromosome/scaffold name
# 2              start                                  Start
# 3                end                                    End
# 4             strand                                 Strand
# 5 chromosomal_region               e.g. 1:100:10000:-1, 1:100000:200000:1
# 6          with_ccds                        With CCDS ID(s)

# values : a vector of values for the filters. In case multple filters are
# in use, the values argument requires a list of values where each
# position in the list corresponds to the position of the filters in the
# filters argument (see examples below)
#query的ID俱笛,如將探針轉(zhuǎn)化為基因名捆姜,則value就是探針名
# mart : is an object of class Mart , which is created by the
# useMart() function
#使用的mart類型,即上文中提到的ensembl
values = c("202763_at","209310_s_at","207500_at")
attributes = c('affy_hg_u133_plus_2', 'entrezgene_id')
filters = 'affy_hg_u133_plus_2'#提供的id是這類芯片
mart = ensembl
new_id<-getBM(attributes,filters,values,mart)#注意迎膜,網(wǎng)絡(luò)問(wèn)題可能會(huì)連接失敗泥技,也可以使用select函數(shù)代替
注意!磕仅!由于getBM中輸出的結(jié)果是亂序的(相比于你輸入的順序)因此在這里珊豹,為了得到更準(zhǔn)確的結(jié)果簸呈,我們最好加上用于將結(jié)果驗(yàn)證的id(attributes),比如我的filters的類型是affy_hg_u133_plus_2店茶,那我的attributes中也最好加上affy_hg_u133_plus_2這個(gè)標(biāo)識(shí)蜕便。同時(shí)由于函數(shù)本身會(huì)把相同的行去掉(uniqueRows=T),因此我們可以把它關(guān)上
new_id<-getBM(c('affy_hg_u133_plus_2', 'entrezgene_id'),
                           'affy_hg_u133_plus_2',
                           c("202763_at","209310_s_at","207500_at"),
                           mart,
                            uniqueRows=F)

#-------------------------------------------------------
#Function:使用dataset的搜索函數(shù)
#-------------------------------------------------------
#搜索函數(shù)有三個(gè):searchDatasets() searchAttributes() searchFilters()
#分別用來(lái)查找數(shù)據(jù)集名稱忽妒,attributes名稱以及filter名稱
#都含有兩個(gè)參數(shù),分別為mart和pattern兼贸,其中pattern接受正則表達(dá)式
searchDatasets(mart = ensembl,pattern = "hsa.*")

#-------------------------------------------------------
#Function:在biomart包的教程中通過(guò)使用http及開放端口使用非ensembl庫(kù)中的數(shù)據(jù)注釋
#-------------------------------------------------------
#這里使用線蟲數(shù)據(jù)庫(kù)
listMarts(host = "parasite.wormbase.org")
wormbase = useMart(biomart = "parasite_mart",
                   host = "https://parasite.wormbase.org",
                   port = 443)
listDatasets(wormbase)
wormbase <- useDataset(mart = wormbase, dataset = "wbps_gene")
head(listFilters(wormbase))
getBM()

#-------------------------------------------------------
#Function:可以使用columns段直、select、keys溶诞、keytypes等函數(shù)對(duì)mart進(jìn)行操作
#-------------------------------------------------------
columns(ensembl)
keytypes(ensembl)
keys(mart,keytype = "chromosome_name")
select(mart,keys = values,columns = attributes,keytype = "affy_hg_u133_plus_2")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸯檬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子螺垢,更是在濱河造成了極大的恐慌喧务,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枉圃,死亡現(xiàn)場(chǎng)離奇詭異功茴,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)孽亲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門坎穿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人返劲,你說(shuō)我怎么就攤上這事玲昧。” “怎么了篮绿?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵孵延,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我亲配,道長(zhǎng)尘应,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任吼虎,我火速辦了婚禮菩收,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鲸睛。我一直安慰自己娜饵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布官辈。 她就那樣靜靜地躺著箱舞,像睡著了一般遍坟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晴股,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天愿伴,我揣著相機(jī)與錄音,去河邊找鬼电湘。 笑死隔节,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寂呛。 我是一名探鬼主播怎诫,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贷痪!你這毒婦竟也來(lái)了幻妓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤劫拢,失蹤者是張志新(化名)和其女友劉穎肉津,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舱沧,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妹沙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了熟吏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片初烘。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖分俯,靈堂內(nèi)的尸體忽然破棺而出肾筐,到底是詐尸還是另有隱情,我是刑警寧澤缸剪,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布吗铐,位于F島的核電站,受9級(jí)特大地震影響杏节,放射性物質(zhì)發(fā)生泄漏唬渗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一奋渔、第九天 我趴在偏房一處隱蔽的房頂上張望镊逝。 院中可真熱鬧,春花似錦嫉鲸、人聲如沸撑蒜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)座菠。三九已至狸眼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浴滴,已是汗流浹背拓萌。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留升略,地道東北人微王。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像品嚣,于是被迫代替她去往敵國(guó)和親炕倘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354