打開 TBtools,安裝 Rserver 插件。
4. 安裝 WGCNAshiny 插件
直接從高速插件商店安裝即可
安裝後,重啟TBtools,打開點擊 Start 即可開始分析
「文中所有鏈接🔗請點擊下方閱讀原文跳轉」

原本以為畢業了就起飛了,沒想到,喵的比沒畢業還累... 又鴿了仨月,這個小插件到時完善了不少,但是上次承諾的視頻還是沒有錄。原因不說了,準備手打!還是寫個教程為好。錄視頻,怕是要不知何年何月了...
對比大佬的下班時間發現,忙從來不是藉口,懶才是....
本文只是對WGCNAShiny軟件使用的介紹,關於WGCNA原理建議閱讀文獻,簡書知乎B站各位大佬也有講解,我自己並沒有把握講清楚。下面放一個生信技能樹的原理講解,推薦大家花點時間看一下。有能力的跟着操作一遍加深理解。關於結果怎麼看,這個聽別人講聽不明白,多看幾篇文獻就搞清楚了。
生信技能樹-WGCNA原理與實踐part1
生信技能樹-WGCNA原理與實踐part2
elife-WGCNA經典文獻
篇幅太長 就不扯淡了
怎麼安裝「方法一:」 對於熟練使用R和Rstudio的老鐵們,而且遇見報錯能通過google,Stack Overflow等途徑自己搞定的同學,直接去我的github倉庫 克隆到本地或者直接下載WGCNAbyClick.v1.R腳本。然後用Rstudio打開,點擊下圖中位置的RunApp直接運行,如果你運氣好,直接就裝上了,然後彈出網頁就可以直接做了,但大概率你運氣會不太好,底下一堆報錯,然後就靠你自己的本事debug把沒有裝上的包裝上了,我的鍋,為了讓這個shinyapp更好用,調了一堆奇葩包。😂 「「友情提示」:務必將你的R升級到4.1!!!!」
「方法二:」 如果你不想折騰,就用TBtools插件安裝吧!!CJ大佬為了幫大家搞定包安裝專門開發了R Plugin Installer Helper插件!由於我太菜了,😭目前WGCNAShiny的meta-package木有搞出來,不過很快會向大家見面。使用方法:「生信藥丸 解決方案!TBtools R Plugin 安裝~ 終極奧義」
更新內容和之前的OneStepWGCNA插件相比確實改變了很多,開放和更多的參數,也使大家體驗一下調參俠的日常,WGCNAshiny推出後我考慮要下架OneStepWGCNA因為他不夠「智能」,很可能一些數據格式或者設置的錯誤會導致錯誤的結果。
「首先建議所有用戶折騰下這個:」BLAS加速矩陣運算簡單總結就是windows先去這裡下載文件,然後把這些文件複製到你R路徑下比如
C:\ProgramFiles\R\R-4.1\bin\x64文件夾中,覆蓋掉原來的文件。mac用戶根據我博客那篇文章操作就好,linux用戶直接搜索linux怎麼裝openblas,跟着操作就ok啦。如果不替換BLAS,你會發現WGCNA跑得非常非常慢!因為系統自帶的BLAS矩陣處理速度太拉胯了.....
「其次,基因名稱最好不要是數字,材料名稱也不要以數字開頭,材料名稱中有'-'號,轉換成下劃線'_'或者'.'同時最好不要有各種奇葩符合,中文空格等。」 有幾個老鐵發郵件問我老跑不出來,結果發現是這些問題,建議你們自己做的時候發現geneid是純數字的時候,自己新建一個excel做一個類似這個的表,然後用後面符合規則的基因名字和樣品名稱替代你上傳的表達矩陣中的geneid和samplename。具體為啥有空再講。
「界面上的所有步驟請一步一步來,不要直接跳過步驟做後面,因為後面所有的步驟都是基於前面所有結果才能運行的」
「我自己承認這個shinyapp的操作可能有點反人類,畢竟不是商業軟件會考慮到易用性,是根據我的思維模式來的,所以這裡也沒辦法,只能你適應我,做不到我適應你」
使用方法第一步 數據上傳和數據清洗手頭沒有數據的同學可以從這裡下載demo數據遵循圖中7個步驟,每個步驟都有默認的參數,如果你不想改動可以不動他,需要再改動。
點擊升級信息後會出現一個小進度條,顯示進度,「如果屏幕變灰了說明報錯了」 可能的原因就是你輸入的文件有問題,或者想保留的基因數大於你總基因數之類的。
看到進化樹後,恭喜你,「你的數據清洗步驟完成了!」,可以點擊下面的download下載nwk文件,這個文件就可以用figtree,itol等工具美化了,而且這個樹下面有個小三角,可以隨意拖動改變圖的大小。如果在這個樹中你發下個別離群樣本,就是幾個樣品和其他樣品分的很開,比如第二個圖中的F2_221,就用excel打開你的表達量矩陣,對應刪掉這個樣品所在的列,重新上傳。同樣在trait表中也刪掉這個樣品。如果要重新上傳表達量數據,刷新一下網頁就好了,運行開後如果遇見也沒變灰,說明報錯了,此後後面的步驟就不能運行了,這時候刷新下網頁也能恢復到初始狀態,不過你就要從頭開始了。
接下來就可以點擊導航欄的SFT and Power Select進入下一步軟閾值篩選步驟了!
選擇合適的軟閾值(sft 或者 power)對於構建無標度網絡來說至關重要,往往無法篩選出合適軟閾值的原因和你輸入的表達矩陣直接相關,最常見的原因就是樣品異質性,比如說不同組織(器官),差別很大的發育時期等,或者有明顯批次效應的樣品,比如網上down的不同測序平台,不同文獻來源的RNAseq數據合併一起。具體解決方案還是看WGCNA-FAQ 我說的沒作者明白....
選擇SFT and Power Select標籤頁(當時腦抽隨便起的名字懶得改了),就是軟閾值篩選的意思,我設定的默認R2是0.8,不過有篇中文文獻(忘記哪個了,具體大家可以知網搜一下)說R2到0.85時對應的軟閾值構建的網絡接近無標度網絡,但是power值越大,假陽性越高。所以儘量選擇第一次到達0.8時對應的power值。選擇好R2的cutoff後點擊start analysis就可以了,這裡的R2閾值指的是讓軟件判斷當R2等於xx是對應的power是多少。如果你選擇0.85,執行這個步驟後就會生成一個第一次R2 ≥ 0.8時對應的power值。具體看下圖2
該圖就是點擊start analysis運行完成之後的界面,會返回一個圖,左邊是power和R2的關係,右邊是power和平均連連接度(Mean connectivity)之間的關係,R2越接近1,平均連接度越接近0,網絡越接近無標度。這次結果我設定的R2閾值是0.8,對應的Power值是5,屏幕中會出現
ThepowerrecommendedbyWGCNAis:5,說明在power等於5時,R2≥0.8,但是我們發下你當Power等於7時R2可以達到0.9,這是如果我們想選擇power = 7隻需要把Power type裡面改成customized,然後滑動下面滑塊到7就可以了,這一步是為後續scale free estimate設計的。同樣在set fig size之後可以下載到pdf格式的圖片,win下網頁中預覽的字體可能有點丑,渲染問題,但是下載下來就沒問題了。圖片的大小同樣可以通過拖動三角形調節。
第三部分是對你選擇的power所構建的網絡進行無標度拓撲結構檢測的,看在這個power值下構建的網絡是否符合無標度網絡。我們首先對R2=0.8對應的power = 5進行檢測這時Power Type選擇Recommended系統使用剛才自動生成的power值5,具體無標度網絡(無尺度網絡)和隨機網絡的區別我推薦生信技能樹的視頻中有講解,當然你數學學的好也能理解(數學學渣擼過)..
這裡你可以測試所有Power值構成的網絡,但是不推薦你這麼玩,因為每次都要重新構建網絡,這個速度還是很慢的,一般第一個圖R2最高能到多少你就檢測對應的power,但是不建議選擇太大的power,會造成假陽性,「這個一般是在實在選擇不到合適的軟閾值,最高只有0.5,0.6之類的,不過這種數據一般也不會構成無標度網絡,後續再去做共表達分析意義不是很大,但是這時你可以把WGCNA簡單的當做類似Hclust或者K-means來用,直到表達模塊分類之前都是可以用的,看你提供的基因到底可以分為多少個module,這些module內的基因是具有相似表達模式的。而後續的hubgene,調控網絡就別做了,意義不大」
「檢測這一步必須進行,因為我寫的腦殘設定後續使用的power就是最後一次檢測時你用的power,如果你不檢測,沒有power值。後續會報錯。」
這裡我們用R2第一次大於0.9時對應的power值7進行後續測試。
構建模塊點擊最上面module-net標籤進入模塊構建步驟。這裡仍舊使用一步法構建模塊,而且釋放了3個關鍵參數用來調整模塊數量,並且在CJ大佬的指點下開放了MaxBlockSize參數來使低內存的PC也能跑上萬+基因。「請按照下表填寫這裡的數字,這裡只能填整數!!!!!」 具體我也沒有測試過,可能會報內存溢出的錯誤,報錯了就吧數字調小點再來億遍!(鬼知道我測試這玩意重跑了多少回...)「tips:」 如果你的pc內存足夠大,儘量把所有你選擇做WGCNA的基因都放到一個block中。比如你之前選擇了2w個做,你的pc內存又大於等於16G,這裡就選2w,如果內存溢出了就搞個1.5w也行。
整體步驟就是確定最小模塊內基因數,確定剪枝高度(推薦不用動這倆參數)然後根據電腦內存大小選擇好blocksize之後點擊運行。如果模塊數量太多了,可以適當提高前面兩個參數。比如這次結果產生了很多模塊,我們嘗試把min module size 提高到50,把剪枝高度提高到0.35
結果顯示模塊總數少了,min Module Size的變大必然導致grey模塊基因數量的增加。同時模塊數量的變少可能會導致module-trait相關性變低。因為這種剪枝高度的提高可能會導致模塊劃分更加粗放。
對比上面圖顯然模塊數量變少了。第二個選項卡是鄰接基因構建的相關性熱圖
「第三個選項卡是一個很重要的結果,模塊-基因的對應關係表」 可以下載下來,同樣是點擊download下載。
module構建完畢之後,就是和性狀,材料分類,或者其他你感興趣的數據做相關性分析。
模塊-表型相關性分析具體表型數據的格式參考這個鏈接 由於代碼里默認之後兩列的表型數據表會轉換成分類的0,1矩陣,所以想只和一個性狀做關聯的我寫的這個shiny做不了.... 後續可能會改把。
這裡可以直接跑,也可以自己選擇顏色後再跑
我們發現demo數據中Luminal和yellow模塊成極顯著負相關和blue模塊成極顯著正相關。所以後續會分析這個性狀和對應模塊的關係。
我們從module-trait找到感興趣的模塊和性狀後可以進行後續interested module步驟
感興趣模塊信息挖掘首先是看基因顯著性(GS gene significance)和模塊特徵值(MM module membership)之間的關係,如何理解基因顯著性,我們在做module-trait時起始是用的該模塊降維後的第一主成分或者叫鄰接基因與表型做的相關,但是這個模塊中有很多基因,鄰接基因和表型相關不一定代表模塊中所有基因都和表型相關,所以為了驗證模塊內基因與表型相關性,直接去做這個基因與表型的相關得到基因顯著性(GS),同時我們看這個基因和鄰接基因之間的關係也就是該基因模塊內連接度(kME)來反映該基因的模塊特徵值(MM),當該基因既在模塊中處於網絡中心地位,又顯著與性狀相關,那麼該基因極有可能是控制該性狀的hubgene。操作很簡單,beta版本的用戶可能知道這裡之前需要純手動輸入,現在不需要了,只要前面module-trait的結果作完,這裡相應的選項會更新。只需要點擊選擇即可。
然後我們會看模塊內所有基因的表達模式熱圖,而下部柱狀圖表示鄰接基因的表達模式。
下圖表示你選擇的表型和其他所有模塊的GS vs MM關係
我們對感興趣模塊探索完就可以進行下一步hubgene篩選過程了。
hubgene篩選和共表達網絡關係輸出我們點擊hubgene選項卡同樣是選擇好trait和module點擊開始分析
第一個選項卡給的hubgene 一般不推薦.. 這個是同過WGCNA作者的一個function實現的,但是往往感覺GS和MM都很低...
第二個選項卡是基於GS和MM篩選的 如果你的module-trait中出現了R > 0.8的模塊甚至0.9的模塊,這時可以適當的把閾值卡嚴格一點,比如
|GS|>0.85&|MM|>0.9來篩選hubgene,但是如果像本次demo數據一樣,只有0.7左右或者更低,卡如此嚴格的閾值很可能篩選不到hubgene,這樣就可以適當降低閾值。這裡的閾值並沒有一個金標準,當然越嚴格說明設計越合理,參數越準確。如果發現這種情況,可以返回module-net步驟,降低剪枝高度,縮小最小模塊大小參數,讓模塊劃分更加精細,再試一下。
最後一部分就是輸出共表達網絡關係,用cytoscape作圖了
操作也很簡單,選一個閾值(建議不要大於0.1)點擊開始下面就會出現edgefile 和nodefile的預覽,具體權重閾值怎麼選,選多少,我的建議是你自己選選看,default是0.02. 這個也沒有標準。預覽表出來後向下拉就可以下載nodefile 和edgefile了,然後就是cytoscape的事了,具體怎麼可視化,B站教學一大堆,加油吧少年!
後續大概率會直接寫個R包,更新一些內容,希望各位及時反饋軟件的問題到我的gitee issue 目前先在這個issue下吧 :https://gitee.com/shawnmagic/swtbplugin/issues/I2DMHS 各位大佬如果有好的建議也提一下,如果發現有錯誤請及時提醒我,用的人多了才能更好的完善。
通過WGCNAshiny的開發我第一次深度接觸shinyApp的編寫,開啟了我對R包編寫的興趣,並且把function打成了R package放在 https://github.com/ShawnWx2019/WGCNAShinyFun/tree/master
雖然app和package寫的都很辣眼睛,但我學到了更多知識,不斷突破自己。作為副產品這個小腳本小插件或許會為方便各位,這就足夠了,由於本人太菜怕自己的錯誤導致大家的分析出錯,所以這個插件還是以一個beta版本出現,這需要大家共同努力積極反饋才能使這個小玩意更加完善。
半條命已經廢了... 沒時間扯淡了... 幹活去了😭 祝各位磕鹽順利!!