CN104156635A - 基于公共子序列的基因芯片表达数据的opsm挖掘方法 - Google Patents
基于公共子序列的基因芯片表达数据的opsm挖掘方法 Download PDFInfo
- Publication number
- CN104156635A CN104156635A CN201410323563.4A CN201410323563A CN104156635A CN 104156635 A CN104156635 A CN 104156635A CN 201410323563 A CN201410323563 A CN 201410323563A CN 104156635 A CN104156635 A CN 104156635A
- Authority
- CN
- China
- Prior art keywords
- opsm
- common subsequence
- tree
- row
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其包括:(1)输入基因芯片数据,对数据进行预处理;(2)获得基因芯片数据中任意两行之间的公共子序列;(3)生成长度为2的候选集树;(4)在长度为2的候选集树上进行剪枝操作得到2-频繁树;(5)将2-频繁树拼接成3-候选集树,并经过剪枝操作得到3-频繁树;(6)将k-频繁树上进行拼接成k+1-候选集树,并经过剪枝操作得到k+1-频繁树,直到不能产生频繁树为止,最终得到所有列模式长度且满足行阈值的OPSM。该方法在前缀树存储和遍历的操作上减少了时间和空间复杂度;可以在不需要大幅增加运算时间的情况下,精确找到基因芯片数据上所有满足支持度阈值的OPSM。
Description
技术领域
本发明属于计算机算法,数据挖掘技术领域,具体涉及一种针对基因芯片表达数据的基于公共子序列的保序子矩阵(OPSM)双聚类挖掘方法。
背景技术
随着DNA微阵列技术的发展,作为生命科学以及自然科学的核心、前沿领域之一,人类对于基因序列的奥秘还知之甚少,破解其生物信息以及相关的内容还有很长的路要走。成千上万个基因的表达水平可以被同时检测,产生了高通量的基因表达数据,从而为基因表达数据分析提供了数据基础。由于细胞种类繁多,同时基因表达具有时空特异性,基因表达数据更为复杂,数据量更大,增长速度更快,如何将海量的数据中包含的丰富生物信息和知识进行迅速有效的组织、浓缩、提取、分类处理,成为了数据挖掘、人工智能、生物信息等领域研究的热点。
通常,一次基因微阵列实验能够获得细胞在某个实验条件下的全基因组表达数据,称为基因芯片表达数据(microarry data),其中包含了成千上万个基因在细胞中的相对或绝对丰度,基因表达值数据用数据矩阵的形式保存,其中每个基因对应一行,每个条件对应一列。矩阵的每个元素值常用一个实数值表示,代表一个基因在特定的条件下的表达值水平。
聚类方法是以前较为流行的基因表达数据分析方法,认为表达相似的基因具有相似的功能,因此聚类方法被用来挖掘具有相似功能的基因或者样本,进行基因功能预测等等。聚类分析即将待分析的对象实体分配到相应的聚类中,使得同一聚类中的对象实体区别较小,而不同聚类之间的对象实体区别较大。它是以全部条件作为特征,或以全部基因作为特征进行的聚类。现有很多的算法被广泛用于基因芯片表达数据的聚类分析中,如K均值聚类、层次聚类,并已被证明可以解决一些问题。但是大部分基因只在某部分条件下是具有很强的相关性,而不是在所有的条件下都相关。因此传统聚类方法存在一些不足之处,难以找出在一部分条件下下参与调控的基因聚类和与一部分基因相关联的条件聚类。
为了克服传统聚类方法的局限性,需要应用新的方法以检测基因表达数据中的局部信息,双聚类方法应运而生。双聚类首先是由Hartigan(Hartigan J A,“Direct clustering of a data matrix,Journal ofthe American Statistical Association”,vol.67,no.337,pp:123-129,1972.)提出,而由Cheng和Church(Y.Cheng and M.G.Church,"Biclustering of expression data,"Proceeding of Intelligent System forMolecule BIOL,vol.8,pp.93-103,2000.)最早应用于基因表达数据分析中的。双聚类方法可以同时在基因表达数据的基因和条件两个维度上进行聚类,从而获得在某个条件子集下具有相似表达模式的基因子集,发掘基因表达数据中的局部信息在一定的条件下表现出相容的表达模式的基因子集,称之为双聚类(Bicluster)。双聚类可以对部分行部分列的基因进行分析,比聚类更加有优势。双聚类方法可以挖掘一些样本子集的基因子集。
近年来,保序子矩阵Order Preserving Submatrix(OPSM)由Bendor(A.Ben-Dor,B.Chor,R.Karp,and Z.Yakhini,“Discovering Local Structure in Gene Expression Data:The Order-Preserving SubmatrixProblem,”in Proceedings of the sixth annual international conference on Computational biology(RECOMB'02),Washington,DC,USA,pp.49-57,2002.)等人提出并被采纳为一种数据挖掘的模型。一个OPSM,本质上是一个基于模型的双聚类,OPSM关注的是数据矩阵中元素之间的相对大小,而不是其实际的元素值大小。换句话说,就是OPSM关注的是基因表达关联的模式,而不是数据的精确大小。假如数据矩阵中一个子矩阵要满足OPSM双聚类模型,那么必须满足的条件就是存在针对子矩阵全部列的一个置换,使得该子矩阵的所有行的序列值都是严格单调递增的。例如表1是一个5行6列的原始数据矩阵,其画图结果如图1所示,如果考虑所有的行在所有列下的值,无法找到共同模式。然而,如果只选择前5列,并对列重新排列,使它变成序列c1,c4,c5,c3,c2,则可以看出第2、3、4行的元素值在这5列下是单调递增的,如图2所示。
表1.原始基因表达矩阵
OPSM对于在存在噪声的数据中发现模式的趋势极其有用的。OPSM问题主要应用于数据值矩阵中。它的目标是挖掘出一部分属性(列)在一部分元组(行)上表现出相似的值上升和值下降的模式。例如,当从微阵列数据实验中分析基因表达数据时,可以发现mRNA表达水平在不同时间点上共同变化的基因可能享有相同的性质的、相关的细胞循环。由于典型的微阵列数据存在水平很高的噪声,所以比较在不同时间点下的基因的相关表达水平比其绝对值更加有生物意义。而且,在不同的时间点或试验下展示出同升同降的表达值的基因可以揭示出有趣的模式和知识。
OPSM模型在现实中的应用越来越广泛,不仅仅是在基因表达数据分析领域,在其他领域比如电子商务推荐系统和市场营销中,企业常常对顾客对商品的评分数据进行分析,并挖掘数据中不同顾客对商品的相同评分模式,并利用相应结果分析顾客对商品的偏好及消费行为情况,从而帮助企业了解和预测消费者的兴趣并在未来的市场营销中对消费者做出恰当的商品推荐。
Bendor et al.(A.Ben-Dor,B.Chor,R.Karp,and Z.Yakhini,“Discovering Local Structure in GeneExpression Data:The Order-Preserving Submatrix Problem,”in Proceedings of the sixth annualinternational conference on Computational biology(RECOMB'02),Washington,DC,USA,pp.49-57,2002.)最先提出Order-Preserving Submatrix(OPSM)的模型。在一个OPSM中,所有基因的表达水平在实验条件下具有一样的线性次序。Bendor et al.证明了OPSM挖掘问题是一个NP难问题。为了找到具有最高统计显著(即具有最小先验概率)的OPSM,Bendor et al.提出了一种自下而上的贪婪算法。该算法首先从小的OPSM出发并且每次将其中最好的前l个进行扩展,多次反复迭代,直到不能继续扩展为止,并将最好的OPSM输出。此算法主要是为了找到行支持度大的OPSM,所以一些行支持度小的OPSM,即深度OPSM(Deep OPSM)就会被忽略。算法的计算复杂度过大,同时不适用于较大的基因表达矩阵。此外,这是一种贪婪算法,不能保证能找到所有的OPSM。
Cheung et al.(L.Cheung,Y.Y.Kevin,David W.Cheung,B.Kao and K.N.Michael,“On MiningMicro-array data by Order-Preserving Submatrix,”International Journal of Bioinformatics Research andApplications,vol.3,no.1,pp.42-64,2007.)提出了最大OPSM(Maximal OPSM)的模型,通过把挖掘OPSM的问题转化为序列模式挖掘问题,用一种“候选生成再测试”(candidate generation-and-test)的框架去挖掘所有的Maximal OPSMs,并利用一种新的数据结构“头尾树”(head-tail tree)去高效的挖掘OPSMs。该方法认为当一个OPSM所含的行列数较多时,所挖掘出的OPSM才是具有意义的,所以对于行少而列多的Deep OPSM就会被该算法忽略。算法的目的是为了找到所有满足条件的Maximal OPSM,但不能保证找到所有有意义的OPSM。而且,他们的算法是基于Apriori原则的,因此挖掘得到的Maximal OPSMs会受到事先设定的支持度阈值的影响,而支持度阈值往往随着数据库规模的增大而成比例增加。
Gao et al.(B.J.Gao,O.L.Griffith,M.Ester,H.Xiong,Q.Zhao,and Steven J.M.Jones.“On theDeep Order-Preserving Submatrix Problem:A Best Effort Approach,”Journal of IEEE Transactions onKnowledge and Data Engineering,vol.24,no.2,pp.309-325,2012.)提出了一种新的OPSM模式,称为Deep OPSM,是指那些行支持度较小的长模式,即行少而列多的模式,已被认为具有显著的生物意义。他们提出了一种新的挖掘框架---KiWi,用于在庞大数据集中有效地挖掘Deep OPSM。该算法利用两个参数k和w来限定计算资源,并且在选定的搜索空间中找到尽可能多的Deep OPSMs。但该算法是启发式的算法,因此不能保证找到所有的Deep OPSM。
现有方法存在如下不足:
(1)现有方法往往为减小计算机消耗而设定较高的行阈值,所找到的聚类或双聚类不具有行少列多的特点,而这类聚类往往具有很强的生物意义。因此,需要解决具有很强生物意义的行少列多的双聚类的挖掘问题。
(2)现有算法不能精确地找出所有的符合要求的双聚类。因此需要提高双聚类查找的精确性。
(3)现有算法的时间和空间复杂度很高,这也是本发明所要解决的技术问题之一。
发明内容
本发明的目的在于克服现有技术存在的上述不足,提出一种基于公共子序列的基因芯片表达数据的OPSM挖掘方法,首先把OPSM转化为频繁序列模式挖掘问题,然后从频繁公共子序列挖掘问题的这一个新的角度出发。该方法能挖掘出所有的OPSM,并可以根据用户输入的行、列阈值给出所需的OPSM,尤其适合挖掘出Deep OPSM模式,具体技术方案如下。
基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其包括如下步骤:
(1)输入基因芯片数据,对数据进行预处理;
(2)获得基因芯片数据中任意两行之间的公共子序列;
(3)生成长度为2的候选集树;
(4)在长度为2的候选集树上进行剪枝操作即将不满足频繁条件的枝条删除,得到2-频繁树;
(5)将2-频繁树拼接成3-候选集树,并经过剪枝操作得到3-频繁树;
(6)依次操作,将k-频繁树上进行拼接成k+1-候选集树,并经过剪枝操作得到k+1-频繁树,直到不能产生频繁树为止,其中k的取值范围为2到原始基因芯片数据矩阵的列数减1,最终得到所有列模式长度且满足行阈值的OPSM。
进一步的,上述方法中步骤(1)具体是:首先输入基因芯片数据,对数据进行预处理,即把一个原始数据矩阵A的每一行都做升序排序,它们的数值大小用它们的列标号代替,得到列置换矩阵。
进一步的,上述方法中步骤(1)中,在数据预处理阶段,将每一个基因在每个芯片试验中的表达量按照从小到大的顺序排列,而且用相应的芯片试验编号来代替,即对于原始矩阵中的每一行,把所有的值按升序排列,用对应的列标号替代原来的值,使原始矩阵转化为一个序列数据集。
进一步的,上述方法中步骤(2)对所述列置换矩阵,应用改进的CalACS方法得到任意两行之间的公共子序列,具体是:对于序列长度分别为|A|,|B|的序列A和B,CalACS的时间和空间复杂度均为O(|A|×|B|),令A和B序列的长度相同,即|A|=|B|,以变量NA[i]来存储以A序列中第i个元素Ai结尾的A,B两个序列的公共子序列集合;A,B的公共子序列中任意两个元素必须在A序列和B序列中保持着一样的前后次序关系,假设在A序列中Aj的位置是在Ai之前,若元素Aj在B序列中仍然排在元素Ai之前,则表示Ai和Aj在B中仍然保持着与A中一致的先后位置关系,因此以Aj结尾的公共子序列集合中必然包含原来以Aj结尾的公共子序列集合中的每一项再拼接上Ai后得到的全部新序列集合,在此基础上构造出全部NA[i],而A和B的所有公共子序列集合(ACS)就是所有NA[i]的并集。
进一步的,上述方法中步骤(3)具体是:使用前缀树的数据结构来存储和遍历步骤(2)中得到的所有长度为2的公共子序列,生成长度为2的候选集树。
进一步的,上述方法中步骤(4)具体是:在步骤(3)得到的长度为2的候选集树上进行剪枝操作,根据设定的行阈值将不满足条件的枝条删除,得到2-频繁树,并遍历2-频繁树上的每一条枝,输出双聚类结果。
进一步的,步骤(6)中,每一次都拼接得到列长度更长的候选集树,并通过将不满足频繁条件的枝条删除,得到频繁树,并遍历频繁树上的每一条枝,输出双聚类结果。
进一步的,上述方法中步骤(5)具体是:按照Apriori原则将步骤(2)中得到的长度为3的公共子序列拼接在步骤(4)中得到2-频繁树上,从而建立3-候选集树,再进行与步骤(4)中一样的剪枝操作得到3-频繁树。
本发明与现有技术相比,具有如下突出实质性特点和显著优点:
本发明中,对基因芯片表达数据使用OPSM模型对基因表达数据进行分析,找到了其中所有满足阈值条件的保序子矩阵,一个保序子矩阵就代表了一系列基因的表达值在一部分试验条件下具有相同的变化趋势,这通常是具有很强的生物意义的,例如在同一个保序子矩阵中的基因可能参与了同一个细胞过程(cell cycle),这些具有相似表达趋势的基因可能具有共同的特征,如共同的调节元件,共有的生物功能等。通常某一特定路径中的基因或者受相同试验条件变化影响的基因是共调控的(co-regulated),并且在某些条件下的表达模式是具有相似的变化趋势,通过对这些具有相似特点的基因的查找,对基因的功能研究以及对基因调控路径和调控网络的研究具有重要意义。
附图说明
图1是原始矩阵图像。
图2是图1原始矩阵中的一个OPSM。
图3是使用改进的CalACS算法得到的所有任意两行的长度为2的公共子序列。
图4是使用改进的CalACS算法得到的所有任意两行的长度为3的公共子序列。
图5是使用改进的CalACS算法得到的所有任意两行的长度为4的公共子序列。
图6是2-候选前缀树。
图7是满足阈值为3的2-频繁树。
图8是3-候选集树。
图9是3-频繁树。
图10是在基因芯片数据上利用本方法挖掘出的OPSM例子一结果图。
图11是在基因芯片数据上利用本方法挖掘出的OPSM例子二结果图。
图12是本发明基于公共子序列找到OPSM双聚类的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明,但本发明的实施不限于此。需特别指出的是,以下若有未特别详细说明的符号或操作过程,均是本领域技术人员可以参照现有技术实现的。
如图12,本实例的基于公共子序列的基因芯片表达数据的OPSM挖掘方法包括如下内容:
1、本实例及的基因芯片表达数据,是利用基因芯片技术,对于特定的生物组织或者细胞在不同的试验条件下采样的方法,在多次不同的试验下测得若干个基因的表达水平。通过选取较多的试验条件来增加测量值的数目。通过同一个试验条件多次反复测量,来降低基因芯片技术的实验误差。但是从任意类型的试验获得的基因表达,是在技术人员的能力范围内。所以获得基因芯片表达数据可以从以下这些试验中获得:一般的微阵列数据、有差别的DNA甲基化阵列、在芯片上的染色质免疫沉淀法等等方法。以N个基因为例,利用基因芯片测定了N个基因的M个实验条件下的基因芯片表达数据,可以表示为一个由N行M列组成的矩阵,每一行表示基因,每一列就是基因在各个试验条件下的表达量。将基因表达量进行预处理之后更有益于对基因表达数据建立OPSM模型。在数据预处理阶段,将每一个基因在每个芯片试验中的表达量按照从小到大的顺序排列,而且用相应的芯片试验编号来代替,即对于原始矩阵中的每一行,把所有的值按升序排列,用对应的列标号替代原来的值,这是原始矩阵转化为一个序列数据集。将表2的原始数据矩阵转化为序列数据集,如表3所示。如果数据矩阵有相同值,默认把出现较早的那个排在前面;如果数据矩阵中有缺失值,就将其视为无穷大。把OPSM转化为频繁序列模式挖掘问题。
表2.转换前的原始矩阵
表3.转换后的序列数据集
2、在所得到的列置换矩阵中,用改进过的计算所有公共子序列(CalACS)方法得到所有公共子序列的集合。所有的公共子序列All Common Subsequence(ACS)是经典的最长公共子序列Longestcommon Subsequence(LCS)problem的一个变种,LCS是一个经典的计算机科学问题,它是找出一系列序列(通常为2个)中所有公共子序列中最长的公共子序列,作为序列之间相似性的判据。CalACS是Wanghui等人(Hui W,All common subsequences,Proceedings of the IJCAI,pp:635-640,2007.)提出的一种改进的计算ACS数目的方法,对于序列长度分别为|A|,|B|的序列A和B来说,CalACS的时间和空间复杂度均为O(|A|×|B|),但是CalACS仅仅只是计算两个序列之间所有公共子序列的数目,并没有得到公共子序列的集合(也就是说没有输出公共子序列),本发明对CalACS进行了改进使其能够得到所有公共子序列的集合。下面以A和B两个子序列(A和B序列的长度相同,即|A|=|B|)为例,来展示如何计算任意2个序列的公共子序列。以变量NA[i]来存储以A序列中第i个元素Ai结尾的A,B两个序列的公共子序列集合。方法基于以下前提,A,B的公共子序列中任意两个元素必须在A序列和B序列中保持着一样的前后次序关系。假设在A序列中Aj的位置是在Ai之前,若元素Aj在B序列中仍然排在元素Ai之前,则表示Ai和Aj在B中仍然保持着与A中一致的先后位置关系,因此以Aj结尾的公共子序列集合中必然包含原来以Aj结尾的公共子序列集合中的每一项再拼接上Ai后得到的全部新序列集合,在此基础上构造出全部NA[i],而A和B的所有公共子序列集合(ACS)就是所有NA[i]的并集。通过这个方法,得到了任意两行之间的任意长度的公共子序列如图3、图4、图5所示。
3、使用一个叫前缀树的数据结构来存储和遍历之前得到的所有长度为2的公共子序列,生成长度为2的候选集树。
1)前缀树的结构:前缀树是一种有序树,常用于保存字符串或者关联数组,每一条从根结点到叶结点之间长度为K的一串列标号称作一条路径。在这里前缀树的根结点对应于一个空序列,结点存储的是数字序列,也就是公共子序列对应的列号,而叶子结点则保存着从根结点到叶子结点之间的这一公共子序列(不包含叶结点和根结点)所对应的行号。由K个结点所组成的序列称作K-序列。如图6所示:在树的最左边有一个路径(1,4),而这个路径末尾的叶子结点则是保存着行号(4,5),也就是说,第4行和第5行具有公共子序列(1,4)。
假定得到了所有的公共子序列,对于每一个子序列S=(Rij,<C1,C2…Ck>),Rij表示第i行和第j行,Ci表示两者之间公共子序列中元素,k表示公共子序列的长度。不难注意到C1,C2…Ck是有序的。将这个子序列S插入到路径为<C1,C2…Ck>的前缀树中,并且在末尾的叶子结点记录这个序列对应的行号Rij。传统的构建前缀树的方法是,通过先序遍历这棵前缀树,如果长度为K+1的序列的前K个前缀与前缀树中某一个长度为K的路径相同,则将第K+1个新的结点添加在叶子结点之前,此时生成的新的K+1的序列所对应的行已经与之前的有所不同,所以叶子结点也会被修改为新的对应的行号集合,同时对拥有这条路径的行进行计数,从而得到这条路径的支持度。
2)本实例已经使用了改进的CalACS算法得到了所有的任意两行之间的公共子序列,第一次生成前缀树时使用长度为2的公共子序列,通过遍历和连接产生2-候选集树,如图6所示,每一条路径都保存着公共子序列的列标号,同时叶子结点保存着拥有这个公共子序列的行号,对行的计数也在进行着。
4、在候选集树中通过检验叶子结点所对应的行号的数目是否大于支持度阈值3来决定这条枝(即路径)是否应该存在于该树中,如果该枝条保存的公共子序列的行支持度小于支持度阈值3,则将其删减掉,反之则仍然保存在该候选集树中。进过一番比较后,得到满足要求的2-频繁树,如图7所示。
5、按照Apriori原则将步骤2中得到的长度为3的公共子序列拼接在2-频繁树上得到3-候选集树,再进行与步骤4中一样的剪枝操作得到3-频繁树;
1)Apriori原则是:如果已知一个长度为K的序列k-sequence是频繁的,那么这个k-sequence的所有的长度为K-1的子序列肯定都是频繁的,换句话说,如果一个K-sequence存在一个长度为K-1且不频繁的子序列,那么这个K-sequence也一定是不频繁的。即如果一个K-sequence的前K-1结点所组成的子序列不等于前缀树上的任意一条路径,那么就不能对这个K-sequence进行插入操作。
2)在步骤4生成2-频繁树的基础上,把步骤2得到的长度为3的公共子序列拼接到2-频繁树上。拼接的过程如下:根据前缀树的特点,在列数为3的所有公共子序列中,先序遍历2-频繁树,如果前2个前缀和2-频繁树中的某条路径相同,则把第3个结点加在这条路径的末尾,并更新叶子结点,更新是指将叶子结点清空并重新存储新加的路径(即公共子序列)所对应的行号),同时得到新产生的路径的行支持度;如果存在某个3列的公共子序列的前2个前缀没有和2-频繁树中的任意路径相匹配或者说只有1个前缀相匹配,根据Apriori原则,以上这种情况就说明了这个3列的某两行的公共子序列的前2个前缀所构成的序列不是频繁的,从而这个3列的公共子序列也不可能是频繁的,这样这个3列的公共子序列就不会以“路径”形式存在于3-候选集树中,通过这种方法就减少了许多没必要的遍历和序列之间的比较,通常这一类操作在前缀树比较庞大的情况下是非常耗时的。这样,在2-频繁树上遍历完所有的列数为3的公共子序列,就得到了如图8所示的3-候选集树,然后将各条路径的行支持度与设定的支持度阈值3相比较。如果行支持度小于支持度阈值3,则将此路径在3-候选集树上删除,最终就得到了如图9所示的3-频繁树。
6、重复前述操作,利用Apriori原则依次产生k-候选集树,然后对各条路径的叶子节点的支持度和支持度阈值3进行大小的对比,从而对k-候选集树进行剪枝操作,把不符合条件的路径从候选集树中删去,从而得到k-频繁树,其中每一条“路径”就是频繁的公共子序列。依次类推,直到所有长度的公共子序列都遍历完,最终得到的是一棵拥有最长路径,并且每条路径的行支持度都满足支持度阈值,每条路径对应的是列索引,叶子结点对应的是行号,从而这些行列所组成的矩阵就是满足支持度阈值的OPSM。最后遍历k-频繁树中的每一条枝就可以得到列模式长度为k的OPSM。
参照上述流程,以下再举一个例子。
1、数据集来源
数据集来源于酵母菌基因的Knockout实验。其中记录了205个基因在20种不同的实验条件下的表达值水平,每一种实验都重复进行了4次,所以原始数据矩阵的大小为205×80。
2、设置不同的阈值得到的结果
用本发明的方法对上述的数据集矩阵进行分析,将行阈值分别取为3,5,8,10得到的OPSM总数如表4所示。
表4.不同的阈值找到的OPSM个数
本发明的方法具有很高的精确性,所以可以找到所有满足行阈值的OPSM,从表4中也可以看出当行阈值设置得越大时,满足行阈值的OPSM就越少。
下面的结果展示的是将行阈值设为3和5时所挖掘出的行最多的OPSM,如下图所示,图10阈值为3时,可以清晰地看到有三个genes在17个条件下表现出“同升降”的趋势,图11阈值为5时,找出的列数最多的OPSM,此时含有4个行(genes)。
3、对得到的OPSM结果进行GO分析
为了得到双聚类的生物意义,本实例对得到的结果进行Gene Ontology(GO)分析,GO数据库包含了对基因产物所参加的生物过程、细胞组成部分、分子功能这三个部分的文字描述。基因表达值在某些实验条件下具有相似变化趋势的基因会被认为是属于同一类的,并且通常属于同一生物学通路,即它们在生物过程和分子功能上会有相似性。Go的结构是一个DAG(Direct Acyclic Graph),在DAG中越靠近根部的注释信息越概括化,越靠近末端的注释信息越详细。因此得到的某个关于基因的注释信息,例如生物过程,在DAG中的位置可能位于分支的末端,也可能位于分支的上端:对某个基因的了解程度越深入,那么注释信息越靠近分支末端。一般来说,具有统计显著的OPSM是特别有意义的,这里选用P-value值来估计所挖掘到的OPSM的统计意义。根据显著性检验方法所得到的P-value值,一般以P-value<0.05为显著,P-value<0.01为非常显著,其含义是样本间的差异由抽样误差所致的概率小于0.05或0.01。从三种GO类别得到的功能被采用到对应的,层次大于3的生物过程、分子功能和细胞组成中。表5展示了由GO Toolbox分析所得的双聚类的生物相关性。
表5.聚类的生物相关性
4、Deep OPSM的P-value分析
统计显著的OPSM通常是特别有意义的,通过计算每一个OPSM的P-value值来估计它们的统计显著性。计算公式如下:
其中:
|I0|表示分别发现的OPSM的行数
|J0|表示分别发现的OPSM的列数;
M表示原矩阵的行数;
N表示原矩阵的列数;
从得到的所有OPSM中,挑选出行少而列多的Deep型OPSM,共有三个双聚类,所含的行列数分别为:3行17列,4行15列,5行14列。对这三个双聚类分别计算p-value值,如表6所示。
表6.挖掘的OPSMs的P-value值
上述实例进一步说明本发明具有如下优点:
(1)该方法对基因芯片数据上的保序子矩阵进行挖掘,从ACS出发并利用前缀树作为数据结构,结合Apriori原则对前缀树进行剪枝,从而为在前缀树存储和遍历的操作上减少了时间和空间复杂度。
(2)该方法是一种具有精确性的方法,可以找到基因芯片数据上所有满足支持度阈值的OPSM,而且可以设置很小的支持度阈值(甚至可以为2)而不需要大幅增加运算时间。
(3)该方法可以在基因芯片数据上找到行少而列多的Deep OPSM,从生物学的角度来说,Deep的意义在于即使基因数很少(哪怕只是两个基因),只要它们在非常多的实验环境中,都具有相同变化趋势的表达值时,就有理由判断这两个基因是有紧密联系的,它们的表达值之间是具有重要的生物意义的。所以,Deep OPSM不仅对解释基因调控网络有非常重要的作用,而且具有关键的生物意义。
Claims (8)
1.基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其特征在于包括如下步骤:
(1)输入基因芯片数据,对数据进行预处理;
(2)获得基因芯片数据中任意两行之间的公共子序列;
(3)生成长度为2的候选集树;
(4)在长度为2的候选集树上进行剪枝操作即把不满足频繁条件的枝条删除,得到2-频繁树;
(5)将2-频繁树拼接成3-候选集树,并经过剪枝操作得到3-频繁树;
(6)依次重复上述操作,将k-频繁树上进行拼接成k+1-候选集树,并经过剪枝操作得到k+1-频繁树,直到不能产生频繁树为止,其中k的取值范围为2到原始基因芯片数据矩阵的列数减1,最终得到所有列模式长度且满足行阈值的OPSM。
2.根据权利要求1所述的基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其特征在于步骤(1)具体是:首先输入基因芯片数据,对数据进行预处理,即把一个原始数据矩阵A的每一行都做升序排序,它们的数值大小用它们的列标号代替,得到列置换矩阵。
3.根据权利要求2所述的基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其特征在于步骤(1)中,在数据预处理阶段,将每一个基因在每个芯片试验中的表达量按照从小到大的顺序排列,而且用相应的芯片试验编号来代替,即对于原始矩阵中的每一行,把所有的值按升序排列,用对应的列标号替代原来的值,使原始矩阵转化为一个序列数据集。
4.根据权利要求2所述的基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其特征在于步骤(2)对所述列置换矩阵,应用改进的CalACS方法得到任意两行之间的公共子序列,具体是:对于序列长度分别为|A|,|B|的序列A和B,CalACS的时间和空间复杂度均为O(|A|×|B|),令A和B序列的长度相同,即|A|=|B|,以变量NA[i]来存储以A序列中第i个元素Ai结尾的A,B两个序列的公共子序列集合;A,B的公共子序列中任意两个元素必须在A序列和B序列中保持着一样的前后次序关系,假设在A序列中Aj的位置是在Ai之前,若元素Aj在B序列中仍然排在元素Ai之前,则表示Ai和Aj在B中仍然保持着与A中一致的先后位置关系,因此以Aj结尾的公共子序列集合中必然包含原来以Aj结尾的公共子序列集合中的每一项再拼接上Ai后得到的全部新序列集合,在此基础上构造出全部NA[i],而A和B的所有公共子序列集合(ACS)就是所有NA[i]的并集。
5.根据权利要求2所述的基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其特征在于步骤(3)具体是:使用前缀树的数据结构来存储和遍历步骤(2)中得到的所有长度为2的公共子序列,生成长度为2的候选集树。
6.根据权利要求2所述的基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其特征在于步骤(4)具体是:在步骤(3)得到的长度为2的候选集树上进行剪枝操作,根据设定的行阈值将不满足条件的枝条删除,得到2-频繁树,并遍历2-频繁树上的每一条枝,输出双聚类结果。
7.根据权利要求2所述的基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其特征在于步骤(6)中每一次都拼接得到列长度更长的候选集树,并通过将不满足频繁条件的枝条删除,得到频繁树,并遍历频繁树上的每一条枝,输出双聚类结果。
8.根据权利要求2所述的基于公共子序列的基因芯片表达数据的OPSM挖掘方法,其特征在于步骤(5)具体是:按照Apriori原则将步骤(2)中得到的长度为3的公共子序列拼接在步骤(4)中得到2-频繁树上,从而建立3-候选集树,再进行与步骤(4)中一样的剪枝操作得到3-频繁树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410323563.4A CN104156635B (zh) | 2014-07-08 | 2014-07-08 | 基于公共子序列的基因芯片表达数据的opsm挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410323563.4A CN104156635B (zh) | 2014-07-08 | 2014-07-08 | 基于公共子序列的基因芯片表达数据的opsm挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104156635A true CN104156635A (zh) | 2014-11-19 |
CN104156635B CN104156635B (zh) | 2017-07-07 |
Family
ID=51882133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410323563.4A Expired - Fee Related CN104156635B (zh) | 2014-07-08 | 2014-07-08 | 基于公共子序列的基因芯片表达数据的opsm挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104156635B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446603A (zh) * | 2016-09-29 | 2017-02-22 | 福州大学 | 基于改进pso算法的基因表达数据聚类方法 |
CN106980775A (zh) * | 2017-03-27 | 2017-07-25 | 华南师范大学 | 基于全部连续列一致演化型的时序基因芯片数据挖掘方法 |
CN106991141A (zh) * | 2017-03-21 | 2017-07-28 | 北京邮电大学 | 一种基于深度剪枝策略的关联规则挖掘方法 |
CN108537005A (zh) * | 2018-04-03 | 2018-09-14 | 福州大学 | 一种基于BPSO-KNN模型的关键lncRNA预测方法 |
CN109243535A (zh) * | 2018-09-13 | 2019-01-18 | 河南财经政法大学 | 同步编程模型Hama BSP下基于蝶形网络的双聚类挖掘方法 |
CN112863607A (zh) * | 2020-12-14 | 2021-05-28 | 武汉大学 | 一种面向大规模基因数据的同一认定系统及优化处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710558A (zh) * | 2005-07-07 | 2005-12-21 | 复旦大学 | 基于主集分割的基因芯片表达谱数据聚类方法 |
CN1784498A (zh) * | 2003-03-28 | 2006-06-07 | 科根泰克股份有限公司 | 调控因子结合位点的基因组分布型绘制 |
US20120221573A1 (en) * | 2011-01-28 | 2012-08-30 | The Curators Of The University Of Missouri | Methods and systems for biclustering algorithm |
CN103455578A (zh) * | 2013-08-23 | 2013-12-18 | 华南师范大学 | 一种基于关联规则和双聚类的航空客户数据挖掘方法 |
-
2014
- 2014-07-08 CN CN201410323563.4A patent/CN104156635B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1784498A (zh) * | 2003-03-28 | 2006-06-07 | 科根泰克股份有限公司 | 调控因子结合位点的基因组分布型绘制 |
CN1710558A (zh) * | 2005-07-07 | 2005-12-21 | 复旦大学 | 基于主集分割的基因芯片表达谱数据聚类方法 |
US20120221573A1 (en) * | 2011-01-28 | 2012-08-30 | The Curators Of The University Of Missouri | Methods and systems for biclustering algorithm |
CN103455578A (zh) * | 2013-08-23 | 2013-12-18 | 华南师范大学 | 一种基于关联规则和双聚类的航空客户数据挖掘方法 |
Non-Patent Citations (3)
Title |
---|
HUI WANG等: "a novel algorithm for counting all common subsequences", 《2007 IEEE INTERNATIONAL CONFERENCE ON GRANULAR COMPUTING》 * |
TANYA BARRETT等: "NCBI GEO:archive for high-throughput functional genomic data", 《NUCLEIC ACIDS RESEARCH》 * |
YUN XUE等: "a novel algorithm of biclustering based on the association rules", 《PROCEEDINGS OF THE 2013 INTERNATIONAL CONFERENCE ON MACHINE LEARNING AND CYBERNETICS,TIANJIN,14-17JULY,2013》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446603A (zh) * | 2016-09-29 | 2017-02-22 | 福州大学 | 基于改进pso算法的基因表达数据聚类方法 |
CN106991141A (zh) * | 2017-03-21 | 2017-07-28 | 北京邮电大学 | 一种基于深度剪枝策略的关联规则挖掘方法 |
CN106991141B (zh) * | 2017-03-21 | 2020-12-11 | 北京邮电大学 | 一种基于深度剪枝策略的关联规则挖掘方法 |
CN106980775A (zh) * | 2017-03-27 | 2017-07-25 | 华南师范大学 | 基于全部连续列一致演化型的时序基因芯片数据挖掘方法 |
CN106980775B (zh) * | 2017-03-27 | 2019-07-02 | 华南师范大学 | 基于全部连续列一致演化型的时序基因芯片数据挖掘方法 |
CN108537005A (zh) * | 2018-04-03 | 2018-09-14 | 福州大学 | 一种基于BPSO-KNN模型的关键lncRNA预测方法 |
CN109243535A (zh) * | 2018-09-13 | 2019-01-18 | 河南财经政法大学 | 同步编程模型Hama BSP下基于蝶形网络的双聚类挖掘方法 |
CN112863607A (zh) * | 2020-12-14 | 2021-05-28 | 武汉大学 | 一种面向大规模基因数据的同一认定系统及优化处理方法 |
CN112863607B (zh) * | 2020-12-14 | 2024-03-22 | 武汉大学 | 一种面向大规模基因数据的同一认定系统及优化处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104156635B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104156635A (zh) | 基于公共子序列的基因芯片表达数据的opsm挖掘方法 | |
CN104317801B (zh) | 一种面向大数据的数据清洗系统及方法 | |
CN105740312B (zh) | 使数据库查询形成聚类以用于运行时间预测 | |
Snir et al. | Quartets MaxCut: a divide and conquer quartets algorithm | |
CN102768670B (zh) | 基于节点属性标签传播的网页聚类方法 | |
CN104281652B (zh) | 度量空间中逐个支撑点数据划分方法 | |
Xu et al. | GASTS: Parsimony scoring under rearrangements | |
JP2011516989A (ja) | 編集距離および文書情報を使用する検索結果順位付け | |
EP2963575B1 (en) | Data analysis device and method therefor | |
CN109308497A (zh) | 一种基于多标签网络的多向量表示学习方法 | |
EP2759952A1 (en) | Efficient genomic read alignment in an in-memory database | |
CN109002283B (zh) | 一种基于文件路径分析的代码审查者推荐方法 | |
KR20120108886A (ko) | 데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법 | |
Chakraborty et al. | Performance comparison for data retrieval from nosql and sql databases: a case study for covid-19 genome sequence dataset | |
CN105843907A (zh) | 一种内存索引结构-距离树的构建及基于距离树的相似性连接算法 | |
Lai et al. | Fast heuristics for resolving weakly supported branches using duplication, transfers, and losses | |
KR20090069874A (ko) | 지식맵 분석을 위한 키워드 선정 및 유사도계수 선정 방법및 그 시스템과 그 방법에 대한 컴퓨터 프로그램을 저장한기록매체 | |
US7529718B2 (en) | Fast computer data segmenting techniques | |
Müller et al. | Extracting knowledge from life courses: Clustering and visualization | |
Górecki et al. | GTP supertrees from unrooted gene trees: linear time algorithms for NNI based local searches | |
US20170169159A1 (en) | Repetition identification | |
Kolbe et al. | Local RNA structure alignment with incomplete sequence | |
Hartveld et al. | An LSH-based model-words-driven product duplicate detection method | |
Trabelsi et al. | A new methodology to bring out typical users interactions in digital libraries | |
Chen et al. | CGAP-align: a high performance DNA short read alignment tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170707 |