前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >识别无监督类的工具包ConsensusClusterPlus

识别无监督类的工具包ConsensusClusterPlus

作者头像
作图丫
发布2022-03-29 09:39:08
1.9K0
发布2022-03-29 09:39:08
举报
文章被收录于专栏:作图丫作图丫

导语

GUIDE ╲

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

方法简介

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

R包介绍

使用ConsensusClusterPlus有三个主要步骤:

①准备输入数据

②运行程序

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

1. 准备输入数据

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

代码语言:javascript
复制
BiocManager::install("ConsensusClusterPlus")
library(ConsensusClusterPlus)
 
library(ALL)
data(ALL)
d=exprs(ALL) #提取表达数据
d[1:5,1:5]

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

代码语言:javascript
复制
mads=apply(d,1,mad) #MAD测度
d=d[rev(order(mads))[1:5000],] #提取前5000个基因

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

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

d矩阵将用于聚类计算

2. 运行 ConsensusClusterPlus

(1)运行

代码语言:javascript
复制
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

代码语言:javascript
复制
icl = calcICL(results,title=title,plot="png")
#icl是两元素的列表,分别是cluster-consensus和item-consensus测度
icl[["clusterConsensus"]]
代码语言:javascript
复制
icl[["itemConsensus"]][1:5,]

(2)一致性图示

①聚类一致性图示

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

②样本一致性图示

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

小编总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作图丫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档