當前位置:編程學習大全網 - 源碼下載 - GENIE3基因調控網絡的推理分析

GENIE3基因調控網絡的推理分析

Genie 3使用基於樹的集成學習算法從基因表達數據中推斷基因調控網絡。

GENIE3內置了兩種基於樹的集成學習算法,隨機森林和額外樹。集成學習結合了幾種相對弱的學習算法,以獲得更好的性能。隨機森林由多個決策樹組成。水平有限。本文將簡要說明隨機森林和隨機森林如何應用於基因調控網絡的推斷。

首先介紹了決策樹,這是壹種基於if-then-else規則的學習算法。例如,假設我們想知道基因表達是否受到組蛋白修飾的影響,那麽我們可以得到這些數據:

來自Chip-seq測序分析的組蛋白修飾數據,如H3K4me1,H3K36me3,H3K27ac。和RNA-Seq分析以獲得基因表達數據。然後,我們通過分析得到組蛋白修飾富集區和相應區域的基因表達變化表。

表中,0表示無顯著富集,1表示基因所在位置有顯著富集,up和down分別表示相應基因的表達水平是上調還是下調。當然,以上數據是我故意編造的,應該與實際數據相差甚遠,所以不成立,只是為了方便論證。然後我們可以根據組蛋白修飾的富集情況畫壹個簡單的決策樹:

和上面類似,根據壹些條件來判斷類別的應用叫做分類。比如壹個課題組不坑;西瓜是好是壞?明天會不會下雨,會不會下雪,會不會去東海等等。

但是,目前我們要討論的是基因之間的調控關系。在生物體中,基因調控的機制是復雜的。壹個基因受多個轉錄因子調控,壹個轉錄因子調控多個基因。我們不能簡單的判斷壹個基因是否調控另壹個基因。我們還需要考慮轉錄因子和靶基因之間的調控關系。

這種調節關系是通過回歸得到的。回歸用於預測連續和特定的值。比如根據房子的大小、位置、樓層、朝向,預測房子的價格;根據目標基因的多個轉錄因子基因的表達水平預測目標基因的表達水平。

上圖中,基因1,2,3是轉錄因子,基因4是基因1,2,3調控的目標基因。從上面的決策樹可以看出,基因4的表達受基因1,2,3的調控。這是壹個非常簡單的回歸樹。基因1,2,3對基因4的調控作用不同,因此可以得到不同的重要性分數。

私底下,上面回歸樹的思想是GENIE3用來構建調控網絡關系的重要原因之壹。當然,作者並沒有直接使用回歸決策樹,而是使用了基於決策樹的集成學習算法,當然是因為決策樹有缺點。但是,構建基本監管關系的思路又回到了樹上。

還必須提到的是,上面的例子是我自己定義的,決策樹是手工構建的。例如,在分類示例中,第壹次選擇H3K36me3是否富集作為分類標準,第二次選擇H3K4me1是否富集作為分類標準。在回歸示例中,第壹分類選擇基因3是否為

這不是實際使用決策樹時人為選擇的。在實際應用中,通常有成百上千的輸入屬性或特征。在構建基因調控關系的過程中,也選擇了數百個轉錄因子作為輸入來預測目標基因。這不是人工選擇,而是通過算法計算選擇的。不同的分類標準用於決策樹中的相同數據。誰先來畫的樹不壹樣,最後的結果也不壹樣。不過這不是本文的重點,我就不提了。感興趣的童鞋可以搜索“決策樹推車”。

三個臭皮匠頂個諸葛亮。因為只用壹個決策樹來做預測。結果容易受到離群值的影響,容易出現過擬合(雖然GENIE3沒有通過訓練模型來預測新的調控關系,但是如果出現過擬合,可能會得到錯誤的調控關系)。所以隨機森林(RF)綜合多個決策樹,綜合考慮不同決策樹的輸出結果,得到最終結果。

隨機森林的隨機性體現在兩個方面:

這種隨機性避免了異常樣本或特征對結果的影響。最終結果將參考所有決策樹的輸出結果。在分類任務中,最終結果可以通過投票來決定。在回歸任務中,可以對決策樹的輸出結果進行平均。

如果我們理解回歸樹來預測目標基因的表達,下圖就很好理解了。

上圖的表達數據是行為樣本,列為基因。這和GENIE3的R包(行為基因,包含樣本)的輸入不壹致,但也沒什麽關系,因為輸入會在R包裏轉置然後運算。

圖中有g個基因,每個基因將作為輸出(目標基因表達),其余基因作為輸入(調控基因表達),構建g個隨機森林模型。然後計算每個模型中每個調控基因對目標基因的重要性,得出它們之間的調控關系。然後按照所有模型的調節關系排序。

需要註意的是,在上圖中,除了那些被選為靶基因的基因之外,所有的基因都被認為是調節基因。但是,作者建議應該指定調控基因。此時,當所選擇的目標基因不在調控基因中時,輸入基因都是調控基因,當所選擇的目標基因在調控基因中時,輸入基因是除了所選擇的目標基因之外的其他非預期的調控基因。

GENIE3很好用。請參考TES/genie 3/inst/Doc/genie 3 . html

GENIE3有Python版和R版。如果熟悉這兩種語言的童鞋,可以看看源代碼。

有些東西沒寫,有些沒寫清楚。以後再改吧~

  • 上一篇:JavaScript在網頁中的簡單應用
  • 下一篇:射手座源代碼
  • copyright 2024編程學習大全網