iMeta | 唐海宝/张兴坦-用于比较基因组学分析的多功能分析套件JCVI

JCVI:用于比较基因组学分析的多功能分析套件

图片

方法论文

 2024年6月12日,福建农林大学唐海宝和中国农业科学院深圳农业基因组所张兴坦团队在iMeta在线联合发表了题为 “JCVI: A versatile toolkit for comparative genomics analysis” 的方法文章。

● 本研究开发了基于 Python 的多功能JCVI库,该库采用模块化设计,为格式解析、图形生成和基因组组装和注释操作等任务提供了非常实用的程序,使研究人员能够以更简洁的方式进行全面的基因组学分析。

● 第一作者:唐海宝

● 合作作者:Vivek Krishnakumar、曾筱菲、徐洲更、Adam Taranto、Johnathan S. Lomas、张以星、黄育敏、王毅斌、Won Cheol Yim、张积森

● 主要单位:福建农林大学、J. Craig Venter Institute、中国农科院深圳农业基因组研究所

亮   点

图片

●  JCVI是一个基于Python的库,通过一系列简单的可复用工具实现基因组工作流;

●  JCVI库是模块化的,其基本功能分为生物信息学格式解析、组装和注释相关工具、比较基因组学和图形生成;

●  MCscan、ALLMAPS和JCVI中的其他工具等嵌入式算法现在在社区中广泛使用,并为各种用例提供了支持

摘  要

基因组的构建由组装、注释和比较基因组学分析等相互关联的关键部分组成,其中各部分虽然已经有相应的独立软件可供使用,但对于将这些分散的软件整合为一体的需求依然存在。比如,比较基因组学的方法可以包含对已组装基因组和注释的质量控制;同样,基因组组装的工具也可以识别出可能导致后续的比较基因组学分析复杂的可能人为因素。所以,为了满足这个需求,我们基于Python开发了JCVI库,它提供了一套在基因组构建过程中表现出色的工具,可以为文件格式解析、图形生成和基因组组装及注释等提供全面的帮助,其中支持的基因组学算法(如MCscan和ALLMAPS)已被广泛用于构建基因组,而且可以生成用于质量评估和进化推断的“发表级”的图表。同时,作为一个协作开发的软件,JCVI重视质量和复用性。

视频解读

Bilibili:https://www.bilibili.com/video/BV1FJ4m1u756/

Youtube:https://youtu.be/iJJNuyL1WAI

中文翻译、PPT、中/英文视频解读等扩展资料下载

全文解读

引  言

在动态发展的基因组学领域,基因组的组装和注释,以及比较基因组学等方法俨然已成为研究者解码生命的基本过程。同时,由于测序技术的进步,伴随着基因组数据的爆炸式增长,生物信息学领域变得更加复杂精妙。这种复杂和精妙是通过脚本语言(Python、Perl和R等)快速原型化算法和工作流实现的。截止至2024年3月,Python在TIOBE指数上一直稳居首位,因其具有清晰的语法、可读性和功能,使其成为科学家进行计算工作的理想选择。Python相比于其他语言,不仅具有丰富的可以解决各种复杂生物信息学问题的第三方库,还可以通过特别是Numpy、SciPy和PyTorch等库提供的多功能数组编程接口助力高性能代码的编写,实现大规模数据,甚至是DNA序列这种非零且可变长度数据的处理。

专为生物信息学的Python库已经存在了20多年,如用于开发基因组分析流程工具的Biopython,可以提供读写不同的序列或比对文件格式、与数据库交互、进行基本序列分析和利用命令行工具等简单功能。Biopython不仅促进基因组学分析流程的发展,还保证了这些流程具有鲁棒性、重现性以及适应基因组学研究的发展。这种模式影响了后来的,包括JCVI在内的,库的设计。

尽管Biopython提供了一些生物信息学分析的基本构件,但由于基因组数据的复杂性往往还需要更高级和专门的工具进行分析,来应对诸如基因组组装和比较基因组学的挑战。具体来说,基因组组装和注释间的通常需要做评估和比较;比较基因组学分析框架的基础,共线性分析;可以帮助识别和验证倒置基因的可视化展示。虽然以上这些例子都具有相应的独立工具,但研究者需要从头开始设计分析流程,来整合这些不同的分析和数据类型,十分不便。

JCVI的开发正是由目前基因组学领域缺乏涵盖基因组构建、比较、质控和多个遗传图谱之间的一致性评估等功能的高级库所驱动的。传统的工作流通常需要研究者在大量的分散的应用软件中往复,来进行比较基因组学的分析,如组装对齐、共线性分析和可视化。而JCVI的出现,带来的集成工具套件和应用程序提供了一个统一的一站式解决方案,使研究人员能以更简洁的方式进行综合的基因组学分析

结  果

JCVI一览

JCVI工具包旨在简化基因组数据的处理和分析,利用Python的多功能性,覆盖广泛的生物信息学任务。它涵盖了从处理各种生物信息学文件格式(如FASTA、FASTQ、AGP、BLAST、GFF3和BED等),到执行统计学总结、数据提取、格式转换,或作为高层应用程序基础等一系列功能。例如,软件包中的`formats.fasta`模块专门处理FASTA格式的序列数据,提供清理序列、比较记录、按标识符提取序列等功能。该模块支持按大小筛选序列、生成gap size报告、G+C含量分布以及将编码序列翻译为蛋白质等操作。常用格式的解析器,例如基础局部比对搜索工具(BLAST)的表格格式,采用Cython实现,以提升性能(相比纯Python实现速度提升超过2倍)。

除了格式处理,JCVI套件在基因组信息的可视化和分析方面也表现出色。通过其`graphics`模块和相关脚本,用户可以进行详细的可视化任务,如生成覆盖直方图、标注基因和序列、可视化染色体核型、绘制组装图和基因组图等。该套件通过复杂的基因组比对和组装质量评估图形表示丰富了基因组研究。

JCVI套件还包含一些简单格式解析和图形生成功能以外的高级模块。最具代表性的包括用于比较基因组学分析的`compara`模块,提供共线性块重建、基因丢失目录、基于配额的共线性比对、家系可视化和Ks计算及可视化等工具。该模块对于探索物种间的进化关系和基因组结构至关重要。此外,`assembly`模块有助于基因组组装和绘制图谱,如构建拟染色体序列、估算gap size大小、合并遗传图谱为一致性序列,以及遗传图谱和Hi-C接触图谱间的比较等,为研究人员提供了实现高质量基因组组装的工具。

其他实用的模块还有处理基因注释、命名和质量控制的`annotation`模块,特别适用于构建发布版本的基因组。`annotation`模块主要包含驱动综合注释流程的脚本。驱动脚本能够控制注释项目的生命周期,包括训练ab initio基因预测器、结构注释的后处理(如MAKER)和功能注释(如AHRD)。`apps`模块包含与GenBank、短读库(SRA)和Phytozome等工具,以及常用生物信息学应用程序的封装器。

综上,JCVI的这些模块着重说明了其在生物信息学中的重要性,提供了一个可访问、灵活且强大的资源,帮助科学家解决复杂的基因组数据分析和可视化挑战。

案例研究及结果

以下是JCVI库的几个高级用例。用例的详细信息也可以从GitHub的wiki页面访问:https://github.com/tanghaibao/jcvi/wiki,该页面提供了教程和测试数据,以指导用户完成示例。

案例一:使用MCscan进行共线性推断和可视化

MCscan是JCVI包中(`compara`模块内)实现的一个计算工具,已成为生物信息学和基因组学领域中用于分析多基因组之间同线性和共线性的一种普遍选择。共线性指的是两个或多个基因组内基因排列顺序的保守性,可以提供有关进化过程、基因功能和基因组结构的理解。MCscan通过基因顺序和相似性来检测多个基因组之间的共线性块,从而促进比较基因组学研究。

MCscan的核心原理是通过比较基因的顺序和序列相似性,识别不同物种(直系同源)或物种内(复制)之间的共线性区域。这涉及检查注释基因的模式,以识别具有序列保守性的区域。MCscan在植物基因组学中尤为有价值,因为频繁的基因组复制可能会模糊进化历史。一些基因组复制事件可能发生在物种分化之前或之后,从而创建多对多的同源区域作为共线性块。因此,识别共线性块使研究人员能够确定复制的时间,追踪基因起源(例如基因组复制、串联重复或单一转座),并探索核型保守性。

一个具体的例子是,我们分析了来自Phytozome数据库的葡萄和桃基因组。在检测到共线性块后,MCscan生成图形表示,如点图和染色体图,展示了染色体间的共线性关系。点图的解析涉及观察水平或垂直对齐的块的数量。例如,每个桃区域对应于葡萄中的多达三个共线性区域,反之亦然(图1A)。这反映了在3:3模式中观察到的共享基因组三倍化(也称为γ-事件)。染色体图提供了另一种可视化方式,通过在平行轨道之间显示的灰色丝带描绘染色体核型和共线性块的相互连接(图1B)。还可以进一步定制这些图形,通过颜色编码、调整染色体方向和灵活布局比较的基因组来增强特定块的视觉区分。

图片

图1. MCscan共线性分析结果示例

此外,用户可能希望展示局部共线性模式,或“微共线性”,此时灰色丝带连接匹配基因,而不是宏观共线性分析中的染色体片段。这在揭示几十个基因规模的局部细节时非常有用。类似于宏观共线性图,可以突出某些匹配以支持用户叙述(图1C)。还可以更改共线性连接的样式,以及在图上覆盖额外的特征和基因名称,以辅助目标检查。

案例二:基于图谱的组装与比对——ALLMAPS

精确排列和定向基因组scaffolds以重建染色体是从头组装基因组的基石。该过程通过整合多种图谱技术得到了,其中每种技术提供了支持最终组装的正交证据。ALLMAPS(在assembly.allmaps模块中)计算scaffolds顺序,使其与一系列图谱(包括遗传图谱、物理图谱或比较图谱)之间的共线性最大化,从而提高染色体组装的准确性和完整性。

ALLMAPS生成的结果是多方面的,为研究人员提供了基因组组装质量的视觉和统计学理解。每条重建的染色体都作为一个单独的可移植文档格式(PDF)文件报告(图2)。左侧面板(图谱视图)中的并排比对有助于通过交叉线识别冲突标记,而右侧面板中的散点图则描绘了标记的物理和图谱位置,帮助可视化共线性及其中断。附带的总结报告提供了关键统计数据,包括锚定的scaffolds数量和序列总长度等,这对于评估组装过程的结果至关重要。

图片

图2. ALLMAP生成结果示例

ALLMAPS是一个多功能工具,在基因组学中具有广泛的应用,特别适用于多倍体和高遗传变异水平对组装构成显著挑战的植物基因组学。通过整合多种类型的图谱数据,ALLMAPS增强了在复杂情况下构建准确基因组组装的能力。此外,其分裂嵌合重叠群和估算gap长度的能力进一步提高了其在细化基因组组装中的实用性。

案例三:基因组特征和景观绘图

JCVI包含许多例程,以创建自定义图表,旨在支持紧密的数据集成。在比较基因组学中,通常需要自定义可视化,将多维数据叠加在一起进行探索性分析,或者我们可能希望展示基因组中多个染色体区域的不同类别特征。假设用户想要绘制拟南芥基因组,并在其上叠加某些基因组特征。在提供一些基本信息,如染色体大小、基因组特征的位置(例如,转座子,使用BED格式),可以使用`graphics.chromosome`模块进行绘图,例如着丝粒等基因组特征可以很容易地绘制出来(图3A)。

图片

图3. graphics模块绘制的图标示例

此外,JCVI能够自定义基因组全景可视化,这在基因组注释中至关重要。这包括创建表示基因组特征的热图。例如,用户可能希望使用堆叠图或热图来可视化特定基因或转座子特征的基因组或染色体(图3B、C)。可以通过提供基本信息,如染色体大小和基因组特征的位置(例如,BED格式的转座子),使用`graphics.landscape`模块生成图表。对转座子元件分类等特征的原生支持使其能够直接包含在可视化中(图3B、C)。

案例四:基因组构建质量控制

JCVI包括一套工具,适用于基因组组装的各个阶段,从组装前的基因组调查到组装后的质量控制。通过分析K-mer谱,原始测序数据通常可以用来得出基因组的基本统计数据。JCVI实现了两种独立的估算基因组统计的方法——负二项混合模型和ALLPATHS方法。具体来说,基因组大小、倍性、杂合性和重复内容都可以仅根据测序数据估算,作为`assembly.kmer`模块的一部分(图4A)。

图片

图4. assembly模块绘制的图形示例

在初步基因组组装之后,需要进行重复的质量控制,以确保组装的基因组与正交证据(包括遗传图谱和Hi-C数据)一致。JCVI可以促进基因组组装和连锁模式之间的评估(图4B)。热图中的条目对应于成对连锁不平衡(r2),对角线条目通常表示物理上相近的标记之间的紧密连锁。非对角线连锁模式,例如图中所示的chr4和chr6(图4B),可能暗示潜在的错误组装。同样,基于Hi-C接触图的热图也可以是评估基因组构建质量的强大工具,对角线模式的中断可能表明错误组装(图4C)。这些一致性分析分别封装为`assembly.geneticmap`和`assembly.hic`模块的一部分。

案例五:谱系和基因组多样性

最后一个用例展示了JCVI中的工具帮助分析家系和品种之间的基因组变异。这些工具在研究基因组多样性的重测序项目中非常实用。一个基本分析是可视化品种的家系,例如,如果研究的基因组是作物品种,这可以展示育种历史。JCVI可以根据PED文件中编码的关系,使用compara.pedigree模块来可视化品种的家系。我们可以以饼图的形式估算家系中的亲子关系,饼图由父母节点沿家系进行着色(图5A)。还可以估算近交系数(F),以指示个体中两个等位基因来自共同祖先的同一来源的概率(图5A)。

图片

图5. compara模块绘制的图形示例

在重测序项目中,可视化品种之间的基因组变异(例如,拷贝数变异(CNV))通常很有用。在给定的示例中,测序深度模式可以揭示某些染色体缺失事件(例如chr3A)和重复事件(例如chr3B)——分别表现为测序深度的降低或升高(图5B)。该工具可以揭示育种或进化过程中特定的有用基因组事件。CNV在这里仅作为一个示例使用,其他变异模式或基因组特征也可以类似地绘制和对比,以获得直观的理解。

方  法

MCscan

这个模块进行了共线性搜索,以比较基因组和相应的染色体区域。为了识别共线性块,进行了全基因组比对(all-against-all LAST),并使用默认的20个基因距离的截止值将LAST比对结果链接起来,同时每个共线性块至少需要四对基因对。

序列相似性是基于一个重要的“C-score”计算的,该分数基于一个比率,将特定比对的LAST得分与每个序列在其任何比对中获得的最高得分进行比较。

C-score是LAST结果得分与每个LAST比对中查询或受试者观察到的最大得分的比率。这将得分标准化到0到1的范围内,其中1表示该比对的得分等于该序列在任何LAST比对中获得的最高得分。默认的C-score截止值是0.7,代表了在寻找直系同源基因和共享的旁系同源基因之间的平衡。此外,基因对会根据近端重复的重复匹配进行过滤(默认:10个基因距离内),在共线性块的初始种子过程中,仅保留得分最高的基因对作为代表对。

以上参数都可以在命令行中配置。所有计算步骤,包括LAST执行的驱动程序,均在JCVI中作为单一流程(`compara.catalog`)实现。

ALLMAPS

基因组组装的主要挑战在于准确排列和定向scaffolds,这是一项NP-hard难题,因为可能的scaffolds排列组合数量呈指数增长。ALLMAPS通过将scaffolds的排序和定向问题重新表述为旅行商问题(TSP)来解决这一挑战。TSP是一个著名的优化问题,其目标是找到访问一组地点并返回起点的最短路径。通过将scaffolds排序和定向问题转换为TSP,ALLMAPS采用遗传算法(GA)来优化scaffolds的排序和定向。遗传算法是一种基于自然选择和遗传学理念的自适应启发式搜索算法。它们特别适合解决传统方法效率低下的复杂优化问题。

在ALLMAPS的上下文中,GA通过多次迭代搜索最适合的scaffolds排列,与输入的图谱数据对齐,有效地通过连续几代“进化”朝向最佳解决方案。这种方法利用GA的随机性和选择压力,逐渐改进scaffolds的排列方式,使其更符合遗传图谱和物理图谱等输入数据,最终生成精确的染色体组装。

基于K-mer谱和连锁图的基因组构建质量控制

从测序数据中提取的K-mer谱根据两种不同的统计模型进行建模——负二项混合模型(默认模型)和ALLPATHS模型。简而言之,在负二项混合模型中,K-mer谱被分解为由基因组中具有不同拷贝数的部分生成的子谱。形式上,我们希望推断Gc,其中c是基因组中拷贝数为cK-mer的数量。观测到的K-mer谱用负二项分布的混合来建模,其计算公式如下:

其中,Gc是混合率,np是负二项分布的形状参数,通过数值方法估计这些参数,以迭代最小化观测到的K-mer谱与生成模型之间的L2距离,直至收敛。ALLPATHS模型则将K-mer简单地分类为单倍体、二倍体和重复,这种方法不太适用于多倍体基因组,但计算复杂度较低。

连锁图分析通过计算基因组中所有成对遗传标记之间的连锁不平衡(r2)来进行:

家系和基因组多样性

育种品种的系谱从PED文件格式中提取。每个品种的近交系数通过模拟N(默认值为10,000)个来自亲本的等位基因估计,用户可以指定倍性水平(默认值为2,但支持任意倍性)。然后通过计算出现超过一次的等位基因比例(即通过共同祖先传递而来的等位基因)来估计近交系数F

品种之间的拷贝数变异(CNV)使用Mosdepth进行分析,该工具从相应的BAM文件中计算每个基因组区间的平均测序深度,并进行对比分析。通过这种方法,可以评估不同品种之间的基因组变异,揭示育种或进化过程中发生的特定基因组事件。

讨  论

JCVI 的创新方法在于其为比较基因组学复杂需求设计的全面工具套件。JCVI 库是模块化的,提供了用于生物信息格式解析、图形生成和探索工具的实用程序,连接了组装、注释和比较基因组学分析,为研究人员提供了一个强大的框架。嵌入的应用程序如用于共线性推断和可视化的 MCscan和用于基于图谱的组装和比对的 ALLMAPS,体现了 JCVI 解决基因组学中复杂但常见挑战的能力。用户与 JCVI 交互的主要方式是通过其简单的命令行界面(CLI),这与提供主要 GUI 框架的工具如 TBtools不同。更高级的 JCVI 使用需要程序访问其可重用组件。这种模式定义了用户学习曲线与可定制性之间的独特权衡。

可视化在基因组研究中显得尤为重要,JCVI 提供了强大的工具用于共线性分析、染色体定位和其他可视化表示。先前的工具如 SyMap、染色体可视化工具(Chromosome Visualization Tool)和 VGSC2等,可以可视化共线性。这些工具都通过使人们能够探索和绘制不同生物体间的基因组相似性和变异图谱,为该领域做出了贡献。然而,MCscan 通过将这些视觉线索整合到一组特征提取和绘图工具中,支持从全基因组到局部区域的多尺度比较,从而区别于其他工具。

先前的共线性分析软件如 MCscanX和WGDI主要使用基于BLAST的直系同源预测,这依赖于E-value得分而没有额外的处理。单独依靠E-value得分进行直系同源预测可能会有问题,因为E-value依赖于数据库的大小,这意味着对比的显著性可能会在不同的比较中改变。这可能导致多次测试中的累积错误,进而导致误导性结果。此外,MCscanX依赖于BLAST,其速度显著较慢且易受重复命中影响。相比之下,JCVI的共线性推断基于通过LAST进行的自适应种子,并采用基于C-score的严格过滤和去除近距离重复,从而避免了找到硬性E-value临界值的困难并避免了重复带来的假象。先前的研究独立确认 JCVI 整体上比MCScanX表现更好。WGDI虽然在分析全基因组重复方面有效,但缺乏微共线性可视化和多基因组比较的能力,限制了其在需要详细基因顺序保守性可视化的比较基因组学研究中的应用。WGDI也倾向于提供较少的画布布局定制选项,而这对于在多个染色体区域和基因组之间进行比较的呈现是至关重要的。

组装大型、复杂、富含重复的多倍体或高度异质的基因组的挑战,使得独立的基因组组装和图谱构建在经济上和生成高质量序列上都存在巨大困难。为克服这些障碍,一种方法是利用早期的基于图谱的软件,如 JoinMap、MSTMap 和 R/qtl,这些软件利用了基因组测序和连锁图谱之间的协同作用。ALLMAPS 作为一种特别创新的工具,优化了测序数据与遗传或物理图谱和基因组共线性的整合。ALLMAPS 采用复杂的方法来调和不同数据类型之间的差异,迭代地排序和定位scaffolds,使其反映基于可用图谱的最准确排列。这一过程不仅增强了组装基因组的保真度,还显著有助于我们理解和解释复杂的基因组结构。

在当前许多“端到端”(T2T)基因组组装的时代,JCVI涵盖的Hi-C和连锁图谱数据的能力对于基因组组装质量尤为重要。通过整合ALLHIC、ALLMAPS、连锁图谱工具和MCscan的输出结果在同一框架下,可以提升基因组组装的质量,如案例III所示。这一框架使 JCVI 成为仅基于Hi-C组装或单独基于共线性方法的可行替代方案。尽管像 RagOO和 RAgTag这样的工具能够同时处理共线性和Hi-C数据,但结合使用ALLMAPS、ALLHIC、MCscan和质量控制工具的JCVI提供了一种更全面的方法。组装复杂基因组时,共线性分析、Hi-C数据和其他连锁图谱数据之间的一致性检查是强大且以视觉驱动的,如案例IV所示。因此,比较、组装和注释模块之间的紧密集成和交叉引用是JCVI的一个显著特征。

通过案例研究,包括使用MCscan进行共线性推断和使用ALLMAPS进行基于图谱的组装,以及其他许多案例,我们展示了JCVI如何促进复杂算法和工作流程。JCVI的持续发展由社区反馈和最新的基因组发现来驱动,承诺进一步增强其功能和适用性。这一进展预计将为生物信息学社区内的类似努力和项目(如Bioconductor和BioJS)提供启示。这种社区驱动的方法在确保库的质量和可重用性方面起到了关键作用,突显了生物信息学进步的协作性质。未来的更新可能包括对下一代测序技术的优化、应对新兴生物信息学挑战的扩展库,以及更多用户友好界面以适应不同计算技能水平的研究人员。

代码和数据可用性


JCVI库可以通过GitHub访问:https://github.com/tanghaibao/jcvi,其中包含了有关用法和示例的详细文档。截至2024年5月,该库已获得693个star和179个fork,已经成为GitHub上最受欢迎的生物信息学库之一。该储存库在其存在的14年中一直得到积极维护,并解决了400多个社区问题。工具包的源代码可以在本地下载和编译,也可以通过PyPI从预构建的wheel包中安装:https://pypi.org/project/jcvi.迄今为止,JCVI工具包已被下载超过220000次。


引文格式


Haibao Tang, Vivek Krishnakumar, Xiaofei Zeng, Zhougeng Xu, Adam Taranto, Johnathan S. Lomas, Yixing Zhang, et al. 2024. JCVI: A Versatile Toolkit for Comparative Genomics Analysis. iMeta 3: e211. https://doi.org/10.1002/imt2.211

作者简介

唐海宝(第一/通讯作者)

 福建农林大学教授,博士生导师。

 研究方向为古生物基因组学、比较基因组、数据库开发等。先后在Science、Nature、PNAS、Nature Genetics、The Plant Cell、Genome Research等国际学术期刊发表文章66篇。

图片

张兴坦(通讯作者)

  中国农业科学院深圳农业基因组所研究员,博士生导师。

  研究方向包括:复杂多倍体/高杂合二倍体基因组组装和分型方法的开发,基于NGS或单分子测序技术开发生物信息分析算法和工具,以及基于组学大数据挖掘植物重要功能基因并解析其生物学机制。以第一或通讯作者(含共同)在Cell、Nature、 Nature Genetics、Nature Plants、Nature Communications等期刊发表学术论文40余篇,主持国家自然科学基金优秀青年基金项目、深圳市科技创新委员会优秀科技人才培养项目、国家自然科学基金青年科学基金项目、广东省科学技术厅广东省重点领域研发项目等。