CN43—1258/TP
计算机工程与科学
2005年第27卷第2期
ISSN1007—130X
COMPUTERENGINEERING&SCI£NCE
V01.27,No.2,2005
文章编号:1007-130X(2005)02-0071-03
DNA序列拼接的分布式并行处理。
ADistributedParallelAlgorithmforDNA
Seel}uenceUencelbmessA
se
厂
方小永。骆志刚
FANGXiao-yong。LUOZhi-gang
(并行与分布处理国家重点实验室,湖南长沙410073)
(National
Laboratory
forParallelandDistHbutedProcessing-Changsha410073,China)
摘要:针对分布式存储环境,本文提出一种DNA序列拼接的并行算法,分别对序列拼接中OVERLAP、LAYOUT
和CONSENSUS阶段的串行处理过程和并行算法进行了描述,并给出了算法复杂性分析。数值试验结果表明,算法是高
效的。
Abstract:AnovelparallelalgorithmforDNAsequenceassemblyunderthedistributedmemory
environmentispresented
inthispaper.Theserialprocessingprocedureandparallelalgorithm
forOVERLAP,LAYoUTandCONSENSUSofthe
DNAsequenceassemblyaredescribed
respectively.Thecomplexityofthe
algorithm
isanalyzed.Experimentsshowthat
this
algorithmis
of‘
highefficiency.
关键词:生物信息;序列拼接;并行处理;分布式
Keywords:bioinformatics;sequenceassembIy;parallelalgorithm;distributedmemory
中图分类号:Q811.4文献标识码:A
1
引言
和Ⅱ几ER[引。此外,还有其它一些各有特点的拼接算法,如TIGR{3]、CAP4[4]等。DNA序列拼接在存储和时间开基因组计划的目标是获得所研究的生物的全基因组序
销上都非常巨大。例如,PHRAP在对规模为100000条列,而序列拼接是基因组测序阶段生物信息学研究的最基read的螺旋藻序列进行拼接时,所需要的内存空间将达到本、最重要的问题。众所周知,生物的基因组是指该生物所6G,在曙光3000上耗时86517.2592秒,约合24小时[5]。有遗传物质的总和,绝大部分基因组由DNA(脱氧核糖核因而,DNA序列拼接并行处理的研究有着理论和现实的重酸)组成。DNA是由核苷酸单体构成的线性、无分支的多要意义。这方面国外较著名的是SPSOFT(http://www.聚分子。核苷酸由碱基区分,DNA中,碱基分别是腺嘌呤spsoftcorn),国内中科院计算所智能信息处理实验室在曙(Adenine)、胞嘧啶(Cytosine)、鸟嘌呤(Guanine)和胸腺嘧光3000上实现了PHRAP的并行化[5]。
啶(Thymine),分别用字母A、C、G、T表示。基因组测序就本文提出分布式存储环境下进行DNA序列拼接的一是要确定DNA分子的碱基序列。由于基因组的每条染色种新的并行算法,这是基于Hamilton图的一类拼接方法。体长度可达数百万碱基对以上,而按目前的测序技术,一次我们将首先给出算法的推导过程和描述,然后对算法复杂实验最多只能直接测得不大于750个碱基,因此一个长的性进行分析并给出算法的性能评估。
DNA分子序列只能通过将一系列短序列拼接起来而得到。将基因组测序得到的上千万个小片段序列通过比对再正确2算法
拼接起来,就是DNA序列拼接和组装所要解决的问题。
目前,DNA序列拼接算法可以分为两类,它们分别基2.1
DNA序列拼接问题的描述
于Hamilton图和Euler图,最具代表的分别是PHRAP[1]
目前,主要的基因测序方法有鸟枪法、克隆重叠群法和
・
收稿日期:2003-08-25;修订日期:2003-10-30
作者简介:方小永(1978一),男,河南汝南人,硕士生,研究方向为生物信息处理;骆志刚,博士,教授,研究方向为生物信息学和高性能并行计算。
通讯地址:410073湖南省长沙市砚瓦池正街47号并行与分布处理国家重点实验室;Tel:(0731)4573666;E-mail:xyfangnudt@
163.eom
Address:NationalLaboratoryforParallelandDistributedProcessing,47YanwachiSt,Changsha,Hunan
410073,P.RChina
万
方数据7】
定向鸟枪法[6]。无论何种方法,都需要将DNA分子(或其长片段)先经过克隆形成若干个拷贝,将这些拷贝打碎成若干条短的、可以直接测序的片段(称为Read)。这些Read之间存在着大小不等的重叠(Overlap)区域。DNA序列拼接就是要通过这些Read重新构造出原始的DNA序列。
2.2算法的推导和描述
基于Hamilton图方法的基本思想是[7]:首先将所有的Read构成一个有向图G,每个Read看成一个结点,如果两个read之间存在有重叠,那么在相应的结点之间就存在有一条边;然后,通过寻找经过每个Read一次且仅一次的一条路径,就将序列拼接问题转化成Hamilton路经问题。这种方法可以分为如下三步:(1)找出序列片段间的重叠信息;(2)将存在有重叠的片段组合起来,形成一个Contig结构;(3)根据片段中每个碱基的质量值,在Contig结构中寻找一条最终序列,称作“Consensus”序列。
基于Hamilton图方法的拼接算法分以下三个阶段:
(1)OVEI也AP,对所有的片段进行两两比对,以获得可能存在的重叠部分的信息;
(2)LAYOUT,根据得到的重叠信息将存在重叠的片
段建立一种组合关系,形成一个链接体,称作“Contig”;
(3)CONSENSUS,根据构成链接体Contig的片段的
原始质量数据,在链接体中寻找一条质量最重的序列路径,
并获得与路径相对应的序列,称作“Consensus”序列。
本文算法的描述过程是,首先给出上述每一阶段的串行处理过程,然后给出本步的并行算法描述。算法描述中
处理机设为m+1个,记为P0,P1,.一,R。
2.2.1
OVERLAP
两个片段可以拼接的必要条件是这两个片段之间存在一个重叠部分overlap,并且在重叠部分有一个最小长度为min_zoord的精确匹配区域match。如果match的长度超过n“2x_word,则认为这两个片段是几乎相同的而不适合拼接。因此,算法首先需要找出所有满足条件的片段对(称
为ReadPair)[1]。另外,如果两个片段可以进行拼接,那么
只有那些首、尾相接的ReadPair才有意义,否则由于口verlap长度太长,可以认为两个片段是同一条序列。因此可以设置一个参数max—overlap,首先把每个片段划分为首、尾两部分(对于那些长度较短的片段,首、尾可以重叠),然后只需拿一个片段的首或尾与另一个片段的尾或首进行比对即可。
找出所有满足上述条件的ReadPair后,通过序列比对算法Smith-Waterman来精确计算每个ReadPair可能存在
的Overlap,并对每一个可能的overlap计算Smith-Water—
man得分Score,如果Score大于rain—score则认为Over—lap,否则不予接受。另外,为了提高拼接的准确度,需要对每个Overlap采用LLR(TheLargestLikelihoodRatio,简称LLR)进行打分[1],如果该Overlap的LLR大于0,则认
为是真Overlap,否则不予接受。
这一部分的串行处理过程描述如下:
输入:片段集合卜{fo,^,…,^一1}。
输出:Overlap集合O一{O(五,乃)J五,力∈r,且^和乃存在Overlap};包含Overlap的Contig集合t'2一{C1,C2,…,G}。
参数:min__ward:可接受的match的最小长度;m∞一word:可接
72
万
方数据受的match的最大长度;rain_score:可接受的Overlap的最小Smith-
Waterman得分;max_overlap:可接受的Overlap的最大长度。
Stepl:若11中尚未进行比对的片段不少于两个,则从_r中任意取两个片段:,i,五。
Step2:依据max_overlap参数,分别把五和兀分为首、尾两部分;比较五的首和乃的尾,比较五的尾和^的首;找出五和力
中所有满足条件“长度在rain—zoord和一一word范围内”的match;若在五和^中存在满足条件的match,则转Step3,否则转
Stepl。
Step3:对Step2得到的每一个match,首先要覆盖整个重叠区域(可能不是精确匹配);然后对整个重叠区域实施Smith—Water-
man算法,以精确寻找,f和^之间存在的Overlap,并计算该p
verlap的Smith—Waterman得分;取Smith—Waterman得分最高的
那个match覆盖的重叠区域作为Overlap,并把其Smith—Water—
marl得分记为Score(五,乃)。
’
Step4:若Score(五,五)小于min—score,则转Stepl,否则转
Step5。
Step5:对Overlap利用Smith—Waterman算法进行回溯,并计算每条回溯路径下的L上瓜,以寻找五和^的最佳对齐方式(align—
ment)。
Step6:取LLR最高的那个alignment作为Overlap(,f,fJ),然后把Overlap(,f,fJ)输出到相应的Contig,并保存相应的重叠信息,然后转Stepl执行;该操作中Contig是动态创建的,并且依据
输出的Overlap动态合并。
在本阶段,我们需要对佗条片段两两比对以寻找0一verlap,即每个片段需要和其它片段比对以寻找Overlap。因此,我们只要对全体片段数据进行正确分割,每个片段就可以独立执行比对操作,可以并行处理。我们的做法是:把本阶段全体片段数据比对操作总量分为m+1组,分别分派给m+1个处理机执行。为保持负载平衡,我们在任务分派时对全体片断数据进行动态分割。
并行算法描述如下:
输入、输出及参数设置同本阶段的串行处理过程;
设布尔变量control控制算法对数据进行动态分割,初始为
true;
Stepl:P0作如下操作:
(1)For(i=0;i<n--1;)
{
For(j=i+1;j<n;j++)
{对五,五执行本阶段串行处理过程Step2~
Step6};
if(contr01)
{control=false;
i—i+2(m+1)一1;}
else
{control=true;i=i+1;)
}
(2)For(i=1;i<m+1;i++)
{接收Pi(1≤i≤m)的处理结果数据包并解包;}
(3)处理Po,P1,…,P01的执行结果以形成Contig集合
n,终止程序执行;
Step2:B(1≤女≤m)作以下操作:
(1)For(i=k;i<n一1;)
{
For(j—i+1;j<n;j++)
{对五,五执行本阶段串行处理过程Step2~
Step6};
if(contr01)
{control=false;
i—i+2(m+1)一(2k+1);}
else
{control=true;i=i+(2k+1);}}
(2)对执行结果进行打包并发送给P0;
2.2.2
LAYOUT
若片段工和^存在重叠区域,则称厂f和^直接相关;若片段五与片段^直接相关,片段正与片段^直接
相关,片段^与片段^不直接相关,则称片段五与片段^间接相关。
输出Consensus序列。为保证精度,每个片段在投票前需
对其质量值进行修正,修正的依据是该片段保存的重叠区域信息。由于片段间的投票操作是彼此独立的,因此可以并行处理。
这一部分的串行处理过程描述如下:
输入:计算所有片段偏移量以后的Contig集合12={c1,Q,…,Q};与每个Contig对应的片段集合n,n,…,n。
输出:与每个Contig对应的consensus序列S1,Sz,…,&。操作:处理n中的每个Contig。对每个Contig,设它包含的所有片段按照其偏移量从小到大依次排列为:,0,^,…,^,记为,一{,0,^,…,^)。则对每个Contig,作以下操作:
Stepl:若,不空,则从首位置取下一个片段五。
Step2:依据OVERLAP阶段保存的重叠信息对,f的碱基字符排列和质量值进行修正,使得五的质量值最大。
在OVERLAP阶段,我们在输出Overlap时,要求Over-
lap输出到相应的Contig,即把所有具有直接相关或间接相关关系的片段汇集在同一Contig里,这些里的片段最终将形成一个consensus序列S。为此,需要计算每一条片段相对于S起始位置的偏移量。我们需要分别对每个Contig包含的片段计算其偏移量以决定片段间的组合关系。
这一部分的串行处理过程描述如下:
输入:包含Overlap的Contig集合12={Ca,c2,…,G);
输出:计算所有片段偏移量以后的Contig集合n={c1,C2,
…,Q};
操作:处理n中的每个Contig;对每个Contig,作以下操作:
Stepl:对该Contig包含的Overlap按照LLR以降序排列,并删除那些LLR小于0的Overlap(因为这样的Overlap不适合拼接)。
Step2:取下LLR最高的那个Overlap(^,fJ)。若五的起始位
置在,i的左端,则取五的起始位置为参考原点,否则取力的起始位置为参考原点。
Step3:处理该Contig包含的每个Overlap(五,五),即计算五,乃
相对于参考原点的偏移量(若片段的起始位置在参考原点左端,则偏移量为负,否则为正);包含参考原点的那个片段的偏移量为0。
Step4:取偏移量最小的那个片段的起始位置为参考原点,并把该片段的偏移量取为O;依据新的参考原点,修正所有片段的偏移量。
在本阶段,由于各个Contig彼此独立,我们采用工作池的动态任务分派方法将其并行化。
’
并行算法描述如下:
输入、输出及参数设置同本阶段串行处理过程。
设参数count表示已经处理完毕的Contig数目,初始为0。Stepl:Po作如下操作:
(1)从n中取出rn个Contig:Cx,Cz,…,.Ck,分别发送给P1,
P2,…,Pm;count一0;0=/2--{Cl,Q’..・,G}。
(2)如果n不空,则从n中取出一个Contig:G(1≤i≤^);对cf执行本阶段串行处理过程Stepl~Step4,l"2=0--{G},∞勰£增
1。
(3)接收Pi(1≤f≤m)的处理结果,courⅡ增1。
如果n不空,则从0中取出一个Contig:C/(1≤i≤屉)发送给B,n=n一{ci),否则通知Pf终止执行。
(4)如果court等于五,则终止执行,否则转(2)执行。Step2:Pf(1≤i≤m)作以下操作:(1)接收来自P0的Contig数据cf;
(2)对c}执行本阶段串行处理过程Stepl~Step4;(3)发送处理结果给Po,转(1)执行。
需要指出的是,若Contig个数忌小于处理机个数m+1,会出现某些处理机空闲的情况。但是,由于相对总计算量而言,本阶段的计算量非常小,对整体并行效率影响不大。
2.2.3
CONSENSUS
DNA序列拼接程序的输入文件有两个,一个是序列文件(SequenceFile),另一个是与序列文件对应的质量文件
(QuanlityFile)。序列文件包含将要进行拼接的片段数据
(Read),质量文件包括与序列文件中每个片段中每个碱基对应的质量值数据(QualityValue)。所谓一个碱基的质量值口是指该碱基的可信度大小,它与该碱基测序错误概率P的关系[13为:
q一一10log(p)
由此可知,P越小,q就越大,该碱基的可信度就越大。一个片段的质量值是指该片段上所有碱基质量值之和,CONSENSUS阶段的最终目的就是寻找一条质量值最大的Consensus序列。
我们采取每个片段分别对Consensus序列投票的方法
万
方数据Step3:执行^的投票操作:首先依据五的偏移量定位^在consensus序列S上的起始位置BeginPosition和结束位置EndPosition;对于S上从BeginPosition到EndPosition的每一个位置,把,f在该位置上的某种类型的碱基(A、C、G、T之一)质量值都有a…c
累加在S在该位置上的那种类型的碱基质量值上(S上每个位置
gt四种类型碱基的质量值累加器,初始值为O)。Step4:从,删除^,转Stepl执行,直到,为空。
Step5:对于S上每个位置输出累加质量值之和最大的那种类型碱基字符,最终输出一条质量值之和最大的一条序列,即coil—sen5us序列。
对于本阶段算法,Contig之间彼此独立,每一个Contig
内部片段之间的投票操作彼此独立。因此,我们可以顺序
处理每个Contig,对每个Contig可以采用静态任务分配方
法将其并行化。
并行算法描述如下:
输入、输出及参数设置同本阶段串行处理过程。
设参数count表示已经处理完毕的Contig数目,其初始为0。Stepl:Po作如下操作:
(1)0若不空,则从0中取出一个Contig:G(1≤i≤志),否则通知P1,P2,…,f,卅终止执行。
(2)把c:f包含的片段按偏移量从小到大的顺序依次划分为m
+1组:r0,n,n,…,L;把n,r2,…,n分别发送给P1,P2,…,
Pm;12=0--{cf}。
(3)把r0取作,,执行本阶段串行处理过程Stepl~Step5。(4)接收P1,P2,…,Pk的执行结果,合并所有处理机的执行结果,count增1。
(5)如果count等于k,则终止执行,否则转(1)执行。Step2:Pi(1≤筵;m)作以下操作:
(1)接收来自Po的Contig数据中的片段数据ri(1≤i≤m)。(2)把n取作r’,执行本阶段串行处理过程Stepl~Step5;(3)发送处理结果给P0,转(1)执行。
3性能分析
设算法要处理咒个片段,产生L个Overlap,k个Con-tig,每通信一次所用启动时间为L。,每发送一个数据所
用时间为T出。。3.1
oV腿IAP
设每两个片段执行本阶段串行处理过程所用时间平均
为Tr吲,则:
数为咒(行一1)/2,执行时间为以(咒一1)k/2。
本阶段串行处理过程的计算复杂性为O(n2),比对次并行算法执行时间等于通信时闳T—。媳上诗簋赋迥、
了k。。每个处理机分得片段个数为竹/(优+1),因此T。巾为(n/(m+1))(n/(m十1)一1)To/2,L。。为LT出。+
mL。,并行算法执行时间为L一十kp=(挖/(m+1))
(n/(m+1)一1)T,吲/2+LT出。十mT#a。。
(下转第77页)
73
Program分别传递PloP6参数,然后调用程序CommPro—表1测试环境
gram即可实现PloP6的功能。封装设计在信息抽象基础上进行描述、提取、加工,最后返回具体的需求结果。这对于大型的信息系统来说,增加业务功能却不增加代码,省去了大量的重复性工作,这一点是有非常好的应用前景的。
参考文献:
[1]李木金,李桔,王光兴.一种基于Web的网络智能管理模型及
表2测试结果
其实现[J].软件学报,1999,10(11):1191-1193.
[2]段海新,杨家海,吴建平.基于Web和数据库的网络管理系统
的设计与实现[J].软件学报,2000,11(4):468-472.
1(
行)7689.09
1.000100[3]侯小梅,毛宗源,张波.基于遗传算法的管理信息系统的智能
串4
1989.403.86596.63分解口].系统工程与电子技术,2000,22(1):5-7.
61495.215.14285.71[4q张文增,孙振国,赵冬斌,等.基于B/S结构的实验室管理信
8
1148.17
6.697
83.71
息系统开发方案fJ].计算机工程与应用,2002,38(11):232-
233.
E5]路军,王亚东,王晓龙.面向对象的管理信息Agent系统[J].
计算机工程与应用,2000,36(3):30-32.
1(
行)13731.401.000100串4
3760.293.65291_29(上接第73页)
62460.435.58193.01加速比为(,z(竹一1)‰/2)/((n/(m+1))(n/(m+1)一1)
8
2069.54
6.635
82.94
L“/2+LL‰+mL,)o
数值试验结果表明,该算法具有良好的加速比。
3.2
LAYoUT
设处理一个Overlap所用时间平均为L础p,则:
5结束语
本阶段串行处理过程的计算复杂度为0(L),执行时
目前的拼接算法中,如PHRAP,某些步骤计算局部性间为L1k砌。。
不明显,直接并行难度较大。我们在认真分析已有拼接算并行算法执行时间等于最后一个结束计算的处理机法的基础上,结合我们针对的并行处理环境,提出一种新的只(1≤i≤m)与Po的通信时间L一加上最后一个结束计
算的处理机P,(o≤J≤m)的计算时间了k,Ta聊为
拼接算法。算法的性能分析和数值试验表明算法是高
效的。
LL州。/(m+1),瓦~为2忌T刍/(m+1)+(L+竹)T出。/
(m+1),因此并行算法执行时间为瓦一+Ta哪一2kL。/
(m+1)+(L+咒)Tk/(m+1)+L‰。/(m+1)。参考文献:
I-1-1
PGreemDocumentationforPhrap[EB/OL-].http://bozem-
+1)+Lk。/(m+1))。
加速比为L1k砌,/(2klk。/(m+1)+(L+n)t‰/(m
am
mbt.washington.edu/phrap.docs/phrap.html,2003-07.
[2]P
APevzner,Haixu
Tang,MSWaterman.ANewApproach
3.3
CoNSENSUS
tO
FragmentAssemblyinDNASequencing[R].The5thAn—
nual
Int’l
Conf
On
设最终形成的Consensus序列长度为h,每个片段处理
Computational
Molecular
Biology
(RECOMB2001)[C].2001.时问平均为Z
,则
[3]G
GSutton,0
white,MDAdmas,eta1.TIGRAssembler:A
本阶段串行处理过程的执行时间为竹Z
。
NewToolforAssemblingLargeShotgunSequencingProjects
并行算法执行时间等于通信时间瓦一加上计算时间
I-J].Genome
ScienceandTechnology,1995,1(1):9-19.
了’。巾,丁。脚为,2T一/(m+1),L一为2kmL。+(行+^)I-4-1
XiaoqiuHuang,GlenHerrmannsfeldt,TedJones,etaLCAP4一
了乙。,因此并行算法执行时间为L一+了■,一2kmT刍+
Paracel’SDNASequenceAssembly
Program[EB/OL].http://
(行+^)Tk+挖z
加速比为竹k。/(2kmL。+(”+h)死。+
;/(m+1)。
、^H吼paracel.com,2000-09.
[5]
张法,刘志勇,乔香珍,等.生物序列拼接算法一PHRAP的卵z
/(m十1))。
并行化研究[R-I.第七届全国并行计算年会,2002.[6]杨金水.基因组学[M].北京:高等教育出版社,2002.4数值试验
[7]X
Huang,A
MadamCAP3:ADNASequenceAssemblyPro—
gramEJ].Genome
Research,1990,9(9):868—877.
我们在8节点的分布式存储并行计算环境下进行了本文算法的数值试验,测试环境见表1。
我们对两个片段数目分别为5000和7000的数据集进行了测试,结果如表2,其中绐出的时间为主节点完成所
有数据处理的运行时间。
万
方数据77
DNA序列拼接的分布式并行处理
作者:作者单位:刊名:英文刊名:年,卷(期):被引用次数:
方小永, 骆志刚
并行与分布处理国家重点实验室,湖南,长沙,410073计算机工程与科学
COMPUTER ENGINEERING AND SCIENCE2005,27(2)3次
参考文献(7条)
1. P Green Documentation for Phrap 2003
2. P A Pevzner;Haixu Tang;M S Waterman A New Approach to Fragment Assembly in DNA Sequencing[外文会议] 2001
3. G G Sutton;O White;M D Admas TIGR Assembler:A New Tool for Assembling Large Shotgun SequencingProjects 1995(01)
4. Xiaoqiu Huang;Glen Herrmannsfeldt;Ted Jones CAP4-Paracel's DNA Sequence Assembly Program 20005. 张法;刘志勇;乔香珍 生物序列拼接算法-PHRAP的并行化研究 20026. 杨金水 基因组学 2002
7. X Huang;A Madan CAP3:A DNA Sequence Assembly Program 1990(09)
本文读者也读过(10条)
1. 蔡毅. 骆志刚 DNA序列拼接算法分析及并行化探讨[会议论文]-2008
2. 张法. 刘志勇. 乔香珍. 刘玮 生物序列拼接算法--phrap的并行化研究[会议论文]-2003
3. 骆志刚. 方小永. 丁凡. LUO Zhi-gang. FANG Xiao-yong. DING Fan DNA序列拼接的研究进展及挑战[期刊论文]-计算机工程与科学2007,29(8)
4. 方小永 DNA序列拼接的分布式并行处理[学位论文]2003
5. 郑纬民. 林皎. 罗水华 基于欧拉超路的并行DNA序列拼接算法[会议论文]-2003
6. 郑纬民. 林皎. 罗水华. ZHENG Wei-Min. LIN Jiao. LUO Shui-Hua DNA序列拼接中欧拉超路算法的新并行策略[期刊论文]-计算机学报2006,29(1)
7. 张法. 陈子阳. 刘玮 MPI+OpenMP在生物序列拼接算法phrap并行化中的应用[会议论文]-20028. 蔡葵 DNA片段拼接中的重复序列预归并方法研究[学位论文]2009
9. 李小妹. 王能超. LI Xiao-mei. WANG Neng-chao 序列拼接中重复子串屏蔽的KMP算法[期刊论文]-小型微型计算机系统2006,27(2)
10. 涂俐兰. 王能超 DNA序列拼接中重复序列屏蔽的一种新方法[期刊论文]-华中科技大学学报(自然科学版)2004,32(8)
引证文献(4条)
1. 欧阳继超. 冯萍. 康继昌 超长DNA序列的高效压缩算法研究[期刊论文]-计算机技术与发展
2013(12)
2. 金毅 基于网格的信息模型的研究与应用[学位论文]硕士 2006
3. 毛逸清. 赵东升. 李稚锋. 杭兴宜. 骆志刚. 张成岗 大规模EST序列聚类的并行算法研究进展[期刊论文]-军事医学科学院院刊 2006(6)
4. 骆志刚. 方小永. 丁凡 DNA序列拼接的研究进展及挑战[期刊论文]-计算机工程与科学 2007(8)
本文链接:http://d.wanfangdata.com.cn/Periodical_jsjgcykx200502027.aspx
CN43—1258/TP
计算机工程与科学
2005年第27卷第2期
ISSN1007—130X
COMPUTERENGINEERING&SCI£NCE
V01.27,No.2,2005
文章编号:1007-130X(2005)02-0071-03
DNA序列拼接的分布式并行处理。
ADistributedParallelAlgorithmforDNA
Seel}uenceUencelbmessA
se
厂
方小永。骆志刚
FANGXiao-yong。LUOZhi-gang
(并行与分布处理国家重点实验室,湖南长沙410073)
(National
Laboratory
forParallelandDistHbutedProcessing-Changsha410073,China)
摘要:针对分布式存储环境,本文提出一种DNA序列拼接的并行算法,分别对序列拼接中OVERLAP、LAYOUT
和CONSENSUS阶段的串行处理过程和并行算法进行了描述,并给出了算法复杂性分析。数值试验结果表明,算法是高
效的。
Abstract:AnovelparallelalgorithmforDNAsequenceassemblyunderthedistributedmemory
environmentispresented
inthispaper.Theserialprocessingprocedureandparallelalgorithm
forOVERLAP,LAYoUTandCONSENSUSofthe
DNAsequenceassemblyaredescribed
respectively.Thecomplexityofthe
algorithm
isanalyzed.Experimentsshowthat
this
algorithmis
of‘
highefficiency.
关键词:生物信息;序列拼接;并行处理;分布式
Keywords:bioinformatics;sequenceassembIy;parallelalgorithm;distributedmemory
中图分类号:Q811.4文献标识码:A
1
引言
和Ⅱ几ER[引。此外,还有其它一些各有特点的拼接算法,如TIGR{3]、CAP4[4]等。DNA序列拼接在存储和时间开基因组计划的目标是获得所研究的生物的全基因组序
销上都非常巨大。例如,PHRAP在对规模为100000条列,而序列拼接是基因组测序阶段生物信息学研究的最基read的螺旋藻序列进行拼接时,所需要的内存空间将达到本、最重要的问题。众所周知,生物的基因组是指该生物所6G,在曙光3000上耗时86517.2592秒,约合24小时[5]。有遗传物质的总和,绝大部分基因组由DNA(脱氧核糖核因而,DNA序列拼接并行处理的研究有着理论和现实的重酸)组成。DNA是由核苷酸单体构成的线性、无分支的多要意义。这方面国外较著名的是SPSOFT(http://www.聚分子。核苷酸由碱基区分,DNA中,碱基分别是腺嘌呤spsoftcorn),国内中科院计算所智能信息处理实验室在曙(Adenine)、胞嘧啶(Cytosine)、鸟嘌呤(Guanine)和胸腺嘧光3000上实现了PHRAP的并行化[5]。
啶(Thymine),分别用字母A、C、G、T表示。基因组测序就本文提出分布式存储环境下进行DNA序列拼接的一是要确定DNA分子的碱基序列。由于基因组的每条染色种新的并行算法,这是基于Hamilton图的一类拼接方法。体长度可达数百万碱基对以上,而按目前的测序技术,一次我们将首先给出算法的推导过程和描述,然后对算法复杂实验最多只能直接测得不大于750个碱基,因此一个长的性进行分析并给出算法的性能评估。
DNA分子序列只能通过将一系列短序列拼接起来而得到。将基因组测序得到的上千万个小片段序列通过比对再正确2算法
拼接起来,就是DNA序列拼接和组装所要解决的问题。
目前,DNA序列拼接算法可以分为两类,它们分别基2.1
DNA序列拼接问题的描述
于Hamilton图和Euler图,最具代表的分别是PHRAP[1]
目前,主要的基因测序方法有鸟枪法、克隆重叠群法和
・
收稿日期:2003-08-25;修订日期:2003-10-30
作者简介:方小永(1978一),男,河南汝南人,硕士生,研究方向为生物信息处理;骆志刚,博士,教授,研究方向为生物信息学和高性能并行计算。
通讯地址:410073湖南省长沙市砚瓦池正街47号并行与分布处理国家重点实验室;Tel:(0731)4573666;E-mail:xyfangnudt@
163.eom
Address:NationalLaboratoryforParallelandDistributedProcessing,47YanwachiSt,Changsha,Hunan
410073,P.RChina
万
方数据7】
定向鸟枪法[6]。无论何种方法,都需要将DNA分子(或其长片段)先经过克隆形成若干个拷贝,将这些拷贝打碎成若干条短的、可以直接测序的片段(称为Read)。这些Read之间存在着大小不等的重叠(Overlap)区域。DNA序列拼接就是要通过这些Read重新构造出原始的DNA序列。
2.2算法的推导和描述
基于Hamilton图方法的基本思想是[7]:首先将所有的Read构成一个有向图G,每个Read看成一个结点,如果两个read之间存在有重叠,那么在相应的结点之间就存在有一条边;然后,通过寻找经过每个Read一次且仅一次的一条路径,就将序列拼接问题转化成Hamilton路经问题。这种方法可以分为如下三步:(1)找出序列片段间的重叠信息;(2)将存在有重叠的片段组合起来,形成一个Contig结构;(3)根据片段中每个碱基的质量值,在Contig结构中寻找一条最终序列,称作“Consensus”序列。
基于Hamilton图方法的拼接算法分以下三个阶段:
(1)OVEI也AP,对所有的片段进行两两比对,以获得可能存在的重叠部分的信息;
(2)LAYOUT,根据得到的重叠信息将存在重叠的片
段建立一种组合关系,形成一个链接体,称作“Contig”;
(3)CONSENSUS,根据构成链接体Contig的片段的
原始质量数据,在链接体中寻找一条质量最重的序列路径,
并获得与路径相对应的序列,称作“Consensus”序列。
本文算法的描述过程是,首先给出上述每一阶段的串行处理过程,然后给出本步的并行算法描述。算法描述中
处理机设为m+1个,记为P0,P1,.一,R。
2.2.1
OVERLAP
两个片段可以拼接的必要条件是这两个片段之间存在一个重叠部分overlap,并且在重叠部分有一个最小长度为min_zoord的精确匹配区域match。如果match的长度超过n“2x_word,则认为这两个片段是几乎相同的而不适合拼接。因此,算法首先需要找出所有满足条件的片段对(称
为ReadPair)[1]。另外,如果两个片段可以进行拼接,那么
只有那些首、尾相接的ReadPair才有意义,否则由于口verlap长度太长,可以认为两个片段是同一条序列。因此可以设置一个参数max—overlap,首先把每个片段划分为首、尾两部分(对于那些长度较短的片段,首、尾可以重叠),然后只需拿一个片段的首或尾与另一个片段的尾或首进行比对即可。
找出所有满足上述条件的ReadPair后,通过序列比对算法Smith-Waterman来精确计算每个ReadPair可能存在
的Overlap,并对每一个可能的overlap计算Smith-Water—
man得分Score,如果Score大于rain—score则认为Over—lap,否则不予接受。另外,为了提高拼接的准确度,需要对每个Overlap采用LLR(TheLargestLikelihoodRatio,简称LLR)进行打分[1],如果该Overlap的LLR大于0,则认
为是真Overlap,否则不予接受。
这一部分的串行处理过程描述如下:
输入:片段集合卜{fo,^,…,^一1}。
输出:Overlap集合O一{O(五,乃)J五,力∈r,且^和乃存在Overlap};包含Overlap的Contig集合t'2一{C1,C2,…,G}。
参数:min__ward:可接受的match的最小长度;m∞一word:可接
72
万
方数据受的match的最大长度;rain_score:可接受的Overlap的最小Smith-
Waterman得分;max_overlap:可接受的Overlap的最大长度。
Stepl:若11中尚未进行比对的片段不少于两个,则从_r中任意取两个片段:,i,五。
Step2:依据max_overlap参数,分别把五和兀分为首、尾两部分;比较五的首和乃的尾,比较五的尾和^的首;找出五和力
中所有满足条件“长度在rain—zoord和一一word范围内”的match;若在五和^中存在满足条件的match,则转Step3,否则转
Stepl。
Step3:对Step2得到的每一个match,首先要覆盖整个重叠区域(可能不是精确匹配);然后对整个重叠区域实施Smith—Water-
man算法,以精确寻找,f和^之间存在的Overlap,并计算该p
verlap的Smith—Waterman得分;取Smith—Waterman得分最高的
那个match覆盖的重叠区域作为Overlap,并把其Smith—Water—
marl得分记为Score(五,乃)。
’
Step4:若Score(五,五)小于min—score,则转Stepl,否则转
Step5。
Step5:对Overlap利用Smith—Waterman算法进行回溯,并计算每条回溯路径下的L上瓜,以寻找五和^的最佳对齐方式(align—
ment)。
Step6:取LLR最高的那个alignment作为Overlap(,f,fJ),然后把Overlap(,f,fJ)输出到相应的Contig,并保存相应的重叠信息,然后转Stepl执行;该操作中Contig是动态创建的,并且依据
输出的Overlap动态合并。
在本阶段,我们需要对佗条片段两两比对以寻找0一verlap,即每个片段需要和其它片段比对以寻找Overlap。因此,我们只要对全体片段数据进行正确分割,每个片段就可以独立执行比对操作,可以并行处理。我们的做法是:把本阶段全体片段数据比对操作总量分为m+1组,分别分派给m+1个处理机执行。为保持负载平衡,我们在任务分派时对全体片断数据进行动态分割。
并行算法描述如下:
输入、输出及参数设置同本阶段的串行处理过程;
设布尔变量control控制算法对数据进行动态分割,初始为
true;
Stepl:P0作如下操作:
(1)For(i=0;i<n--1;)
{
For(j=i+1;j<n;j++)
{对五,五执行本阶段串行处理过程Step2~
Step6};
if(contr01)
{control=false;
i—i+2(m+1)一1;}
else
{control=true;i=i+1;)
}
(2)For(i=1;i<m+1;i++)
{接收Pi(1≤i≤m)的处理结果数据包并解包;}
(3)处理Po,P1,…,P01的执行结果以形成Contig集合
n,终止程序执行;
Step2:B(1≤女≤m)作以下操作:
(1)For(i=k;i<n一1;)
{
For(j—i+1;j<n;j++)
{对五,五执行本阶段串行处理过程Step2~
Step6};
if(contr01)
{control=false;
i—i+2(m+1)一(2k+1);}
else
{control=true;i=i+(2k+1);}}
(2)对执行结果进行打包并发送给P0;
2.2.2
LAYOUT
若片段工和^存在重叠区域,则称厂f和^直接相关;若片段五与片段^直接相关,片段正与片段^直接
相关,片段^与片段^不直接相关,则称片段五与片段^间接相关。
输出Consensus序列。为保证精度,每个片段在投票前需
对其质量值进行修正,修正的依据是该片段保存的重叠区域信息。由于片段间的投票操作是彼此独立的,因此可以并行处理。
这一部分的串行处理过程描述如下:
输入:计算所有片段偏移量以后的Contig集合12={c1,Q,…,Q};与每个Contig对应的片段集合n,n,…,n。
输出:与每个Contig对应的consensus序列S1,Sz,…,&。操作:处理n中的每个Contig。对每个Contig,设它包含的所有片段按照其偏移量从小到大依次排列为:,0,^,…,^,记为,一{,0,^,…,^)。则对每个Contig,作以下操作:
Stepl:若,不空,则从首位置取下一个片段五。
Step2:依据OVERLAP阶段保存的重叠信息对,f的碱基字符排列和质量值进行修正,使得五的质量值最大。
在OVERLAP阶段,我们在输出Overlap时,要求Over-
lap输出到相应的Contig,即把所有具有直接相关或间接相关关系的片段汇集在同一Contig里,这些里的片段最终将形成一个consensus序列S。为此,需要计算每一条片段相对于S起始位置的偏移量。我们需要分别对每个Contig包含的片段计算其偏移量以决定片段间的组合关系。
这一部分的串行处理过程描述如下:
输入:包含Overlap的Contig集合12={Ca,c2,…,G);
输出:计算所有片段偏移量以后的Contig集合n={c1,C2,
…,Q};
操作:处理n中的每个Contig;对每个Contig,作以下操作:
Stepl:对该Contig包含的Overlap按照LLR以降序排列,并删除那些LLR小于0的Overlap(因为这样的Overlap不适合拼接)。
Step2:取下LLR最高的那个Overlap(^,fJ)。若五的起始位
置在,i的左端,则取五的起始位置为参考原点,否则取力的起始位置为参考原点。
Step3:处理该Contig包含的每个Overlap(五,五),即计算五,乃
相对于参考原点的偏移量(若片段的起始位置在参考原点左端,则偏移量为负,否则为正);包含参考原点的那个片段的偏移量为0。
Step4:取偏移量最小的那个片段的起始位置为参考原点,并把该片段的偏移量取为O;依据新的参考原点,修正所有片段的偏移量。
在本阶段,由于各个Contig彼此独立,我们采用工作池的动态任务分派方法将其并行化。
’
并行算法描述如下:
输入、输出及参数设置同本阶段串行处理过程。
设参数count表示已经处理完毕的Contig数目,初始为0。Stepl:Po作如下操作:
(1)从n中取出rn个Contig:Cx,Cz,…,.Ck,分别发送给P1,
P2,…,Pm;count一0;0=/2--{Cl,Q’..・,G}。
(2)如果n不空,则从n中取出一个Contig:G(1≤i≤^);对cf执行本阶段串行处理过程Stepl~Step4,l"2=0--{G},∞勰£增
1。
(3)接收Pi(1≤f≤m)的处理结果,courⅡ增1。
如果n不空,则从0中取出一个Contig:C/(1≤i≤屉)发送给B,n=n一{ci),否则通知Pf终止执行。
(4)如果court等于五,则终止执行,否则转(2)执行。Step2:Pf(1≤i≤m)作以下操作:(1)接收来自P0的Contig数据cf;
(2)对c}执行本阶段串行处理过程Stepl~Step4;(3)发送处理结果给Po,转(1)执行。
需要指出的是,若Contig个数忌小于处理机个数m+1,会出现某些处理机空闲的情况。但是,由于相对总计算量而言,本阶段的计算量非常小,对整体并行效率影响不大。
2.2.3
CONSENSUS
DNA序列拼接程序的输入文件有两个,一个是序列文件(SequenceFile),另一个是与序列文件对应的质量文件
(QuanlityFile)。序列文件包含将要进行拼接的片段数据
(Read),质量文件包括与序列文件中每个片段中每个碱基对应的质量值数据(QualityValue)。所谓一个碱基的质量值口是指该碱基的可信度大小,它与该碱基测序错误概率P的关系[13为:
q一一10log(p)
由此可知,P越小,q就越大,该碱基的可信度就越大。一个片段的质量值是指该片段上所有碱基质量值之和,CONSENSUS阶段的最终目的就是寻找一条质量值最大的Consensus序列。
我们采取每个片段分别对Consensus序列投票的方法
万
方数据Step3:执行^的投票操作:首先依据五的偏移量定位^在consensus序列S上的起始位置BeginPosition和结束位置EndPosition;对于S上从BeginPosition到EndPosition的每一个位置,把,f在该位置上的某种类型的碱基(A、C、G、T之一)质量值都有a…c
累加在S在该位置上的那种类型的碱基质量值上(S上每个位置
gt四种类型碱基的质量值累加器,初始值为O)。Step4:从,删除^,转Stepl执行,直到,为空。
Step5:对于S上每个位置输出累加质量值之和最大的那种类型碱基字符,最终输出一条质量值之和最大的一条序列,即coil—sen5us序列。
对于本阶段算法,Contig之间彼此独立,每一个Contig
内部片段之间的投票操作彼此独立。因此,我们可以顺序
处理每个Contig,对每个Contig可以采用静态任务分配方
法将其并行化。
并行算法描述如下:
输入、输出及参数设置同本阶段串行处理过程。
设参数count表示已经处理完毕的Contig数目,其初始为0。Stepl:Po作如下操作:
(1)0若不空,则从0中取出一个Contig:G(1≤i≤志),否则通知P1,P2,…,f,卅终止执行。
(2)把c:f包含的片段按偏移量从小到大的顺序依次划分为m
+1组:r0,n,n,…,L;把n,r2,…,n分别发送给P1,P2,…,
Pm;12=0--{cf}。
(3)把r0取作,,执行本阶段串行处理过程Stepl~Step5。(4)接收P1,P2,…,Pk的执行结果,合并所有处理机的执行结果,count增1。
(5)如果count等于k,则终止执行,否则转(1)执行。Step2:Pi(1≤筵;m)作以下操作:
(1)接收来自Po的Contig数据中的片段数据ri(1≤i≤m)。(2)把n取作r’,执行本阶段串行处理过程Stepl~Step5;(3)发送处理结果给P0,转(1)执行。
3性能分析
设算法要处理咒个片段,产生L个Overlap,k个Con-tig,每通信一次所用启动时间为L。,每发送一个数据所
用时间为T出。。3.1
oV腿IAP
设每两个片段执行本阶段串行处理过程所用时间平均
为Tr吲,则:
数为咒(行一1)/2,执行时间为以(咒一1)k/2。
本阶段串行处理过程的计算复杂性为O(n2),比对次并行算法执行时间等于通信时闳T—。媳上诗簋赋迥、
了k。。每个处理机分得片段个数为竹/(优+1),因此T。巾为(n/(m+1))(n/(m十1)一1)To/2,L。。为LT出。+
mL。,并行算法执行时间为L一十kp=(挖/(m+1))
(n/(m+1)一1)T,吲/2+LT出。十mT#a。。
(下转第77页)
73
Program分别传递PloP6参数,然后调用程序CommPro—表1测试环境
gram即可实现PloP6的功能。封装设计在信息抽象基础上进行描述、提取、加工,最后返回具体的需求结果。这对于大型的信息系统来说,增加业务功能却不增加代码,省去了大量的重复性工作,这一点是有非常好的应用前景的。
参考文献:
[1]李木金,李桔,王光兴.一种基于Web的网络智能管理模型及
表2测试结果
其实现[J].软件学报,1999,10(11):1191-1193.
[2]段海新,杨家海,吴建平.基于Web和数据库的网络管理系统
的设计与实现[J].软件学报,2000,11(4):468-472.
1(
行)7689.09
1.000100[3]侯小梅,毛宗源,张波.基于遗传算法的管理信息系统的智能
串4
1989.403.86596.63分解口].系统工程与电子技术,2000,22(1):5-7.
61495.215.14285.71[4q张文增,孙振国,赵冬斌,等.基于B/S结构的实验室管理信
8
1148.17
6.697
83.71
息系统开发方案fJ].计算机工程与应用,2002,38(11):232-
233.
E5]路军,王亚东,王晓龙.面向对象的管理信息Agent系统[J].
计算机工程与应用,2000,36(3):30-32.
1(
行)13731.401.000100串4
3760.293.65291_29(上接第73页)
62460.435.58193.01加速比为(,z(竹一1)‰/2)/((n/(m+1))(n/(m+1)一1)
8
2069.54
6.635
82.94
L“/2+LL‰+mL,)o
数值试验结果表明,该算法具有良好的加速比。
3.2
LAYoUT
设处理一个Overlap所用时间平均为L础p,则:
5结束语
本阶段串行处理过程的计算复杂度为0(L),执行时
目前的拼接算法中,如PHRAP,某些步骤计算局部性间为L1k砌。。
不明显,直接并行难度较大。我们在认真分析已有拼接算并行算法执行时间等于最后一个结束计算的处理机法的基础上,结合我们针对的并行处理环境,提出一种新的只(1≤i≤m)与Po的通信时间L一加上最后一个结束计
算的处理机P,(o≤J≤m)的计算时间了k,Ta聊为
拼接算法。算法的性能分析和数值试验表明算法是高
效的。
LL州。/(m+1),瓦~为2忌T刍/(m+1)+(L+竹)T出。/
(m+1),因此并行算法执行时间为瓦一+Ta哪一2kL。/
(m+1)+(L+咒)Tk/(m+1)+L‰。/(m+1)。参考文献:
I-1-1
PGreemDocumentationforPhrap[EB/OL-].http://bozem-
+1)+Lk。/(m+1))。
加速比为L1k砌,/(2klk。/(m+1)+(L+n)t‰/(m
am
mbt.washington.edu/phrap.docs/phrap.html,2003-07.
[2]P
APevzner,Haixu
Tang,MSWaterman.ANewApproach
3.3
CoNSENSUS
tO
FragmentAssemblyinDNASequencing[R].The5thAn—
nual
Int’l
Conf
On
设最终形成的Consensus序列长度为h,每个片段处理
Computational
Molecular
Biology
(RECOMB2001)[C].2001.时问平均为Z
,则
[3]G
GSutton,0
white,MDAdmas,eta1.TIGRAssembler:A
本阶段串行处理过程的执行时间为竹Z
。
NewToolforAssemblingLargeShotgunSequencingProjects
并行算法执行时间等于通信时间瓦一加上计算时间
I-J].Genome
ScienceandTechnology,1995,1(1):9-19.
了’。巾,丁。脚为,2T一/(m+1),L一为2kmL。+(行+^)I-4-1
XiaoqiuHuang,GlenHerrmannsfeldt,TedJones,etaLCAP4一
了乙。,因此并行算法执行时间为L一+了■,一2kmT刍+
Paracel’SDNASequenceAssembly
Program[EB/OL].http://
(行+^)Tk+挖z
加速比为竹k。/(2kmL。+(”+h)死。+
;/(m+1)。
、^H吼paracel.com,2000-09.
[5]
张法,刘志勇,乔香珍,等.生物序列拼接算法一PHRAP的卵z
/(m十1))。
并行化研究[R-I.第七届全国并行计算年会,2002.[6]杨金水.基因组学[M].北京:高等教育出版社,2002.4数值试验
[7]X
Huang,A
MadamCAP3:ADNASequenceAssemblyPro—
gramEJ].Genome
Research,1990,9(9):868—877.
我们在8节点的分布式存储并行计算环境下进行了本文算法的数值试验,测试环境见表1。
我们对两个片段数目分别为5000和7000的数据集进行了测试,结果如表2,其中绐出的时间为主节点完成所
有数据处理的运行时间。
万
方数据77
DNA序列拼接的分布式并行处理
作者:作者单位:刊名:英文刊名:年,卷(期):被引用次数:
方小永, 骆志刚
并行与分布处理国家重点实验室,湖南,长沙,410073计算机工程与科学
COMPUTER ENGINEERING AND SCIENCE2005,27(2)3次
参考文献(7条)
1. P Green Documentation for Phrap 2003
2. P A Pevzner;Haixu Tang;M S Waterman A New Approach to Fragment Assembly in DNA Sequencing[外文会议] 2001
3. G G Sutton;O White;M D Admas TIGR Assembler:A New Tool for Assembling Large Shotgun SequencingProjects 1995(01)
4. Xiaoqiu Huang;Glen Herrmannsfeldt;Ted Jones CAP4-Paracel's DNA Sequence Assembly Program 20005. 张法;刘志勇;乔香珍 生物序列拼接算法-PHRAP的并行化研究 20026. 杨金水 基因组学 2002
7. X Huang;A Madan CAP3:A DNA Sequence Assembly Program 1990(09)
本文读者也读过(10条)
1. 蔡毅. 骆志刚 DNA序列拼接算法分析及并行化探讨[会议论文]-2008
2. 张法. 刘志勇. 乔香珍. 刘玮 生物序列拼接算法--phrap的并行化研究[会议论文]-2003
3. 骆志刚. 方小永. 丁凡. LUO Zhi-gang. FANG Xiao-yong. DING Fan DNA序列拼接的研究进展及挑战[期刊论文]-计算机工程与科学2007,29(8)
4. 方小永 DNA序列拼接的分布式并行处理[学位论文]2003
5. 郑纬民. 林皎. 罗水华 基于欧拉超路的并行DNA序列拼接算法[会议论文]-2003
6. 郑纬民. 林皎. 罗水华. ZHENG Wei-Min. LIN Jiao. LUO Shui-Hua DNA序列拼接中欧拉超路算法的新并行策略[期刊论文]-计算机学报2006,29(1)
7. 张法. 陈子阳. 刘玮 MPI+OpenMP在生物序列拼接算法phrap并行化中的应用[会议论文]-20028. 蔡葵 DNA片段拼接中的重复序列预归并方法研究[学位论文]2009
9. 李小妹. 王能超. LI Xiao-mei. WANG Neng-chao 序列拼接中重复子串屏蔽的KMP算法[期刊论文]-小型微型计算机系统2006,27(2)
10. 涂俐兰. 王能超 DNA序列拼接中重复序列屏蔽的一种新方法[期刊论文]-华中科技大学学报(自然科学版)2004,32(8)
引证文献(4条)
1. 欧阳继超. 冯萍. 康继昌 超长DNA序列的高效压缩算法研究[期刊论文]-计算机技术与发展
2013(12)
2. 金毅 基于网格的信息模型的研究与应用[学位论文]硕士 2006
3. 毛逸清. 赵东升. 李稚锋. 杭兴宜. 骆志刚. 张成岗 大规模EST序列聚类的并行算法研究进展[期刊论文]-军事医学科学院院刊 2006(6)
4. 骆志刚. 方小永. 丁凡 DNA序列拼接的研究进展及挑战[期刊论文]-计算机工程与科学 2007(8)
本文链接:http://d.wanfangdata.com.cn/Periodical_jsjgcykx200502027.aspx