两行代码10+张图的聚类神器ConsensusClusterPlus(下)






两行代码10+张图的聚类神器ConsensusClusterPlus(下)

小师妹  生信果  2023-06-24 19:00:08

{ 点击蓝字,关注我们 }

上回小师妹给大家介绍了ConsensusClusterPlus,并且用GEO数据库中的GSE10245数据集进行了实操,大家还记得这两行可以带来14张图的代码吗~

ccp <- ConsensusClusterPlus(data, maxK=5, reps=100, distance="pearson", clusterAlg="km")icl <- calcICL(ccp)

今天就让小师妹来跟大家解释一下这14张图的意义吧~

第一张是一致性的颜色图例,表示一致性越高,颜色越深。这里聚类分析的一致性(cluster analysis consistency)是指在进行聚类分析时,通过不同的方法或参数得到的聚类结果之间的相似程度或一致性。在聚类分析中,通常会使用不同的聚类算法、距离度量方法、聚类数目等参数,这些不同的选择可能会导致不同的聚类结果。因此,聚类分析的一致性是指通过不同的选择得到的聚类结果之间的一致性程度,即不同的选择是否会导致相似或不同的聚类结果。一致性越高,表示两个样本总是被分到一起,一致性越低,则表示两个样本很少被分到一起。

接下来的四张热图对应的就是不同分类数量(注意,这里我们设置最大分类数量maxK为5,所以会有分为2类、3类、4类、5类四种情况)

第6张图,一致性累积分布函数图,这也是用于评估聚类分析一致性的一种常用可视化工具。它通常用于比较不同聚类方法或参数下得到的聚类结果之间的一致性程度。

在CCDF图中,x轴表示聚类结果的一致性得分,通常是使用内部评价指标(如轮廓系数、Davies-Bouldin指数等)或外部评价指标(如Adjusted Rand Index、Normalized Mutual Information等)进行计算。y轴表示一致性得分的分位数,通常是从0到1的范围。

具体来说,CCDF图的绘制过程通常包括以下几个步骤:


  1. 对于不同的聚类方法或参数,计算其对应的一致性得分,并将这些得分按照从高到低的顺序排列。

  2. 对于每个一致性得分,计算其对应的分位数。例如,如果有10个一致性得分,其中最高的一致性得分的分位数为1,最低的一致性得分的分位数为0.1。

  3. 将一致性得分按照从高到低的顺序绘制在x轴上,将分位数绘制在y轴上,然后连接所有数据点,形成一条曲线。这条曲线表示了不同一致性得分在数据集中的分布情况。

  4. 当CDF达到一个近似最大值时,此时的聚类分析结果最可靠,对应的k值就是最佳k值,得到的分类就是最佳分类。即考虑CDF下降坡度小的k值。


通过观察CCDF图,我们可以比较不同聚类方法或参数下得到的聚类结果之间的一致性程度。如果不同聚类方法或参数得到的聚类结果之间的一致性程度较高,那么CCDF图的曲线会比较陡峭,表示高一致性得分的聚类结果占据了较大的比例。相反,如果不同聚类方法或参数得到的聚类结果之间的一致性程度较低,那么CCDF图的曲线会比较平缓,表示高一致性得分的聚类结果占据了较小的比例。

第7张是碎石图,这张图展示了 k 和 k-1 相比CDF曲线下面积的相对变化。当k = 2时,因为没有k=1,所以第一个点表示的是k=2时CDF曲线下总面积。可以看到分类k从3增加到4时面积变化颇大,而从4增加到5时变化不大,由此可见分类数4是比较合适的。

第8张是跟踪图,tracking plot

该图像下方的黑色条纹表示样品,展示的是样品在k取不同的值时,归属的分类情况,不同颜色的色块代表不同的分类。取不同k值前后经常改变颜色分类的样品代表其分类不稳定。若分类不稳定的样本太多,则说明该k值下的分类不稳定

接下来再解释一下calcICL得到的图像~

前四张图是样本一致性图,他们的纵坐标代表Item-consensus values。k值不同时,每个样本都会有一个对应不同簇的item-consensus values。竖条代表每一个样本,竖条的高度代表该样本的总item-consensus values。每个样本的上方都有一个小叉叉,小叉叉的颜色代表该样本被分到了哪一簇。从这张图,可以看到每个样本的分类是否足够“纯净”,从而帮助决定k值。例如当k=5时,样本的分类变得没有那么纯净,说明k=4才是合适的,这和碎石图给到的结果一致。条形的矩形按从下到上递增的值排列。顶部的星号表示每个样本的consensus cluster。

接下来是聚类一致性图 此图展示的是不同k值下,每个分类的cluster-consensus value(该簇中成员pairwise consensus values的均值)。该值越高(低)代表稳定性越高(低)。可用于判断同一k值下以及不同k值之间cluster-consensus value的高低。

ConsensusClusterPlus的教学就到这啦~ConsensusClusterPlus是不是很神奇呢?既能进行多种聚类(K-Means,hierarchical等 )还能仅凭两行代码画出那么多聚类结果可视化图像!快来和小师妹一起试试吧~

更多实用方便的小工具在云生信平台等着你哦

http://www.biocloudservice.com/home.html

E

N

D