一种限定性模体的发现方法_2

文档序号:9327190阅读:来源:国知局
来, 字典表中每一项都会有一个指针指向一个倒排索引表,该表存储了所有符合该项模式实例 的序列。通过计算包含模式实例I的倒排索引表1. llst中的序列数,可以判断I是否满足阈 值要求。对于正例阈值θρ,需要满足条件。类似的,对于反例阈值Θ Ν也需要满足。为了 用倒排索引算法找到序列中的模体,针对正反两个序列集合,这里需要对指定模式P构造 两组模式实例的字典列表,每个字典列表分别指向对应正例和反例序列的倒排索引。L pR 表模式P对应正例中不同实例的倒排索引结构,1^代表模式P对应反例中不同实例的倒排 索引结构。
[0051] 2)以字典顺序列出需要查找的指定模式P的所有实例集合I = U1-U,其中,I1 为模体实例;
[0052] 3)对每个模体实例^与待检测的核苷酸序列进行比较验证。若模体实例Ii满足 只出现在待检测的核苷酸正例序列集合中,而不出现在反例序列集合中,则该实例作为最 终所要得到的模体输出;
[0053] 所述步骤3)具体包括:
[0054] 3. 1、设核苷酸的序列的长度为m,指定模式P的长度为1,所述核苷酸序列包中正 向序列含m-1+l个1-mer,核苷酸序列所有的1-mer数为2* (m-1+l)个;
[0055] 3. 2、设序列集合 Sp= {S P1*"SPni},其中一条序列 Spi对应 2* (mrl+1)个 1-mer,Mpi =U11,…}为Spi包含的模式P的实例集合,且反例序列集合S N= {S N1~SNn},序列SNj包 含的1-mer数为2*( mj-l+l)个,其中MNj= {I η,···}为SNj中包含的模式P的实例集合;
[0056] 3. 3、设给定序列集合Sp= {SP1···SPn}和Sn= {S νΓ·· SNn},运行后找到符合模式P的 模体集合为M = (ΜΡ1 η…n M J - (MniU…UMJ。
[0057] 4)应用打分函数对所获得的模体进行评分,找到得分最高的模体,并将其输出。在 算法寻找模体过程中由于最终满足条件的结果数不定,可能会有很多不同的符合限定条件 的模体。因此,如何有效的在多个结果中找出最符合条件的模体以减少人工判断的工作量 则至关重要。
[0058] 因此,应用打分函数对模体发现过程中找到的模体进行评分,进而找到得分最高 的模体并将其输出。评分过程中设置highestscore和motif两个参数,分别表示此进程得 到的最优模体及其相对熵分数。在最后的输出过程中输出所有结果中得分最高的模体。
[0059] 进一步的,为了获取所需的模体,添加阈值限定条件为在输入的正例和反例两个 序列集合中寻找符合条件的模体。对于给定的正例序列集合S p= {S P1~SPni},设置对应正 例的阈值θρ(〇< θρ<1),要求在正例序列集合Sp中至少有比例为Θ p的序列有对应模 体的实例出现。而在反例序列集合Sn= {SN1-SNJ中,则设置对应反例的阈值θΝ(〇< ΘΝ < I),要求在反例集合SN*最多有比例为θ N条序列有对应模体实例出现。
[0060] 如图3所示,倒排索引算法流程图如图3所示,给出一个长为m的核苷酸序列m和 长为1的识别模式P,该序列包含m-1+l个Ι-mer,同样,包含其反向互补序列,一条核苷酸 序列所有的1-mer数为2*(m-l+l)个。假设序列集合S p= {SP1-SPni},其中一条序列Spi对 应2*(Iii 1-Rl)个1-mer,Mpi= {I u,···}为这些Spi包含的模式P的实例集合。对于反例 序列集合&= {SN1~SNn},序列SNj包含的1-mer数为2*(m j-l+l)个,其中MNj= {Ι η,···} 为这些SN]中包含的模式P的实例集合。因此,运用该思想运行后的最终找到的符合模式P 的模体集合为M= (Μριη…n MpJ-(MniU…UMJ。而此,找出的所有符合模式P的实例,需 要满足在M Pl(l彡i彡m)中存在与模式实例符合的序列,而不在MNj(l彡j彡η)中出现与 模式实例符合的序列,就是本文提出的倒排索引算法的核心思想。
[0061] 在倒排索引算法中,引入了阈值条件,在计算过程中去除了不必要的子序列,有效 的减少了内存空间的使用。接下来给出倒排索引算法的具体描述。设定指定模式PSNNN: 5 :ΝΝΝΧΝ,为了提高算法的运行效率,首先构建一个字典表,里面以字典顺序存储了模式P 的所有模式实例,字典表的每行对应模式P的一个模式实例。例如,图4. 2中字典表显不了 指定模式 "NNN:5 :NNNXN" 的其中两个实例:"CCANNNNNTTTAA" 和 "TTGNNNNNACCRG"。接下 来,字典表中每一项都会有一个指针指向一个倒排索引表,该表存储了所有符合该项模式 实例的序列。通过计算包含模式实例I的倒排索引表1. list中的序列数,可以判断I是否 满足阈值要求。对于正例阈值ΘΡ,需要满足至少有比例为θρ的序列中包含符合实例I的 子序列条件,I才为符合条件实例以进行进一步验证。构造两个指定模式P实例的字典列 表,每个字典列表分别指向对应正例和反例序列的倒排索引。L p代表模式P对应正例中的不 同实例的倒排索引结构,LnR表模式P对应反例中的不同实例的倒排索引结构。因此所有 的模体可以在倒排索引的帮助下以公式L P〇 0P)-LN(多ΘΝ)的形式获得。为此,首先移 除L p中不满足正例阈值条件的模式实例,即Ip= {1| θ ρ> (|SP|-|I. list|)/|SP|}。其次 若Lp中有模式实例出现在L#,且该实例不满足反例阈值条件即I n= {Ι| Θ N< (|GN|-|I. list |)/|Gn|},则从Lp中移除该实例,最终的满足正例和反例阈值条件的实例即为最终模 体。
[0062] 本发明的实验仿真过程:
[0063] 软硬件环境如下:
[0064] 1.硬件环境
[0065] (a)处理器:Intel (R) Core (TM) i5-347003. 20GHz
[0066] (b)内存:8G
[0067] (c)硬盘:500G,7200RPM,16M 缓存
[0068] 2.软件环境
[0069] (a)操作系统:Window7, M 位
[0070] (b)开发语言:java
[0071] (c)集成环境:eclipse
[0072] 为了对算法进行比较充分的测试,本节主要介绍两组数据对算法进行测试,其中 一组为模拟生物序列集合,另外一组为真实生物序列集合。
[0073] 1.模拟生物序列:保证A、C、G、T四种碱基每种碱基等概率出现的情况下,根据独 立同分布原则,生成20条随机序列,每条序列包含600个碱基。同时随机构造一个长为1 的模体m ;对于每条测试序列,随机生成一个与模体m汉明距为d的实例m'并将其植入到 该序列中的随机位置,每个模体实例m'都需要尽可能不同。前面提到的1和d为不定值, 不同的(l,d)植入实例决定了模体发现问题的难度。这里,实验时需要生成两个序列集合, 正例序列集合和反例序列集合,每个序列集合分别各20条序列集合,其中正例集合中包含 植入模体而反例中不包含植入模体。
[0074] 2.真实生物序列:在实验中,将生物序列作为第一组数据,分别对L-PMS算法和倒 排索引算法进行测试。由于以实验方法进行行模体的发现难度很大,因此,用两种算法来对 已发现的模体进行验证,从而验证算法的有效性,为以后进一步应用到序列集合中其他模 体的发现奠定基础。对于这组真实的生物序列,在运行时间合理的范围内主要关注其结果 的正确性。真实生物序列数据信息如表2所示。
[0075] 表2实际生物序列信息
[0076]
[0077] 实验结果判断方法
[0078] 模体发现算法的性能有多种评价方法,其中最常用的评价标准有两种:核苷
[0079] 酸水平(nucleotide level,简称η)和位点水平(site level,简称s)。通常使用 的
[0080] 参数包括敏感性(sensitivity)、特异性(specificity)、性能系数(performance coefficient)和相关系数(correlation coefficient) 〇
[0081] 通过分析实验结果可以直接获得的统计值包
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1