GO.db:存儲(chǔ)Gene Ontology信息的R包

歡迎關(guān)注”生信修煉手冊(cè)”!

在生信分析領(lǐng)域漱办,R語(yǔ)言由于其簡(jiǎn)單易用的特點(diǎn)和良好的生態(tài)環(huán)境飘哨,占用重要的一席之地定拟。其中,Bioconductor作為生信分析專(zhuān)用的R語(yǔ)言社區(qū)蹋嵌,提供了許多的R包育瓜。

Bioconductor上的所有R包可以分成4大類(lèi)別,示意圖如下


software類(lèi)型的R包用于執(zhí)行某項(xiàng)具體的分析內(nèi)容欣尼,比如edgeR, DESeq2等爆雹,AnnotationData類(lèi)型的包在R中存儲(chǔ)了對(duì)應(yīng)的數(shù)據(jù)庫(kù)停蕉,比如GO.db等,ExperimentData類(lèi)型的包存儲(chǔ)了實(shí)驗(yàn)數(shù)據(jù)钙态,Workflow類(lèi)型的包提供了完整分析的pipeline慧起。本文主要介紹AnnotationData類(lèi)型的包。

為了規(guī)范化開(kāi)發(fā)册倒,方便R包的使用蚓挤,Bioconductor的開(kāi)發(fā)者提供了幾種基礎(chǔ)的R包,用于定義幾種基礎(chǔ)信息的存儲(chǔ)方式驻子。

對(duì)于數(shù)據(jù)庫(kù)內(nèi)容的存儲(chǔ)和使用灿意,在AnnotationDbi這個(gè)包中統(tǒng)一進(jìn)行了定義。由于采用了面向?qū)ο蟮木幊谭绞匠绾牵欣^承了這種對(duì)象的R包其使用方式是一樣的缤剧。

在Bioconductor中,有以下4種類(lèi)別的注釋信息包域慷,都繼承了AnnotationDbi

  1. Organism level
    比如human對(duì)應(yīng)的Org.Hs.eg.db, 存儲(chǔ)了人類(lèi)的基因信息荒辕。

  2. Platform level
    比如hgu133plus2.db, 這種類(lèi)型的包主要存儲(chǔ)不同平臺(tái)的數(shù)據(jù),比如不同芯片的探針信息犹褒。

  3. Homology-level
    比如hom.Dm.inp.db,存儲(chǔ)了同源信息

  4. System-biology level
    比如GO.db, 存儲(chǔ)生物學(xué)相關(guān)的數(shù)據(jù)庫(kù)抵窒。


所有這些后綴為.db的R包,其本質(zhì)都為一個(gè)sqlite數(shù)據(jù)庫(kù)叠骑,一種輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)李皇,只不過(guò)是通過(guò)R來(lái)進(jìn)行訪(fǎng)問(wèn)。

GO.db為例宙枷,在下載的源代碼中掉房,可以找到對(duì)應(yīng)的后綴為.sqlite的數(shù)據(jù)庫(kù)文件,位于extdata目錄下朦拖。

關(guān)系型數(shù)據(jù)庫(kù)中的基本單位是表圃阳,對(duì)于一個(gè).db的R包而言厌衔,可以通過(guò)以下4個(gè)函數(shù)訪(fǎng)問(wèn)其中的內(nèi)容

  1. columns

  2. keytypes

  3. keys

  4. select


對(duì)于一個(gè)數(shù)據(jù)表而言璧帝,首先我們需要知道表頭信息,就可以通過(guò)columnskeytypes函數(shù)來(lái)訪(fǎng)問(wèn)得到富寿,示例如下

> keytypes(GO.db)
[1] "DEFINITION" "GOID" ? ? ? "ONTOLOGY" ? "TERM" ? ? ?
> columns(GO.db)
[1] "DEFINITION" "GOID" ? ? ? "ONTOLOGY" ? "TERM"

從以上代碼的結(jié)果可以看出睬隶,GO.db提供的數(shù)據(jù)表共有4列。
假如想要訪(fǎng)問(wèn)其中某一列的值页徐,可以通過(guò)keys函數(shù)苏潜,示例如下

> keys(GO.db, keytype = "GOID")[1:3]
[1] "GO:0000001" "GO:0000002" "GO:0000003"

上述代碼返回GOID這一列的內(nèi)容。

對(duì)于數(shù)據(jù)庫(kù)而言变勇,查詢(xún)是基本操作恤左,在SQL語(yǔ)言中贴唇,通過(guò)select實(shí)現(xiàn),對(duì)應(yīng)的在R中通過(guò)select函數(shù)來(lái)實(shí)現(xiàn)飞袋,示例如下

> k <- keys(GO.db, keytype = "GOID")[1:3]
> select(GO.db,
 ? keys = k,
 ? columns = c("TERM","ONTOLOGY"),
 ? keytype="GOID")
'select()' returned 1:1 mapping between keys and columns
 ? ? ? ?GOID ? ? ? ? ? ? ? ? ? ? ? ? ? ? TERM ONTOLOGY
1 GO:0000001 ? ? ? ?mitochondrion inheritance ? ? ? BP
2 GO:0000002 mitochondrial genome maintenance ? ? ? BP
3 GO:0000003 ? ? ? ? ? ? ? ? ? ? reproduction ? ? ? B

通過(guò)返回結(jié)果可以看到戳气,GO.db提供了一張4列的數(shù)據(jù)表,GOID表示GO編號(hào)巧鸭,DEFINITION表示GO功能的詳細(xì)描述信息瓶您,TERM表示功能的簡(jiǎn)單介紹,ONTOLOGY表示GO的3大類(lèi)別纲仍。

除了基本的數(shù)據(jù)表之外呀袱,在這種類(lèi)型的包中還會(huì)提供很多其他信息,可以通過(guò)ls函數(shù)查看郑叠,示例如下

> ls("package:GO.db")
[1] "GO" ? ? ? ? ? ?"GO.db" ? ? ? ? "GO_dbconn" ? ? "GO_dbfile" ? ? "GO_dbInfo" ? ? "GO_dbschema" ?
[7] "GOBPANCESTOR" ?"GOBPCHILDREN" ?"GOBPOFFSPRING" "GOBPPARENTS" ? "GOCCANCESTOR" ?"GOCCCHILDREN"
[13] "GOCCOFFSPRING" "GOCCPARENTS" ? "GOMAPCOUNTS" ? "GOMFANCESTOR" ?"GOMFCHILDREN" ?"GOMFOFFSPRING"
[19] "GOMFPARENTS" ? "GOOBSOLETE" ? ?"GOSYNONYM" ? ? "GOTERM"

其中有一部分對(duì)象的類(lèi)型AnnDbBimap, 示例如下

> GOTERM
TERM map for GO (object of class "GOTermsAnnDbBimap")

這種對(duì)象類(lèi)似基本數(shù)據(jù)結(jié)構(gòu)中的list, 常用的操作語(yǔ)句示例如下

> mappedkeys(GOTERM)[1:3]
[1] "GO:0000001" "GO:0000002" "GO:0000003"

> ls(GOTERM)[1:3]
[1] "all" ? ? ? ?"GO:0000001" "GO:0000002"

> GOTERM[["GO:0000001"]]
GOID: GO:0000001
Term: mitochondrion inheritance
Ontology: BP
Definition: The distribution of mitochondria, including the mitochondrial genome, into daughter
 ? ?cells after mitosis or meiosis, mediated by interactions between mitochondria and the
 ? ?cytoskeleton.
Synonym: mitochondrial inheritance

> get("GO:0000001", GOTERM)
GOID: GO:0000001
Term: mitochondrion inheritance
Ontology: BP
Definition: The distribution of mitochondria, including the mitochondrial genome, into daughter
 ? ?cells after mitosis or meiosis, mediated by interactions between mitochondria and the
 ? ?cytoskeleton.
Synonym: mitochondrial inheritance

> mget("GO:0000001", GOTERM)
$`GO:0000001`
GOID: GO:0000001
Term: mitochondrion inheritance
Ontology: BP
Definition: The distribution of mitochondria, including the mitochondrial genome, into daughter
 ? ?cells after mitosis or meiosis, mediated by interactions between mitochondria and the
 ? ?cytoskeleton.
Synonym: mitochondrial inheritance

lsmappedkeys函數(shù)都是用于查看這個(gè)列表的名稱(chēng)夜赵,只不過(guò)ls會(huì)對(duì)所有key排序;getmget選取其中的內(nèi)容,也可以像list一樣乡革,通過(guò)[[ ]]操作符直接訪(fǎng)問(wèn)油吭。

由于和list類(lèi)似,所以經(jīng)常會(huì)將這些對(duì)象通過(guò)as.list轉(zhuǎn)換之后署拟,在進(jìn)行操作婉宰,示例如下

> go <- as.list(GOTERM)
> go[[1]]
GOID: GO:0000001
Term: mitochondrion inheritance
Ontology: BP
Definition: The distribution of mitochondria, including the mitochondrial genome, into daughter
 ? ?cells after mitosis or meiosis, mediated by interactions between mitochondria and the
 ? ?cytoskeleton.
Synonym: mitochondrial inheritance


需要注意的是這個(gè)步驟是非常耗時(shí)的,實(shí)際使用時(shí)推穷,可以先挑選子集心包,然后在轉(zhuǎn)換成list。


很多做GO富集分析的R包都會(huì)調(diào)用GO.db, 掌握其基本操作馒铃,有助于理解其他封裝好的R包蟹腾。


·end·

—如果喜歡,快分享給你的朋友們吧—


掃描關(guān)注微信號(hào)区宇,更多精彩內(nèi)容等著你娃殖!


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市议谷,隨后出現(xiàn)的幾起案子炉爆,更是在濱河造成了極大的恐慌,老刑警劉巖卧晓,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芬首,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡逼裆,警方通過(guò)查閱死者的電腦和手機(jī)郁稍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)胜宇,“玉大人耀怜,你說(shuō)我怎么就攤上這事恢着。” “怎么了财破?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵然评,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我狈究,道長(zhǎng)碗淌,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任抖锥,我火速辦了婚禮亿眠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘磅废。我一直安慰自己纳像,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布拯勉。 她就那樣靜靜地躺著竟趾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宫峦。 梳的紋絲不亂的頭發(fā)上岔帽,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音导绷,去河邊找鬼犀勒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛妥曲,可吹牛的內(nèi)容都是我干的贾费。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼檐盟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼褂萧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起葵萎,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤导犹,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后陌宿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體锡足,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年壳坪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掰烟。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爽蝴,死狀恐怖沐批,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蝎亚,我是刑警寧澤九孩,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站发框,受9級(jí)特大地震影響躺彬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梅惯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一宪拥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铣减,春花似錦她君、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至劣针,卻和暖如春校镐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捺典。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工灭翔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辣苏。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓肝箱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親稀蟋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子煌张,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評(píng)論 2 89
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)退客,斷路器骏融,智...
    卡卡羅2017閱讀 134,665評(píng)論 18 139
  • 從朋友的角度聊一聊 我對(duì)待企業(yè)的看法,夫妻店到現(xiàn)在的規(guī)模萌狂,不往前走結(jié)果就是夫妻店或者消失档玻,向前走就會(huì)有擔(dān)心,現(xiàn)在五...
    Serene湯先允閱讀 230評(píng)論 0 0
  • 文/素白 去深夜里澆花順便看一眼昨夜的月亮找一株未命名的植物讓她在秋天的蕭瑟里墮落 不要逼迫所有種子都要飽滿(mǎn)讓她長(zhǎng)...
    素白_閱讀 2,178評(píng)論 27 58
  • 下周,必將是很難過(guò)的一周务傲。 因?yàn)槲覀兊氖形瘯?shū)記要到我們這個(gè)小地方視察凉当,并且指名道姓的要到我們學(xué)校來(lái)枣申。從接到消息,學(xué)...
    風(fēng)雨同舟_f997閱讀 193評(píng)論 2 1