生物序列搜索算法的进化

这是我上的生物信息学课前三周主要学习的一篇文章,自己进行了全文翻译。本来应该在实验室做实验的我,现在却只能在宅在家里摸鱼学习,一周两节网课约等于没课,简直是愉快地荒废了整个学期啊。

文献:Kucherov,G. (2019) Evolution of biosequence search algorithms: a brief survey. Bioinformatics, 35, 3547–3552.


Evolution of biosequence search algorithms: a brief survey

生物序列搜索算法的进化:一项简短的调查

动机:虽然现代高通量生物分子技术产生了各种类型的数据,但生物序列数据(biosequence data)仍然是生物信息学分析的核心。然而,处理这些数据的计算技术发生了巨大的变化。

结果:在这篇鸟瞰评论中,我们概述了用于比较和搜索生物序列(comparing and searching biological sequences)的主要算法技术的演变。我们强调了针对几个相互关联的因素而出现的关键算法思想:生物分析范例的转变(shifts of biological analytical paradigm)、新测序技术的出现(advent of new sequencing technologies)以及现有数据规模的大幅度增加(a substantial increase in size of the available data)。我们讨论了无比对技术(alignment-free techniques)的增加,以取代在大规模分析中基于比对的算法。我们进一步强调了最近出现的和越来越多的素描方法(sketching methods)的应用,这些方法支持对大量数据集的比较,例如宏基因组学(metagenomics)样本。最后,我们重点讨论了向群体基因组学(population genomics)的过渡,并概述了相关的算法挑战。

1 Introduction

2 Early days: dynamic programing 早期:动态规划

3 Filtration-based heuristics and database search 基于过滤的启发法和数据库搜索

4 Burrows-Wheeler transform and next generation sequencing revolution B-W变换和下一代测序革命

5 Second life of alignment-free methods 无比对方法的第二生命

6 Sketch-based methods 基于素描的方法

7 From genomics to population genomics从基因组学到群体基因组学


1 Introduction

生物信息学作为计算机科学的一个主要应用领域,在90年代的兴起是由生物大分子(DNA、RNA和蛋白质)的序列组成(sequential composition)的大量增加所推动的。忠实地将这些分子表示为一个小的固定字母表上的字符串,再加上获得这种字符串的现有技术,为计算机科学家提供了前所未有的机会,使他们能够迅速地将他们的算法思想(algorithmic ideas)应用于生物分析。即使现在许多其他类型的数据由基因组(genomic)和蛋白质组学技术(proteomic technologies)(HiC、质谱、微阵列)产生,生物序列数据(biosequence data)仍然是生物信息学(bioinformatics)的核心。

自核苷酸测序开始以来,基因组序列数据以越来越快的速度产生。然而,这一增长并不稳定,因为它的标志是测序技术的几个主要创新,它们都要求采用新的算法技术来应对新的计算挑战。

在过去的几年里,基因组测序(genome sequencing)成为大数据的主要产生者,它正在迅速赶上最著名的大数据应用——天文学或社交媒体。序列读段存档(Sequence Read Archive,SRA)(http://www.ncbi.nlm.nih.gov/traces/sra/)自2007年以来爆炸性地增长,目前包含大约15PB碱基,其中几乎一半在开放访问中。目前估计产生的序列数据总量每七个月翻一番,与此相对应的是,根据著名的Moore’s law,处理器的性能每2年翻一番。今天的基因组测序项目往往涉及巨大的,有时是TB(terabyte,1000G)大小的数据集,而2001年用于人类基因组测序的数据约为25GB。这一进化需要对DNA搜索和比较(search and comparison)的算法基础进行新的修订(revision)。

分配和云计算(distributed and cloud computing)可以为存储和处理大数据提供基础设施(infrastructures),避免昂贵的数据传输(data transfers)。然而,这些可用的技术只能是解决方案的一部分,必须辅之以新的软件工具(novel software tool)。这反过来又要求开发基于新算法方法(new algorithmic methods)和高效数据结构(efficient data structures)的新计算技术。

分析大序列数据的另一个途径是最近对机器学习技术(machine learning techniques)的爆炸性兴趣,特别是在深度学习(deep learning)方面,这是受图像分析、语音识别(image analysis, speech recognition)和其他一些领域的惊人结果的启发。这一发展并没有避开生物信息学:在过去几年里,已经发表了一些作品,将深度学习应用于一系列生物信息学问题,包括序列分析。虽然这一方向是有希望的,并且可能在未来几年中扩展,但深度学习通常也需要大量的训练数据集(training datasets)和强大的计算机基础设施。由于其可解释性(interpretability)和可控精度(controlled precision),“传统”算法技术在生物序列分析中仍然占主导地位。

本文的目的是概述针对DNA测序技术(DNA sequencing technologies)的演变而引入的关键算法思想(algorithmic ideas)。我们特别关注最近的发展,为了面对目前大量流入的DNA序列数据而研究的算法技术。

2 Early days: dynamic programing 早期:动态规划

随着生物序列从80年代开始变得越来越可获得,检测它们之间的相似性(similarities)为生物研究开辟了各种新的机会。生物序列的距离测量(distance measure on biosequences)是由这些序列在进化过程中所经历的突变转化(mutational transformations)的统计数据决定的。比较相对较短序列(如基因)的通常模型(usual model)只考虑点突变(point mutations),即字符替换(character substitutions)、插入或删除(insertions or deletions)。然而,简单的编辑距离(edit distance)不足以反映生物的接近程度(proximity),然后被加权编辑距离(weighted edit distance)所取代,通过相似性评分(similarity score)来定义,其中不同的字符替换可能有不同的罚分(penalties)。然后,将两个序列的整体比较形式化为最优全局比对(optimal global alignment)问题,并用生物信息学中的经典动态规划算法(classical dynamic programing algorithm)Needleman-Wunsch算法求解。

Smith-Waterman算法是对Needleman-Wunsch算法的修改,用于计算最优局部比对(optimal local alignment),即两个输入序列子字符串(substrings)的最佳全局比对。这种计算与更广泛的生物任务有关,这些任务涉及在序列中寻找相似的片段,例如基因组之间的相似基因或蛋白质之间的相似蛋白质结构域。Gotoh’s算法进一步将Needleman-Wunsch算法和Smith-Waterman算法扩展到仿射空位罚分(affine gap penalties)的情况,对k个连续(consecutive)插入(或删除)的罚分是空位开始罚分(gap opening penalty)与k-1个空位扩展罚分(k gap extension penalties)之和。

然而,所有这些算法对于m、n具有时间复杂度(time complexity)O(nm),n、m是所涉及序列的长度,因此对于大规模序列搜索的计算要求太高(too computationally demanding),尽管对于全局比对,空间复杂度(space complexity)可以通过一个简洁的分而治之的技巧(divide-and-conquer trick)使之线性化。

3 Filtration-based heuristics and database search 基于过滤的启发法和数据库搜索

到80年代末,可用DNA测序数据的总体积达到数千万个核苷酸的规模(the scale of tens of millions of nucleotides),并开始在数据库中组织起来,然后可以搜索序列查询(searched for sequence queries)。这导致了一个新的系列工具的出现,最突出的代表是流行的BLAST(Basic Local Alignment Search Tool,基本局部比对搜索工具)软件。从算法的角度来看,这些工具实现了一种启发式的(heuristic)序列比对方法,它遵循两种一般的思想:过滤和索引(filtration and indexing)。

在这里过滤(filtration)包括识别数据库中与查询片段(query)共享的小匹配模式(small matching patterns)的序列片段,称为种子(seeds)。然后,数据库的其余部分从考虑中丢弃(“过滤掉”)(filtered out),并尝试使用成本更高的算法(costlier algorithm)将种子扩展为有意义的比对,可能涉及动态规划。搜索使用数据库的预构建索引(pre-built index),通常是哈希表(hash table),加快定位在查询(query)中找到的种子模式(seed patterns)的位置。这种方法的性能被定义为在感兴趣下检测到的比对的分数(灵敏性)(sensitivity)与“假阳性”假种子的比率(特异性)(specificity)之间的权衡(trade-off),并由用于过滤的种子类型决定。例如,用于DNA序列(blastn)的BLAST的早期版本使用与查询共享的11个连续匹配核苷酸的默认值来触发扩展步骤。

虽然BLAST的流行使其成为一种普遍的工具,现在仍然用于小规模序列比较(small-scale sequence comparisons),但2002年左右提出了一种优雅的算法(elegant algorithmic)改进BLAST:结果表明,通过将连续种子(k个连续匹配核苷酸)(k consecutive matching nucleotides)替换为根据给定模式取样的k个匹配核苷酸(k matching nucleotides),即间隔种子(spaced seed),可以自由地改善敏感性-特异性权衡(the sensitivity–specificity trade-off)。由于随机序列中模式的统计特性,这种看似微不足道的修改结果带来了显著的改善。spaced seed应用于DNA搜索的优势首先由Li和Ma等人建立,与模式搜索软件(PatternHunter software)有关,后来被许多其他算法利用。值得注意的是,特定spaced seed的选择可以为所考虑的序列类别优化,进一步提高搜索的灵活性和适应性(flexibility and adaptability)。

BLAST仍然是一把“瑞士军刀(Swiss army knife)”,用于生物信息学分析将近二十年,为全基因组测序的时代做好了准备。从90年代末的几个首要模型生物(several first model organisms)的测序开始,2001年[草稿(lander等人,2001年;venter,2001年)]和2004年[完成版本(国际人类基因组测序联合会,2004年)]公布了人类基因组序列,标志着[使用表达]基因组时代的“开始的结束”(the ‘end of the beginning’),其特征是生物研究的方法重点(methodological focus)从单个基因转变为全基因组。

4 Burrows-Wheeler transform and next generation sequencing revolution B-W变换和下一代测序革命

由于所谓的下一代测序(next generation sequencing,NGS)技术的出现,2000年代中期出现了重大的技术转变。这些测序仪(sequencers)产生了非常短的DNA片段,称为reads(35-400nt),数量巨大(每次运行数十GB的测序数据),成本低。这一发展对基因组研究的许多领域产生了巨大的影响,使以前不可行或根本不可能进行的全基因组(genome-wide)或群体范围(population-wide)的研究成为可能。NGS的应用不仅限于“读取”基因组DNA,其他主要应用领域包括测序RNA转录本(RNA-seq)、分析DNA甲基化(Methyl-seq)、研究蛋白质-DNA相互作用(ChIP-seq)和蛋白质组学图谱(proteomic profiles)(exome sequencing,外显子测序)。Kulski提供了NGS技术和应用的最新全景图(panorama)。

处理NGS测序数据最常见的任务(task)是读段映射(read mapping)在参考基因组序列(reference genomic sequence)中定位读段(locating reads)并计算相应的比对(alignments)。在这里,输入的reads通常来自正在研究的有机体(例如患病个体),参考基因组是已知的具有代表性的物种基因组序列(例如参考人类基因组序列),或可能是系统发育相关的物种(phylogenetically related species)。虽然这个问题在计算上定义得很好,但一个主要的困难来自数据的大小:数以百万计的reads必须与一个可以包含数十亿个字母的序列进行比对。类似BLAST的工具根本无法在合理的时间内处理这样的数据。作为一个例子,在一台强大的12核(12-core)计算机上,将中等大小的几百万个100bp的reads映射到平均大小的人类染色体9,需要>24小时的BLAST。这导致开发了一些专门的读段映射比对工具(read mapping alignment tools)。

开发出了各种各样的read mapping软件。最常见的实用映射软件包括BWA-MEM、Bowtie2、GEM,它们比类似BLAST的工具快几个数量级。因此,BWA-MEM花费大约6分钟来完成上述映射任务。这些算法的一个主要效率(efficiency)来源是被称为BWT-或FM-index的索引结构(indexing structure)。

BWT-index的根源在于词组合(word combinatorics):它基于Burrows-Wheeler变换(Burrows-Wheeler transform),从组合的角度来看,它与Gessel-Reutenauer双射(bijection,一一对应关系)有着密切的联系。虽然BWT的主要应用是文本压缩(text compression),但它被应用于构造一个简洁的文本索引(compact text index),结果令人惊讶地强大。

与以BLAST为代表的基于哈希的索引基础(hash-based indexes underpinning)支持种子和扩展策略(seed-and-extend strategies)不同,BWT索引是一个全文索引(full-text index),因为它支持搜索任意大小的字符串(arbitrary-size strings)。其他流行的全文索引,如后缀树(suffix tree)、后缀数组(suffix array)及其变体,也被用于生物信息学算法,但被证明需要更多的空间。BWT-index属于一个更普遍的简洁索引(succinct indexes)系列,其以位(bits)为单位的大小接近于对象(这里是序列)的无损表示(lossless representation of the object)所需的信息理论最小值(information-theoretic minimum)。在实践中,DNA数据的BWT索引每个字符取几位,例如,流行的映射软件,如BWA-MEM或Bowtie2索引输入序列及其补码(complement),每个字符(per character)使用少于两个字节(bytes)。与后缀树或后缀数组相比,减少了一个数量级。有趣的是,虽然BWT索引要紧凑(compact)得多,但它可以提供比经典索引更多的功能:例如BWT-index可以扩展到支持对模式(patterns)的双向搜索(bi-directional search),这有助于更有效率的算法解决方案。

总之,随着NGS技术的兴起,DNA数据集的规模从兆字节(megabyte)转移到千兆(gigabyte)字节。BWT-index可以被认为是响应这一转变的主要新的算法工具。因此,通用的(generic)类似BLAST的工具让位给了专用的(dedicated)NGS读段比对软件,主要是基于BWT索引的。

5 Second life of alignment-free methods 无比对方法的第二生命

现代数据集的完全大小往往使它很难应用即使是最有效的序列比对软件。这方面的一个例子是宏基因组学(metagenomics),其任务可能是将数百万reads比对到数千计的微生物基因组(microbial genomes),以阐明正在研究的环境样本的组成。即使是专门的比对软件也可能不满足这项任务的实际时间要求。另一方面,在宏基因组学等应用中,计算比对可能并不是必要的,因为我们通常只寻求识别给定read可能起源于的基因组。

一种处理这种情况的方法是放弃计算比对的想法,用一种较弱但更容易计算的相似性度量(easier-to-compute similarity measures)来代替它,以较低的精度(lower accuracy)为代价,允许加速和内存增益(speed-ups and memory gain)。一个常见的想法是将序列看作是出现在其中的一(多)组模式(a (multi-)set of patterns)。在最简单的情况下,这些模式是固定长度k的子字符串(substrings)(k-mers)。然后,通过相应集合之间的相似性来表示序列之间的相似性。这种方法被称为无比对(alignment-free)或基于组合的比较(composition-based comparison)。

虽然以前在生物信息学中考虑过无对齐方法,但直到最近,它们的应用还不常见,因为大多数努力都是为了改进比对算法。另一方面,无比对方法在机器学习(machine learning)或信息检索(information retrieval)中得到了广泛和长期的探索;然而,经典的机器学习技术(例如基于核的方法(kernel-based methods)),一般来说在现代生物信息学应用所要求的规模上是不可行的。

今天,新的资源节约的(resource-frugal)无比对技术正在迅速得到广泛的应用。继续使用宏基因组的例子,大多数用于全基因组测序数据的现代宏基因组分类器(classifiers)都是基于k-mer分析的。这一发展提出了新的算法问题。缩放到所需的数据大小需要计算轻量级的算法以及极其内存高效的(memory-efficient)优化数据结构(optimized data structures)。

除了上述BWT-index外,还有几种建议的数据结构建立在Bloom filters的基础上——这是一种经典的数据结构,适用于要求内存的应用程序(memory-demanding applications)。作为一个例子,Bloom filters已经被应用于表示de Bruijn graphs——一种广泛用于基因组组装的模型。Bloom filters的扩展包括Cascading Bloom Filter、Bloom Filter Trie、Sequence Bloom tree及其变体。已经提出了节省空间(space-efficient)和方便缓存(cache-friendly)的无损散列方案(lossless hashing schemes),如计数商过滤器(counting quotient filters),作为Bloom filters的替代方案。

除了处理内存约束(memory constraints)外,在这类方法中,一个普遍的算法挑战是在非常强的时间和内存限制(time and memory restrictions)下,在捕获序列相似性(capturing sequence similarity)方面达到最佳的精度(accuracy)。例如,在短Illumina reads的宏基因组分类中,基于k-mer的方法可能已经达到了与Blast-like方法相当的精度。有趣的是,可以通过将k-mers替换为spaced k-mers来提高精度,其原理与计算比对(computing alignments)的方法相同。

6 Sketch-based methods 基于素描的方法

在现代应用中越来越常见的兆兆碱基(tera-base)尺度数据集施加了新的约束,因为它们固有地无法在GB尺度内存中进行索引,而不牺牲索引的详尽性(exhaustive character)。在这种情况下,在过去的几年里,人们对基于局部敏感散列(locality-sensitive hashing,LSH)的方法越来越感兴趣。简而言之,LSH的思想是将复杂的对象(例如长序列)映射(map)到较小的对象,称为草图或指纹(sketches or fingerprints),这样相似的对象很可能被映射到相似或相同的草图。这允许按草图上的相应操作(corresponding operations on sketches)替换对输入对象的操作(搜索、比较、序列重叠等)。

从indyk和motwani的开创性论文出发,从理论角度对LSH的概念进行了广泛的研究。另一方面,LSH的一个具体实例,称为MinHash,早些时候被应用于寻找类似的网络文档。MinHash可以看作是遵循前面讨论的无比对模式(alignment-free paradigm),因为它认为序列是它们的k-mers的集合(最初称为shingles),并测量序列相似性作为这些集合上的Jaccard索引。通过比较在一个或几个散列函数(hash functions)下使用相应的k-mers的最小哈希值(minimum hash values)定义的集合的草图来估计Jaccard index。

MinHash的基本形式只适用于比较类似大小(similar size)的数据集。如果一个人想在一个较长的序列(基因组)中搜索一个序列,一种处理大小差异的方法是使用winnowing,即为每个固定大小w的序列窗口计算一个最小值。如果每个窗口只计算一个哈希,这将导致最小化器(minimizer)的概念:minimizer是一个最小值(在给定的顺序下,例如词典编纂的(lexicographical))k-mer在一些大小为w的周围窗口(surrounding window)中。Minimizers被证明是应用于几种生物信息学应用(bioinformatics applications)的实用工具。

最近的几项工作使用MinHash对测序数据进行了各种非常大规模的分析。在Ondov等人,作者提出了一个公式,将Jaccard指数的最小估计转化为一个更具生物意义的参数:比较序列的核苷酸相同率(nucleotide identity rate of compared sequences)。基于这一措施,他们能够进行几次大规模的计算,例如绘制和聚类(sketching and clustering)整个RefSeq基因组数据库(RefSeq genome database, release 70),其序列数据超过600GB。在Ondov等人中,该方法适用于识别在给定的宏基因组中出现的大型基因组数据库的物种的问题。

除了处理非常大的数据集外,MinHashing还提供了一种通过使用minimizers作为种子来改进基于种子的序列搜索(seed-based sequence search (cf above))的方法。这一想法对于映射(mapping)由“第三代测序技术”(third-generation sequencing technologies)产生的长reads特别有用,例如Pacific Biosciences(TM)或Oxford Nanopore(TM),它们呈现出以短片段的插入/缺失(insertions/deletions (indels))为主的高错误率。在这里,minimizers可以作为“标记片段”(marker fragments)来支持以更灵活(flexible)的方式处理Indels的搜索算法。这一方向已被最近提出的长reads的mappers所探索。

用于生物信息学应用的MinHash的变体(variants)、扩展(extensions)和有效实现(efficient implementations)是目前积极研究的主题。其中一个扩展是一致的加权抽样(Consistent Weighted Sampling)或加权Minhash(Weighted MinHash),能够考虑到k-mer多样性(multiplicities)。这个草图方案最近得到了积极的研究,见Ertl、Wu等人及其参考文献,并开始应用于宏基因组数据集的大规模比较。

基于Bloom filters或草图(sketching)的节省计算的技术,使高效的查询(efficient queries)能够使用非常大的序列数据汇编(corpora)。在某种程度上类似于网络搜索,这样的搜索引擎(search engines)使得以更快和更简单的方式执行生物信息学分析成为可能。说明这种方法的一个最新工作报告说,建立了一个Bloom-filter-based的所有已知细菌和病毒(bacteria and viruses)的基因组索引(一共170TB),使这些数据可用于序列搜索查询(sequence search queries)。因此,例如,可以在单个搜索查询中评估某一基因的普遍程度(prevalence)。可以考虑搜索引擎(search engines)的许多其他应用,例如在RNA-Seq实验档案(archive)中查找一个基因转录本。

7 From genomics to population genomics从基因组学到群体基因组学

今天,我们生活在一个对各种物种的个体基因组进行广泛测序的时代。这首先适用于人类。许多国家在全国范围内开展了对其人口进行基因分型(genotyping)的项目。冰岛(Iceland)就是一个突出的例子,到今天为止,它已经为至少一半的公民收集了基因分型数据,其中成千上万的人已经建立了全基因组序列。荷兰基因组(Genome of the Netherlands)(http://www.nlgenome.nl/)项目旨在通过在全国范围内进行大规模测序,编制(compiling)基因组单倍型(genomic haplotypes)的综合地图(comprehensive maps),其他国家也采用了类似的方案。据一些人估计,到2025年,全世界将有1亿到20亿个人的基因组被测序。

多基因组基因分型(genotyping multiple genomes)并不局限于个体间(inter-individual)遗传变异的研究,而是包括一个细胞群体中的个体内部异质性(intra-individual heterogeneity)。一个值得注意的例子是,癌细胞基因组显示了体细胞突变(somatic mutations)之间的广泛异质性(extensive heterogeneity),包括患者内部突变(intra-)和患者间突变(inter-patient)。单细胞测序技术能够对特定的癌症亚克隆(specific cancer subclones)进行测序。大型国际财团(consortia)目前收集了大量关于不同癌症基因组变化的数据。其中,国家癌症研究所的基因组数据(Genomic Data Commons by National Cancer Institute)(https://gdc.cancer.gov/)共有几个10的15次方字节(petabytes)的序列或比对数据。

最后,除了人类,许多其他物种多个基因组正在被测序。某些细菌,特别是重要的人类病原体(pathogens),有多达数万株测序菌株。各种植物的基因组多样性(genomic diversity)也在积极研究中。例如,已经对数百种稻米的加入进行了测序。其他一些作物品系(crop lines)(玉米、番茄、大麦barley…)以及其他植物(例如拟南芥Arabidopsis thaliana)正在积极研究中。

在这种大规模测序的支持下,基因组学现在进入了一个新的阶段,其特征是潜在的方法范例(methodological paradigm)的另一次转变:现在基因组学的基本对象从一个物种的“参考基因组”(reference genome)转变为一个个体或细胞群体的集体基因组(collective genome),有时被称为泛基因组(pan-genome)

这一转变可与90年代后期大规模DNA测序开始时发生的“从基因到基因组(from genes to genomes)”(或“从遗传学到基因组学(from genetics to genomics)”)的转变相媲美,它导致方法论(methodological)重点从单个基因转变为全基因组。

图1. 与生物分析范式(paradigms)转变平行的主要算法技术的演变,其本身反映了技术转型(technologicaltransitions)和相关数据量的飞跃。DP,动态规划(dynamicprogramming)。

从计算的角度来看,群体基因组学(population genomics)的主要问题是如何代表(how to represent)群体的集体基因组(a collective genome of a population),以允许更有效的算法处理,另一方面,捕捉单个基因组的变化。这里的一个关键因素是一个物种内部有限的遗传变异:例如,只有大约0.1%的基因组在两个人类个体之间存在差异。这表明了一种方法,即将共同的基因组片段(common genomic fragments)表示在一个副本(single copy)中,从而将一个单一的参考基因组序列替换为一个标记的图(a labeled graph),其路径(paths)代表单个基因组。然而,这种表示有其局限性,因为它不能捕捉基因组不同部分之间的相互作用(如远程定位基因之间的上位性相互作用(epistatic interactions)),除非存储了图形路径(graph paths)的额外标记。

压缩基因组学(Compressive genomics)是一种试图从基因组数据的全局“拓扑”结构(global ‘topological’ structure)中获益的范例。一方面,相同或相近物种的生物序列高度相似。另一方面,相近序列通常与进化有关,因此,所有现有基因组序列的空间都具有低度量熵(low metric entropy)。这表明序列可以压缩的形式(compressed form)存储,搜索可以通过先定位目标序列的附近(vicinity)而不需要事先解压(prior decompression),然后通过在这个附近细化搜索来完成。概念证明(Proof-of-concept)实验证实了这种方法的正确性(soundness),但基于这种模式的实用搜索引擎仍然是可行的。


应对基因组数据的爆炸性增长将对几乎整个遗传研究产生巨大影响,从阐明基本遗传机制(elucidating fundamental genetic mechanisms)到为理解许多遗传疾病提供新的关键。为了给出一个例子,我们掌握(grasp)、表示(represent)和计算上接近癌症泛基因组(computationally approach)的能力,似乎是新的癌症疗法(therapies)道路上一个必要的步骤。我们认为,迎接这一挑战将是今后几年生物信息学议程上的一个重大问题。

你可能感兴趣的:(生物序列搜索算法的进化)