CN106503235B - 基于Spark平台的XP-EHH算法的分布式处理实现方法 - Google Patents
基于Spark平台的XP-EHH算法的分布式处理实现方法 Download PDFInfo
- Publication number
- CN106503235B CN106503235B CN201610972593.7A CN201610972593A CN106503235B CN 106503235 B CN106503235 B CN 106503235B CN 201610972593 A CN201610972593 A CN 201610972593A CN 106503235 B CN106503235 B CN 106503235B
- Authority
- CN
- China
- Prior art keywords
- ehh
- file
- site
- dna
- ped
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Biomedical Technology (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明公开了一种基于Spark平台的XP‑EHH算法的分布式处理实现方法,首先采集染色体数据,存储至HDFS文件系统,然后对染色体数据进行预处理,将预处理后的染色体数据缓存至Spark平台的RDD缓存中,将需要使用的数据广播到参与XP‑EHH算法分布式处理的Spark工作节点中;将ped文件RDD拆分成不同的片段,发放给各个Spark工作节点,各个Spark工作节点并行化地执行XP‑EHH计算的各个步骤,从而实现分布式处理。采用本发明可以因为XP‑EHH算法的并行化执行,使得在大数据环境下基于Spark平台的XP‑EHH算法能够保持良好的扩展性,进而能够克服现有实现方式无法支持大数据的问题。
Description
技术领域
本发明属于生物信息学技术领域,更为具体地讲,涉及一种基于Spark平台的XP-EHH算法的分布式处理实现方法。
背景技术
近年来,无论是在生物领域还是其他领域,数据都呈现爆炸式增长。面对如此巨大的数据,传统软件在数据分析、处理上已经越来越不能满足人们的需求。与此同时,分布式存储,分布式计算等大数据技术日渐成熟。得益于这些大数据技术,使得可以在普通的PC机上也能处理大数据。各领域对大数据技术的需求不断增大,也促使很多公司在大数据技术上投入更多的研发精力。目前已经有很多成熟的商业云计算平台,例如阿里云平台,IBM云平台,亚马逊云平台等。除了这些商业云平台外,还有一些开源的云计算技术,例如Hadoop和Spark,它们的发展非常迅速,同时也已经用实践证明其在大数据处理上的优势。Spark与Hadoop相比,因为Spark采用了全新架构,同时是基于内存计算,从而使得Spark的运算速度非常快,并且特别适合迭代式的数值计算。
在生物信息学中,随着科学技术的不断发展,二代测序技术的日渐成熟,使得基因测序的费用更低、通量更高、速度更快。测序技术的革新导致了今后基因序列数据的增长无法预测,目前数据库中提取的基因序列数据量早已是千万,上亿级别,而在这些海量的基因序列数据中隐藏的有价值的信息也在等待人们去挖掘。数据量的增加,为人们的科学研究提供了最基本的保障,不过,也正是因为数据量的爆炸式增长,使得现在生物学中面临了一个新的问题,海量数据如何去更高效、更深入的分析。传统软件的处理能力在海量数据面前显然是苍白无力的,这也迫使人们将目光投向云计算、大数据技术。
目前在群体间选择信号领域,具有代表性的算法为XP-EHH(Cross PopulationExtend Haplotype Homozygosity)算法,该算法基于EHH(扩展单倍型纯合子)方法,并引入了his(Intergrated haplotype score)方法中的群体比较策略,可以达到更好的选择信号检测效果。XP-EHH算法主要包括以下计算:位点左右遗传距离Cutoff计算、EHH计算、IHH计算、IHH积分计算、XP-EHH计算,每个计算的具体计算过程可以参见文献“Sabeti PC,ReichDE,Higgins JM,Levine HZP,Richter DJ,Schaffner SF,Gabriel SB,Platko JV,Patterson NJ,McDonald GJ.Detecting recent positive selection in the humangenome from haplotype structure[J].Nature,419:832–837.”和“Sabeti PC,VarillyP,Fry B,Lohmueller J,Hostetter E,Cotsapas C,Xie X,Byrne EH,McCarroll SA,Gaudet R.Genome-wide detection and characterization of positive selection inhuman populations[J].Nature,449:913–918.”。
对于XP-EHH算法的实现,目前用的比较多的是用C++语言编写的基于Linux多线程技术的开源软件xpehh。与很多传统软件类似,该算法在数据量比较小的情况下能够保证有不错的性能,如果数据量变大的话,对硬件的要求也是要相应的提高(例如需要使用超级计算机)。按照目前数据量的增长速度,单机版的程序已经不能满足人们的需求,从而导致生物信息学中迫切需要能支持分布式存储、分布式计算的新程序。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于Spark平台的XP-EHH算法的分布式处理实现方法,采用Spark平台来实现XP-EHH算法的分布式处理,以解决传统方式实现的XP-EHH算法在大规模数据集时性能偏低的问题。
为实现上述发明目的,本发明基于Spark平台的XP-EHH算法的分布式处理实现方法,包括以下步骤:
S1:采集染色体数据,存储至HDFS文件系统,每条染色体数据包括三种文件:ped文件、map文件和pop文件,其中ped文件存储DNA变异位点序列信息,map文件存储ped中变异DNA序列每个位点在全局DNA序列中的位置,pop文件存储ped文件中DNA序列的随机分类,每条数据只属于一个分类;
S2:对染色体数据进行预处理:
对于ped文件,仅保留ped文件中每个样本的DNA序列名称和DNA序列字符串,删除其他信息,然后从pop文件中获取每条数据对应的所属分类,添加至ped文件的对应数据中,最后对ped文件中的每条数据的DNA序列字符串,分别进行奇位点提取和偶位点提取,将每条数据拆分成两条数据;
对于map文件,仅保留map文件中每条数据的行号和变异位点在全局DNA中的位置,删除其他信息;
S3:将步骤S2预处理后的染色体数据缓存至Spark平台的RDD缓存中,然后广播到参与XP-EHH算法分布式处理的Spark工作节点中;
S4:将ped文件RDD拆分成不同的片段,发放给各个Spark工作节点,各个Spark工作节点并行化地分别对所接收片段包含的位点执行Cutoff计算,将计算得到的每个位点对应的左右遗传距离边界值保存到CutoffRDD;
S5:将ped文件RDD拆分成不同的片段,发放给各个Spark工作节点,各个Spark工作节点并行地从CutoffRDD中提取出对应位点的左右遗传距离边界值,对于DNA序列分别依次进行EHH计算、IHH计算和IHH积分,最后计算得到两个群体的XP-EHH值,存储至HDFS文件系统中。
本发明基于Spark平台的XP-EHH算法的分布式处理实现方法,首先采集染色体数据,存储至HDFS文件系统,然后对染色体数据进行预处理,将预处理后的染色体数据缓存至Spark平台的RDD缓存中,将需要使用的数据广播到参与XP-EHH算法分布式处理的Spark工作节点中;将ped文件RDD拆分成不同的片段,发放给各个Spark工作节点,各个Spark工作节点并行化地执行XP-EHH计算的各个步骤,从而实现分布式处理。采用本发明可以因为XP-EHH算法的并行化执行,使得在大数据环境下基于Spark平台的XP-EHH算法能够保持良好的扩展性,进而能够克服现有实现方式无法支持大数据的问题。
附图说明
图1是本发明基于Spark平台的XP-EHH算法的分布式处理实现方法的具体实施方式流程图;
图2是ped文件数据的拆分示例图;
图3是基于RDD的XP-EHH计算示意图;
图4是基于Redis的XP-EHH计算示意图;
图5是EHH单条读写模式示意图;
图6是EHH批量读写模式示意图;
图7是本实施例中染色体数据概况;
图8是本发明计算每组染色体所花费时间;
图9是单机xpehh算法计算每组染色体所花费时间;
图10是不同Spark工作节点数目下每组染色体数据采用本发明计算所需时间。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图1是本发明基于Spark平台的XP-EHH算法的分布式处理实现方法的具体实施方式流程图。如图1所示,本发明基于Spark平台的XP-EHH算法的分布式处理实现方法的具体步骤包括:
S101:染色体数据获取:
采集染色体数据,存储至HDFS(Hadoop分布式文件系统),每条染色体数据包括三种文件:ped文件、map文件和pop文件。其中ped文件存储DNA变异位点序列信息,每行一个样本(sample),本实施例中每行数据的结构如下:
map文件存储ped中变异DNA序列每个位点在全局DNA序列中的位置(pe中的DNA序列只是完整DNA基因序列中的一部分,变异的位点),每行数据的结构如下:
pop文件存储ped文件中DNA序列的随机分类,每条数据只属于一个分类(0或1),每行数据的结构如下:
在实际的染色体数据中,仅染色体变异位点DNA序列长度就可以达到百万级,其数据量非常可观。本发明中之所以选择HDFS,是因为其具有高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序,可以满足本发明的要求。
S102:染色体数据预处理:
对于XP-EHH算法,步骤S101采集的染色体数据通常会包含一些无用的信息,需要对染色体数据进行预处理,预处理方法为:
对于ped文件,仅保留ped文件中每个样本的DNA序列名称和DNA序列字符串,删除其他信息,然后从pop文件中获取每条数据对应的所属分类,添加至ped文件的对应数据中,最后对ped文件中的每条数据的DNA序列字符串,分别进行奇位点提取和偶位点提取,将每条数据拆分成两条数据,即这两条数据除DNA序列字符串不同以外(分别为原DNA序列字符串的奇位点和偶位点),其他数据相同。
图2是ped文件数据的拆分示例图。如图2所示,样本sample2530的DNA序列字符串为“AGGTGGCCAA”,所拆分得到的奇点位DNA序列字符串为“AGGCA”,偶点位DNA序列字符串为“GTGCA”。经过以上处理后,ped文件中每行数据的结构如下:
对于map文件,仅保留map文件中每条数据的行号和变异位点在全局DNA中的位置,删除其他信息。
S103:染色体数据广播:
将步骤S102预处理后的染色体数据缓存至Spark平台的RDD(ResilientDistributed Datasets,弹性分布式数据集)缓存中,然后广播到参与XP-EHH算法分布式处理的Spark工作节点中。一般来说,每个Spark工作节点就是一台计算机,这样每个Spark工作节点在需要这些数据进行计算的时候,可以只在本地读取,而不需要再去请求数据,从而节省了节点之间传输数据的时间。尤其是ped文件,由于ped文件很大,而且同时需要在ped文件RDD上进行多次操作,将ped文件通过RDD进行缓存后,就可以仅在第一次调用ped文件RDD的时候进行计算,后续如果在调用ped文件RDD,就可以直接在内存中取值,而无需再计算。
S104:并行执行Cutoff计算:
位点左右遗传距离Cutoff计算主要是用来寻找某个位点的左右遗传距离边界值。约束条件可由如下表示:
最终程序返回left和right值。
其中,core表示位点位置,left和right分别表示位点的左右遗传距离边界值,calculateEHH表示EHH计算,threshold表示阈值。针对Cutoff计算,一般可以从位点core开始,向左右依次遍历,然后计算EHH值,最后找到left,right。
EHH主要是用来表示ped文件中DNA序列中某个位点在左右遗传距离之间的序列频率,表示为:
其中core代表ped文件中DNA序列的某个位点,core的取值范围为[0,DNAlength],DNA length指DNA序列的长度;left表示遗传距离左侧边界,right表示遗传距离右侧边界;p表示ped中DNA序列条数;G表示ped中DNA序列在left,right之间字符串的个数统计,n表示G中统计的字符串数量。
显然,染色体数据的位点众多,而在计算ped文件中每个位点的左右遗传距离边界值时,每个位点的计算之间是独立的,因此可以采用Spark工作节点实现分布式计算,其具体方法为:将ped文件RDD拆分成不同的片段,发放给各个Spark工作节点,各个Spark工作节点并行化地分别对所接收片段包含的位点执行Cutoff计算,将计算得到的每个位点对应的左右遗传距离边界值保存到CutoffRDD。本实施例中CutoffRDD的结构如下:
其中Int表示位点坐标,String表示cutoff左右区间“left-right”。
S105:并行执行XP-EHH计算:
因为在步骤S105中声明了CutoffRDD,XP-EHH的计算是在CutoffRDD上进行的。在CutoffRDD每个分区中遍历每个位点,同时取出每个位点的左右遗传距离边界值left、right。针对DNA序列的两个分类,分别进行如下计算:遍历left到right计算EHH并进行缓存,然后进行IHH计算和IHH积分计算得到A、B两个分类群体EHH关于遗传距离的积分IA和IB,最后计算得到XP-EHH。这部分计算也可以实现分布式并行化,因为每个位点之间数值计算是彼此独立的。因此本步骤的具体过程为:将ped文件RDD拆分成不同的片段,发放给各个Spark工作节点,各个Spark工作节点并行地从CutoffRDD中提取出对应位点的左右遗传距离边界值,对于DNA序列分别依次进行EHH计算、IHH计算和IHH积分,最后计算得到两个群体的XP-EHH值,存储至HDFS文件系统中。
IHH计算是在EHH计算基础之上,每个位点遍历遗传距离之间的EHH然后与全局DNA序列距离的一个乘积。IHH的计算对于位点左侧和右侧的计算方式大体相同,只不过对于全局DNA序列距离的计算有少许差别。IHH的计算公式可用如下表示:
IHH=calculateEHH(core,i)*|(map(i)-map(core))|
其中,map()表示从map文件中获取的括号中位点在全局DNA序列中的位置。
IHH的计算也是针对ped文件中的每个DNA位点进行的,每个位点都有左右边界Cutoff,每个位点都需要向左侧循环计算至left,向右循环计算至right。
IHH积分是对位点core在Cutoff区间的IHH求和过程。IHH积分在计算过程中可以拆分为两个步骤,分为向位点core左侧积分和向位点core右侧积分,然后积分值相加。
I=I_Left+I_Right
XP-EHH的计算公式如下:
其中IA是A群体EHH关于遗传距离的积分,IB是B群体EHH关于遗传距离的积分,通常A为实验群体,B为参考群体,AB群体是在pop文件通过所属分类来定义的。
根据以上过程可以看出,XP-EHH计算的执行过程中,需要对各个中间计算的结果进行缓存。Spark是基于内存计算的,所以基于Spark平台的程序的执行速度是很快的。不过,因为是基于内存计算,XP-EHH计算的中间结果都会缓存到内存中,那么就会导致内存的使用量会很多,因此需要对中间结果的缓存进行合理设计,以便提高效率。
根据本发明的步骤可知,在本发明中需要使用RDD缓存,那么将XP-EHH计算的中间结果都采用RDD缓存来进行缓存是一种合理的思路。由于RDD是Spark自带的缓存,因此采用RDD缓存可以实现高速率的数据读写。图3是基于RDD的XP-EHH计算示意图。如图3所示,但是因为Spark中的“血统”机制,使得每个RDD都会保存它是如何创建,以及如何转化过来的信息,这样就造成内存开销过大的问题。在XP-EHH计算中,如果遍历CutoffRDD,然后针对每个位点进行EHH、IHH等计算的操作都基于RDD缓存的话,其优点是速度较快,然而会占用很多内存。
在大数据的情况下,为了节约内存,本实施例中将XP-EHH计算的一部分中间结果采用Redis缓存进行缓存。Redis是由Salvatore Sanfilippo开发的一个分布式Key-Value(键-值对)内存数据库系统。除了支持Key-Value数据结构,Redis还支持HashMap、Set、List等。由于Redis有着丰富的数据类型,使得它能够满足不同的业务需求。因此本实施例中设计了基于Redis的XP-EHH计算方式。图4是基于Redis的XP-EHH计算示意图。在XP-EHH计算中,在计算EHH的时候,将所有位点的EHH全部计算完毕,存储到Redis中,后续计算IHH等的时候从Redis中再读取。因为XP-EHH计算的EHH会有上亿条,所以批量计算完毕,批量存储到Redis中会节省很多内存。
由于EHH计算中,需要计算某个位点到在Cutoff区间中的每个位点之间的EHH值,以便后续计算使用,如果将每个群体中以位点起终位置作为key,这种方式读取和写入都是单条操作,效率非常低。图5是EHH单条读写模式示意图。如图5所示,在群体pop0中,起始位点3,对应6条数据,分别对应终止位点1-6,起始位点4也相似。可见,在采用Redis缓存存储EHH计算结果时,由于Redis缓存属于外部存储,其读取速度本身会较RDD缓存较慢,如果再采用单条读写模式,其读取速度会进一步降低。因此结合本发明中所涉及数据的特点,利用Redis中对象存储方式进行设计了新的批量读写模式。图6是EHH批量读写模式示意图。如图6所示,在批量存储模式中,以“所属群体:起始位点”作为Key值,图6中为pop0:3或pop0:4,以“终止位点:EHH值”的HashMap作为Value,从而实现批量读写,提高读取速率。当然,除了Redis缓存,RDD缓存也可以采用这种批量读写模式来提高速率。
实施例
为了说明本发明的技术效果,采用本发明与传统的以单机方式实现的xpehh算法在具体实例下进行实验比较。本实施例中所采用的对比xpehh算法采用JoePickrell于2014年开发完成的C++版本的基于Linux多线程技术的xpehh,GitHub地址为:https://github.com/joepickrell/xpehh,虽然该程序中用到了Linux多线程技术,使某些操作是可以并行的执行,并且使用了缓存,使得程序的速度又进一步得到了提升。但是该程序存在的主要问题就是,如果DNA序列数据稍微大一些,程序会花费大量的内存,如果内存不足的情况下,程序便不能运行成功,因此本实施例中采用了超级计算机来进行实验。
本实施例中的实验数据来自中科院昆明动物所提供的真实数据,包括猪的1号染色体数据chr1、5号染色体数据chr5和18号染色体数据chr18。图7是本实施例中染色体数据概况。如图7所示,本实施例中所采用的DNA序列的数据量和长度都是非常可观的。
本次实验中本发明采用10台普通计算机(CPU:Intel Core i7-3770 3.40GHz*8,RAM:16G(1600MHz),硬盘:1T),单机xpehh算法采用超级计算机(CPU:80核,RAM:2019G)。图8是本发明计算每组染色体所花费时间。图9是单机xpehh算法计算每组染色体所花费时间。对比图8和图9可知,对于本实施例中的实验数据,10台普通PC机就可以达到超级计算机的运算效果,可见,本发明基于Spark平台的XP-EHH算法的分布式处理实现方法是可行的,可以通过分布式处理实现方法来提高大数据情况下的计算效率,降低计算成本。
在三组染色体中,每组抽取50条数据,在不同Spark工作节点数目情况下,计算采用本发明进行计算所需要的时间。图10是不同Spark工作节点数目下每组染色体数据采用本发明计算所需时间。根据图10可知,当参与的计算机(即Spark工作节点)数量增多,所花费的时间可以进一步降低,因此本发明具有较强的扩展性。当面对很大的数据集时,可以通过增加Spark工作节点来动态扩展计算性能,而不至于过多地增加成本。此外,由于本发明采用了分布式处理实现,如果某台机器出现故障,平台可以直接将此Spark工作节点从集群中移除,将该台机器上面的计算转移到其他机器上执行,整个处理过程不受影响,从而有效提高容错性。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (4)
1.一种基于Spark平台的XP-EHH算法的分布式处理实现方法,其特征在于,包括以下步骤:
S1:采集染色体数据,存储至HDFS文件系统,每条染色体数据包括三种文件:ped文件、map文件和pop文件,其中ped文件存储DNA变异位点序列信息,map文件存储ped中变异DNA序列每个位点在全局DNA序列中的位置,pop文件存储ped文件中DNA序列的随机分类,每条数据只属于一个分类;
S2:对染色体数据进行预处理:
对于ped文件,仅保留ped文件中每个样本的DNA序列名称和DNA序列字符串,删除其他信息,然后从pop文件中获取每条数据对应的所属分类,添加至ped文件的对应数据中,最后对ped文件中的每条数据的DNA序列字符串,分别进行奇位点提取和偶位点提取,将每条数据拆分成两条数据;
对于map文件,仅保留map文件中每条数据的行号和变异位点在全局DNA中的位置,删除其他信息;
S3:将步骤S2预处理后的染色体数据缓存至Spark平台的RDD缓存中,然后广播到参与XP-EHH算法分布式处理的Spark工作节点中;
S4:将ped文件RDD拆分成不同的片段,发放给各个Spark工作节点,各个Spark工作节点并行化地分别对所接收片段包含的位点执行Cutoff计算,将计算得到的每个位点对应的左右遗传距离边界值保存到CutoffRDD;
S5:将ped文件RDD拆分成不同的片段,发放给各个Spark工作节点,各个Spark工作节点并行地从CutoffRDD中提取出对应位点的左右遗传距离边界值,对于DNA序列分别依次进行EHH计算、IHH计算和IHH积分,最后计算得到两个群体的XP-EHH值,存储至HDFS文件系统中;
其中,EHH计算公式如下:
其中core代表ped文件中DNA序列的某个位点,core的取值范围为[0,DNA length],DNAlength指DNA序列的长度;left表示遗传距离左侧边界,right表示遗传距离右侧边界;p表示ped中DNA序列条数;G表示ped中DNA序列在left,right之间字符串的个数统计,n表示G中统计的字符串数量;
IHH计算公式如下:
IHH=calculateEHH(core,i)*|(map(i)-map(core))|
其中,map()表示从map文件中获取的括号中位点在全局DNA序列中的位置;
IHH积分计算公式如下:
I=I_Left+I_Right
2.根据权利要求1所述的XP-EHH算法的分布式处理实现方法,其特征在于,所述步骤S5中,EHH计算、IHH计算和IHH积分计算得到的中间结果均缓存在RDD缓存上。
3.根据权利要求1所述的XP-EHH算法的分布式处理实现方法,其特征在于,所述步骤S5中,EHH计算所计算得到的中间结果缓存在Redis缓存中,IHH计算和IHH积分所计算得到的中间结果均缓存在RDD缓存上。
4.根据权利要求3所述的XP-EHH算法的分布式处理实现方法,其特征在于,所述EHH计算所计算得到的中间结果采用以下方式实现批量读取:在存储时,以“所属群体:起始位点”作为Key值,以“终止位点:EHH值”的HashMap作为Value。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610972593.7A CN106503235B (zh) | 2016-11-07 | 2016-11-07 | 基于Spark平台的XP-EHH算法的分布式处理实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610972593.7A CN106503235B (zh) | 2016-11-07 | 2016-11-07 | 基于Spark平台的XP-EHH算法的分布式处理实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106503235A CN106503235A (zh) | 2017-03-15 |
CN106503235B true CN106503235B (zh) | 2019-04-05 |
Family
ID=58323265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610972593.7A Active CN106503235B (zh) | 2016-11-07 | 2016-11-07 | 基于Spark平台的XP-EHH算法的分布式处理实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106503235B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704728B (zh) * | 2017-09-26 | 2021-01-19 | 华南理工大学 | 一种基因序列比对的云计算加速方法 |
CN110021345B (zh) * | 2017-12-08 | 2021-02-02 | 北京哲源科技有限责任公司 | 基于spark平台的基因数据分析方法 |
CN110136777A (zh) * | 2018-02-09 | 2019-08-16 | 深圳先进技术研究院 | 一种基于Spark框架的重测序序列比对方法 |
CN109918429A (zh) * | 2019-01-21 | 2019-06-21 | 武汉烽火众智智慧之星科技有限公司 | 基于Redis的Spark数据处理方法及系统 |
CN110008217B (zh) * | 2019-04-08 | 2021-11-30 | 湖南大地同年生物科技有限公司 | 一种面向基因组突变数据的存储和索引处理方法 |
CN113157717B (zh) * | 2021-05-26 | 2024-07-12 | 深圳平安智汇企业信息管理有限公司 | 长数据链路的缓存刷新方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281130A (zh) * | 2014-09-22 | 2015-01-14 | 国家电网公司 | 一种基于大数据技术的水电设备监测和故障诊断系统 |
CN106407749A (zh) * | 2016-08-30 | 2017-02-15 | 上海华点云生物科技有限公司 | 寻找样本的染色体突变位点的分析方法和分析装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2015218438A1 (en) * | 2014-08-25 | 2016-03-10 | Accenture Global Services Limited | System architecture for customer genome construction and analysis |
-
2016
- 2016-11-07 CN CN201610972593.7A patent/CN106503235B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281130A (zh) * | 2014-09-22 | 2015-01-14 | 国家电网公司 | 一种基于大数据技术的水电设备监测和故障诊断系统 |
CN106407749A (zh) * | 2016-08-30 | 2017-02-15 | 上海华点云生物科技有限公司 | 寻找样本的染色体突变位点的分析方法和分析装置 |
Non-Patent Citations (3)
Title |
---|
An overview on cloud computing platform spark for Human Genome mining;Dongliang Ding 等;《2016 IEEE International Conference on Mechatronics and Automation》;20160810;2605-2610 * |
DNA 水平上检测正选择方法的研究进展;林栲 等;《遗传》;20090915(第9期);896-902 * |
基于Spark平台的XP-EHH算法的研究与实现;刘长春;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170215(第2期);I138-2321 * |
Also Published As
Publication number | Publication date |
---|---|
CN106503235A (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106503235B (zh) | 基于Spark平台的XP-EHH算法的分布式处理实现方法 | |
Kumar et al. | A review on big data based parallel and distributed approaches of pattern mining | |
Vouzis et al. | GPU-BLAST: using graphics processors to accelerate protein sequence alignment | |
Shao et al. | Efficient cohesive subgraphs detection in parallel | |
JP6296442B2 (ja) | インメモリデータベースにおける高効率のゲノムリードアラインメント | |
CN108985008B (zh) | 一种快速比对基因数据的方法和比对系统 | |
Agapito et al. | Parallel extraction of association rules from genomics data | |
CN110211631B (zh) | 一种全基因组关联分析方法、系统及电子设备 | |
O’Brien et al. | VariantSpark: population scale clustering of genotype information | |
Sarumi et al. | Spark-based data analytics of sequence motifs in large omics data | |
CN102521529A (zh) | 基于blast的分布式基因序列比对方法 | |
JP2014146318A (ja) | インメモリデータベースシステム及びリアルタイム解析を用いるゲノムデータ処理のシステム及び方法 | |
US20210048992A1 (en) | Processor for performing dynamic programming according to an instruction, and a method for configuring a processor for dynamic programming via an instruction | |
Velentzas et al. | A partitioning gpu-based algorithm for processing the k nearest-neighbor query | |
Delehelle et al. | ASGART: fast and parallel genome scale segmental duplications mapping | |
Lu et al. | GSNP: a DNA single-nucleotide polymorphism detection system with GPU acceleration | |
Lee et al. | Will solid-state drives accelerate your bioinformatics? In-depth profiling, performance analysis and beyond | |
Böhm et al. | Index-supported similarity join on graphics processors | |
CN102693369A (zh) | 一种基于基因序列表达分析的LncRNA发掘方法 | |
Abdullah et al. | Genomics analyser: a big data framework for analysing genomics data | |
Papadopoulos et al. | GPU technology as a platform for accelerating local complexity analysis of protein sequences | |
CN110136777A (zh) | 一种基于Spark框架的重测序序列比对方法 | |
Liu et al. | A Hybrid Distributed Framework for SNP Selections | |
CN111415708A (zh) | 双缓冲模型实现大规模数据库聚类方法及系统 | |
Agapito et al. | Parallel processing of genomics data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |