深入浅出介绍聚类分析

Python010

深入浅出介绍聚类分析,第1张

聚类分析是生信分析中常用的工具,在转录组分析中经常用到。聚类分析将表达模式相似的基因聚类在一起,以基因集的形式进行后续分析,今天我给大家介绍其相关原理。

聚类方法有很多,常用的有以下几个:

下图的例子展示的是,差异表达基因集的聚类热图。

多是基于R语言heatmap.2函数绘制(gplots程序包),该函数默认使用的聚类方法是计算欧式距离(Euclidean Distance)进行层次聚类(Hierarchical Cluster)。

这个图的是什么意思呢?我们来解释一下。

首先,我们先明确下什么是欧式距离(Euclidean Distance):

欧式距离,也称欧几里得距离,是衡量多维空间的两个点之间的绝对距离,

(1)二维平面,两点a(x1,y1),b(x2,y2) 欧式距离的计算公式为:

(2)三维空间,欧式距离的计算公式为:

(3)n维空间,欧式距离的计算公式为:

那么,体现在基因表达量的矩阵上,则如下:

(1) 首行为样本名;

(2) 首列为基因名;

(3) 数字则为基因在相应样本中的表达量(一般使用标准化后的表达量矩阵)

Gene1与Gene2的欧式距离为:

Gene1与Gene3的欧式距离为:

Gene1与Gene4的欧式距离为:

计算出所有基因两两之间的欧式距离之后,就可以进行聚类啦:

Cluster之间的聚类,则有3种方法:

R语言中hclust函数的默认方法为最长距离法(complete-linkage)。

以上的聚类过程即称之为 层级聚类

层级聚类一般伴随着 系统聚类图 ,系统聚类图分支的长短也体现Cluster形成的早晚,分支越短,形成的越早,基因表达模式也越相近。

聚类分析将基因划分为不同的基因集合,用于反映不同实验条件下样品差异表达基因的变化模式。

功能相关的基因在相同条件下通常具有相似的表达模式,例如被共同的转录因子调控的基因,或其产物构成同一个蛋白复合体的基因,或参与相同生物学过程的基因。对这些基因集进行分析往往可以获得比单基因分析更为可靠的结果。

(1)定义每一个观测值为一类;

(2)计算每一类和其它各类的距离;

(3)把“距离”最短的两类合并成一类,这样类的个数就减少一个;

(4)重复步骤1和步骤2,直到包含所有观测值的类合并成单个类为止。

基于5种营养标准含量(变量)的27种食物(观测)进行层次聚类分析,探索不同食物的相同点与不同点,并分成有意义的类。此处层次聚类算法以平均联动(average)为例。

(1)数据预处理--归一化

(2)计算欧几里得距离

(3)平均联动层次聚类分析

(1)确定聚类个数

NbClust包提供了众多的指数来确定在一个聚类分析里类的最佳数目。

(2)获取最终的聚类方案

由上图,尝试解释每类变量的含义:

K均值聚类为最常见的划分方法。

(1)选择K个中心点(随机选择K个观测),K数值就是我们预期的聚类数。

(2)把每个数据点分配给离它最近的中心点;第一次中心点是随机选择的,但也可以设置参数,选择最优的初始值。

(3)重新计算每类中的点到该类中心点距离的平均值;此时的中心点应该为每一类的均值中心点,对异常值敏感(之后都是如此)

(4)分配每个数据到它最近的中心点;

(5)重复步骤3、4,直到所有的观测值不在被分配或是达到最大的迭代次数(默认10次)

(1)数据预处理:去除第一列干扰数据,并归一化数据。

(2)确定待提取的聚类个数,同样可用NbClust包判断(顺序与层次聚类分析不同,如前所述,层次聚类分析在最后才确定聚类个数)

(3)K均值聚类分析

(4)最后将聚类结果与原始数据标准结果(第一列数据)进行比对,看看分析质量如何。

兰德指数接近0.9,看来K均值聚类算法还不错~

K均值法对均值异常敏感,相比来说,PAM为更稳健的方法。

(1)随机选择K个观测(每个都称为中心点);

(2)计算观测值到各个中心的距离;

(3)把每个观测值分配到最近的中心点;

(4)计算每个中心点到每个观测值的距离的总和(总成本);

(5)选择一个该类中不是中心的点,并和中心点互换;

(6)重新把每个点分配到距它最近的中心点;

(7)再次计算总成本;

(8)若新的总成本比步骤4计算的总成本少,就把新的点作为中心点;

(9)重复步骤5-8,直到中心点不变。

欧几里得距离是z=√x2+y2。欧式距离也就是我们常说的欧几里得距离也就是z=x2+y2,然后也就是对应到平面上求两个点的距离的时候用横纵坐标之差然后开根号即可,就是现在在班里学习文化课的同学数学课本上的计算公式,很好理解不过这种一般用于题目给定你是这样计算距离。

欧几里得度量也称欧氏距离,是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度即该点到原点的距离,在二维和三维空间中的欧氏距离就是两点之间的实际距离。

欧氏的距离

所谓欧氏距离变换,是指对于一张二值图像再此我们假定白色为前景色,黑色为背景色,将前景中的像素的值转化为该点到达最近的背景点的距离,欧氏距离变换在数字图像处理中的应用范围很广泛,尤其对于图像的骨架提取,是一个很好的参照。