生物序列数据K-mer频次统计问题的算法

合集下载

请简述k-means算法的流程

请简述k-means算法的流程

请简述k-means算法的流程K均值聚类算法(k-means clustering algorithm)是数据挖掘中常用的一种聚类算法之一。

它是一种无监督学习算法,能够将样本数据分成K个不同的簇。

本文将简述K均值聚类算法的流程,包括初始中心点的选择、簇分配和中心点更新等步骤,具体分为以下几个部分进行描述。

一、初始中心点的选择K均值聚类算法的第一步是选择初始中心点。

中心点的选择对聚类结果有一定的影响,因此选择合适的初始中心点十分重要。

最常用的方法是随机选择K个样本作为初始中心点,也可以通过其他方法选择。

二、簇分配初始中心点确定后,下一步是将每个样本分配给最近的中心点所属的簇。

计算样本到每个中心点的距离,然后将样本分配给离它最近的中心点所属的簇。

三、中心点更新所有样本都被分配到了簇后,接下来的步骤是更新每个簇的中心点。

将属于同一簇的所有样本的坐标取平均值,得到该簇的新的中心点。

这个新的中心点将被用于下一次迭代的簇分配。

簇分配和中心点更新这两个步骤会不断重复,直到收敛。

四、收敛条件K均值聚类算法的收敛条件通常是中心点不再发生明显变动,即所有的样本分配到的簇不再发生变化,或者中心点的移动距离小于一个给定的阈值。

五、算法复杂度分析K均值聚类算法的时间复杂度主要取决于簇分配和中心点更新这两个步骤的计算量。

在每次簇分配中,对于每个样本需要计算与K个中心点的距离,因此时间复杂度为O(N*K*d),其中N为样本数目,K为簇的数目,d为样本的维度。

在每次中心点更新中,需要对每个簇中的样本进行平均计算,因此时间复杂度为O(N*d)。

总的时间复杂度为O(T*N*K*d),其中T为迭代次数。

当样本数目较大时,计算量会显著增加。

六、优化方法K均值聚类算法还有一些优化方法,可以提高算法的运行效率和准确性。

其中包括:修改初始中心点的选择方法,使用k-d 树等数据结构来加速簇分配过程,引入加权距离等。

总结而言,K均值聚类算法的流程包括初始中心点的选择、簇分配和中心点更新等步骤。

基于hash算法的DNA序列的k-merindex问题--数学建模

基于hash算法的DNA序列的k-merindex问题--数学建模

基于hash算法的DNA序列的k-merindex问题--数学建模基于hash算法的DNA序列的k-mer index 问题摘要序列比对是生物信息学中的经典问题,为了在数量日渐庞大的基因序列中查询k-mer序列的位置,文中基于哈希算法建立了合适的快速查询索引方法。

首先将基因序列中的A、T、G、C分别用四进制数表示,然后利用四进制转换成十进制的方式取得关键码值建立哈希表进行索引查询,最后在16G内存的Windows系统下,采用C语言建立哈希表,并加入链表以达到快速索引的目的并使K的取值范围为[1~16]。

根据建模过程,将对建立索引的算法进行叙述和冲突分析;对建立索引算法的计算复杂度和空间复杂度进行分析;对索引查询进行叙述及性能分析;分析整套算法程序在不同k值下内存占用及极限分析。

总结分析整套索引算法性能,对算法进行缺陷分析及改进方案。

关键词:索引算法;Hash表;链表;K-mer快速索引I.问题重述1.问题背景给定一个DNA序列,这个系列只含有4个字母ATCG,如S =“CTGTACTGTAT”。

给定一个整数值k,从S的第一个位置开始,取一连续k 个字母的短串,称之为k-mer(如k= 5,则此短串为CTGTA),然后从S的第二个位置,取另一k-mer(如k= 5,则此短串为TGTAC),这样直至S的末端,就得一个集合,包含全部k-mer 。

如对序列S来说,所有5-mer为{CTGTA,TGTAC,GTACT,TACTG,ACTGT,TGTAT}。

通常这些k-mer需一种数据索引方法,可被后面的操作快速访问。

例如,对5-mer来说,当查询CTGTA,通过这种数据索引方法,可返回其在DNA序列S中的位置为{1,6}。

2.问题要求现在以文件形式给定100万个DNA序列,序列编号为1-1000000,每个因序列长度为100。

(1)要求对给定k,给出并实现一种数据索引方法,可返回任意一个k-mer所在的DNA序列编号和相应序列中出现的位置。

生物医学数据的统计分析方法

生物医学数据的统计分析方法

生物医学数据的统计分析方法随着科技的发展,生物医学领域的数据量也越来越大,如何有效地处理这些数据成为了亟待解决的问题。

在生物医学研究中,统计分析方法是一种重要的工具,可以帮助研究人员从数据中挖掘出有意义的信息和答案。

数据处理数据处理是研究生物医学数据之前必须要进行的步骤。

数据处理主要包括数据的收集、存储、清洗、整理等过程。

在数据处理过程中,需要注意数据的准确性、完整性、一致性等问题,因为不正确的数据会对后续的统计分析造成严重的影响。

统计描述统计描述是一种描述和总结数据的方法。

通过统计描述,可以清晰地了解数据的分布情况、中心趋势和离散程度。

常见的统计描述方法包括平均数、中位数、众数、方差、标准差等。

假设检验假设检验(Hypothesis Testing)是生物医学研究中常用的一种推断统计方法。

假设检验可以用于判断两个或多个群体之间是否存在差异,也可用于判断某个群体中某个特征是否显著。

一般来说,在进行假设检验之前需要确定假设的零假设H0和备择假设H1。

常见的假设检验方法有t检验、方差分析、卡方检验等。

回归分析回归分析是一种建立因变量与自变量之间关系的方法。

在生物医学研究中,回归分析可以用于探讨因素与疾病之间的关联。

常用的回归分析方法有线性回归、逻辑回归、Cox比例风险模型等。

聚类分析聚类分析是一种将数据集中相似的对象归为一类的方法。

在生物医学研究中,聚类分析可以用于发现病人之间的相似性,从而为精准医疗提供有益的参考。

常用的聚类分析方法有层次聚类、k均值聚类等。

因子分析因子分析是一种将多个变量通过某种算法转化为少数几个因子的方法,从而发现变量之间的关系。

在生物医学研究中,因子分析可以用于挖掘影响因子的因素。

常见的因子分析方法有主成分分析、探索性因子分析等。

结语生物医学数据的统计分析方法多种多样,不同的方法适用于不同的研究目的。

在研究过程中,研究人员需要结合具体的问题选择合适的统计方法,以确保研究结果的可靠性和有效性。

基于hash算法的dna序列k-mer index问题的数学建模

基于hash算法的dna序列k-mer index问题的数学建模

基于hash算法的dna序列k-mer index问题的数学建模郭方舟,华阳,董修伟,蔡志丹(长春理工大学理学院,长春130022)基于Hash算法的DNA序列k-mer index问题的数学建模郭方舟,华阳,董修伟,蔡志丹(长春理工大学理学院,长春130022)针对查找DNA序列的相似序列问题,给出了建立索引和查找索引的数学模型,基于Hash算法,建立了依赖于k值大小的顺序索引模型和散列索引模型,特别对较大k值选用了DJBHash函数,有效的避免了Hash冲突问题。

最后在硬件平台CPU为2.6GHz、内存为8G、操作系统为64位Windows 7的条件下,对100万条长度为100的DNA序列进行了测试,给出了不同k 值下建立和查询索引的用时和占用内存情况,有效的解决了DNA序列的k-mer index问题。

Hash算法;索引问题;数学模型;复杂度分析从大量的DNA序列中查询相似序列是当前研究的热点问题。

所谓DNA序列的k-mer,指的是一条长度为k 的DNA子序列,由A、T、C、G四种字符组成。

使用长度为k的窗口在一条DNA序列上依次滑动,可以得到该DNA序列的k-mer集合。

而k-mer index问题就是对这些k-mer构建一种数据索引方法,以便之后可以对某条k-mer进行快速访问,获取其频次、位置等信息。

理想的索引方法是不经过比较,直接从字典中得到检索的关键字法。

Hash算法的基本思想就是在元素的关键字与元素的存储位置之间确立一种函数关系,查找时直接得到元素的存储位置。

所有元素的存储位置构成Hash表。

在理想情况下,使用Hash表查找能达到O(1)的性能。

1 Hash算法简述1.1Hash算法原理Hash算法的基本原理[1,2]是:以关键字key为自变量,构造一个关键字与存储地址之间的函数,称Hash函数H(x)为关键字key的存储地址,或称索引值。

所有索引值构成一张Hash表,也称索引。

DNA序列的k-mer问题

DNA序列的k-mer问题

DNA序列的k-mer index 问题摘要在百万条DNA序列中查找的特定的k mer-是生物信息处理中一个非常基础且重要的问题。

针对这一问题,本文提出了三种索引算法,并对每种算法进行复杂度的分析。

最后利用模糊综合评价模型对索引算法的性能做出评价。

针对问题一和问题二,本文采用三种编程策略:DNA序列的依次遍历策略、DNA序列整体纵向遍历策略、单条DNA整体遍历策略,并结合计算机MATLAB编程提出了三种算法,之后对每种算法上机测试,统计出算法各自的运行时间和占用的内存空间。

结果显示,当处理对象为100万组DNA序列时,随着k值的变化,算法1耗时200秒到300秒,占用300M左右的内存空间;算法2耗时1到6秒,占用250M左右的内存空间;算法3耗时0.9秒到1.5秒,需要800M左右的内存空间。

由于算法1的运行时间太长,所以算法2和算法3是符合题意的。

针对问题三和问题四,本文对算法2和算法3中建立索引和使用索引查询两方面进行了计算复杂度和空间复杂度的分析。

分析结果表明,算法2中使用索引查询的计算复杂度和空间复杂度都小于算法3;由于算法3不需要建立索引库,所以它的建立索引的计算复杂度和空间复杂度都为零,使用索引查询的复杂度均与问题规模呈一次函数关系。

针对问题五,本文取k从2到99之间的10个值,统计了方案二和方案三在相应k 值下的运行时间,以算法的运行时间评价其在相应k值处的数据查询效率。

结果表明,算法2和算法3在给定8G的条件下,均支持所有的k值。

算法3的整体运行时间低于算法2,因而算法3的索引效率更高。

针对问题六,本文利用模糊综合评价模型来评价索引算法性能(以算法2为例)。

首先利用层次分析模型(AHP),确定出题中所给的四个影响因素的权重分别为{}ω=,模型的评语集为{优,良,差},之后对其进行模糊0.54510.25950.13440.061综合评价,评价结果矢量{0.60930.25160.1391}B=,表明该算法的索引性能为优。

高中生物基因频率的计算

高中生物基因频率的计算

高中生物基因频率的计算
高中生物基因频率的计算主要有两种方法,分别是定义法(基因型)计算和哈代-温伯格定律计算。

定义法(基因型)计算:
常染色体遗传:基因频率(A或a)% = 某种(A或a)基因总数 / 种群等位基因(A和a)总数 = (纯合子个体数× 2 + 杂合子个体数) / 总人数× 2。

伴性遗传:X染色体上显性基因频率 = 雌性个体显性纯合子的基因型频率 + 雄性个体显性个体的基因型频率 + 1/2 ×雌性个体杂合子的基因型频率 = (雌性个体显性纯合子个体数× 2 + 雄性个体显性个体个体数 + 雌性个体杂合子个体数) / (雌性个体个体数×2 + 雄性个体个体数)。

需要注意的是,伴性遗传不算Y,因为Y上没有等位基因。

哈代-温伯格定律计算:A% = p,a% = q;p + q = 1;(p + q)² = p² + 2pq + q² = 1;AA% = p²,Aa% = 2pq,aa% = q²。

对于复等位基因,可调整公式为:(p + q + r)² = p² + q² + r² + 2pq + 2pr + 2qr = 1,p + q + r = 1。

其中,p、q、r各复等位基因的基因频率。

此外,基因频率也可以通过基因型的频率来计算,即基因频率 = 纯合子的基因型频率 + 1/2杂合子基因型频率。

以上方法仅供参考,如需更多信息,建议查阅相关文献或咨询专业生物教师。

生物大数据技术中的聚类分析方法

生物大数据技术中的聚类分析方法

生物大数据技术中的聚类分析方法生物大数据技术的迅猛发展为科研人员提供了丰富的数据资源,然而如何从庞大的数据中提取有意义的信息,成为了生物信息学研究的重要课题之一。

在生物大数据分析中,聚类分析方法被广泛应用,它通过将相似的样本或数据点归为一类,从而揭示数据集中的隐藏模式和结构。

本文将介绍生物大数据技术中的聚类分析方法,并剖析其应用于生物学研究的意义。

聚类分析是一种无监督学习的方法,其目标是根据数据点的相似性,将它们划分为不同的群组或簇。

在生物领域,聚类分析方法适用于多种应用场景,如基因表达数据的分类、蛋白质序列的聚类和进化树的构建等。

下面将介绍几种常用的生物大数据技术中的聚类分析方法。

1. K-means聚类算法:K-means算法是一种常见的聚类分析方法,其基本思想是将数据集分成K个簇,使得簇内的数据点相互之间的距离最小,并使得簇与簇之间的距离最大化。

在生物学研究中,K-means算法可以用于基因表达数据的分类。

通过将基因表达矩阵中的每一行看作一个数据点,将基因按照表达水平划分为不同的簇,可以帮助研究人员发现基因表达的模式和规律。

2. 层次聚类分析:层次聚类分析是一种基于样本之间相似性的聚类方法,其通过计算数据点之间的距离或相异度,并逐步将相似的数据点合并为一个簇。

这种方法能够形成一棵聚类树,可以将样本按照不同的层次进行分类。

在生物学研究中,层次聚类分析可以应用于多个领域,如RNA测序数据的组织分类、蛋白质序列的聚类和系统发育关系的推断等。

3. 基于密度的聚类方法:基于密度的聚类方法将样本点集划分为不同的簇,其中每个簇代表着一个高密度的区域,被低密度或离群点所包围。

这种聚类方法适用于具有复杂形状和不规则分布的数据集。

在生物学研究中,基于密度的聚类方法可以用于DNA甲基化数据的挖掘、蛋白质相互作用网络的簇划分等。

4. 基于模型的聚类方法:基于模型的聚类方法是在给定概率模型的情况下,将数据点分配到不同的簇中。

k-means聚类顺序额原理

k-means聚类顺序额原理

k-means聚类顺序额原理k-means聚类是一种常用的无监督学习算法,它可以将数据样本划分成多个类别,并且每个类别内的样本之间的相似度较高,而不同类别之间的相似度较低。

k-means聚类的原理是通过迭代计算来不断更新聚类的中心点,直到达到收敛的条件。

我们需要确定聚类的个数k。

k-means聚类算法将样本划分为k个类别,每个类别都有一个中心点,即质心。

我们需要事先确定k的取值,这需要根据具体问题和数据集的特点进行选择。

一般来说,可以通过观察数据的分布情况、经验或者使用一些评估指标来确定k 的取值。

我们需要初始化k个聚类的中心点。

一种常用的初始化方法是随机选择k个样本作为聚类的中心点。

另外还有一些其他的初始化方法,如k-means++算法,可以更好地选择初始的聚类中心点,提高聚类的效果。

接下来,我们需要计算每个样本与每个聚类中心点之间的距离,并将样本分配给距离最近的聚类中心点所对应的类别。

常用的距离度量方法有欧氏距离、曼哈顿距离等。

对于每个样本,我们计算其与每个聚类中心点的距离,然后将其分配给距离最近的聚类中心点所对应的类别。

然后,我们需要根据分配的类别重新计算每个类别的中心点。

对于每个类别,我们将其包含的样本的特征值求平均,得到该类别的新的中心点。

这个过程称为更新聚类中心点。

接着,我们需要判断聚类的中心点是否发生了变化。

如果中心点没有发生变化,即聚类已经收敛,算法结束。

否则,我们需要继续迭代计算。

在迭代过程中,我们将不断更新聚类中心点,重新分配样本,直到达到收敛的条件。

我们得到了k个聚类中心点,以及每个样本所属的类别。

我们可以根据需要对聚类结果进行进一步的分析和应用。

例如,可以根据聚类结果进行数据可视化、模式识别、推荐系统等。

总结一下,k-means聚类算法的原理是通过迭代计算来不断更新聚类的中心点,直到达到收敛的条件。

它是一种常用的无监督学习算法,可以将数据样本划分成多个类别,并且每个类别内的样本之间的相似度较高,而不同类别之间的相似度较低。

K-means算法概述

K-means算法概述

K-means算法概述作者:宋庆兰来源:《计算机与网络》2021年第20期随着经济、科技的发展产生了大量的数据和爆炸的信息,传统的处理方法已不能高效快速地对这庞大的数据进行分析,云计算和大数据应运而生。

当前大數据已经渗透到了人们生活的各个领域,比如:金融行业,医学行业和管理行业等,其中以IT行业最为明显,大数据分析最常用的分析方法就是聚类分析。

聚类分析的方法大部分可以应用于所有对象,簇内的对象相似度越高,聚类的效果就越好,聚类算法为了得到改进,试图将相似的对象归入同一簇,不相似的对象归到不同簇。

很明显,我们需要一种合适的相似度计算方法,目前已经知道的相似度的计算方法有欧氏距离、余弦距离以及汉明距离等,在应用中要根据实际情况选择合适的相似度计算方法。

当然,任何一种算法都存在一定的缺陷,K-means算法也有它的不足之处,但是可以通过一些方法处理后得到更好的聚类结果。

K-means算法随机从样本数据中输入聚类个数,还有数据库,此数据库包含个数据对象,然后输出满足方差最小标准个聚类,就是K-means算法。

K-means算法接受输入量;为了满足所获得的聚类,将个数据对象划分为个聚类:相似度较高的为同一聚类中的对象;而不同聚类中的对象相似度较小。

K-means聚类算法的具体流程:(1)任意选取个对象作为初始聚类中心;(2)计算各个对象与中心对象的距离;并根据最小距离对这些对象重新进行划分;(3)计算那些重新划分的对象;(4)计算标准测度函数,当满足一定条件时算法终止;否则返回到(2)。

K-means算法的研究现状和发展动态传统的K-means算法存在的缺点有:对网页处理不足的;在文本聚类中有一定的局限性;中心值的个数难以确定、孤立点和噪声也会有较大影响等。

传统K-means算法处理的数据仅限于数值型数据,但在实际生活中,我们要处理并非只有数值型数据,还有可能要处理类属型的数据,甚至是混合属性特征的数据。

k-mer计数算法

k-mer计数算法

k-mer计数算法
K-mer 计数算法是一种在DNA 序列中对长度为$k$的子序列进行计数的算法,是生物信息学分析的关键环节。

传统的K-mer 计数算法存在耗时长、内存占用量大的问题。

为解决以上问题,文中提出了一种基于最小完美哈希函数的 K-mer 计数算法。

该算法能够无哈希冲突地将 K-mer 映射到尽可能最小的整数范围内,对最小完美哈希表的查询在常数时间内完成,能够高效处理动态变化的大规模数据集。

在处理大肠杆菌基因序列时,该算法相对于 jellyfish2 算法,耗时缩短3倍,内存消耗缩小11倍。

K-mer 计数算法在生物信息学、基因组学等领域有着广泛的应用,能够为研究人员提供有关 DNA 序列的重要信息。

各类细菌基因组装kmer值-概述说明以及解释

各类细菌基因组装kmer值-概述说明以及解释

各类细菌基因组装kmer值-概述说明以及解释1.引言1.1 概述细菌基因组装是基因组学领域中的重要研究方向之一。

随着高通量测序技术的发展,我们可以更加深入地了解细菌的基因组结构和功能,从而有助于我们对细菌的生物学特性进行更全面的认识。

在细菌基因组装中,kmer值是一项重要的指标。

kmer值指的是连续的k个碱基的序列,它可以用来评估基因组序列的复杂性和准确性。

通过分析kmer值的分布和特征,我们可以评估细菌基因组装的质量,并进行进一步的研究。

不同的细菌基因组在kmer值上有着不同的特点,因此我们需要根据具体的研究对象选取合适的kmer值参数。

本文旨在对各类细菌基因组装中常用的kmer值进行综述,并探讨kmer值选择的影响因素和策略。

首先,我们将介绍细菌基因组装的背景知识,包括细菌的基因组结构和序列组装的基本原理。

接着,我们将详细介绍kmer值的概念以及其在基因组装中的应用。

然后,我们将列举各类细菌基因组装中常用的kmer值,并比较它们在不同环境下的适用性和限制性。

最后,我们将探讨kmer值选择的影响因素,如测序深度、测序错误率等,并提出相应的策略和方法。

通过对各类细菌基因组装中kmer值的重要性进行总结,我们可以更好地理解细菌基因组装研究的意义和应用前景。

同时,我们也将展望未来细菌基因组装研究的发展方向,包括更高效的算法和更准确的测序技术的应用。

最后,我们将对本文进行总结,并提出未来研究的展望。

在这篇文章中,我们将全面探讨各类细菌基因组装中kmer值的重要性和应用,并为未来的细菌基因组装研究提供一定的参考和借鉴。

通过对kmer值的深入研究,我们可以更好地理解细菌的基因组结构和功能,为人类健康和环境保护等领域的研究提供重要支持。

1.2文章结构文章结构部分内容:文章的结构分为引言、正文和结论三个部分。

在引言部分,首先对细菌基因组装的背景知识进行概述,并介绍了本文的结构和目的。

接下来,在正文部分,将详细探讨kmer值的概念,并探讨其在基因组装中的应用。

《基因组序列k-mer频次分析及核小体结合模体的理论预测和验证》范文

《基因组序列k-mer频次分析及核小体结合模体的理论预测和验证》范文

《基因组序列k-mer频次分析及核小体结合模体的理论预测和验证》篇一一、引言随着生物信息学和生物技术的快速发展,基因组序列分析已成为研究生命科学领域的重要手段。

其中,k-mer频次分析作为一种有效的基因组序列分析方法,在基因表达、基因突变、非编码RNA预测等方面具有广泛应用。

此外,核小体结合模体的研究对于理解基因表达调控机制、疾病发生发展等具有重要意义。

本文旨在通过基因组序列的k-mer频次分析,结合核小体结合模体的理论预测和验证,为相关研究提供新的思路和方法。

二、方法1. 基因组序列k-mer频次分析首先,从公共数据库中获取基因组序列数据。

然后,设定k 值(如k=8),对基因组序列进行切割,生成k-mer序列。

接着,统计各k-mer在基因组序列中的频次,得到k-mer频次分布。

2. 核小体结合模体理论预测根据核小体结合模体的特征,如GC含量、AT含量等,构建预测模型。

利用k-mer频次分析结果,筛选与核小体结合模体相关的特征参数,输入到预测模型中,预测基因组序列中潜在的核小体结合区域。

3. 验证利用实验室已有技术和手段,对理论预测的核小体结合区域进行验证。

例如,通过ChIP-seq技术检测该区域的核小体富集情况,或者通过PCR扩增和Sanger测序等方法验证该区域的序列特征。

三、结果与讨论1. 基因组序列k-mer频次分析结果通过对基因组序列进行k-mer频次分析,我们得到了各k-mer 的频次分布情况。

这些结果可以反映基因组序列的组成特征和结构特点,为后续研究提供重要依据。

2. 核小体结合模体理论预测结果根据预测模型的结果,我们可以发现基因组序列中潜在的核小体结合区域。

这些区域在基因表达调控、疾病发生发展等方面可能发挥重要作用。

因此,理论预测的结果对于进一步研究具有重要的指导意义。

3. 验证结果通过实验室验证,我们发现理论预测的核小体结合区域与实际结果基本一致。

这表明我们的预测模型具有一定的准确性和可靠性,可以为相关研究提供有价值的参考信息。

生物信息学算法的使用教程

生物信息学算法的使用教程

生物信息学算法的使用教程生物信息学算法是指应用计算机科学和统计学的方法来解决生物学问题的一类算法。

其主要目标是通过收集、存储和分析生物学数据,从中提取有意义的信息。

生物信息学算法在基因组学、转录组学、蛋白质组学等领域发挥着重要作用,帮助科学家们更好地理解生命现象和人类疾病。

本文将介绍几种常用的生物信息学算法,包括序列比对、基因预测、蛋白质结构预测和系统生物学分析,帮助读者了解这些算法的原理和使用方法。

1. 序列比对算法序列比对算法是生物信息学中最常用的算法之一,用于比较两个或多个生物序列的相似性。

这些序列可以是DNA序列、RNA序列或蛋白质序列。

其中,最常见的算法是Smith-Waterman算法和Needleman-Wunsch算法。

Smith-Waterman算法是一种动态规划算法,通过寻找一个最优的局部序列比对。

该算法可以用于比对相似的序列片段,从而发现具有功能相似性的区域。

Needleman-Wunsch算法是一种全局序列比对算法,帮助比对整个序列。

该算法可以用于比对不同物种之间的序列,以及预测序列间的进化关系。

2. 基因预测算法基因预测算法是用于预测DNA序列中的基因位置和结构的算法。

这些算法主要基于类似于启动子、剪接位点、终止子等信号序列的模式识别。

常见的基因预测算法有基于统计模型的算法(如Glimmer和GeneMark)和基于机器学习的算法(如SVM和随机森林)。

这些算法能够从原始DNA序列中识别出编码基因的位置和边界,对基因功能的研究具有重要意义。

3. 蛋白质结构预测算法蛋白质结构预测算法是用于预测蛋白质的三维立体结构的算法。

蛋白质的结构决定了它的功能,因此预测蛋白质结构对于理解蛋白质功能至关重要。

常用的蛋白质结构预测算法有模板比对、序列相似性、碳氮化合物二次结构预测等。

模板比对算法通过比对蛋白质序列与已知的结构相似的模板蛋白质,来预测目标蛋白质的结构。

序列相似性算法将目标蛋白质序列与已知的蛋白质序列比较,从类似的序列中推断出目标蛋白质的结构。

改进的 km 算法流程 -回复

改进的 km 算法流程 -回复

改进的km 算法流程-回复什么是KM 算法?KM 算法,即K-means 算法,是一种常用于数据聚类的算法。

它的主要思想是通过将数据分为k 个簇,使得簇内的数据点尽可能相似,而不同簇之间的数据点尽可能不相似。

在实际应用中,KM 算法被广泛应用于数据分析、图像处理、机器学习等领域。

KM 算法的基本流程:1. 随机选择k 个初始聚类中心。

2. 根据欧氏距离等指标,将数据样本分配到最近的聚类中心。

3. 更新每个聚类的中心点,即将该聚类内所有数据点的均值作为新中心点。

4. 重复步骤2和步骤3,直到满足聚类停止条件,如达到最大迭代次数或聚类中心不再改变。

然而,传统的KM 算法存在一些问题:1. 对于初值的敏感性:KM 算法的初值选择对最终的聚类结果具有较大影响,不同的初值可能导致不同的聚类结果。

2. 结果受数据分布影响:KM 算法假设簇为凸形状,并且各个簇的方差相同,但在现实世界中,数据分布往往是复杂的,导致KM 算法的聚类效果不佳。

3. 迭代次数多:传统KM 算法需要迭代多次才能达到停止条件,特别是当数据量大或维度较高时,迭代次数会进一步增加,计算复杂度较高。

基于以上问题,一些改进的KM 算法被提出,以提高算法的聚类效果和运算效率。

第一步:初始聚类中心的选择改进的KM 算法中,初始聚类中心的选择对聚类结果起着关键作用。

常用的方法有两种:1. K-means++:该方法首先随机选择一个初始聚类中心,然后根据距离选择下一个初始聚类中心,尽可能地使各个初始聚类中心之间的距离相互较远。

通过多次迭代,选择出k 个初始聚类中心。

2. 层次化聚类与划分聚类相结合:该方法将数据样本层次化地分为多个子集,然后对每个子集进行划分聚类,选取划分聚类结果中的一个作为初始分类中心。

通过以上方法选择出的初始聚类中心,将有助于提高KM 算法的聚类效果。

第二步:聚类结果的评估与选择在传统的KM 算法中,聚类结果的评估方法常使用质量函数,如簇内平方和(Sum of Squares Within Cluster,SSWC),根据其值来评估聚类结果好坏。

生物序列数据K-mer频次统计问题的算法

生物序列数据K-mer频次统计问题的算法

生物序列数据K-mer频次统计问题的算法张鑫鑫;陈波;何继凌;徐云【摘要】生物序列的k-mer频次统计是生物信息处理中一个非常基础且重要的问题.本文针对多序列在对齐模式下,不同偏移处一段长度范围内的k-mer频次统计问题进行了研究.提出了一种逆向遍历k-mer计数算法BTKC.该算法能够充分利用长度的k-mer统计信息,快速得到长度的k-mer统计信息,从而避免了统计任意长度的k-mer频次信息时都需要对所有序列进行遍历.算法的时间复杂度分析及实验结果表明,相比于传统的前向遍历FTKC算法,BTKC算法性能提升非常明显,且其时间复杂度与k-mer长度的变化范围无关,非常适合于在k-mer长度变化范围较大的情况下使用.%K-mer counting of biological sequence is a fundamental and very important problem in biological information processing. This paper focuses on counting k-mers at each position of multiple sequences within aligned mode. We present a new backward traverse k-mer counting algorithm called BTKC. BTKC algorithm takes full advantage of the k+1-mer’s statistic information to obtain k-mer’s statistic information quickly. Thus, it’s no need to traverse t he whole sequences when counting each single k-mer. Both the algorithm’s time complexity and experiment results show that BTKC gets an obvious improvement compared with forward traverse k-mer counting algorithm FTKC, and its time complexity was found not to be realted with the rangeof k-mer length.【期刊名称】《计算机系统应用》【年(卷),期】2014(000)004【总页数】5页(P121-124,158)【关键词】k-mer;k-mer计数;频次统计;逆向遍历;生物信息处理【作者】张鑫鑫;陈波;何继凌;徐云【作者单位】中国科学技术大学计算机科学与技术学院,合肥 230027; 安徽省高性能计算重点实验室,合肥 230027;中国科学技术大学计算机科学与技术学院,合肥 230027; 安徽省高性能计算重点实验室,合肥 230027;中国科学技术大学计算机科学与技术学院,合肥 230027;中国科学技术大学计算机科学与技术学院,合肥 230027; 安徽省高性能计算重点实验室,合肥 230027【正文语种】中文生物序列主要指RNA,DNA及蛋白质序列等.自人类基因组计划实施以来,特别是随着第二代测序技术大规模的使用与推广,现今一次深度测序技术可以产生TB级的序列数据.而在对这些海量数据的分析和应用中,k-mer频次统计是一个非常基础且重要的问题.k-mer频次统计信息可以用来揭示生物序列中各种子序列的分布规律,它是一种衡量序列相似性的重要工具.因而其在单体分型,模体发现,物种识别,宏基因组分类,序列拼接,多序列比对,变异探测及序列纠错等众多的生物学问题上都有着重要且广泛的应用.特别是在单体分型及模体发现等一些需要探究序列中块属性的问题上,常常还需要对多序列中不同偏移处一段长度范围内的k-mer进行频次统计.鉴于此,本文针对多序列在对齐模式下,不同偏移处一段长度范围内的k-mer频次统计问题进行了研究,并提出一种逆向遍历 k-mer计数算法 BTKC,相比于传统的前向遍历算法算法FTKC,该算法显著降低了k-mer频次统计算法的时间复杂度.1 相关工作郝柏林院士等在2000年提出了一种使用2D分形图像的可视化方法来反映序列的k-mer的频次分布,并在此基础上设计了基于B树的快速k-mer频次统计算法[1,2].王树林等在2007年设计并实现了k-长DNA子序列内部计数算法和外部计数算法,在该算法中,利用一个巧妙构造的hash函数把k-长DNA子序列映射为整数,从而把k-长DNA子序列的频次统计问题转化为整数关键字的重复计数问题,使得能够利用经典B树算法来解决k-长DNA子序列的出现频次计数问题[3].Marcais等人在2011年提出了并实现了并行的Jellyfish算法对k-mer的频次进行统计,该算法在多线程环境下利用了前缀数组和优化的无锁哈希表,该算法不仅效率高并且是内存有效的[4].Melsted等人则在2011年使用Bloom filter(布隆过滤器,一种概率数据结构)来存储 k-mer频次统计过程中出现的各种 k-mer子串,然后再进行二次扫描获取具体的k-mer频次,试验数据表明,该算法相对于其他基于hash的算法,能够显著减小内存的使用[5].而在2013年,Rizk等人又提出了一种分块的k-mer频次统计算法 DSK.该算法综合利用了 hash映射和分块缓存,确保在任意规模的数据集上,该算法均可以在内存和磁盘空间受限情况下正常运行[6].但对于单体分型及模体发现等一系列需要对序列中不同偏移位置处一段长度范围内的k-mer进行频次统计从而探究序列的块属性的问题,目前鲜有研究.2 问题定义及描述我们给出k-mer的定义如下: 设s为长为m的生物序列,则s=q1q2…qm,其中,q1∈ ∑(∑ 为生物序列的符号空间,比如对于基因序列,则有∑={ A,T,G,C }).一个长为k的子串是指序列s中从任意位置处开始的个连续符号,称之为k-mer.对于多序列在对齐模式下,不同偏移处一段长度范围内的k-mer频次统计问题,我们给出如下定义: 记Ω为n条长为m的基因序列在对齐模式下构成的序列集合,则Ω={ s1,s2,…,sn},对于任意的1≤i,j≤n,要求si和 sj的起始位置对齐.对于给定的k-mer长度变化范围k1和k2(k1≤k2),分别对于各个 k-mer长度k(k1≤k≤k2)在各个偏移位置l(0≤l≤m-k)上,计算由 n条序列中每一条序列从偏移l处取长为 k的k-mer所构成的序列块中不同k-mer子串的出现频次.图 1给出了一个简单的示例,所有序列的起始位置对齐,k-mer长度的变化范围为3~5,首先计算偏移为0时,长度为3的红色序列块中各个k-mer的出现次数,然后计算长度为4的黑色序列块中各个k-mer的出现次数,直到最大值5.然后偏移位置向右滑动一位变为 2,再依次统计各 k-mer长度下各个子串的出现频次.不断的重复上述过程,直至到达序列的尾部.图1 k-mer示例图3 算法描述及复杂度分析对于 2中描述的问题,目前的常规算法是前向遍历计数算法,我们简称其为 FTKC.在FTKC算法中,对于每一个偏移位置l,依次从k-mer长度变化范围的最小值k1遍历到最大值k2.在每一次遍历时,均会扫描所有 n条序列,取每条序列当前偏移处,长度为当前k-mer长度的子串,使用hash表来来统计和存储各子串的出现频次.对于FTKC算法,由算法的运行过程可知,在由n条长度为 m的序列构成的序列空间中,对于任意k-mer长度k(k1≤k≤k2)共构成了m-k+1个从左向右滑动的块.对每一个块进行k-mer频次统计时,均需要依次访问n条序列,进行n次hash操作,因而该算法的时间复杂度为 O((k2-k1)m n).注意到上述FTKC算法每次在块中进行k-mer统计时,均需要遍历所有 n条序列,而没有考虑充分利用已有的统计结果.但我们仔细观察图 1可以看出,对于同一偏移处,长度为 k的块中每一条序列均是长度为k+1的块中每一条序列的长为 k的前缀字符串.比如,对于偏移0处的第一条序列,ATT为ATTG的前缀字符串.更进一步考虑,比如对于80条序列构成的序列空间,如果我们已经得到了偏移为 0,k-mer长度为4时的统计结果为{ATTA:12,ATTG:8,ATTC:9,ATTT:10,ATCA:8,ATCG:7,ATCC:15,ATCT:11},那么下一步我们仅仅只需要对上述得到的k-mer频次结果集合进行遍历,对提取的每一条记录取其长为 3的子串并使用hash表进行计数,则只需要8次遍历操作,就可以得到偏移为 0,k-mer长度为 3时的结果为{ATT:39,ATC:41},然后再遍历k-mer长度为3时的结果集合,得到k-mer长度为2时的结果为{AT:40}.因此在我们提出的BTKC算法中,对于每一偏移处,首先遍历所有 n条序列,取每条序列中当前偏移处长度为k2(k-mer长度最大值)的子串,将该子串做为 key,该子串的出现频次做为 value,使用hash表进行统计和存储,得到结果为 Hk2.下一步我们首先构建一个空的hash表 Hk2-1,然后对上一步得到的Hk2进行遍历,对遍历得到的每个记录,分别取其key的长为k2-1的前缀子串做为新的key,将该记录的value 累加到 Hk2-1中该key对应的value上,最终得到该偏移处,k-mer长为k2-1时的频次统计结果.不断重复上述过程,通过遍历k-mer长度为k+ 1时的已得结果,得到k-mer长度为k时的统计结果,直至得到该偏移处 k-mer长度为最小值k1时的结果 Hk1.然后再滑动到下一个偏移处,重复上述过程,直至滑动到最右偏移处,最终得到所有的统计结果.完整的算法如下所示:对我们提出的逆向遍历算法 BTKC,对于任意一偏移位置,仅需在计算最大 k-mer长度(k2)的频次结果时,需要遍历所有n条序列,并假设此时得到的结果集合大小为n'(n'≤n) .对于计算其它长度为k(k1≤k≤k2)的k-mer结果时,我们仅需遍历上次已经获得的长度为k+1的结果集合中每一条记录.假设生物序列符号空间∑ 中每个符号在生物序列空间Ω中均匀分布,则可知我们新获得的结果集合的大小是上次所得结果集合大小的,重复上述过程,直至到达 k-mer长度的最小值(k1),再转到下一偏移位置处,继续从最大长度k-mer统计到最小长度.因此可知整个算法的计算量为由于n'≤n且,所以整个算法的时间复杂度为O(mn),且与k1和k2的取值无关.与FTKC算法相比,BTKC的时间复杂度仅为前者的 1/(k2-k1).特别是当k2和k1差值较大时候,BTKC算法的性能提升更加明显.4 测试结果及结论实验中我们采用的是基因序列,使用随机算法生成我们的模拟数据集.测试平台为: Intel Core i5-2400 CPU(4 cores,3.10GHz),DDR2 RAM(4.00GB),Win7 OS.图2给出的了在相同序列长度(长为100),相同的k-mer变化范围(2~7),FTKC和BTKC的运行时间与序列条数之间的关系.从图中可以看出,随着序列条数的增加,两种算法的运行时间均呈线性增加.该观察结果与我们在算法复杂度中分析的结果一致,即两种算法时间复杂度与序列条数呈线性相关.图 3给出了在相同序列条数(5000条),相同的k-mer变化范围(2~7)时,FTKC和BTKC的运行时间与序列长度之间的关系.从图中可以看出,随着序列长度的增加,两种算法的运行时间也都呈线性增加.该观测结果也与我们在算法复杂度中的分析结果一致,即两种算法的时间复杂度与序列长度的呈线性相关.图4中给出了在相同序列条数(10000条),相同序列长度(100),不同k-mer长度变化范围(为了方便比较,k-mer长度的最小值固定为2,k-mer长度的最大值变化)时,FTKC和 BTKC两种算法的运行时间与k-mer长度变化范围之间的关系.从图中可以看出,FTKC算法的运行时间随着 k-mer长度变化范围的增加而呈线性增加,而BTKC算法的运行时间在不同k-mer长度变化范围下几乎不变,该结果表明,相比较FTKC算法而言,我们提出的BTKC算法的时间复杂度与k-mer长度变化范围无关,BTKC算法的时间性能是FTKC的k2-k1倍,特别是随着 k-mer最大长度的增加,BTKC算法的性能改进就越明显.为了确定算法的有效性,我们在真实数据集上进行了测试.真实数据源自D.ananassae数据集中Illumina RNA-Seq SRR332538中前10000条长为150的RNA序列.图5给出了在相同序列条数(10000条),相同序列长度(150),不同k-mer长度变化范围(为了方便比较,k-mer长度的最小值固定为2,k-mer长度的最大值变化)时,FTKC和BTKC两种算法的运行时间与k-mer长度变化范围之间的关系.从图中可以看出,两种算法的运行时间变化趋势与我们在图4种观测的结果基本一致.该结果表明,相比较 FTKC算法而言,BTKC算法的时间性能在模拟数据集和真实数据集上都有着非常明显的提升,这充分表明了BTKC算法的有效性.图2 序列条数与运行时间关系图3 序列长度与运行时间关系图4 k-mer长度变化范围与运行时间关系图5 真实数据集(Illumina RNA-Seq SRR332538)上k-mer长度变化范围与运行时间关系5 结语本文针对多序列在对齐模式下,不同偏移位置处一段长度范围内的k-mer频次统计问题进行研究,相比传统的基于正向遍历的k-mer计数算法FTKC,提出并实现了一种逆向遍历 k-mer计数算法 BTKC.在每一偏移位置处,BTKC算法首先遍历所有序列,得到最长 k-mer的频次统计信息,在对其他长度的k-mer频次信息进行统计时,均是利用已经获得长度的k-mer统计信息,快速得到长度的k-mer统计信息,从而避免了FTKC算法中,统计每个长度的k-mer信息时均需要对所有序列进行遍历.算法的时间复杂度分析及实验结果表明,相比于FTKC算法,BTKC算法性能提升明显,且其时间复杂度与k-mer长度的变化范围无关,非常适合于在 k-mer长度变化范围较大的情况下使用.参考文献【相关文献】1 Hao BL.Fractals from genomes–exact solutions of a biology-inspired problem.Physica A: Statistical Mechanics and its Applications,2000,282(1): 225-246.2 Hao B,Lee HC,Zhang S.Fractals related to long DNA sequences and complete genomes.Chaos,Solitons &Fractals,2000,11(6): 825-836.3 王树林,王戟,陈火旺,等.k-长 DNA 子序列计数算法研究.计算机工程,2007,9:14.4 Marçais G,Kingsford C.A fast,lock-free approach for efficient parallel counting of occurrences of k-mers.Bioinformatics,2011,27(6): 764-770.5 Melsted P,Pritchard JK.Efficient counting of k-mers in DNA sequences using a bloom filter.BMC bioinformatics,2011,12(1): 333.6 Rizk G,Lavenier D,Chikhi R.DSK: k-mer counting with very low memoryusage.Bioinformatics,2013,29(5): 652-653.。

DNA序列的k-mer index问题研究

DNA序列的k-mer index问题研究

DNA序列的k-mer index问题摘要在21世纪,科学技术迅猛发展,它推动了生命科学发展的步伐。

20世纪90年代人类基因工程计划(Human Genome Project, HGP)的启动和实施,大量的生物分子数据随之产生,这些生物数据蕴含着丰富的生物信息,为了能够管理好这些数据并从海量的数据中提取出有价值的信息,众多的生物学家、数学家、计算机科学家被吸引到这个新的领域并积极进行研究,计算分子生物学就是在这种挑战性的研究过程中产生的一门新兴的交叉学科,它的核心内容是生物序列分析的研究。

本文对DNA序列的k-mer index问题来实现固定给出k的值对碱基片段的解决方法,我们采用“KMP算法”和“数据结构”中“哈希算法”来解决这个问题。

KMP算法:我们先通过电脑随机自动生成100万条长度为100的基因序列,并将其编号存入一维数组当中。

随后以K为长度将每条基因序列进行分段处理,并且将其排序存到一个a[n][m][t]的三维数组当中,其中n是基因序列的序号,m 是本基因片段在这条基因序列中的位置,t是本基因片段的每一个基因的所在位置的序号。

输入你要查询的基因片段,运用KMP算法,设置双循环结构,进行字符串的匹配。

如若查询到了需要的基因片段,返还n和m即可知道本基因片段在这一百万条基因序列中的位置。

哈希算法的主要特点:查找速度快捷、直接、简单。

对所给的大量数据的碱基序列先运用其碱基种类较少的特点将其赋予特定的值,然后在100万行碱基序列中以单向数学函数(哈希函数)的方法对碱基序列进行地址映射,就得到了一个有序的碱基片段的地址存储单元,对这个有序列进行按位查找,给出了一种用进制转化的方法来解决这个问题。

根据哈希算法进制转换的思想,令碱基A->0,C->1,G->2,T->3,从而k-mer可以看成一个四进制的序列数,根据四进制对十进制的转化方法可得到一个十进制数,当取定一个k的值时,在每一行的长度为100的碱基序列中,可得到100-k+1个十进制数,将输入的特定的k个碱基片段在100万行中以十进制的形式进行匹配,程序会输出碱基片段所在的行标,列标。

k-mer相关

k-mer相关

k-mer相关图片那么这个东西有啥用途呢?图片估计基因组的大小k-mer的总数为L-K+1。

基因组估计的误差百分数为(L-N)/L。

可以看到随着L增加,基因组估计的误差逐渐减小,所以对于更大的片段大小,k-mer 的总数提供了一个很好的近似于实际的基因组大小的估计。

在实际的测序中,我们知道的参数有测序所得到的所有子序列为K的总数N,K值以及reads的读长L,reads的数量C。

那么N=C*(L-K+1)因为用每个read的k-mer数量n去估计基因组大小,而n=L-K+1,所以基因组大小G=N/C。

这个C也叫作测序中的覆盖范围。

但是在实际中,PCR总有其偏好性,虽然拷贝数为C,但是C大概率是有重叠的,不能体现真实的覆盖水平。

因此在实际中,需要用到平均覆盖深度去代替这个理论的覆盖深度C值。

那么平均覆盖深度又怎么计算呢,这又得用到一个词——k-mer频率。

k-mer频率指的是,整个测序过程中产生的长度为K的子序列总数N,统计每个长度为K的子序列在N中出现的次数,这个频数就构成了横坐标。

再把这个频数所对应的子序列的数值作为纵坐标。

比如3个子序列出现了1次,5个子序列出现了2次,10个子序列出现了3次,6个子序列出现了4次,那么所画出来的k-mer分布图如下。

也可以将频率(频数/N)。

近似呈现泊松分布,以峰值所对应的横坐标作为平均覆盖度,代入到上面的公式中。

但是在实际的情况下,通常会出低频数的地方出现下降的情况。

这是因为测序的错误,很多的K-mer只有孤立的几条,但是测序的累计错误还是很高的,所以对应的频率(也就是纵坐标)也会很高。

图片估计基因的复杂度这里说的复杂度主要是指的杂合性,倍性,重复序列等等。

理想情况下,k-mer分布图只有一个主峰,但是一些基因组复杂度较高,会出现多个主峰的情况。

首先,若是测序的深度是2(测序深度是指测序得到的总碱基数与待测基因组大小的比值,可以理解为基因组中每个碱基被测序到的平均次数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c o mp l e x i y t wa s f o u n d n o t t o b e r e a l t e d wi t h t h e r a n g e o f k - me r l e n g t h .
pr e s e n t a n e w ba c k wa r d t r a v e r s e k - me r c o u n t i ng a l g o it r h m c a l l e d BTKC.BTKC a l g o r i t h m ak t e s f ul l a d v a n t a ge o f t h e k +l - me t ’ s s t a t i s t i c i nf o m a r t i o n t o o b t a i n k - me r ’ S s at t i s t i c i n f o m a r t i o n q u i c k l y  ̄ Th u s .i t ’ S no n e e d t o ra t v e r s e t h e wh o l e s e q u e n c e s wh e n c o u n t i n g e a c h s i n g l e k - me t .Bo t h t h e a l g o r i t h m’ S t i me c o mp l e xi t y a n d e x p e ime r n t r e s u l t s s h o w t h a t BTKC g e t s a n o b vi o u s i mp r o v e me n t c o mpa r e d wi t h f o r wa r d t r a v e r s e k ・ me t c o u n t i ng a l g o r i t h m FTKC,a n d i t s t i me
pr o c e s s i n g .Th i s p a pe r f o c u s e s o n c o u nt i n g k - me r s a t e a c h po s i t i o n o f mu l t i p l e s e q u e nc e s wi t h i n a l i g ne d mo d e .W e
Abs t r a c t : K— me t c o u nt i n g o f bi o l o g i c a l s e q u e nc e i s a f u nd a me n t a l a nd v e r y i mp o r t a n t p r o bl e m i n b i o l o g i c a l i n f o r ma t i o n
算法, B T K C算法性能提升ห้องสมุดไป่ตู้常 明显,且其时间复杂度与 k . me r 长度 的变化 范围无关,非常适合于在 k — me t 长度变
化 范 围较大 的情况下使用.
关键词: k — me r ; k — me r 计数;频次统计;逆 向遍历;生物信息处理
Al g o r i t h ms f o r Bi o l o g i c a l Se que nc e K- me r Fr e qu e n c y Co unt i ng Pr o bl e m
ZH AN G Xi n . Xi n . - , CH EN Bo . 一 , HE J i . Li ng , X U Yo u ,
( S c h o o l o f C o mp u t e r S c i e n c e a n dT e c h n o l o g y , U n i v e r s i t y o f S c i e n c e a n dT e c h n o l o yo g f C h i n a , He f e i 2 3 0 0 2 7 , C h i n a ) ( Ke y L a b o r a t o r y o f Hi g h P e r f o r ma n c e C o mp u t i n g o f An h u i P r o v i n c e , H e f e i 2 3 0 0 2 7 , C h i n a )
2 0 1 4年 第 2 3卷 第 4期
h t t p : / / ww w. c - S - a . o r g . c n
计 算 机 系 统 应 用
生物序列数据 K - me r 频次统计问题的算
张鑫鑫 , - ,陈 波 , 一 ,何继凌 ,徐 云 ,
( 中国科 学技术大学计算机科学与技术学 院,合肥 2 3 0 0 2 7 ) ( 安徽省高性能计算重点实验室,合肥 2 3 0 0 2 7 )

要:生物序列的 k . me t 频次统计是生物信息处理 中一个非常基础且重要 的问题 . 本文针对 多序列在对齐模式
下, 不 同偏移 处一段 长度 范围 内的 k . me r 频次统计 问题进行 了研究. 提 出 了一种逆 向遍历 k . m e r 计数算法 B T KC . 该算法能够充分利用长度 的k — me t 统计信 息, 快速得到长度 的 k . me r 统计信 息, 从而避 免了统计任 意长度 的 k — me r 频次信息 时都需要对所有序列进行遍 历. 算法 的时间复杂度分析及 实验 结果表明, 相 比于传统 的前 向遍历 F T K C
相关文档
最新文档