『TBtools-plugin』OneStepWGCNA插件

這個插件已經(jīng)下架了,上架了更好用的WGCNA shiny:http://www.reibang.com/p/4691c535a522

常見問題反饋和總結(jié)

插件釋放了有差不多一個月了吧,總結(jié)了下大部分同學(xué)反饋回的問題大致分為以下幾種情況:
以后類似問題不做回答炕淮。
先放一下示例數(shù)據(jù) 感謝王瑞老鐵提供京髓。如果用示例數(shù)據(jù)跑出結(jié)果了饭耳,說明插件安裝完成。具體設(shè)置如下圖

20210305131252.jpg

提示成功后輸出結(jié)果文件夾下有以下文件說明沒問題了。


20210305130349.jpg
  • 沒有裝 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┦隆!圣蝎!


國際慣例先上圖


OneStepWGCNA

再放鏈接:
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ù)詳解

OneStepWGCNA

OneStepWGCNA

主要有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還是fpkmreadcount是不可以直接用來做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 cutoffSamplePerc: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é)果


    20210117114017.jpg
  • 這里如果出現(xiàn)明顯的離群樣本黄伊,記住樣本的名字泪酱,在表達(dá)矩陣和trait矩陣中刪掉對應(yīng)樣本再跑一次

  • 01.test.SFTPlot.pdf 軟閾值篩選


    20210117114055.jpg
  • 綠線為0.8 紅線為 0.9,腳本內(nèi)篩選值為0.8

  • 02.test.Eigeng_adja_heatmap 鄰接基因矩陣熱圖


    20210117114126.jpg
  • 反映了模塊相關(guān)性(模塊小于等于3沒法做)

  • 02.test.Module 模塊劃分


    20210117114156.jpg
  • 03.test.Module_trait 模塊-矩陣熱圖
20210117114233.jpg
  • 還有幾個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ī)會...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末信夫,一起剝皮案震驚了整個濱河市窃蹋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌静稻,老刑警劉巖警没,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異振湾,居然都是意外死亡杀迹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門押搪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來树酪,“玉大人,你說我怎么就攤上這事大州⌒铮” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵厦画,是天一觀的道長疮茄。 經(jīng)常有香客問我,道長根暑,這世上最難降的妖魔是什么力试? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮排嫌,結(jié)果婚禮上畸裳,老公的妹妹穿的比我還像新娘。我一直安慰自己躏率,他們只是感情好躯畴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布民鼓。 她就那樣靜靜地躺著薇芝,像睡著了一般蓬抄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夯到,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天嚷缭,我揣著相機(jī)與錄音,去河邊找鬼耍贾。 笑死阅爽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的荐开。 我是一名探鬼主播付翁,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晃听!你這毒婦竟也來了百侧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤能扒,失蹤者是張志新(化名)和其女友劉穎佣渴,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體初斑,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辛润,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了见秤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砂竖。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鹃答,靈堂內(nèi)的尸體忽然破棺而出晦溪,到底是詐尸還是另有隱情,我是刑警寧澤挣跋,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布三圆,位于F島的核電站,受9級特大地震影響避咆,放射性物質(zhì)發(fā)生泄漏舟肉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一查库、第九天 我趴在偏房一處隱蔽的房頂上張望路媚。 院中可真熱鬧,春花似錦樊销、人聲如沸整慎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裤园。三九已至撤师,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拧揽,已是汗流浹背剃盾。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留淤袜,地道東北人痒谴。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像铡羡,于是被迫代替她去往敵國和親积蔚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容