仿分子动理学数据聚类法在基因表达数据上的应用
李俊林,符红光
【摘 要】为了识别出可能具有诊断力的特征基因,常常使用聚类的方法对基因表达数据进行分析,而仿分子动理学聚类法通过仿效分子间的作用力机制能达到对数据聚类的目的。仿分子动理学聚类技术不需要预设簇个数,且可用于估计数据中的簇个数。该方法被应用于基因表达数据,结合相关指标用以估计数据中存在的簇个数和发现可能具有诊断力的特征基因。实验与分析结果显示了仿分子动理学聚类技术具有良好的知识挖掘能力。 【期刊名称】计算机应用 【年(卷),期】2011(031)010 【总页数】4
【关键词】聚类;分子动理学;互作用力;基因表达;数据挖掘;知识发现
0 引言
聚类常被称作非监督型分类,它以某种相似度为标准,将对象集划分为若干簇,使得同簇对象差别小,而异簇对象差别大。数据聚类在数据挖掘中起着非常重要的作用。在它的基础上,我们可以洞悉数据的结构,了解样本的特性,并且可以进一步归纳规则,构建分类预测模型,用于判断未知样本的类型等。因此聚类方法是一种基础性的技术,在许多领域(如商业决策、模式识别和基因分析等)中都有重要的应用价值。现今人们从不同角度提出了许多聚类算法。如k-均值聚类、凝聚层次聚类[1]及其相关变形算法[2-3]等经典聚类技术已广泛应用于各行业中,此外常见的聚类算法还有模糊聚类法[4]、基于图的聚类[5]、基于核密度估计的聚类法[6]、子空间聚类法[7]、混合概率模型聚类
法[8]、基于某种生物或自然法则的聚类法等。基于生物现象或自然法则的聚类法[9-14]来源于人们对周围客观世界的理解,它们代表了数据聚类技术一个新的发展方向,这类算法中的一些(如某些基于万有引力模型的方法等)具有启发式特点,这在一定程度上提升了算法对数据的适应力,相对而言具有更好的稳健性。仿分子动理学数据聚类法[13]与一般的基于万有引力的动力学模型聚类法最显著的不同在于:1)引入斥力项;2)数据点间的作用力范围有限。其中第1)点也可理解为对数据点间某种相异度的描述;第2点从效果上讲能有效减少甚至消除“黑洞”问题的影响[9],而黑洞问题是一般万有引力模型本质上存在的缺陷。仿分子动理学聚类法还有一个优点在于利用基于K-NN[8]的思想来定义作用力范围,相对于采用欧氏距离而言,这使得聚类结果对数据簇密度的敏感性更小。如果数据中各个簇之间的密度差别很大,就可能使某些聚类算法失效,如DBSCAN[15]。仿分子动理学聚类法的另一个特点是具有一定的抗噪能力。这个功能主要可通过调节参数NS来实现。当算法(如传统的K-means)不具除噪能力时,一些离群点可能对聚类结果产生扭曲作用,降低了最终获得的簇的质量。如果算法本身有一定能力清除这些离群点,就能获得更好的聚类结果。
对簇密度差异的敏感性和受噪声点的影响大小反映了聚类算法对数据的适应能力。实际数据不可避免地含有噪声,而且其中各个簇之间的密度不可能都趋于一致,多少总存在差异。基因表达数据就具有这样的特点。
一般而言,对基因表达数据进行聚类分析的目的:一是找共表达基因,这些基因通常在同一聚簇中,一般具有相同的功能[16],借此也能推测未知基因的功能;二是对病理特征等进行分类;三是寻找特定条件与某些基因的关系等。对基
因表达数据的聚类通常有3种方式:对基因的聚类、对样本的聚类、双重聚类。对基因的聚类就是将每一个样本视为基因的属性,而基因则是被聚类的对象。这种方式的聚类通常用于寻找共表达基因。反之,对样本进行聚类时,基因被视为每一个样本的属性。这种方式的聚类常用于对条件、病理特征或实验条件进行分类[17]。双重聚类则是在基因和样本上同时进行聚类分析,以进一步寻找条件和基因的关系等为目的。不论哪一种方式的聚类,都是对基因表达数据阵列的处理,但由于样本个数往往比基因个数小得多,对样本聚类时数据常呈现高维性,而对基因聚类时噪声的影响有时相对大些。
本文首先介绍仿分子动理学数据聚类法,然后介绍该方法在肺结核基因表达数据上的聚类分析应用,其中包括估计不同样本组(健康人、潜伏期病人和已患病病人)的基因的可能聚簇个数区间以及寻找可能在不同样本中变化显著的特征基因。
1 仿分子动理学数据聚类法
仿分子动理学聚类法的主要流程如图1所示。主要包括3步:其中前两步是整个算法的重点,第3步“按需获得最终聚类结果”是指如果不要求静噪处理,噪声点将按近邻原则分派到结果簇中,否则疑似噪声的数据点将不分派给任何簇。本文主要介绍前两步。 1.1 数据点在迭代空间中移动
数据点将仿效类似分子间作用力的机制进行移动。为便于区别,把移动数据点的空间称为”迭代空间”,而未发生移动前数据点所处的空间称为”原始空间”。为使数据点在分子力作用机制下移动,需要首先定义数据点所受的力。定义点A受到点B的作用力[13]为:
仿分子动理学数据聚类法在基因表达数据上的应用
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)