对于基因表达谱数据的分析是生物信息学的研究热点和难点。转化为数学问题,分析任务是从数据矩阵 M 中找出显著性结构,结构类型包括全局模型 (model) 和局部模式 (pattern) 。对基因表达谱数据的分析是数据挖掘问题,所采用的方法包括通过可视化进行探索性数据分析( Exploratory Data Analysis )、描述建模 (descriptive modeling) 、分类、聚类、回归和机器学习等。

基因表达谱分析所采用的常用方法是聚类,其目的就是将基因分组。从数学的角度,聚类得到的基因分组,一般是组内各成员在数学特征上彼此相似,但与其它组中的成员不同。从生物学的角度,聚类分析方法所隐含的生物学意义或基本假设是,组内基因的表达谱相似,它们可能有相似的功能。然而,产物有相同功能的编码基因(例如对其它蛋白质有磷酸化作用),不一定共享相似的转录模式。

相反,有不同功能的基因可能因为巧合或随机扰动而有相似的表达谱。尽管有许多意外的情况存在,大量功能相关的基因的确在相关的一组条件下有非常相似的表达谱,特别是被共同的转录因子共调控的基因,或者产物构成同一个蛋白复合体,或者参与相同的调控路径。因此,在具体的应用中,可以根据对相似表达谱的基因进行聚类,从而指派未知基因的功能。

聚类分析是模式识别和数据挖掘中普遍使用的一种方法,是基于数据的知识发现的有效方法,特别适用于模式分类数不知道的情况。聚类分析是一种 无监督学习方法,不需要任何先验领域知识,它 根据数学特征提取分类标准,对数据进行分类,这种数学特征的例子有统计平均值、相关系数、协方差矩阵的本征值及本征向量等。聚类分析在基因表达数据分析中应用得很多,主要有层次聚类、 K 均值、自组织特征映射网络等。本节将介绍基因表达数据分析中常用的聚类方法及与此相关的内容。

8.4.1 相似性度量函数

对基因表达谱进行聚类分析之前,必须首先确定反映不同基因表达谱相似程度的度量函数,根据该函数可以将相似程度高的基因分为一类。在实际计算中,还可以用距离代替相似的概念,相似性度量被转化为两个基因表达谱之间的距离。距离越小,表达模式越相近;反之,则表达模式差异大。

常见的相似性度量有距离、点积、相关系数( correlation coefficient )、互信息( mutual information )等。 假设两个基因表达谱分别为 X = ( x 1 ,x 2 ,…,x m )和 Y = ( y 1 ,y 2 ,…,y m ) , 距离函数 d( X , Y ) 必须满足如下条件:

d( X , Y ) � 0

d( X , Y ) = d( Y , X )

d( X , Y ) = 0 if X = Y

d( X , Y ) � d( X , Z ) + d( Z , Y )

欧氏距离( Euclidean distance )是一个通常采用的距离定义,它是在 m 维空间中两个点之间的真实距离, 两个基因表达谱之间的欧氏距离:

相关系数也是常用的相似性度量函数:

其中, G offset 是 G 的各分量的均值, 是标准方差。用上述两种相似性度量,可以找出表达谱相似或者变化趋势相同的基因。欧氏距离、相关系数可以反映基因之间的共表达关系,两个基因表达谱间的距离小于给定的阈值或相关系数大于某个给定的阈值,就可以认为它们之间是共表达的。距离和相关系数之间存在关联,在具体应用时,可以根据需要进行转换。

距离和相关系数反映的都是基因表达谱之间的相似性,这种相似性反映了基因的共表达行为,而基因的行为是复杂的,它们之间存在调控和被调控的关系,或者存在调控链,例如基因 A 调控 B , B 调控 C ,调控还有正性调控和负性调控之分。对于这些调控关系,它们的表达谱往往是不相似的,或者存在时延、或者存在反相,而基因表达的幅度也可能不相等。如何从数据中发现这些复杂的基因关系呢? 互信息可能是一种有用的度量指标,其定义如下 :

MI ( X , Y ) =H ( X ) +H ( Y ) -H ( X , Y )

MI (X,Y) 是向量 X 和 Y 的互信息, H ( X ), H(Y) 分别是 X 和 Y 的熵, H(X,Y) 是向量 X,Y 的联合熵。 归一化互信息 NMI 定义如下:

NMI ( X , Y ) = MI ( X , Y ) /max[H ( X ), H ( Y ) ]

NMI 独立于单个信息熵,抓住了模式上的相似性。互信息聚类分析没有规则上的约束,不象欧氏距离。

目前,还没有理论来指导如何选择最好的相似性度量,也许一个“正确”的距离在表达模式空间是不存在的,选择何种度量函数依赖于我们要解决的问题。

8.4.2 聚类方法

对于基因表达谱的聚类问题,由于目前对基因表达的系统行为了解得不全面,没有聚类的先验知识,所以通常采用无监督学习方法。 在基因表达数据分析方面,层次式聚类、 K 均值、自组织映射神经网络在应用中是常用的方法。 下面主要介绍这几种常用的聚类方法,并简单介绍一些其它方法。

8.4.2.1 简单聚类

假设有 G 个基因,它们的表达谱分别用向量表示为 。令任意一个基因的表达向量为第一个聚类的中心 , 假设选择 。然后计算 到 的距离 D 21 ,如果 D 21 大于给定的阈值 T ,则说明 不属于第一类,应该分到另外的类。在这种情况下,建立一个新的聚类中心 ;如果 D 21 小于阈值 T ,则将 分到第一类中。接着处理其它基因,在处理第 i 个基因时,首先计算该基因的表达谱与现有各类中心的距离,假设与第 j 类的距离 D ij 最小,并且 D ij < T ,则将基因 i 分配到第 j 类;否则生成一个新类,该类的中心为第 i 个基因的表达向量。

简单聚类算法的结果与第一个聚类中心的选择、基因的顺序、阈值 T 以及基因表达谱在其空间的分布有关。该方法对于给定的一组基因表达数据模式进行初步分类提供了一种快速的算法。

8.4.2.2 层次聚类法

层次聚类法,在统计分析中也称为系统聚类法,原理和算法与第 6 章所介绍的系统发生树连锁构造方法类似,所不同的只是将所分析的数据由生物分子序列换成了这里的基因表达谱。该方法在基因表达谱聚类分析中是常用方法,它的优点是容易理解和实现,所得到的结果以树状图的形式表示,可以直观地观察基因之间的相互关系,尤其是类与类之间的关系。

但是,基因表达谱的数量很多,往往要多于系统发生树分析时的物种数量,而且基因之间相互关系的信息也没有物种之间的多,所以,对聚类结果的后续分析要比系统发生树分析复杂得多。对于表达谱聚类的结果还需要进一步分析基因的功能或者基因的序列特征,一般通过剪枝得到分类结果,而剪枝的过程往往带有更多的主观性,这会导致丢失一些重要的信息或包括一些无关的信息。此外,在构建基因表达谱聚类树时,已被合并的向量不再参与以后的分类,这会导致聚类结果与向量的次序有关,所以被认为是一种局部最优解的方法。

8.4.2.3 K 均值聚类

K 均值聚类在数据划分上不考虑类的分层结构问题,该算法使待聚类的所有向量到聚类中心的距离的平方和最小,这是在误差平方和准则的基础上得到的。 K 均值聚类算法如下:

(1) 任意选取 K 个基因表达谱向量作为初始聚类中心 Z 1 , Z 2 ,…, Z k ,在没有先验知识的情况下,一般选择前 K 个基因。

(2) 对所有的基因表达谱向量进行反复迭代计算。在第 l 次迭代过程中,如果 则将 X 所代表的基因归于第 j 类。

(3)经过一次迭代计算后,聚类中心可能发生变化,因此需要重新计算 K 个新聚类中心:

其中 f j (l) 为第 l 次迭代中第 j 个聚类的基因集合, N j 为该集合中基因的个数。

(4)对于所有的聚类中心,如果 Z j (l+1)= Z j (l)(j=1,2,…,K) ,则迭代结束,得到最后的聚类结果;否则转第 2 步,继续进行迭代计算。

聚类中心的个数 K 、初始聚类中心的选择、基因排列的顺序 以及基因表达谱数据的分布影响聚类的结果,当基因表达谱类别之间分离较远时,该算法可以取得令人满意的聚类分析结果。

8.4.2.4 自组织映射神经网络

人工神经网络技术在模式识别方面有着独特的优势,神经网络能够进行非线性数据处理,发现复杂的数据关系,其中,自组织映射神经网络( Self-Organizing Map , SOM )可以对模式数据进行自动聚类。

自组织特征映射是 Kohonen 在 1990 年提出的类似大脑思维的一种人工神经网络方法,它是一种竞争学习算法,可以被认为是一种从 N 维模式空间各点到输出空间少数点的映射。这一映射由系统本身完成,没有外部的监督,即聚类是以自组织的方式实现的。 SOM 采用无教师学习训练,训练完成后,分类信息存储在网络各节点连接权值向量中,与权值向量相似的输入向量将分为一类。 SOM 包括一维和二维模型,二维 SOM 也称为 KFM(Kohonen Feature Mapping) 。它们的区别在于 KFM 考虑邻近神经元的相互作用,即获胜神经元对周围神经元由于距离的不同会产生不同的影响。

KFM 的结构如 ,输入网络的是一个 n 维向量的所有 n 个数值,输出单元呈二维排列,个数为 p × p, 输入层与输出层的各单元之间是全连接的,并用 W 表示连接权重。 KFM 的学习过程就是对所有的 G 个样本向量进行迭代学习,直到权值 W 的变化小于某一个确定的阈值或迭代达到一定的次数。测试过程比较简单,对于每一个样本向量,计算其获胜神经元,输出单元相同的样本向量属于同一类。虽然 KFM 有学习过程,但是可以看到这种学习是从所有的样本中自动获取特征,没有教师的参与,因此称为无监督的学习方法。

Kohonen 认为,神经网络中邻近的各个神经元通过侧向交互作用彼此相互竞争,自适应地发展成检测不同信号的特殊检测器。该思想来自于大脑神经元的特性,即大脑皮层的神经元成二维空间排列,不同区域分工不同,各自对输入模式的不同特征敏感,神经元之间存在信息交互,主要是侧向交互,即某个经元对周围神经元之间存在由近到远的不同的影响作用,而不是简单的侧抑制作用。对邻近神经元的交互作用函数有巴拿马草帽型 或矩形型 。

其中 d cj 是输出单元 c 与邻近单元 j 之间在神经元平面上的距离, R 是交互作用半径。

模式识别谱聚类matlab,基因表达谱聚类分析相关推荐

  1. 谱聚类matlab算法实现及详解

    此时此景,我想先讲个故事.我哈哈哈. 谱聚类(spectral clustering)的思想最早可以追溯到一个古老的希腊传说,话说当时有一个公主,由于其父王去世后,长兄上位,想独揽大权,便杀害了她的丈 ...

  2. matlab 基因表达谱,如何进行基因表达谱芯片的数据分析

    生物通报道:随着基因芯片技术的迅速发展,表达谱芯片分析及aCGH等方法已被广泛应用于生命科学各个研究领域,由此产生的数据也呈指数级增长.如何从海量数据中获取有生物学意义的结果成为摆在生物学工作者面前的 ...

  3. matlab中有没有谱聚类,matlab – 谱聚类

    首先我必须说我是matlab的新手(以及这个网站--),所以请原谅我的无知. 我正在尝试在matlab中编写一个函数,它将使用Spectral Clustering将一组点分成两个簇. 我的代码如下 ...

  4. 差分隐私 matlab,一种基于差分隐私保护的谱聚类方法与流程

    本发明属于隐私保护技术领域,提供了一种基于差分隐私保护的谱聚类方法. 背景技术: 近年来,随着互联网与信息技术的蓬勃发展,海量数据的产生可以为研究者们提供许多有效的信息资源,对这些海量数据进行挖掘分析 ...

  5. 归一化谱聚类NCUT(matlab实现)

    归一化谱聚类NCUT步骤: 根据定义的相似性度量方法,从样本数据生成邻接矩阵W(例如使用皮尔逊相关系数衡量俩时间信号的相似性) 由邻接矩阵W得到度矩阵D,D的对角线元素为W的行和(或者列和) 计算拉普 ...

  6. [机器学习]多视角谱聚类(Ncut matlab代码)

    一.多视角   多视角聚类是伴随着信息时代发展过程中人们获取信息的途径日益增加,而逐渐出现的新聚类研究方向.通过多种途径获得的数据其实是对同件事物的不同描述,如电影的图片以及音频都是对这个电影的描述, ...

  7. MATLAB 谱聚类

    k-means 可以说是思想最简单的聚类了,但是它在应对非凸数据时却显得手足无措,例如如下的数据分类: 各类之间虽然间隔较远,但是非凸,这时候就需要引入谱聚类了(以下为谱聚类效果). 本文参考 [1] ...

  8. 【图像分割】基于萤火虫优化的半监督谱聚类彩色图像分割方法(Matlab代码实现)

    目录 0 概述 1 萤火虫算法 1.1 思想来源 1.2 数学模型 1.2.1 萤火虫相对荧光亮度 1.2.2 萤火虫吸引度 1.2.3 位置更新 1.3 算法步骤 2 基于萤火虫优化的半监督谱聚类彩 ...

  9. matlab实现谱聚类法图像分割代码,一种基于谱聚类的图像分割方法与系统与流程...

    本发明是一种基于谱聚类的图像分割方法与系统,涉及聚类.机器学习和人工智能领域.特别涉及通过相关性将已经学习到的知识运用到图像分割中,并在此基础上构造性地改造谱聚类方法,从而达到快速精确地分割彩色图像的 ...

  10. 【图像分割】基于谱聚类算法实现图像分割matlab源码

    一. 前言 本来想写关于聚类系列算法的介绍,但是聚类系列的其它几个算法原理比较简单,网上有大量的教程可以查阅.这里主要是介绍一下谱聚类算法,做一个学习笔记,同时也希望对想要了解该算法的朋友有一个帮助. ...

最新文章

  1. 使用 Smartmontools 检测硬盘坏道
  2. HTML在计算机中指什么,计算机正在执行的指令存放在什么中
  3. redis(22)--二进制位数组
  4. 码农和程序员的几个重要区别!
  5. easyconnect获取服务端配置信息失败_图文解析 Nacos 配置中心的实现
  6. 【面试】iOS 开发面试题(二)
  7. DVWA系列之10 命令执行漏洞的挖掘与防御
  8. GitHub新神器,宇宙第一编辑器--VS Code!危
  9. 莫名其妙的解决了MagicDraw中文问题
  10. Axure 教程 | 微博分享
  11. 网页开发工具VSCode的使用
  12. 如果GOOGLE退出中国,我们怎么办???
  13. python re模块_python 正则表达式 (重点) re模块
  14. web常见的攻击方式有哪些,以及如何进行防御?
  15. 边云协同的优点_与云端握手 是时候谈谈边云协同这个边缘计算新风向了
  16. Error:A JNI error has occurred,please check your installation and try again
  17. 人工智能小白日记 语音情感分析探索之2 CNN相关及实验
  18. Brave浏览器 1.0正式面世, 为用户提供无与伦比的隐私保护和奖励
  19. Cadence Allegro 如何输出异型钻孔文件?
  20. 推荐系统-基于内容的推荐算法(Content-Based)

热门文章

  1. 常用分辨率、帧率、码率
  2. Transaction使用及原理
  3. 无法删除的文件夹怎么办?如何删除删不掉的文件夹
  4. c语言输出最大的数ns流程图_急!!!!c语言NS流程图
  5. Word文档中页眉页脚怎么设置
  6. 【算法集训 | 暑期刷题营】7.19题---回溯与剪枝
  7. 三星堆的青铜机器人_身穿“燕尾服”的青铜大立人是谁?探秘三星堆,从这些自带神秘光环的宝藏开始...
  8. CS代理+proxychains+nmap进行内网扫描
  9. 徐思201771010132《面向对象程序设计(java)》第九周学习总结
  10. 网站死链接是什么,如何检测与提交?