识别无监督类的工具包ConsensusClusterPlus

一致性聚类(Consensus Clustering)是一个能够确定数据集(微阵列基因表达)中可能聚类的数量和成员的方法。这种方法在癌症基因组学研究中广泛普及,用于发现新的疾病的分子亚型。

方法简介

Consensus Clustering是从一组样本(items)数据(如微阵列)中进行子抽样,并确定指定簇数(k)的簇。对于每个k,计算配对的一致性值consensus values,即两个样本在同一子样本中出现的次数占同一聚类的比例,并存储在一个对称的共识矩阵(consensus matrix)中。共识矩阵汇总在几个图形展示中,使用户能够决定合理的聚类数量和成员

R包介绍

使用ConsensusClusterPlus有三个主要步骤:

①准备输入数据

②运行程序

③计算聚类一致性(cluster-consensus)和样本一致性(item-consensus)。

1. 准备输入数据

输入的是要进行聚类的数据,这些数据可能是一个实验的结果,如mRNA表达芯片或免疫组织化学染色强度。输入数据是一个矩阵,其中列是样本,行是特征,单元格是数值。接下来我们使用ALL包的基因表达数据进行介绍。

BiocManager::install("ConsensusClusterPlus")library(ConsensusClusterPlus) library(ALL)data(ALL)d=exprs(ALL) #提取表达数据d[1:5,1:5]

 

为了选择信息最丰富的基因进行类的识别,将数据集减少到前5000个最可变(most variable)的基因(通过中位数绝对偏差度量,MAD)。对5000个基因和MAD的选择也可以用其他统计变异筛选方法代替。用户可以决定是否使用筛选方法或使用筛选方法的类型。另一种选择是为取样基因提供权重(方法:weightsFeatures)

mads=apply(d,1,mad) #MAD测度d=d[rev(order(mads))[1:5000],] #提取前5000个基因

如果想要转换或标准化数据,可以很容易地使用其他Bioconductor methods或一个简单语句。该包选择使用皮尔逊相关距离(Pearson correlation distance)的聚类遗传算法为默认设置。

d = sweep(d,1, apply(d,1,median,na.rm=T))#sweep是一个循环函数#这里首先用apply计算每列的中值#然后用每个基因在样本中的表达值减中值,是一个标准化方法d[1:5,1:5]

d矩阵将用于聚类计算

 

2. 运行 ConsensusClusterPlus

(1)运行

title="C:\Users\DELL\Desktop"  #设置输出文件的保存位置results = ConsensusClusterPlus(         d,maxK=6, #聚类的最大类数,所以会评估聚2类、3类...6类         reps=50, #50个重采样         pItem=0.8,  #重采样样本为80%           pFeature=1, #重采样基因为80%           title=title, #输出文件的保存位置         clusterAlg="hc", #聚合层次聚类算法         distance="pearson", #Pearson 相关距离         seed=1262118388.71279,         #设置特定的随机种子,使例子是可重复的         plot="png")

在我们实际计算时,建议使用更高的reps(如1,000),以及更高的 cluster count(如20)。

ConsensusClusterPlus的输出是一个列表,其中列表中的元素对应于第k个簇的结果,例如results[[2]]就是k=2的结果结果。

(2)结果展示

①例:聚两类时的consensus matrix

②例:聚两类时的hclust对象

③例:聚两类时的样本分类信息

(3)输出聚类图

①第一张图为颜色图例

 

②第二至六张图为聚类图

③第7张图为一致累积分布函数(Consensus Cumulative Distribution Function,CDF)图

该图展示每一种聚类(不同K)的一致累积分布函数图,以帮助用户确定当CDF达到最大时的k的选择,这样一致性和聚类置信达到最大。

④Delta Area

是CDF曲线比较k和k−1下面积的相对变化,当k = 2时,没有k -1,所以绘制的是曲线下的总面积,而不是相对增加的面积。此帮助用户确定共识的相对增加,以及没有明显增加的k值。

⑤Tracking Plot

此图显示了按颜色对每个k(行)样本(列)的各类分配。经常更改集类(在列中更改颜色)的说明成员关系不稳定。

 

3. 生成类和样本一致性

(1)计算cluster-consensus and item-consensus

icl = calcICL(results,title=title,plot="png")#icl是两元素的列表,分别是cluster-consensus和item-consensus测度icl[["clusterConsensus"]]

icl[["itemConsensus"]][1:5,]

2一致性图示

①聚类一致性图示

这是各类成员之间所有配对一致值的平均值分布。高值表示该类具有高稳定性,低值表示类具有低稳定性。

②样本一致性图示

是一个样本与特定类中的所有样本一致性的平均值。Item-consensus值由条形图的有色部分的高度表示,其颜色对应于通用的配色方案。条形的矩形按从下到上递增的值排列。顶部的星号表示每个样本的consensus cluster。

小编总结

今天介绍的聚类R包可以说是非常方便省事的一款聚类方法了,可以让我们直观的评估出最优的聚类分布,这个包在近期的一些生信分析中是很热门的,大家可以动手操作试试哦!

生物信息学

突变signature分析R包“YAPSA”

2020-8-28 4:23:45

生物信息学

一步确定你的基因集在两个状态中是否显著的一致差异

2020-8-28 4:30:11

加入Q群
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索