談?wù)劚倔w論
為什么需要本體論
作為一位大學(xué)統(tǒng)計(jì)棉花表皮毛的苦逼生物狗,深刻體會(huì)什么叫做經(jīng)驗(yàn),也就是人類模式識(shí)別能力的強(qiáng)大和不精確性职辅。當(dāng)時(shí)的導(dǎo)師教我如何根據(jù)表皮毛的長(zhǎng)短和濃密進(jìn)行基因型的判定蹬挺,但是我一直糾結(jié)長(zhǎng)和短,密和疏之間的分界澈圈。在讀研的時(shí)候彬檀,師姐會(huì)讓我提供基因Genomic序列,這來自于TAIR的定義瞬女,此外TAIR還定義了full length cDNA和full length CDS窍帝。我經(jīng)常糾結(jié)這些序列和我GFF里面的CDS,mRNA诽偷,gene的關(guān)系是什么坤学?直到我把所有序列都拿出來,進(jìn)行多序列聯(lián)配才發(fā)現(xiàn)它們之間的差異报慕。
計(jì)算機(jī)科學(xué)來自于多學(xué)科的交互深浮,比如說數(shù)學(xué),語言學(xué)眠冈,邏輯學(xué)等飞苇。為了保證互聯(lián)網(wǎng)的通信,代碼的復(fù)用,API的調(diào)用等布卡,計(jì)算機(jī)協(xié)會(huì)制定了很多協(xié)議進(jìn)行標(biāo)準(zhǔn)化雨让。比如說“意思意思”這句話在中文的語境千變?nèi)f化,但是在計(jì)算機(jī)里面可能就會(huì)翻譯成mean of mean羽利。為了能讓計(jì)算機(jī)分析生物數(shù)據(jù)宫患,就要生物學(xué)的一些概念進(jìn)行精確定義,而不是“只可意會(huì)这弧,不可言傳”
Karen在文章The Sequence Ontology: a tool for the unification of genome annotations就寫了這樣一段話:
Unfortunately, biological terminology is notoriously ambiguous; the same word is often used to describe more than one thing and there are many dialects. For example, does a coding sequence (CDS) contain the stop codon or is the stop codon part of the 3'-untranslated region (3' UTR)?
There really is no right or wrong answer to such questions, but consistency is crucial when attempting to compare annotations from different sources, or even when comparing annotations performed by the same group over an extended period of time.****
也就是說一致性比正確性更加重要娃闲,如果雙方各執(zhí)一見,對(duì)一個(gè)概念的定義模棱兩可匾浪,那么討論只會(huì)浪費(fèi)時(shí)間皇帮。這就是為什么我們需要建立統(tǒng)一的概念蛋辈。
本體論是什么
本體論是概念化的詳細(xì)說明属拾,一個(gè)ontology往往就是一個(gè)正式的詞匯表,其核心作用就在于定義某一領(lǐng)域或領(lǐng)域內(nèi)的專業(yè)詞匯以及他們之間的關(guān)系冷溶。這一系列的基本概念如同工程一座大廈的基石渐白,為交流各方提供了一個(gè)統(tǒng)一的認(rèn)識(shí)。在這一系列概念的支持下逞频,知識(shí)的搜索纯衍、積累和共享的效率將大大提高,真正意義上的知識(shí)重用和共享也成為可能
目前最常見的就是序列本體論(SO)和基因本體論(GO)苗胀。當(dāng)然還有許多其他的本體論襟诸,都列在http://www.obofoundry.org/. 可以去尋找和自己研究領(lǐng)域相關(guān)的本體論,比如說植物本體論(PO)用于定義植物基因組數(shù)據(jù)中的和解剖基协,形學(xué)歌亲,生長(zhǎng)發(fā)育相關(guān)的信息。
實(shí)際上澜驮,生信本質(zhì)依舊還是序列分析陷揪。序列分析比較關(guān)注兩個(gè)內(nèi)容:
- 這個(gè)DNA片段是什么?(注釋或分類)
- 這個(gè)DNA片段做什么杂穷?(功能分析)
de novo 基因組組裝就是要構(gòu)建原來的基因組鹅龄,然后對(duì)上面的片段進(jìn)行注釋,判斷是蛋白質(zhì)還是非編碼蛋白亭畜。RNA-Seq就是想通過差異表達(dá)的轉(zhuǎn)錄本來解釋表型。RNA-Seq實(shí)驗(yàn)的理想結(jié)果就是找到DNA功能的機(jī)制以及如何產(chǎn)生觀察的表型迎卤。
序列本體論(Sequence Ontology)
所謂的序列本體論(SO)拴鸵,其實(shí)就是定義基因組不同區(qū)域的feature。 比如說可以從Sequence Ontology Browser尋找words的定義
例如搜索X_element_combinatorial_repeat就會(huì)得到它的定義,還有他的關(guān)系圖。
X element combinatorial repeat
An X element combinatorial repeat is a repeat region located between the X element and the telomere or adjacent Y' element.
PS: 不是所有序列數(shù)據(jù)都遵守SO劲藐,如CDS的定義八堡。
如何查看SO數(shù)據(jù)
盡管在日常使用中并不需要接觸原始SO數(shù)據(jù),但是花點(diǎn)時(shí)間理解它是如何組織還是很有必要的
可以在 https://github.com/The-Sequence-Ontology/SO-Ontologies 尋找SO數(shù)據(jù)聘芜。
URL=https://raw.githubusercontent.com/The-Sequence-Ontology/SO-Ontologies/master/so-simple.obo
curl $URL > so.obo
# 了解有多少term
grep 'Term' so.obo | wc -l
# 快速查找SO
cat so.obo | grep 'PCR' -B 2 -A 2
當(dāng)你查看GFF文件的時(shí)候兄渺,如果好奇里面的mRNA, gene的定義就可以用grep
進(jìn)行查找汰现。
Gene Ontology
其實(shí)目前最完善的還是基因本體論挂谍,也就是GO∠顾牵基因本體論(GO)是一個(gè)受控詞匯口叙,用于將每個(gè)基因連接到一個(gè)或多個(gè)功能。
基因本體論用于分類基因產(chǎn)物嗅战,而非基因本身妄田。因?yàn)橥粋€(gè)基因可以有不同產(chǎn)物,行使不同的功能驮捍。
GO必須知道的幾個(gè)概念
一: GO的組織結(jié)構(gòu)
要記住GO分為三類, CC(細(xì)胞組分), MF(分子功能)和BP(生物學(xué)過程)疟呐。分別回答了基因的產(chǎn)物在哪里發(fā)揮功能,如何發(fā)揮功能东且,以及為什么需要該產(chǎn)物這三個(gè)問題启具。
二: GO詞條的組織形式
GO本體被構(gòu)造為有向的非循環(huán)圖,其中每個(gè)術(shù)語定義了與同一域中的一個(gè)或多個(gè)其他術(shù)語的關(guān)系苇倡,并且有時(shí)與其他域有關(guān)富纸。比如說Golgi Cisterna
的GO詞條為(GO:0031985),在Quick GO的展示如下
三: GO數(shù)據(jù)的存儲(chǔ)格式
使用GO的時(shí)候一般需要GO定義文件和GO關(guān)聯(lián)文件旨椒。GO定義文件存放GO詞條的定義晓褪,而GO關(guān)聯(lián)文件則是不同命名體系與GO詞條的映射關(guān)系。
實(shí)際使用時(shí)并不需要獲取GO的原始數(shù)據(jù)综慎,但是能夠了解它儲(chǔ)存內(nèi)容的話有助于從多個(gè)角度理解生物學(xué)涣仿。可以從 GO Download數(shù)據(jù)下載
curl -OL http://purl.obolibrary.org/obo/go.obo
GO詞義文件所包含的內(nèi)容如下:
[Term]
# 編號(hào)
id: GO:0000002
# 全稱
name: mitochondrial genome maintenance
# 命名空間示惊,BP, CC OR MF
namespace: biological_process
# 定義
def: "The maintenance of the structure and integrity of
the mitochondrial genome; includes replication and
segregation of the mitochondrial chromosome." [GOC:ai, GOC:vw]
# 從屬關(guān)系
is_a: GO:0007005 ! mitochondrion organization
四: GO數(shù)據(jù)庫更新
由于研究的深入好港,GO的注釋數(shù)據(jù)庫會(huì)不斷地更新。而GO富集分析就和數(shù)據(jù)庫的大小有很大關(guān)系米罚。注意了钧汹,當(dāng)公司給你富集分析結(jié)果時(shí),一定要注意他們所用的分析工具及其GO數(shù)據(jù)庫版本录择。
生信數(shù)據(jù)的功能分析
大部分人學(xué)習(xí)生物信息學(xué)拔莱,其實(shí)就是為了對(duì)數(shù)據(jù)做出合理的解釋碗降,都希望從生物角度獲得新的洞見。但是很尷尬塘秦,大家花了大部分時(shí)間用于收集數(shù)據(jù)讼渊,卻對(duì)已有的數(shù)據(jù)的組織和分類及其短視。好像把數(shù)據(jù)丟到數(shù)據(jù)庫尊剔,問題就會(huì)自動(dòng)解決一樣爪幻。
然而,組織已有的知識(shí)是一件非常吃力须误,但未必討好的工作挨稿。并且大家都指望別人能夠搞定這件事情,而不愿意自己動(dòng)手霹期。于是就導(dǎo)致了”公地悲劇“叶组。一些組織和公司就從中看到了商機(jī),京都基因和基因組百科全書(KEGG)改變授權(quán)历造,對(duì)大批量數(shù)據(jù)檢索收費(fèi)甩十,商業(yè)公司構(gòu)建了專門的數(shù)據(jù)庫進(jìn)行出售。
因此吭产,商業(yè)就是最大的善侣监。它讓資源得到合理地配置,讓數(shù)據(jù)變得更有價(jià)值臣淤,而不是一堆paper橄霉。也讓科學(xué)家們意識(shí)上,不合理存放已有數(shù)據(jù)會(huì)有多大的代價(jià)邑蒋。
接下來姓蜂,讓我們聊一塊錢的富集分析,其實(shí)應(yīng)該說通路分析(pathway analysis)医吊,更好聽的說法是功能分析(functional analysis)钱慢。也就是當(dāng)你得到一堆基因或者蛋白后,最常用的方法卿堂。目前有三類算法:
功能分析的算法演化
推薦先去閱讀Ten Years of Pathway Analysis: Current Approaches and Outstanding Challenges
第一代:Over-Representation Analysis
ORA翻譯成中文就是過表征分析束莫,其實(shí)就想看看某類功能或分類和隨機(jī)事件相比是否有更明顯的趨勢(shì)。這就好比經(jīng)典統(tǒng)計(jì)學(xué)中的白球和黑球的抽樣問題草描,如果黑箱中的白球比黑球多览绿,體現(xiàn)在抽樣上就是白球會(huì)比黑球更容易被抽到。
ORA分析需要你提供4類輸入穗慕,
- 一共有多少個(gè)基因饿敲,也就是背景
- 屬于某分類的基因有多少個(gè)
- 樣本一共有多少個(gè)基因
- 樣本屬于某分類的有多少個(gè)基因
之后通過超幾何分布或2X2獨(dú)立表進(jìn)行檢驗(yàn)
ORA是公司標(biāo)準(zhǔn)化流程中必備的一步,因?yàn)檫@個(gè)方法最簡(jiǎn)單逛绵,當(dāng)然出現(xiàn)的也足夠早诀蓉。大家總是不太愿意去嘗試新鮮事物栗竖,不是嗎?但是ORA其實(shí)是存在很多問題,
- ORA沒有考慮到基因的表達(dá)水平渠啤,僅僅關(guān)注基因是否屬于分類
- ORA僅僅使用部分?jǐn)?shù)據(jù),存在主觀臆斷
- 基因和功能被認(rèn)為是相互獨(dú)立添吗。這只是一種統(tǒng)計(jì)學(xué)假設(shè)而已沥曹,實(shí)際情況下并非如此。
但是既然ORA還是目前最常用的方法碟联, 我們還是要盡可能保證這個(gè)方法的結(jié)果是可靠的妓美。比如說符合如下要求:
- 公司的結(jié)題報(bào)告中用于富集分析的數(shù)據(jù)庫與時(shí)俱進(jìn),
- 公司的結(jié)題報(bào)告中用于富集分析的數(shù)據(jù)庫一定與時(shí)俱進(jìn)鲤孵,
- 公司的結(jié)題報(bào)告中用于富集分析的數(shù)據(jù)庫必須與時(shí)俱進(jìn)壶栋,
畢竟2016年,Nature Methods 專門寫了Impact of outdated gene annotations on pathway enrichment analysis 吐槽大家還在用老舊的DAVID普监。
第二代:Functional Class Scoring (FCS)
由于ORA方法存在很多弊端贵试,于是就出現(xiàn)了FCS算法。它的基本假設(shè)是:雖然單個(gè)基因的巨大改變會(huì)對(duì)通路有顯著性印象凯正,但是那些功能相關(guān)的類似微效基因累加后也能有顯著效果毙玻。換句話說,英雄人物可以在某種程度上改變歷史進(jìn)程廊散,但是人民群眾的力量也是不容小覷桑滩。
實(shí)現(xiàn)FCS方法需要三步:
第一步: 通過實(shí)驗(yàn)計(jì)算出單個(gè)基因的基因水平(gene-level)的統(tǒng)計(jì)值,比如說基因差異表達(dá)衡量會(huì)用到的ANOVA允睹,Q-statistic, 信噪比运准, t-test, Z-score等。
第二步: 同一條通路上所有基因的基因水平(gene-level)統(tǒng)計(jì)值聚合成單個(gè)通路水平(pathway-level)的統(tǒng)計(jì)值缭受⌒舶模可選方法有,Kolmogorov-Smirnov statistic [21,29],基因水平統(tǒng)計(jì)值的和, 均值或中位數(shù), Wilcoxon rank sum, maxmean statistic贯涎。
第三步:評(píng)估通路水平統(tǒng)計(jì)顯著性听哭。這一步所需要的統(tǒng)計(jì)學(xué)思想是重抽樣(bootstrap)。也就是對(duì)于一個(gè)特定通路而言塘雳,隨機(jī)排序和按照一定規(guī)則排序是否有差異陆盘。
雖然FCS已經(jīng)比ORA有很大提升了,但實(shí)際上依舊有不足败明。第一隘马,它是單獨(dú)分析每個(gè)通路,而不是多通路組合分析。第二营曼,F(xiàn)CS也只將基因表達(dá)的差異用做給定通路的排序而已涧黄。比如說A和B的表達(dá)量分別改變了2倍和20倍遇八,但是對(duì)于不同的通路而言宰睡,A和B的排名就有可能相同锋恬。
第三代: Pathway Topology (PT)-Based Approaches
為了克服第二代方法挺狰, 于是有了第三代基于通路拓?fù)鋵W(xué)的方法政敢。但是這類方法需要用到給定通路互作的信息邀泉,而目前相關(guān)的數(shù)據(jù)庫不夠嬉挡,于是這個(gè)方法只是美妙的設(shè)想
富集分析的工具
biostar hanbook里面提到的所有的工具我都不推薦,你也不需要浪費(fèi)時(shí)間去看了汇恤。只要知道clusterProfiler
就行了庞钢,它支持ORA和FCS兩類算法。函數(shù)為
- enrichGO, gseGO: GO富集分析
- enrichKEGG, gseKEGG: KEGG富集分析
- enrichDAVID: DAVID富集分析
劃重點(diǎn): clusterProfiler
的KEGG數(shù)據(jù)庫與時(shí)俱進(jìn)因谎。
這個(gè)工具目前唯一的問題就是知道的人還不夠基括。以及大家習(xí)慣用網(wǎng)頁工具,對(duì)代碼的無名恐懼财岔,以至于不敢去嘗試风皿。還有大家用軟件非常害怕去讀文檔。