這個插件已經(jīng)下架了,上架了更好用的WGCNA shiny:http://www.reibang.com/p/4691c535a522
常見問題反饋和總結(jié)
插件釋放了有差不多一個月了吧,總結(jié)了下大部分同學(xué)反饋回的問題大致分為以下幾種情況:
以后類似問題不做回答炕淮。
先放一下示例數(shù)據(jù) 感謝王瑞老鐵提供京髓。如果用示例數(shù)據(jù)跑出結(jié)果了饭耳,說明插件安裝完成。具體設(shè)置如下圖
提示成功后輸出結(jié)果文件夾下有以下文件說明沒問題了。
- 沒有裝
Rserver
插件! 會直接報錯或听,Rserver相對于在TBtools中裝了個R語言,而基于R語言寫的插件運(yùn)行也就是在TBtools的R語言環(huán)境中進(jìn)行Rscript xxx.R
如果你連R都沒裝笋婿,怎么可能運(yùn)行起來誉裆? Rserver插件的獲得方法目前只有CJ在TBtools用戶群中釋放。
-
包安裝的問題: 如果在
test log
中發(fā)現(xiàn)報錯信息中包括下面信息的就是包沒有裝成功缸濒,這個大概率是網(wǎng)絡(luò)問題足丢,換個網(wǎng)絡(luò)再運(yùn)行幾次估計就可以了。比如你可以連接你的手機(jī)熱點(diǎn)庇配。反正我連河南移動基本沒問題斩跌。
Error: xxx...package....
there is no package called 'pillar'
count data和trait data有NA值或者空白: 如果你編輯traitdata的時候多打了兩行空白行,或者在某行后面多安了個tab捞慌,都會造成外表上看見你的trait data和count沒有問題耀鸦,實(shí)際上讀近R之后這些空白還是會被讀入data.frame中的,肯定會報錯啸澡,不會擼代碼的話就人肉排查把袖订。把那些亂七八糟的都刪掉...
你想保留的基因數(shù)量超過了過濾后的基因數(shù)量:
如果你仔細(xì)看了下面博客每個參數(shù)詳細(xì)的介紹,這是很好猜到的锻霎,比如你的表達(dá)量矩陣中共有5w個基因(這里忍不住提醒一下著角,建議大家的表達(dá)量矩陣用所有的基因揪漩,不要挑差異基因或者自己選基因做旋恼,具體原因自行查文獻(xiàn),看WGCNA操作手冊奄容,F(xiàn)AQ冰更,google ) 我寫的流程中會進(jìn)行第一輪篩選,就是下面說的在幾成樣本中fpkm或者readcount大于n昂勒,如果你第一步設(shè)置的閾值太高蜀细,比如九成樣本中FPKM > 100,這樣過濾完以后可能就剩下3000個戈盈,然后在第二步過濾的時候你選擇保留8000個,就會報錯奠衔。這個時候適當(dāng)?shù)臏p少閾值,比如使用readcount的時候用5成樣本中readcount > 10或者5成樣本中FPKM > 1這些塘娶,當(dāng)然這里是可變的归斤,可以自己調(diào)整。最后一種我想罵人刁岸,拜托你們也尊重下作者脏里,好好看看下面的文章!
有幾個老鐵給我郵件說跑不通虹曙,報錯整的我也沒看明白迫横,結(jié)果浪費(fèi)了我好久最后發(fā)現(xiàn)他好幾個參數(shù)都沒有填7摺!矾踱! 沒有選參數(shù)怎么能跑出來恨狈!所以如果沒有仔細(xì)閱讀下面文章,特別是參數(shù)介紹(腦圖那塊)出現(xiàn)報錯的介返,麻煩您再回去看一遍K┦隆!圣蝎!
國際慣例先上圖
再放鏈接:
Gitee repo - ShawnMagic / ShawnTBPluginR
寫在前面的一些廢話
剛從北京上完課回所那會刃宵,何老師建議我學(xué)下WGCNA,可能對我可課題有用徘公,當(dāng)時R還沒怎么入門(還逃過一次賴江山老師的課牲证,哈哈)于是就準(zhǔn)備開始鼓搗WGCNA,說實(shí)話关面,那時候?qū)W習(xí)軟件全靠簡書坦袍,知乎,CSDN幾位大佬的教程等太,估計和大多數(shù)朋友一樣捂齐,入門的都是陳同老師的這篇WGCNA分析,簡單全面的最新教程,那時候也沒有看官方文檔的習(xí)慣缩抡,說實(shí)話奠宜,連里面的術(shù)語啥的都不懂,什么加權(quán)共表達(dá)基因網(wǎng)絡(luò)瞻想,什么SFT压真,什么KME... 當(dāng)時就想著follow大佬的代碼跑通是正事,后續(xù)Jimmy大佬的一個直播他自己學(xué)習(xí)hope大佬的教程視頻 我是如何學(xué)習(xí)WGCNA分析蘑险,對我啟發(fā)很大滴肿,看文獻(xiàn),看manual佃迄,試代碼....
我自己比較笨泼差,大概花了半年才逐漸的理解了所有的代碼... 但由于數(shù)學(xué)硬傷,統(tǒng)計呵俏,圖論那一塊真的搞不明白.. WGCNA的原理到現(xiàn)在感覺還是在云霧中堆缘,直接看文獻(xiàn)基本等于在看天書... 可能需要畢業(yè)后靜下心來,好好攻克一下柴信。
之后的事就簡單了套啤,前后做了好多次,隨著潛移默化的發(fā)展,R寫代碼的水平回看起來比之前有了不小的提升潜沦,所以后來把分析切分成了幾個大模塊萄涯,也就形成了今天插件的雛形:
- 數(shù)據(jù)清洗部分
- SFT,power計算唆鸡,樣本聚類
- 一步法網(wǎng)絡(luò)構(gòu)建
- module-trait關(guān)系
后續(xù)的分析基本上就是拿出感興趣的模塊涝影,找hubgene,導(dǎo)出關(guān)系争占,富集分析等等燃逻。那些個性化的操作不想一股腦把所有的模塊都搞出來,主要是占地方臂痕,一下出一串文件大部分也沒有什么卵用伯襟。所以后面會寫新的插件實(shí)現(xiàn)這些功能,根據(jù)前面找出的感興趣的模塊握童,后續(xù)再進(jìn)行分析姆怪。
插件說明
首先說明一個問題,流程化的東西稽揭,多少都會有弊端,所以這個插件只適合粗略的進(jìn)行WGCNA分析肥卡,大致看一下模塊溪掀,trait-module的關(guān)系。因?yàn)閃GCNA分析確實(shí)不是那種一鍵就能搞出非常牛逼的分析結(jié)果... 因?yàn)橛刑嗟膮?shù)需要調(diào)整了步鉴。如果想要真正的做出一個漂亮的WGCNA結(jié)果揪胃。
建議必須閱讀以下文章:
Tutorials for the WGCNA package
WGCNA-FAQ 可以解決你80%的問題
WGCNA: an R package for weighted correlation network analysis
當(dāng)然還有簡書,知乎各位大佬的文章唠叛,這個就靠你自己去搜索了只嚣。沒有好壞沮稚,各有特點(diǎn)艺沼!
插件代碼主要follow了一下兩位大佬的代碼,如果想快速了解建議閱讀:
WGCNA分析,簡單全面的最新教程
STEP6:WGCNA相關(guān)性分析
使用方法
首先按照CJ大佬的教程安裝Rserver插件這個神級插件是所有基于R的TBtools插件的爸爸??蕴掏,相當(dāng)于在TBtools里面裝了個R障般,
然后在我的Gitee倉庫下載OneStepWGCNA插件這個后續(xù)有更新的話我會及時推送,歡迎各位反饋bug.... 課題組的老鐵給我說了倆..已經(jīng)改正...
和TBtools使用的規(guī)則一致盛杰,拖進(jìn)去挽荡,選參數(shù),點(diǎn)點(diǎn)點(diǎn)...
首次運(yùn)行時間較長即供,應(yīng)為要裝一堆包定拟,包裝不上大概率是因?yàn)榫W(wǎng)絡(luò)!實(shí)在不行就連熱點(diǎn)逗嫡!
參數(shù)詳解
主要有7個參數(shù):
-
readcount or fpkm
這個文件是表達(dá)量矩陣青自,不能有多于的信息株依,列名(column name)是sample名稱,行名是geneID延窜,中間的數(shù)據(jù)是FPKM值或者readcount 如下表
GeneID | Sample1 | Sample2 | Sample3 | Sample4 | Sample... |
---|---|---|---|---|---|
Gene1 | 1 | 2 | 1 | 2 | ... |
Gene2 | 0 | 1 | 0 | 2 | ... |
Gene3 | 2 | 3 | 2 | 1 | ... |
Gene... | ... | ... | ... | ... | ... |
-
Trait data
這里分兩種恋腕,一種是數(shù)量性狀(比如百粒重,株高逆瑞,生育期等這種可以計數(shù)的)還有一種是質(zhì)量性狀(種皮顏色荠藤,有無表皮毛,有無腺體等)获高,或者分類哈肖,第一種數(shù)量性狀表列名為表型,行名為sample name念秧,第二種只有兩列第一列為sample name牡彻,第二列為分類特征。如果既有數(shù)量性狀出爹,又存在質(zhì)量性狀庄吼,建議質(zhì)量性狀的有無用0和1代替(腳本自動處理也是根據(jù)分類生成0-1矩陣)
數(shù)量性狀表
GeneID | Trait1 | Trait2 | Trait3 | Trait4 | Trait... |
---|---|---|---|---|---|
Sample1 | 1 | 2 | 1 | 2 | ... |
Sample2 | 0 | 1 | 0 | 2 | ... |
Sample3 | 2 | 3 | 2 | 1 | ... |
Sample... | ... | ... | ... | ... | ... |
分類表
Sample | Type |
---|---|
Sample1 | case |
Sample2 | case |
Sample3 | case |
Sample4 | control |
Sample5 | control |
Sample6 | control |
Sample... | … |
-
Expression data
這里意思是你輸入的表達(dá)量矩陣到底是readcount
還是fpkm
,readcount
是不可以直接用來做WGCNA的严就,需要標(biāo)準(zhǔn)化总寻,根據(jù)官方和Jimmy大佬學(xué)徒的帖子我測試后推薦了兩個選項(xiàng),一個是基于DESeq2的varianceStabilizingTransformation
, 另一個是基于edgeR計算的log10(CPM+1)
有老鐵反饋lgCPM的結(jié)果不太好,說看看log2(CPM+1)
怎么樣,看大家的反饋結(jié)果... 如果用FPKM/RPKM/TPM這類已經(jīng)標(biāo)準(zhǔn)化后的值梢为,這里給了兩個選項(xiàng)渐行,一個是做log另一個是原始的值,這里眾說紛紜铸董,有的說log后把很多差異都抹掉了祟印,還有的說不取log會放大差異...我也是頭疼.. 到底哪種好,我自己感覺你都試試... 能搞到合適的power粟害,構(gòu)建一個真正的scale-free網(wǎng)絡(luò)他就是好方法蕴忆。?? -
RcCuttoff 和 SamplePerc
在WGCNA-FAQ中作者提到,最好去除一下noise悲幅,再去做套鹅,(Jimmy大佬也說這不太重要,重要的還是你選多少個基因進(jìn)行WGCNA)官網(wǎng)建議的是保留九成以上樣品中readcount>10的基因汰具,當(dāng)然后面還有強(qiáng)調(diào)就是根據(jù)測序深度卓鹿,自己的生物學(xué)問題而改變。那么這里就給出了兩個參數(shù)RcCutoff: readcount cutoff
和SamplePerc:sample percentage
,之前我都是基于Readcount做的留荔,所以當(dāng)時取變量名的時候順手就寫成這個了吟孙,估計不會改了,fpkm/RKPM/TPM也是適用的,比如你想5成樣品中fpkm大于0.2那么RcCutoff那里就填0.2杰妓,SamplePerc那里就填0.5肥隆。 -
RemainGeneNum:
這個參數(shù)就是你需要保留多少個基因進(jìn)行WGCNA,WGCNA并不是越多越好稚失,當(dāng)然你基因足夠大栋艳,你用的PC也很難全部跑完,對內(nèi)存的要求比較嚴(yán)格句各,跑得多了你會發(fā)現(xiàn)當(dāng)基因數(shù)量到達(dá)一定閾值之后吸占,再增加只會使grey模塊變得更大,因?yàn)樵跊]有樣品異質(zhì)性的RNAseq中凿宾,大部分基因的表達(dá)都是保守的矾屯,意思就是基本在所有樣品中他們的表達(dá)量是一致的。增加再多的也沒有太大用處初厚。這里采取的篩選方法還是魯棒性較強(qiáng)的MAD件蚕,先算MAD,再rank产禾,選取MAD大于0.01的前RemainGeneNum個基因作為WGCNA的input排作。這里有個聯(lián)動各位注意!亚情! 前面在去噪音的時候會去掉一部分基因妄痪,如果你選擇條件太苛刻,可能會去掉一大半楞件,比如昨天代一個師弟做衫生,他選擇9成的FPKM大于10,7w個基因去的只剩下幾千個...土浸,后面這里又設(shè)置了1w個罪针,所以一炮就報錯。所以一定要注意
結(jié)果文件
-
01.test.Sample_clustering 樣品聚類結(jié)果
這里如果出現(xiàn)明顯的離群樣本黄伊,記住樣本的名字泪酱,在表達(dá)矩陣和trait矩陣中刪掉對應(yīng)樣本再跑一次
-
01.test.SFTPlot.pdf 軟閾值篩選
綠線為0.8 紅線為 0.9,腳本內(nèi)篩選值為0.8
-
02.test.Eigeng_adja_heatmap 鄰接基因矩陣熱圖
反映了模塊相關(guān)性(模塊小于等于3沒法做)
-
02.test.Module 模塊劃分
- 03.test.Module_trait 模塊-矩陣熱圖
- 還有幾個Rdata文件毅舆,是保存了幾個變量西篓,在后續(xù)的WGCNA-module分析插件中有用愈腾,所以現(xiàn)在先保存了一下憋活,倒是后直接load
- test.log保存的日志,腳本運(yùn)行的日志虱黄,如果保存可以查看原因悦即。
- 兩個表格,一個是module-gene對應(yīng)關(guān)系,另一個是所有基因的連通性
最后再嘮叨兩句
做WGCNA最主要的是一定要清楚WGCNA是干什么用的辜梳,第二是你的科學(xué)問題是什么粱甫,常見的困擾大家的問題有幾個我總結(jié)了下:
- 到底是readcount還是fpkm,這里見仁見智作瞄,還是我說的茶宵,你搞出robustness高的scale-free網(wǎng)絡(luò)來是終極目標(biāo)... 沒人去糾結(jié)到底input哪個更科學(xué),Stack Overflow上有大佬直接用z-score的fpkm也做出來了....所以input方法千變?nèi)f化宗挥,只要有道理就可以乌庶,不可死板教條,要靈活
- 搞不到合適的power.. 這時去查看下你的input契耿,有很多時候大家不清楚WGCNA的作用瞒大,一股腦把所有的表達(dá)量都扔進(jìn)去,沒有合適的power大概率是由于樣品異質(zhì)性(heterogeneous)造成的搪桂,或者換句話說你把不同組織的樣本混合一起跑透敌,其實(shí)在同一物種內(nèi)組織間的差異是要遠(yuǎn)遠(yuǎn)大于品種間的差異的,你這么做如果生物學(xué)問題是想看不同組織間特異表達(dá)的基因模塊沒有問題踢械,如果你想看不同材料間的酗电,建議洗洗睡吧(如果樣本夠建議分開組織各自做)... 所以一定要注意自己關(guān)注的生物學(xué)問題,減少變量内列。
- module-trait相關(guān)性低顾瞻,很好奇文章里姨媽紅是怎么來的。我的經(jīng)驗(yàn)... 如果直接拿數(shù)量性狀關(guān)聯(lián)德绿,大概率會相關(guān)性不高荷荤。我的做法是把數(shù)量性狀分級,整體做個數(shù)據(jù)分布圖移稳,設(shè)置一下bin的大小蕴纳,按bin分級,或者boxplot按照分位數(shù)分級个粱。把數(shù)量性狀轉(zhuǎn)換成等級... 效果確實(shí)會好一點(diǎn)古毛,這個也好理解,如果你做的品種材料間的性狀都许,不是野生型突變體之間稻薇,或者近等基因系之間的,差異不會太顯著胶征,波動范圍很小塞椎,基因的表達(dá)量的波動也很難和你性狀數(shù)值的波動相吻合,但是你分級之后應(yīng)該會變好睛低。只是我個人的經(jīng)驗(yàn)不一定對案狠。
- hubgene怎么搞服傍,目前方法還是眾說紛紜,這部分會在下一個插件中推薦一個更好的方法骂铁,但是吹零! 一定要注意前提,就是你在前面的分析中得到了一個合適的power拉庵,構(gòu)建了一個scale-free網(wǎng)絡(luò)灿椅,有些分析搞hubgene是沒有意義的,比如強(qiáng)烈樣品異質(zhì)性的WGCNA分析钞支,劃分出module就到頭了阱扬,應(yīng)為你的網(wǎng)絡(luò)很難成為scale-free網(wǎng)絡(luò),那么hubgene也無從談起了伸辟,你會發(fā)現(xiàn)模塊內(nèi)基因的連通性大部分都在0.9以上... 原因就是你再做WGCNA之前已經(jīng)把模塊劃分好了麻惶,基本上是一個組織對應(yīng)一個模塊...
綜上TBtools牛批,又給我一個裝x的機(jī)會...