建議查資料來源:
1、 微信搜索,很多公眾號寫的比較全
2、 CSDN代碼解讀比較好,相關小點也說的比較好。報錯代碼一部分也能查到。
3、 博客園
4、 簡書
5、 谷歌
一、了解到底什么是WGCNA。
先通讀了解相關概念。先不要去糾結代碼。看最基礎的概念就好,實在理解不了,那,那就算了叭,畢竟后面視頻還是會講的,逃不過的……但是WGCNA分析大概一個什么流程是的知道的。
加權基因共表達網絡分析 (WGCNA, Weighted correlation network analysis)是用來描述不同樣品之間基因關聯模式的系統生物學方法,可以用來鑒定高度協同變化的基因集, 並根據基因集的內連性和基因集與表型之間的關聯鑒定候補生物標記基因或治療靶點。
相比於只關注差異表達的基因,WGCNA利用數千或近萬個變化最大的基因或全部基因的信息識別感興趣的基因集,並與表型進行顯著性關聯分析。一是充分利用了信息,二是把數千個基因與表型的關聯轉換為數個基因集與表型的關聯,免去了多重假設檢驗校正的問題。
理解WGCNA,需要先理解下面幾個術語和它們在WGCNA中的定義。
- 共表達網絡:定義為加權基因網絡。點代表基因,邊代表基因表達相關性。加權是指對相關性值進行冥次運算(冥次的值也就是軟閾值 (power, pickSoftThreshold這個函數所做的就是確定合適的power))。無向網絡的邊屬性計算方式為
abs(cor(genex, geney)) ^ power
;有向網絡的邊屬性計算方式為(1+cor(genex, geney)/2) ^ power
; sign hybrid的邊屬性計算方式為cor(genex, geney)^power if cor>0 else 0
。這種處理方式強化了強相關,弱化了弱相關或負相關,使得相關性數值更符合無標度網絡
特征,更具有生物意義。如果沒有合適的power,一般是由於部分樣品與其它樣品因為某種原因差別太大導致的,可根據具體問題移除部分樣品或查看后面的經驗值
。 - Module(模塊):高度內連的基因集。在無向網絡中,模塊內是高度相關的基因。在有向網絡中,模塊內是高度正相關的基因。把基因聚類成模塊后,可以對每個模塊進行三個層次的分析:
1
. 功能富集分析查看其功能特征是否與研究目的相符;2
. 模塊與性狀進行關聯分析,找出與關注性狀相關度最高的模塊;3
. 模塊與樣本進行關聯分析,找到樣品特異高表達的模塊。
基因富集相關文章 去東方,最好用的在線GO富集分析工具;GO、GSEA富集分析一網打進;GSEA富集分析-界面操作。其它關聯后面都會提及。
- Connectivity (連接度):類似於網絡中 “度” (degree)的概念。每個基因的連接度是與其相連的基因的
邊屬性之和
。 - Module eigengene E: 給定模型的第一主成分,代表整個模型的基因表達譜。這個是個很巧妙的梳理,我們之前講過PCA分析的降維作用,之前主要是拿來做可視化,現在用到這個地方,很好的用一個向量代替了一個矩陣,方便后期計算。(降維除了PCA,還可以看看tSNE)
- Intramodular connectivity: 給定基因與給定模型內其他基因的關聯度,判斷基因所屬關系。
- Module membership: 給定基因表達譜與給定模型的eigengene的相關性。
- Hub gene: 關鍵基因 (連接度最多或連接多個模塊的基因)。
- Adjacency matrix (鄰接矩陣):基因和基因之間的加權相關性值構成的矩陣。
- TOM (Topological overlap matrix):把鄰接矩陣轉換為拓撲重疊矩陣,以降低噪音和假相關,獲得的新距離矩陣,這個信息可拿來構建網絡或繪制TOM圖。
二、WGCNA分析流程
WGCNA根據需要計算的步驟可大致分成以下幾個步驟:
1.數據前處理
2.構建加權相關性鄰接矩陣
3.計算拓撲重疊矩陣
4.對基因進行層次聚類,划分模塊
相關比較概念參考第二篇博客。
三、看視頻(嫌麻煩倍速看)
百度雲鏈接:
看了概念介紹之后,看代碼講解的時候,邊看邊運行代碼。
(如果你實在是不想看,那就看后面的講解,沒有視頻直接)
四、不想看視頻的:
https://horvath.genetics.ucla.edu/html/CoexpressionNetwork/Rpackages/WGCNA/
看WGCNA的教程,代碼講解一應俱全。
紅色的,點過去。這個教程是基於一個小鼠疾病性狀的分析。所以有些東西需要自己去改一些文件和一些參數。
所有代碼都有解析的。
那么首先安裝R,然后安裝Rstudio。
也可以在服務器上做。
服務器名字加:8787
前面就是服務器的名字,后面的8787就是Rstudio-server,在線服務,但是在加8787前你必須在服務器上搭建Rstudio的環境,具體步驟要看你的安裝系統是什么。具體步驟CSDN上都有代碼和教程,多試幾次,有點看臉。
然后進入Rstudio界面是這個樣子:
右下展示的PLOTS,是你繪圖預覽的部分。
Pakages是Rstudio的包,你已經下載了前面會有勾,下載R包可以在左上用代碼,也可以在這里直接在你需要的包前點勾,但是用代碼會下載相關依賴包,這里只有單個包。
(emmm提醒一下Debug這個功能,它比較抽風,有時候好用,有時候把你對的也報錯,畢竟它只是一個機器不能全信,用我被別人吐槽的一句:你是人,它是機器,你決定它,不是它決定你)
現在基本了解Rstudio后,要先准備我們進行WGCNA的文件。
兩個文件,一個基因表達的數據,一個是性狀數據。
這個是第一個文件,注意列和行是什么,名字也要注意,特別是圈起來這里,要和性狀數據一致,不然會在性狀和模塊合並時空。
好了,現在我們文件有了,然后開始:
第一步,安裝WGCNA包:
連接到bioconductor這個網站,下載WGCNA包。
source("https://bioconductor.org/biocLite.R")
biocLite(c("AnnotationDbi", "impute","GO.db", "preprocessCore"))
site="https://mirrors.tuna.tsinghua.edu.cn/CRAN"
install.packages(c("WGCNA", "stringr", "reshape2"), repos=site)
這幾句,但是它還是會有幾個依賴包安不上,你看出來的結果,他會顯示哪些包沒有安裝上,那就去bioconductor找代碼,手動安裝,最多只有三個包需要手動安裝。
那么現在安好WGCNA后,檢查安裝好了沒有:
library(WGCNA)看有沒報錯。
有就……,那就重新安?我還沒遇到過。。。。。
沒有接下來:
綠色框部分,關於要不要剪切看你自己一開始文件的GENEID情況。
如果聚類結果比較好,就不要這部分代碼,不用切。
好的現在我們已經做好了第一步數據導入和一些預處理,下面開始構建共表達網絡,有三種方法,這里只對一步法和分步法代碼進行展示,大數據批量處理,感覺不太有機會用上?
首先一步法
接下來分步法:
因為可以明顯發現我們的模塊其實划分的很細,所以我們還要把相似的模塊進行合並。那么在合並的時候我們是根據MEs值來確定的。所以我們先計算MEs值。
現在我們已經建立好了共表達網絡,同時還將基因聚類划分了模塊。
下面我們就將性狀數據聯合起來,確定重要的基因。
越綠代表負相關性越高,越紅代表正相關性越高。
計算MM值和GS值。
GS:每個基因對應的性狀的相關性,GS值越大說明這個基因和這個性狀相關性越大。
MM:模塊特征基因和模塊關系,MM值越大說明這個特征基因對這個模塊貢獻越大。
接下來我們繪制GS和MM值的散點圖。
網絡分析結果的匯總輸出
我們已經找到了與我們感興趣的特質高度關聯的模塊,並通過模塊成員資格度量值。現在,我們將此統計信息與基因注釋合並,並編寫出一個總結最重要的結果的文件,並可在標准電子表格軟件(如 MS)中進行檢查Excel 或打開辦公室計算。
接下來我們可視化基因網絡。
可視化基因網絡
在這里關於后續富集分析的和如果確定hub gene 的見下一篇?
相關參考資料:
https://mp.weixin.qq.com/s/PMb2xwADvnMwaipyFXdtzQ
https://blog.csdn.net/weixin_44377608/article/details/90489878
http://www.biotrainee.com/jmzeng/html_report/d/e/e/p/i/n/WGCNA_Traits_result/index.html
http://www.bio-info-trainee.com/2297.html