小鬼的WGCNA圖文詳解(三)--聚類樹Cluster Dendrogram圖

還是老習(xí)慣,給出官網(wǎng)教程,至于你是看還是不看,它就在那里,等著你的深入研究~

https://horvath.genetics.ucla.edu/html/CoexpressionNetwork/Rpackages/WGCNA/Tutorials/

如有理解錯(cuò)誤,還請各位大神批評指正!
WGCNA分析圖文詳解專題中要解釋的第二張圖:

image.png

官方注釋:

Figure 5:Clustering dendrogram of genes, with dissimilarity based on topological overlap, together with assigned merged module colors and the original module colors.

這張圖有三個(gè)部分:

  • 1,聚類樹:那么你對聚類方法又了解多少?
  • 2,Dynamic Tree Cut:根據(jù)某一height,聚類樹分成了多少類(也即模塊)
  • 3,Merged dynamic:合并后的聚類模塊,那么又是根據(jù)什么指標(biāo)要將Dynamic Tree Cut中的類別進(jìn)行合并得到新的聚類模塊呢?
#前期代碼
softPower = 6;
adjacency = adjacency(datExpr, power = softPower);
TOM = TOMsimilarity(adjacency);
dissTOM = 1-TOM

根據(jù)最佳軟閾值和表達(dá)譜數(shù)據(jù)首先計(jì)算得到一個(gè)鄰接矩陣adjacency,然后將鄰接矩陣轉(zhuǎn)換為TOM矩陣再計(jì)算一個(gè)距離矩陣dissTOM,這個(gè)距離矩陣就是后面用來畫聚類樹的圖。

物以類聚,人以群分。物體與物體之間進(jìn)行聚類總是根據(jù)某一相似度指標(biāo)來進(jìn)行刻畫的,那么這里的距離矩陣dissTOM就是這個(gè)指標(biāo),只不過是距離(非相似度)。

而聚類的方法非常多,官方教程中使用的是層次聚類。

We now use hierarchical clustering to produce a hierarchical clustering tree (dendrogram) of genes. Note that we use the function hclust that provides a much faster hierarchical clustering routine than the standard hclust function.

使用R中的函數(shù)hclust()

geneTree = hclust(as.dist(dissTOM), method = "average");

采用的聚類方法為平均距離(method = "average"),

關(guān)于這個(gè)method,查看幫助文檔,其實(shí)還有很多選項(xiàng),大家可以根據(jù)結(jié)果進(jìn)行調(diào)整。畫出來的第一部分是這個(gè)樣子的:

image.png

圖片中,每一個(gè)樹枝代表一個(gè)gene,縱坐標(biāo)的Heigth為聚類距離。

設(shè)定一個(gè)聚類距離閾值,就可以將gene聚成module,這里又有很多方法設(shè)定這個(gè)閾值。而官網(wǎng)教程成給定的是dynamicTreeCut包中的函數(shù)cutreeDynamic,并且設(shè)定了最小模塊中包含的基因個(gè)數(shù)為30個(gè)基因。

# We like large modules, so we set the minimum module size relatively high:
minModuleSize = 30;

# Module identification using dynamic tree cut:
dynamicMods = cutreeDynamic(dendro = geneTree, distM = dissTOM,
                deepSplit = 2, pamRespectsDendro = FALSE,
                minClusterSize = minModuleSize);

table(dynamicMods)
image.png

這里可以看到,總共得到了22個(gè)模塊(1-22),以及每個(gè)模塊中基因的數(shù)量。0為沒有聚到任何模塊中的基因。

由于Dynamic Tree Cut方法可能會(huì)產(chǎn)生兩個(gè)模塊,但是這兩個(gè)模塊的基因的表達(dá)譜是高度相似的,因此有必要對模塊進(jìn)行合并。為了定量每一個(gè)模塊的共表達(dá)相似性,這里計(jì)算了每一個(gè)模塊的eigengenes,即每個(gè)模塊的特征值(這也是WGCNA分析中一個(gè)非常重要的概念,具體是什么,下次再進(jìn)行說明~)。

# Calculate eigengenes
MEList = moduleEigengenes(datExpr, colors = dynamicColors)
MEs = MEList$eigengenes

# Calculate dissimilarity of module eigengenes
MEDiss = 1-cor(MEs);

# Cluster module eigengenes
METree = hclust(as.dist(MEDiss), method = "average");

# Plot the result
sizeGrWindow(7, 6)
plot(METree, main = "Clustering of module eigengenes",
xlab = "", sub = "")

這里也是直接對22個(gè)模塊和一個(gè)灰色模塊(就是沒有聚到任何類別的基因的集合)進(jìn)行了聚類樹的繪制,然后設(shè)置聚類樹的高度為0.25(下圖中的紅色閾值線),將22個(gè)模塊合并成了18個(gè)模塊。這里對模塊進(jìn)行合并采用的是模塊特征值之間的皮爾森相關(guān)系數(shù)計(jì)算的距離矩陣,即兩個(gè)模塊之間的相關(guān)性大于0.75就合并為一個(gè)新的模塊。

image.png

最后將聚類樹,原始的模塊和新的合并后的模塊畫在一張圖里面就是最開始那張圖了。

參考資料:

1,https://horvath.genetics.ucla.edu/html/CoexpressionNetwork/Rpackages/WGCNA/Tutorials/
2,A General Framework for Weighted Gene Co-Expression Network Analysis, Stat Appl Genet Mol Biol. 2005;4:Article17. Epub 2005 Aug 12

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容