基于倒排索引结构的str数据存储及亲子鉴定排序比对方法

文档序号:9506204阅读:683来源:国知局
基于倒排索引结构的str数据存储及亲子鉴定排序比对方法
【技术领域】
[0001] 本发明属于数据存储及处理技术领域,具体涉及一种基于倒排索引结构的STR数 据存储及亲子鉴定排序比对方法。
【背景技术】
[0002] 据不完全统计,目前全国共有约50万寻亲人员,其中由于历史、自然灾害、社会问 题等原因造成的战乱孤儿(日本遗孤)、自然灾害孤儿和被拐卖人口等构成了寻亲人员的 主体。近年来,随着生物技术的不断发展,通过基因技术进行寻亲变得越来越可行。
[0003] 基于基因技术的寻亲是主要是通过使用亲子鉴定技术对人类遗传标记进行检测, 并根据遗传规律分析对疑似父母与子女血缘关系的鉴定。DNA是人类遗传信息的基本载体, 人类的染色体主要由DNA构成的,每个人体细胞有22对常染色体染色体和1对性染色体, 共计46条,分别来自父亲和母亲。父母双方各自为子代提供一半染色体,在受精后相互配 对,构成子代的染色体。由于人体约有30亿个核苷酸构成整个染色体系统,而且在生殖细 胞形成前的互换和组合是随机的,所以除同卵双胞胎以外,没有任何两个人具有完全相同 的核苷酸序列,这就是人的遗传多态性。尽管存在遗传的多态性,但每一个人的染色体必然 也只能来自其父母,这就是DNA亲子鉴定的理论基础。目前,在亲子鉴定过程中应用得较为 广泛的是基于短串联重复序列(short tandem repeat, STR)的鉴定技术,由于其高度敏感 化、高度个性化、完全数字化等特征,该技术已经成为世界通用的鉴别技术。一个典型的常 染色体STR基因座数据如下所示:
[0006] 〇
[0007] 目前,亲子鉴定问题的解决多依托于关系型数据库来存储和比对STR数据,以实 现样本供体亲子关系的判定。对于一个位点而言,其STR数据主要有两个数字组成,其中一 个来自父亲,另一个则来源于母亲。在检测过程中,假设每个样品检测16个位点(其中包 括一个性别位点)。每个样品的相同位点都会有两个等位基因的数值。具有生物学亲子关 系的两个被检人的15个STR位点中,每一个位点的数据都要求至少有一个数值是相同的。 对于这一问题而言,要判断两个个体之间是否具有亲子关系,最多需要在每个位点上比较4 次,15个位点则最多需要比较60次。当系统中存储的样本量逐渐增加时,其比对计算量也 将逐渐增加。因此,尽管使用关系型数据库的存储和比对方式在一定程度上解决了寻亲数 据库的存储和检索问题,但由于人体STR基因座数据自身的特点,其并不适合使用"表格" 的关系型数据库来存储,并在很大程度上影响了 STR数据的比对效率。此外,基因信息还存 在变异的可能性,一旦STR数据发生突变,将进一步增大使用STR数据的进行寻亲和亲子鉴 走难度。

【发明内容】

[0008] 为了克服上述现有技术存在的缺陷,本发明的目的在于提供一种基于倒排索引结 构的STR数据存储及亲子鉴定排序比对方法,该方法能够有效提高寻亲数据库的鲁棒性和 比对效率,同时能够有效保证寻亲结果的可靠性。
[0009] 本发明是通过以下技术方案来实现:
[0010] 本发明公开的基于倒排索引结构的STR数据存储及亲子鉴定排序比对方法,包括 以下步骤:
[0011] 1)基于倒排索引结构的STR数据存储
[0012] 首先,将所有STR数据进行预处理,将每个样本的STR数据集整理为标准格式;然 后,将每一个位点作为一个数据域,每个数据域中将存储各自的STR数据;最后,将STR数据 以倒排索引的方式存储;
[0013] 2)基于以倒排索引的方式存储的STR数据的亲子鉴定排序比对
[0014] 首先,将待寻亲STR数据进行预处理,将每个样本的STR数据集整理为标准格式; 然后,将每个位点的STR数据在各自的数据域中进行比对,并形成最终的亲子关系指数;最 后,判定样本之间是否存在亲子关系,如果亲子关系指数高于特定的值,则认为候选样本的 供体与待寻亲样本的供体具有亲子关系,反之则认为两者之间不存在亲子关系。
[0015] 步骤1)中,对STR数据进行预处理,将每个样本的STR数据集整理为标准格式,具 体如下:
[0016] 将样本数据集记为X = (X1, X2,…,χη};
[0017] 其中,X1表示第i个个体的STR数据,
其中,表示第j个 STR基因座的名称,Vjk表示第k个染色体上基因座j上STR的特征值。
[0018] 步骤1)中数据域的建立如下:
[0019] 遍历所有样本的STR数据,建立STR基因座名称的集合STRn= IstruStr2^" ,strj,针对STR#的每个str ;,建立不同的数据域,记为di;i = 1,2......m。
[0020] 步骤1)中将STR数据以倒排索引的方式存储,遍历样本数据集X,对任意X1,遍历 : (V]1/V]2),如果气;对应的数据域Clm中存在V n的索引,则将X i添加到该索引中;如果 不存在V]1的倒排索引,则建立该索引,并将X 1添加到索引中;对于']2采用相同的方式进行 处理。
[0021] 步骤2)中将待寻亲STR数据进行预处理,具体如下:
[0022] 将寻亲样本整理为如下格式:y = (Strj: (vn/vj2)},其中Strj表示第j个STR基 因座的名称,V jk表示第k个染色体上基因座j上STR的特征值。
[0023] 步骤2)中亲子关系指数的计算如下:
[0024] 对于样本y,遍历Strj: (vn/vj2),如果存在Strj对应的域七,则获得VjJP v_j2索引 所对应的样本集合,分别记为MP X j2;
[0025] 取心和X j2的并集,记为X』=X n U X j2;
[0026] 在获得每个Strj所对应的X」后,计算X」的并集I=馬W :I:2χ中的每 个元素均为候选样本;
[0027] 对X中的每一个元素 X1,计算
其中:
[0029] 则qi为候选样本X i的亲子关系指数。
[0030] 步骤2)中判断是否存在亲子关系,具体如下:
[0031] 依据对候选样本Xi进行降序排序,如果Θ,则认为待寻亲样本y的供体与 候选样本^的供体具有亲子关系;反之,则认为两者之间不存在亲子关系;其中,Θ为系统 事先设定的阈值,为基因座的数量减1。
[0032] 与现有技术相比,本发明具有以下有益的技术效果:
[0033] I、更高的查询效率
[0034] 传统的寻亲数据库往往使用关系型数据库,并通过垂直分割、建立视图、建立统计 信息等手段来优化、提高系统的查询效率。但是这些方法查询算法相对复杂,且不易于为缺 少相关背景知识运维人员所理解。本发明根据基因座点位的不同而设置不同的数据存储 域,并在不同的数据域中使用倒排索引结构来存储成对的STR基因座数据,极大地提高了 系统的查询效率。
[0035] 2、更高的可扩展性
[0036] 传统的基于关系型数据库的寻亲数据库,往往要求寻亲者必须使用特定的基因位 点来进行检测,极大地限制了寻亲数据库的使用范围,给广大寻亲用户带来极大的不便。本 发明对于寻亲基因点位没有特定的要求,如果需要对系统的点位扩展,只需要增加相应的 数据域,而无需对基础数据结构进行修正,极大地提高了系统的适用范围。
[0037] 3、避免基因突变对亲子鉴定效果的影响
[0038] 基因突变是限制寻亲数据库中亲子鉴定的准确性的巨大障碍之一。由于基因变异 的存在,使得亲子两代之间的STR基因座数据并不一定完全重合,因此当使用关系型数据 库来存储STR基因座数据时,STR基因座数据之间的完全匹配变得难于操作,SQL语句中的 WHERE条件难于精确匹配,极大地限制了亲子鉴定的效果。本发明利用不同数据域中的倒 排索引结构来存储STR基因座数据,在查询时,只需要根据不同数据域中的比对得分计算 出样本之间的亲子关系指数即可获得样本供体之间具有血缘关系的可能性,并依此进行排 序,极大地避免了基因突变对亲子鉴定效果的影响,本发明能够有效提高寻亲数据库的鲁 棒性和比对效率,同时能够有效保证寻亲结果的可靠性。
【附图说明】
[0039] 图1为系统总体框架示意图;
[0040]图2为本发明所使用的基于倒排索引结构的STR基因座数据存储;
[0041] 图3为基于倒排索引结构的STR数据存储的算法流程图;
[0042] 图4基于以倒排索引的方式存储的STR数据的亲子鉴定排序比对的算法流程图;
[0043] 图5和图6分别为未存储00002号样本时的数据结构以及在D8S1179域中存储 00002号样本后的数据结构;
[0044] 图7和图8为依据本发明原理设计实现的寻亲系统原型,图7为基于倒排索引结 构存储的STR数据,图8为寻亲算法得到的寻亲结果。
【具体实施方式】
[0045] 下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而 不是限定。
[0046] 参见图1,本发明基于倒排索引结构的STR数据存储及亲子鉴定排序比对方法,主 要包括两个方面:一是基于倒排索引结构的STR数据存储方法,参见图3,该方法会依据样 本所选取STR基因座,建立不同的数据域,在数据域中将STR数据以倒排索引结构存储;二 是亲子鉴定排序比对方法,参见图4,该方法基于划分域的倒排索引结构,计算寻亲样本与 数据库中样本的亲缘关系,实现快速、稳定、可靠的在线寻亲。
[0047] 1.基于倒排索引结构的STR数据存储方法
[0048] 基于倒排索引结构的STR数据存储方法,包括以下步骤:首先,将所有STR数据进 行预处理,将每个样本的STR数据集整理为标准格式;然后,将每一个位点作为一个数据 域,每个数据域中将存储各自的STR数据。最后,将STR数据倒排索引的方式存储。具体过 程如图3所示,具体而言:
[0049] 步骤一:数据预处理。待存储的数据整理为如下形式:样本数据集记为X = (X1, X2,…,xj,其中Xi表示第i个个体的STR数据,可表示为
其中 表示第j个STR基因座的名称,Vjk表示第k个染色体上基因座j上STR的特征值。
[0050] 步骤二:建立数据域。遍历所有的样本的STR数据,建立STR基因座名称的集合 STRn= {str Str2,…,strj,针对STR#的每个str ;,建立不同的数据域,记为山。
[0051 ] 步骤三:数据存储。遍历样本数据集X,对任意Xi,遍历: (νμ/νρ),如果jlK对 应的数据域Clni中存在V n的索引,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1