基因组组装评估 --- QUAST

Background

现今,大多数现有的比较组装的方法仅适用于已完成基因组的新组装,尚未充分考虑评估以前未测序的物种组合的问题。当前的测序技术和软件面临着许多阻碍完整染色体重建的复杂性,包括读取错误和基因组中的大量重复。不同的组装程序使用不同的启发式算法来应对这些挑战,从而导致它们输出的 contigs 存在许多差异。这也导致了如何评估组装质量以及如何比较不同组装的问题。

contigs:基因组组装软件将 reads 组装成更大的区域,便称为重叠群(contigs)。

Plantagora:是一个基于网络的平台,旨在帮助科学家查看最流行的植物基因组测序策略的特征(包括测序平台和组装软件)。[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3236183/]

Assemblathon competition:该竞赛在超过100个评估指标上比较了41个 de novo assemblies;其评估脚本是免费提供的,但它们高度关注比赛中使用的基因组,普通用户很难将其应用于其他基因组。[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3227110/]

GAGE: 被用来在四个数据集上评估几个领先的基因组组装工具,其评估一组指标,包括不同类型的错误组装(倒置,易位)[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3290791/]

需要注意的是,PlantagoraGAGE 是基于已知参考基因组的数据对组装进行评估的,它们并不适用于以前未测序的基因组的组装。此外,GAGE 一次只能在一个数据集上运行,因此,要比较同一数据集上的多个组装,必须手动将不同 GAGE 报告的输出合并到一个表格中。

Introduction

QUAST 一种用于评估和比较基因组组装的质量评估工具;其可以使用参考基因组和不参考基因组的情况下对组装进行评估。QUAST 将会生成许多报告、汇总表和图表。此外,QUAST 在最耗时的步骤做了并行化,运行速度相当快。

QUAST 使用来自 MUMmer v3.23Nucmer 比对工具将组装与参考基因组比对,并根据比对评估指标。

Metrics(指标)

Contig sizes

可以在有或没有 reference 的情况下评估以下指标(除 NGx )。此外,Quast 可以对输入进行过滤,仅限于长度超过指定最小长度的 contigs,以排除可能没有多大用处的短重叠群。

  • No. of contigs: 组装中的 contigs 总个数。
  • Largest contig: 最长 contig 的长度。
  • Total length: assembly 中的碱基总数。
  • Nx (where 0<=x<=100): 最长长度的 contigs 占组装碱基的百分比。
  • NGx, Genome Nx: 相等或更长的重叠群产生参考基因组长度的 x% 的重叠群长度,而不是组装结果长度的 x%。

Misassemblies and structural variations(组装错误和结构变化)

该指标描述重叠群中的结构错误。Quast 只能根据已知的参考基因组对它们进行评估,如参考基因组与组装的数据集完全匹配,则差异可能归结于软件的错误组装或测序错误(如嵌合读取)。

  • No. of misassemblies: 组装错误的数量。
  • No. of misassembled contigs: 包含错误组装断点的 contigs 数量。
  • Misassembled contigs length: 在所有 contig 中包含一个或多个错配的碱基总数。
  • No. of unaligned contigs: 与参考序列没有对齐的 contigs 数量。
  • No. of ambiguously mapped contigs: 在参考基因组的多个位置具有相同质量的高得分参考比对的 contigs 数量。
  • 除了以上汇总统计数据之外,Quast 还生成包含每个 contig 详细信息的报告,包括 ccontig 是否未对齐、不明群映射、错误组装或正确。

Genome representation and its functional elements(基因组表示及其功能元件)

评估重叠群中基因组表示的指标以及组装的功能元件的数量,如基因和操纵子。其中大多数需要参考基因组。

  • Genome fraction (%): 参考中比对碱基的总数除以基因组大小。如果至少一个重叠群与该碱基具有至少一个比对,则参考基因组中的碱基被记为比对。来自重复区域的重叠群可能会映射到多个位置,因此可能会以这个数量计算多次。
  • Duplication ratio: 组装中对齐的碱基总数(即总长度减去未对齐的重叠群长度)除以参考中对齐的碱基总数。若组装包含许多覆盖参考相同区域的重叠群,则其重复率可能远大于 1。这可能是由于高估了重复多重性以及由于重叠群之间的 small overlaps 等原因而导致的。
  • GC (%): 组装中的 GC 含量,组装中的 G+C 碱基含量除以总碱基数。
  • No. of mismatches per 100 kb: 每 100,000 个对齐碱基的平均错配数。该指标不区分单核苷酸多态性(组装基因组与参考基因组的真正差异)和单核苷酸错误(由于读取错误或组装算法错误)。
  • No. of indels per 100 kb: 每 100,000 个比对碱基的平均单核苷酸插入或缺失数量,此外还提供包含所有组件的插入缺失坐标的详细报告。
  • No. of genes: 组装结果中的基因数量(完整和部分),基于用户提供的参考基因组中基因位置的注释列表。
  • No. of operons: 使用用户提供的参考基因组中操纵子位置的注释列表,以与基因类似的方式计算完整和部分操纵子。
  • No. of predicted genes: Quast 的基因查找模块预测的组装中的基因数量,该模块基于原核生物的 GeneMark.hmm 和真核生物的 GlimmerHMM

Variations of N50 based on aligned blocks(基于对齐块的 N50 变化)

新指标 NAxNGAx

需要注意的是:这两个指标都需要参考基因组。如果参考基因组和正在组装的样本不同,一些断点和插入缺失可能代表真正的结构差异。

  • NAx (A stands for aligned; x ranges from 0–100): NxPlantagora 的错误组装数的组合。分两步计算;首先,我们将 contigs 分成对齐的 blocks。如果一个 contig 有错误组装断点,它会在这些断点处分成多个 block。此外,如果重叠群中有未对齐的区域,这些区域将被移除,并将重叠群分割成块。接着,我们计算这些 blocks 上的普通 Nx 统计量,而不是原始的 contigs
  • NGAx: 按照 NAx 的描述将 contigs 分成对齐的 blocks ,然后计算这些 blocksNGx 统计量(而不是 Nx)。

Visualization(可视化)

QUAST 以图形形式呈现大量的统计数据,并支持 SVGPNGPDF 格式。

  • Nx-like plots: 显示随着 x 变化的 NxNGxNAxNGAx 指标的趋势,这比仅使用 N50 提供更多信息。
  • Cumulative plots: 对于所考虑的所有类型的累积图,重叠群按碱基数从最大到最小排列。累积长度图显示前 xcontigs 中的碱基数,因为 x 从零变化到 contigs 的数量。类似地计算完整基因的累积数量和完整操纵子的累积数量。
  • GC content plots: 显示重叠群中 GC 含量的分布。x 值显示 Gc 的百分比。y 值显示 GC 内容为 x 的非重叠 100bp 窗口的数量。这种分布通常是 高斯分布;但是如果存在具有不同 GC 含量的污染物,通常会出现多个 高斯叠加
  • Contig alignment plots:显示重叠群与参考基因组的比对以及这些重叠群中错配的位置;颜色编码指示块边界何时由多个组件共享,并显示错误组装的块。可选轨道显示参考基因组的读取覆盖度。正确对齐的重叠群将显示为 蓝色,否则为 绿色。如果边界在至少一半的组件中一致,则具有错误组装的重叠群被分成块并涂成 橙色,否则是 红色。重叠群垂直交错并以不同的颜色深浅显示以区分单独的重叠群,包括小的重叠群。
  • 此外,QUAST 还制作了几个指标的比较直方图:完整基因的数量、完整的操纵子数量、基因组分数(%)。

Installation

关于生物的一系列工具安装,我们首先想到的应该是有无 conda 可以从对应的库下载安装。这将会减少许多其他不确定因素。

1
2
3
4
5
6
7
8
9
10
11
## 通过 conda 直接安装 QUAST 在我的服务器上有点困难,于是我通过 conda 先创建一个 python 环境,再通过 pip 安装 QUAST。
conda create -n Quast -c bioconda quast
## 创建一个环境:Quast ; 并安装 quast
## 目前最新的 Version : v5.0.2
## 其他安装方法:http://quast.sourceforge.net/install.html

conda create -n Quast python=3.6.7 -y
pip install quast matplotlib
## matplotlib 是支持生成 PDF 图像文件的必须模块。
conda activate Quast
conda install -c bioconda bwa bedtools minimap2 -y ## QUAST 的一些子模块需要用到这几个比对程序。

Run

在命令行中运行,首先需要启用上面我们创建的环境 Quast

1
2
conda activate Quast
quast.py [options] <contig_file(s)>

Options

参数 描述
-o 输出文件夹,默认为 quast_results/results_
-r 参考基因组 fasta 文件,可压缩。若省略,则只产生在没有参考的情况下的评估
-g 包含参考基因组中基因组特征位置的文件,即 GFF。
-m contigs 长度的最低阈值(bp 为单位)。默认为 500bp。不会考虑小于 -m 长度的 contigs
-t 设置最大线程数,默认为所有可用 CPU25%
-s 当组装不是 contigs ,而是 scaffolds 时,通过该参数进行拆分;--split-scaffolds
-l 标签,这里设置的 names 将被用于 reportsplotslogs。设置人类可读的组装名称(assembly names
-L 从它们的父级目录中获取组装名称
-e --eukaryote;代表组装为真核生物,这将影响基因发现、保守同源物发现和重叠群比对;该选项表明基因组不是环状的。
--fungus 表明基因组为真菌。该选项表明基因组不是环状的。
--large 基因组很大(> 100Mbp),使用最佳参数评估大型基因组,这将影响分析速度和准确性。
-k --k-mer-stats;计算基于 k-mer 的质量指标;推荐用于大型基因组,默认禁用。
--k-mer-size --k-mer-stats 选项中使用的 k 的大小。默认值为 101bp。对于杂合度高的基因组使用较小的值。但是,需要注意的是,对于存在大量重复的基因组,非常小的 k-mer 可能会给出不相关的结果。
--circos 绘制 lcarus contig 对齐查看器的 Circos 图。QUAST 未嵌入 Citcos 程序,如未安装 Circos ,则只会创建 Circos 配置文件。
-f --gene-finding;启用基因查找功能。即预测组装基因组中的基因元件。
--min-identity 最小 IDY% 被视为正确对齐。 IDY% 比该值差的对齐将被过滤。默认值为 95.0 %。请注意,无论此阈值如何,IDY% 小于 80.0% 的所有对齐都将被过滤。
-i --min-alignment;对齐的最小长度(bp),低于该值的比对将被过滤,请注意,无论此阈值如何,所有短于 65 bp 的对齐都将被过滤。
--plots-format 绘图的文件格式;支持的格式:emf、eps、pdf、png、ps、raw、rgba、svg、svgz。默认格式为 PDF。
--no-sv 不要运行结构变异处理(仅在指定 reads 时才有意义)
--upper-bound-assembly 根据参考基因组和给定的 read sets 模拟上限组装(需要 Pacbio SMRT/Oxford Nanopore)。可用于估计理论上可以通过组装工具从该特定 read sets 达到的完整性和连续性的上限。该概念基于以下事实:由于基因组重复长和覆盖区域少,参考基因组无法从原始 reads 中完全重建。[http://dx.doi.org/10.1093/bioinformatics/bty266];若只想得到上限,可设置 --no-sv--no-read-stats 来取消对应附加分析。

以上参数只是一部分,更多参数设置请移步:http://quast.sourceforge.net/docs/manual.html

如果使用相同的输出目录重复运行,QUAST 会重用现有的对齐方式。因此,您可以在使用不同参数运行 QUAST 或将更多程序集添加到现有比较时有效地重用已计算的结果。

Result

敬请期待!!!

References

[1] Gurevich, A., Saveliev, V., Vyahhi, N., & Tesler, G. (2013). QUAST: quality assessment tool for genome assemblies. Bioinformatics (Oxford, England), 29(8), 1072–1075. https://doi.org/10.1093/bioinformatics/btt086

[2] QUAST Installation

[3] QUAST 5.0.2 manual

[4] Github