【聚类】ConsensusClusterPlus包

时间:2024-12-10 22:36:13

ConsensusClusterPlus包是R语言中实现consensus clustering的一种方法。

主要有三个步骤:1,准备输入数据;2,跑流程;3,generating consensus

  • 1-输入数据

输入数据要求无特别,列为样本行为基因、标准化的表达矩阵。

值得注意的是,此包默认选择以median absolute deviation (MAD)衡量的top5000高变基因用于分析,以更好的聚类分群(这和单细胞很像)。选择多少基因和选择方法都是可以自己选择的,因为这步骤用的classical R statistics而非包中的集成化命令。

  1. library(ALL)
  2. data(ALL)
  3. d=exprs(ALL)
  4. d[1:5,1:5]
  5. mads=apply(d,1,mad)
  6. d=d[rev(order(mads))[1:5000],]
  7. d = sweep(d,1, apply(d,1,median,=T))

  • 2-聚类

几个重要参数:

pItem: percent of items (column) resampling

pFeature: percent of features (rows) resampling

maxK: maxium cluster counts

reps: resampling times

clusterAlg: agglomerative hierarchical clustering algorithm

distance: 1- Pearson correlation distances

注:实际中K和reps可以设置的高一点,例如20,1000

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

结果是一个list,list里的各元素对应着k不同取值时的结果

  1. ###查看重要结果
  2. #consensusMatrix - the consensus matrix.
  3. #For .example, the top five rows and columns of results for k=2:
  4. results[[2]][["consensusMatrix"]][1:5,1:5]
  5. #consensusTree - hclust object
  6. results[[2]][["consensusTree"]]
  7. #consensusClass - the sample classifications
  8. results[[2]][["consensusClass"]][1:5]
  9. #ml - consensus matrix result
  10. #clrs - colors for cluster

  • 3-计算cluster consensus与item consensus

这两个概念类似于cluster内异质性和WGCNA里的membership概念。

  1. icl = calcICL(results,title=title,plot="png")
  2. icl[["clusterConsensus"]]
  3. #k cluster clusterConsensus
  4. #[1,] 2 1 0.7681668
  5. #[2,] 2 2 0.9788274
  6. #[3,] 3 1 0.6176820
  7. #[4,] 3 2 0.9190744
  8. #[5,] 3 3 1.0000000
  9. #[6,] 4 1 0.8446083
  10. icl[["itemConsensus"]][1:5,]
  11. #k cluster item itemConsensus
  12. #1 2 1 28031 0.6173782
  13. #2 2 1 28023 0.5797202
  14. #3 2 1 43012 0.5961974
  15. #4 2 1 28042 0.5644619
  16. #5 2 1 28047 0.6259350

  • 4-图形化展示

详见Bioconductor - ConsensusClusterPlus

R语言|ConsensusClusterPlus 包进行一致性聚类

在实际应用中,CC聚类常与一些特定的生物学过程相联系。例如血管生成、缺氧。先找到相关gene set,对表达矩阵取子集,再聚类分亚型。有了不同的亚型,后面的分析就很多样了,可以深挖分子机制不同、共表达网络,也可以探究他的诊断或预后价值。

或者,先用cibersort等算法计算免疫浸润matrix,用免疫浸润结果做浸润聚类。

这种思路与ssGSEA或GSVA利用基因集打分中位数划分高低组其实差别不大,只不过用GSVA更加直观,预后或者诊断区分也更明显,但基于距离的聚类可能在共表达网络方面更有优势。