龙空技术网

稳健性的无监督分析综合算法工具:ConsensusClusterPlus

涛哥的医学与生信之旅 57

前言:

当前各位老铁们对“diana算法分为三个簇”大概比较关心,你们都想要分析一些“diana算法分为三个簇”的相关资讯。那么小编同时在网上收集了一些对于“diana算法分为三个簇””的相关资讯,希望小伙伴们能喜欢,你们快快来了解一下吧!

1 共识聚类简介

共识聚类是一种为确定数据集中可能聚类的数量和成员资格(例如微阵列基因表达样本)提供定量证据的方法。这种方法已经在癌症基因组学中流行起来,并且成功发现了新的疾病分子亚类。共识聚类方法涉及从诸如微阵列的样本数据中进行二次抽样,并确定指定聚类计数(K)的聚类。然后,计算成对样本的共识值,即两个样本在该数据集中同时出现的次数中占据同一采样批次的比例,并将其存储在针对每个k的对称共识矩阵中。共识矩阵在几个图形显示中汇总显示,使用户能够决定合理的聚类数量和成员资格。共识聚类也有免费的网络版本,是公开可用的。ConensusClusterPlus在R中实现了一致聚类方法,并使用新特性和图形输出对其进行了扩展,这些新特性和图形输出可以帮助用户实现分类发现。

2 教程

使用ConensusClusterPlus有三个主要步骤:准备输入数据,运行程序,生成一致性的簇和簇内样本。

2.1 准备输入数据

第一步是收集一些数据进行聚类分析。这些数据可能是诸如mRNA表达微阵列或免疫组织化学染色强度等实验的结果。输入数据格式是一个矩阵,其中列是样本(项),行是特征,单元格是数值。在本教程中,我们使用ALL库中的ALL基因表达数据。您可以看到矩阵d已经是正确的格式。与样本和基因名称相对应的列名和行名将保留在输出中。

library(ALL)data(ALL)d=exprs(ALL)d[1:5,1:5]

为了选择信息量最大的基因进行分类检测,我们将数据集缩减到前5000个变异最大的基因,通过中位数绝对偏差(median absolute deviation, MAD)来衡量。基因数目和MAD的选择可以用其他统计学可变性过滤器代替。用户可以决定使用哪种类型的过滤器或跳过过滤步骤。另一种选择是为抽样基因提供权重,参见其他选项中的weightsFeatures参数。

mads=apply(d,1,mad)d=d[rev(order(mads))[1:5000],]

如果您想要转换或标准化他们的数据,他们可以很容易地使用其他Bioconductor方法或一个简单的语句来做到这一点。我们选择默认设置,即使用使用Pearson相关距离的凝聚层次聚类算法,因此使用以下简单语句来确定基因中值中心d是合适的:

d = sweep(d,1, apply(d,1,median,na.rm=T))

d现在已准备好进行ConensusClusterPlus分析。

2.2 运行ConensusClusterPlus

在本教程中,我们选择了80%的样本重采样(pItem)、80%的基因重采样(pFeature)、最大取值为6的k,以便评估2、3、4、5、6的群集计数(maxK)、50次重采样(reps)、基于1-Pearson相关距离(距离)的聚集层次聚类2算法(clusterAlg)、并且为输出提供标题(title),以及选择将图形结果写入PNG文件。我们还使用了特定的随机种子,因此此示例是可重复的(seed)。

注意:在实践中,建议使用更高的reps(如1,000)和更高的集群计数(如20)。

library(ConsensusClusterPlus)title=tempdir()results = ConsensusClusterPlus(d,maxK=6,reps=50,pItem=0.8,pFeature=1,title=title,clusterAlg="hc",distance="pearson",seed=1262118388.71279,plot="png")

ConensusClusterPlus的输出是一个列表,其中列表的元素对应于来自第k个集群的结果,例如,Results[[2]]是k=2的结果结果。seed选项指定一个随机数种子,这里使用它来实现本教程的重现性。这些列表元素具有以下元素:

#consensusMatrix - the consensus matrix.#For .example, the top five rows and columns of results for k=2:results[[2]][["consensusMatrix"]][1:5,1:5]
#consensusTree - hclust objectresults[[2]][["consensusTree"]]
#ml - consensus matrix result#clrs - colors for cluster

有关群集算法和距离度量的详细说明,请参阅其他选项部分。

2.3 生成集群和样本一致性结果

执行ConensusClusterPlus后,可以选择通过以下方式计算簇一致性和样本一致性结果:

icl = calcICL(results,title=title,plot="png")

calcICL返回两个元素的列表:

icl[["clusterConsensus"]]
icl[["itemConsensus"]][1:5,]
3 图形输出描述

ConensusClusterPlus的输出由图形和数值数据组成,图形根据plot选项来决定写入屏幕、‘pdf’文件或‘png’文件;数值数据可根据writeTable 选项选择写入CSV文件。对于大型数据集,图形显示可能相当大,并且在共识矩阵之上绘制共识树状图可能是不可能的。如果您的数据集很大,请选择绘图选项‘pngBMP’,该选项不会生成一致矩阵树形图,而是使用位图函数,而不是PNG。位图通常在Linux系统上本机可用,但也可能安装在其他系统上。

3.1 共识矩阵第一幅图显示了共识颜色图例。

legend

其余的图形是k=2,3,4,5的一致矩阵的热图。共识矩阵具有作为行和列的项,其在本例中是微阵列,并且其中共识值的范围从0(从未聚集在一起)到1(总是聚集在一起)由白色到深蓝色标记。共识矩阵通过共识聚类进行排序,该共识聚类被描述为热图顶部的树状图。为了帮助分析,根据图形内的图例,集群成员关系由树状图和热图之间的彩色矩形标记。这使得用户能够在其共识的上下文中比较集群的成员计数。

heatmap

3.2 共识累积分布函数(CDF)图

该图显示了每个k(由颜色表示)的共识矩阵的累积分布函数,由100个区间的直方图估计。该图允许用户确定在什么簇数k处,CDF达到近似最大值,因此共识和簇置信度在该k处最大。更详细的解释见[1]。

CDF

3.3 Delta面积图

此图显示了当k和k−1相比,CDF曲线下面积的相对变化。对于k=2,没有k-1,因此绘制的是曲线下的总面积,而不是相对增加的面积。该图允许用户确定一致性结果中的相对增加量,并确定在没有明显增加量的k。解释见[1]。

Delta面积图

3.4 跟踪图

此图按颜色显示了每个k(行)的项目(列)的群集分配。这些颜色对应于共识矩阵类分配的颜色。绘图下方的影线标记指示项目/样本。该图提供了跨不同k的项目群集成员关系的视图,并使用户能够跟踪相对于较早群集的群集历史。经常更改群集的项目(更改列中的颜色)表示成员身份不稳定。具有大量不稳定成员的群集表明这是一个不稳定的群集。

tracking plot

3.5 群集共识图

此图显示每个k个群集的群集共识值。这是群集成员之间所有成对共识值的平均值。群集由遵循与群集矩阵和跟踪图相同的配色方案的颜色表示。这些条形图按标在水平轴上的k进行分组。较高的值表示群集具有高稳定性,较低的值表示群集具有较低的稳定性。该图使用户能够查看给定k处的群集之间的平均群集共识,并通过配色方案比较不同k上的群集的值。

cluster consensus

3.6 项目-共识图

项目-共识值是一个项目与特定聚类中的所有项目的平均共识。项目具有k个项目共识值,对应于特定k处的每个群集。这些值以条形图表示,每个k个。样本为堆积条形图。Item-Consensus值由条的着色部分的高度表示,其颜色对应于公共配色方案。条形图的矩形按从下到上递增的值排序。顶部的星号表示每个项目的共识群集。

item-consensus plot

此图提供了在给定k处所有其他群集的项目一致性视图。这使用户能够看到一个样本是非常“纯”的群集成员,还是它对多个群集(多颜色列中的大矩形)的一致性很高,这表明它是不稳定或“不纯”的成员。这些值可以用来选择类似于[4]的高度代表集群的“核心”样本。此外,该图还可以帮助确定簇数。例如,如果群集主要由具有非常“不纯”项的成员组成,则该证据可用于支持低于该k的最大群集数量为1,或者该证据可支持该群集是异常值群集。这样的决定最好由用户结合其他证据(如共识矩阵、跟踪图等)来做出。

3.7 有关ConensusClusterPlus函数选项的其他详细信息

d: 此选项指定要在ConensusClusterPlus中使用的数据。这通常是一个数值表达式值矩阵,本文档的Running ConensusClusterPlus部分提供了一个示例。当提供作为d的数据矩阵时,ConensusClusterPlus在每次迭代期间重新计算距离矩阵。如果指定了要进行重采样(pFeature小于1),则需要重新计算。但是,对于非常大的数据集(1,000个样本),则没有进行特征重采样,此过程可能非常耗时且没有必要。或者,可以将预计算距离矩阵提供为d,从而导致更快的计算。下面是使用dist对象作为输入的示例。

#example of providing a custom distance matrix as input:#dt = as.dist(1-cor(d,method="pearson"))#ConsensusClusterPlus(dt,maxK=4,reps=100,pItem=0.8,pFeature=1,title="example2",distance="pearson",clusterAlg="hc")

distance: 此选项描述要使用的距离度量。接受以下度量之一的字符值:pearson(1-Pearson相关性)、spearman(1-Spearman相关性)、, euclidean, binary, maximum, canberra, minkowski等。或者,可以为该参数提供自定义距离函数,该函数接受数值矩阵(样本作为行,特征作为列)作为输入,并返回dist对象。

#example of providing a custom distance function:#myDistFunc = function(x){ dist(x,method="manhattan")}#ConsensusClusterPlus(d,maxK=4,reps=100,pItem=0.8,pFeature=1,title="example3",distance="myDistFunc",clusterAlg="pam")

clusterAlg: 此选项指定要使用的聚类算法的类型:“hc”表示层级聚类,“pam”表示围绕medoid进行分区,“km”表示kmeans。或者,可以提供它们自己的聚类函数,该函数应接受距离矩阵和簇号作为其自变量,并返回具有与距离矩阵列相同顺序的簇分配向量。例如,这个简单的函数使用集群包中的Diana函数执行除法集群,并返回预期的对象。最后一行显示了如何使用它的示例。

#library(cluster)#dianaHook = function(this_dist,k){  #tmp = diana(this_dist,diss=TRUE)  #assignment = cutree(tmp,k)  #return(assignment)  #}#ConsensusClusterPlus(d,clusterAlg="dianaHook",distance="pearson",...)

update on kmeans options:“km”选项直接在数据矩阵上执行K均值聚类,并对项目和特征进行重新采样。“。kmdist“对从重采样数据计算出的距离矩阵执行K均值聚类。在1.11.1之前的版本中,“km”选项指的是kmdist。希望在版本1.11.1或更高版本中使用此kmeans调用的用户应使用选项kmdist。

innerLinkage:此选项指定要在迭代聚集层次结构群集中使用的链接方法。不适用于其他集群算法。

finalLinkage:此选项指定要在最终聚集层次结构群集中使用的链接方法。

distance:此选项指定要使用的距离度量:“pearson”表示1-Pearson相关系数,“spearman”表示1-Spearman相关系数,“euclidian”表示欧氏距离。

tmyPal:用于一致性矩阵的有序颜色的字符向量。如果未指定,则使用一系列从白色到蓝色的颜色。

writeTable:布尔值。如果为true,则将共识矩阵、ICL和日志写入文件。

weightsFeature:特征采样的权重数值向量。有关详细信息,请参阅帮助。

weightsItem:样本采样的权重数值向量。有关详细信息,请参阅帮助。

verbose:布尔值。如果为true,则在屏幕上打印消息以指示进度。这对于大型数据集非常有用。

4 参考文献

[1] Monti, S., Tamayo, P., Mesirov, J., Golub, T. (2003) Consensus Clustering: A Resampling-Based Method for Class Discovery and Visualization of Gene Expression Microarray Data. Machine Learning, 52, 91−118.

[2] Wilkerson, M.D., Hayes, D.N. (2010). ConsensusClusterPlus: a class discovery tool with confidence assessments and item tracking. Bioinformatics, 2010 Jun 15;26(12):1572−3.

[3] Hayes, D.N, Monti, S., Parmigiani, G. et al. (2006) Gene Expression Profiling Reveals Reproducible Human Lung Adenocarcinoma Subtypes in Multiple Independent Patient Cohorts. Journal of Clinical Oncology, 24 (31) 5079−5090.

[4] Verhaak, R., Hoadley, K., et al. (2010) Integrated genomic analysis identifies clinically relevant subtypes of glioblastoma characterized by abnormalities in PDGFRA, IDH1, EGFR and NF1. Cancer Cell. 17,1-13.

[5]

标签: #diana算法分为三个簇