基因共表达聚类分析及可视化
发布网友
发布时间:2024-09-27 14:33
我来回答
共1个回答
热心网友
时间:2024-09-30 09:45
共表达基因的寻找是转录组分析的关键环节,对于样品数量多的情形,WGCNA方法适用;而当样品数量较少时,可以直接通过聚类分析,如K-means、K-medoids(相对K-means更稳定)或Hcluster,以及通过设定pearson correlation阈值来筛选共表达基因。
以下将进行K-means和K-medoids聚类操作的实战演示,包括如何进行聚类分析、确定合适的cluster数量、如何绘制共表达密度图、线图、热图和网络图等。
MixSim是一个R包,用于评估聚类算法效率并生成模拟数据集。
K-means聚类,又称为K-均值聚类,其基本思想是:根据预设的分类数目,在样本空间随机选择相应数目的点作为起始聚类中心点;然后将距离这些起始中心点最近的点归为一类,完成第一次聚类;接着,将第一次聚类集合中所有点的平均值作为新的中心点,进行第二次聚类;这个过程持续进行,直到聚类中心点不再变化或达到尝试的上限,即完成聚类过程。
在进行聚类过程中,需要注意以下几点:
1. 确定聚出的类的数目。这可以通过遍历多个不同的聚类数目,计算其类内平方和的变化,并绘制线图来实现。通常,会选择类内平方和降低开始趋于平缓的聚类数作为较优聚类数,即elbow算法。在图中拐点很明显,选择5作为较优聚类数。
2. K-means聚类起始点为随机选取,容易获得局部最优,需要重复计算多次,选择最优结果。
3. 预处理:当聚类变量值存在数量级上的差异时,通常通过标准化处理消除变量的数量级差异。聚类变量之间不应该存在较强的线性相关关系。(模拟数据集获取时已考虑)
K-medoids聚类与K-means聚类的主要区别在于:K-medoids在迭代过程中选择的中心点是类内观察到的数据中到其他点的距离最小的点,一定在观察点内。这类似于平均值和中值的差别,中值更为稳健。
围绕中心点划分(Partitioning Around Medoids,PAM)的方法是比较常用的,与K-means相比,它有几个特征:1. 接受差异矩阵作为参数;2. 最小化差异度而不是欧氏距离平方和,结果更稳健;3. 引入silhouette plot评估分类结果,并可据此选择最优的分类数目;4. fpc::pamk函数则可以自动选择最优分类数目,并根据数据集大小选择使用pam还是clara(方法类似于pam,但可以处理更大的数据集)。
不同的分类计算出的silhouette值如下,越趋近于1说明分出的类越好。
获取分类的数目和分类信息。
数据提取和可视化:以pam的输出结果为例(上面两种方法的输出结果都已处理为了同一格式,后面的代码通用)。
1. 获取每类数值的平均值,利用线图一步画图法获得各个类的趋势特征。
2. 获取按照分类排序的数据,绘制热图(点击查看)。
3. 获取每类数据,绘制多线图和密度图。
多线图,绘制见线图绘制。
等高线的颜色越深表示对应的Y轴的点越密,对平均值的贡献越大;颜色浅的点表示分布均匀。不代表点的多少。等高线的变化趋势与平均值曲线一致。