WGCNA 簡(jiǎn)明指南|3.使用WGCNA實(shí)現(xiàn)網(wǎng)絡(luò)可視化
WGCNA 系列
- WGCNA 簡(jiǎn)明指南|1. 基因共表達(dá)網(wǎng)絡(luò)構(gòu)建及模塊識(shí)別
- WGCNA 簡(jiǎn)明指南|2. 模塊與性狀關(guān)聯(lián)分析并識(shí)別重要基因
參考
本文主要參考官方指南Tutorials for WGCNA R package (ucla.edu)菱农,詳細(xì)內(nèi)容可參閱官方文檔卢鹦。
其它資料:
- WGCNA - 文集 - 簡(jiǎn)書(shū) (jianshu.com)
- WGCNA分析辰企,簡(jiǎn)單全面的最新教程 - 簡(jiǎn)書(shū) (jianshu.com)
- WGCNA:(加權(quán)共表達(dá)網(wǎng)絡(luò)分析)_bioprogrammer-CSDN博客
- WGCNA如何從module中挖掘關(guān)鍵基因_廬州月光的博客-CSDN博客
數(shù)據(jù)準(zhǔn)備
- WGCNA 簡(jiǎn)明指南|1. 基因共表達(dá)網(wǎng)絡(luò)構(gòu)建及模塊識(shí)別
- WGCNA 簡(jiǎn)明指南|2. 模塊與性狀關(guān)聯(lián)分析并識(shí)別重要基因
在R中可視化網(wǎng)絡(luò)
可視化基因網(wǎng)絡(luò)
# 模塊檢測(cè)時(shí)的計(jì)算咳蔚,重新算一次
dissTOM = 1-TOMsimilarityFromExpr(datExpr, power = 6);
# 對(duì)dissTOM進(jìn)行power轉(zhuǎn)換避矢,使中等強(qiáng)度的連接在熱圖中更加明顯
plotTOM = dissTOM^7;
# 設(shè)置對(duì)角線為NA以得到更好的圖
diag(plotTOM) = NA;
# 繪圖
sizeGrWindow(9,9)
TOMplot(plotTOM, geneTree, moduleColors, main = "Network heatmap plot, all genes")
部分基因可視化TOM矩陣
全部基因生成熱圖可能需要大量的時(shí)間〔危可以限制基因的數(shù)量來(lái)加快繪圖速度你稚。然而,一個(gè)基因子集的基因樹(shù)狀圖通持焯桑看起來(lái)不同于所有基因的基因樹(shù)狀圖刁赖。在下面的例子中,將繪制的基因數(shù)量限制在400個(gè)长搀。
nSelect = 400
# 為了可重復(fù)宇弛,設(shè)置隨機(jī)數(shù)種子
set.seed(10);
select = sample(nGenes, size = nSelect);
selectTOM = dissTOM[select, select];
# 沒(méi)有簡(jiǎn)單的方法將聚類(lèi)樹(shù)限制在基因的一個(gè)子集,所以我們必須重新聚類(lèi)
selectTree = hclust(as.dist(selectTOM), method = "average")
selectColors = moduleColors[select];
# 繪制
sizeGrWindow(9,9)
plotDiss = selectTOM^7;
diag(plotDiss) = NA;
TOMplot(plotDiss, selectTree, selectColors, main = "Network heatmap plot, selected genes")
eigengenes網(wǎng)絡(luò)可視化
# 重新計(jì)算模塊 eigengenes
MEs = moduleEigengenes(datExpr, moduleColors)$eigengenes
# 提取臨床特征weight
weight = as.data.frame(datTraits$weight_g);
names(weight) = "weight"
# 在eigengenes模塊中加入臨床特征weight
MET = orderMEs(cbind(MEs, weight))
# 繪制eigengenes和臨床特征weight之間的關(guān)系圖
sizeGrWindow(5,7.5);
par(cex = 0.9)
plotEigengeneNetworks(MET, "",
marDendro = c(0,4,1,2),
marHeatmap = c(3,4,1,2),
cex.lab = 0.8, xLabelsAngle= 90)
# 分別繪制
# 繪制樹(shù)狀圖
sizeGrWindow(6,6);
par(cex = 1.0)
plotEigengeneNetworks(MET, "Eigengene dendrogram", marDendro = c(0,4,2,0),
plotHeatmaps = FALSE)
# 繪制熱圖
par(cex = 1.0)
plotEigengeneNetworks(MET, "Eigengene adjacency heatmap", marHeatmap = c(3,4,2,2),
plotDendrograms = FALSE, xLabelsAngle = 90)
將網(wǎng)絡(luò)數(shù)據(jù)導(dǎo)出到網(wǎng)絡(luò)可視化軟件
導(dǎo)出到Cytoscape
# Recalculate topological overlap if needed
TOM = TOMsimilarityFromExpr(datExpr, power = 6);
# Read in the annotation file
annot = read.csv(file = "GeneAnnotation.csv");
# 以紅色和棕色模塊為例
modules = c("brown", "red");
# Select module probes
probes = names(datExpr)
inModule = is.finite(match(moduleColors, modules));
modProbes = probes[inModule];
modGenes = annot$gene_symbol[match(modProbes, annot$substanceBXH)];
# Select the corresponding Topological Overlap
modTOM = TOM[inModule, inModule];
dimnames(modTOM) = list(modProbes, modProbes)
# Export the network into edge and node list files Cytoscape can read
cyt = exportNetworkToCytoscape(modTOM,
edgeFile = paste("CytoscapeInput-edges-", paste(modules, collapse="-"), ".txt", sep=""),
nodeFile = paste("CytoscapeInput-nodes-", paste(modules, collapse="-"), ".txt", sep=""),
weighted = TRUE,
threshold = 0.02,
nodeNames = modProbes,
altNodeNames = modGenes,
nodeAttr = moduleColors[inModule]);
cyt
中有edge
和node
數(shù)據(jù)纽甘,可以導(dǎo)入cytoscape
進(jìn)行可視化。
往期
- 跟著Nature學(xué)作圖 | 配對(duì)啞鈴圖+分組擬合曲線+分類(lèi)變量熱圖
- (免費(fèi)教程+代碼領(lǐng)取)|跟著Cell學(xué)作圖系列合集
- 跟著Nat Commun學(xué)作圖 | 1.批量箱線圖+散點(diǎn)+差異分析
- 跟著Nat Commun學(xué)作圖 | 2.時(shí)間線圖
- 跟著Nat Commun學(xué)作圖 | 3.物種豐度堆積柱狀圖
- 跟著Nat Commun學(xué)作圖 | 4.配對(duì)箱線圖+差異分析