Skip to main content

评估宏基因组组装的病毒基因组的质量。

项目描述

康达 派皮 康达下载 PyPI 下载 码头工人拉

CheckV 是一个全自动命令行管道,用于评估单重叠群病毒基因组的质量,包括识别整合前病毒的宿主污染、估计基因组片段的完整性以及识别封闭基因组。

安装

安装 CheckV 的三种方法:

  • 使用 conda(推荐):conda install -c conda-forge -c bioconda checkv

  • 使用 docker:见下文

  • 使用点子:pip install checkv

如果您决定通过 安装 CheckV pip,请确保您还安装了以下外部依赖项:

上面列出的版本是经过适当测试的版本。不同的版本也可以工作。

CheckV 数据库

如果您使用安装condapip需要下载数据库:

checkv download_database ./

您需要更新您的环境或使用-d标志来指定CHECKVDB位置:

export CHECKVDB=/path/to/checkv-db

一些用户可能希望使用自己的完整基因组更新数据库:

checkv update_database /path/to/checkv-db /path/to/updated-checkv-db genomes.fna

快速开始

有两种方法可以运行 CheckV:

  • 使用单个命令运行完整的管道(推荐):
checkv end_to_end input_file.fna output_directory -t 16
  • 对管道中的每个步骤使用单独的命令:
checkv contamination input_file.fna output_directory -t 16
checkv completeness input_file.fna output_directory -t 16
checkv complete_genomes input_file.fna output_directory
checkv quality_summary input_file.fna output_directory
  • 有关 checkv 程序和选项的完整列表,请使用:checkv -hcheckv <program> -h

码头工人使用

  • 拉取镜像(包括数据库)
docker pull antoniopcamargo/checkv
  • 运行镜像
docker run -ti --rm -v " $( pwd ) :/app" antoniopcamargo/checkv end_to_end input_file.fna output_directory -t 16
  • 注意:docker 镜像可能不代表最新版本

已知的问题

  • 对于 0.9.0,您可能会收到一些浪费任务失败的错误。这将在下一个版本中修复。现在使用更少的线程重新运行。
  • 对于 >=0.9.0,如果您收到未找到钻石数据库的错误,请使用重新下载数据库checkv download_database
  • 对于 v0.8.1,有时 conda 安装了旧版本的 DIAMOND 导致错误。确保 conda 已安装 DIAMOND 版本 >= 2.0.9

输出文件

quality_summary.tsv

这包含来自三个主要模块的综合结果,应该是参考的主要输出。下面是一个示例,用于演示您可以在数据中预期的结果类型:

contig_id contig_length 原病毒 proviral_length 基因计数 病毒基因 主机基因 checkv_quality miuvig_quality 完整性 完整性方法 完整基因组类型 污染 kmer_freq 警告
1 5325 不适用 11 0 2 还没决定 基因组片段 不适用 不适用 不适用 0 1 未检测到病毒基因
2 41803 不适用 72 27 1 低质量 基因组片段 21.99 基于 AAI(中等置信度) 不适用 0 1 标记的 DTR
3 38254 是的 36072 54 23 2 中等质量 基因组片段 80.3 基于 HMM(下限) 不适用 5.7 1
4 67622 不适用 143 25 0 高质量 高质量 100 基于 AAI(高置信度) 不适用 0 1.76 高 kmer_freq
5 98051 不适用 158 27 1 完全的 高质量 100 基于 AAI(高置信度) DTR 0 1

在示例中,上面有 6 个病毒重叠群的结果:

  • 第一个 5325 bp contig 没有完整性预测,这由“checkv_quality”字段的“Not-determined”指示。该重叠群也没有鉴定出病毒基因,因此它甚至可能不是病毒。
  • 第二个 41803 bp 重叠群被归类为“低质量”,因为其完整性 <50%。这是基于“AAI”方法的估计。请注意,quality_summary.tsv 文件中仅报告了高置信度或中等置信度估计值。您可以查看“completeness.tsv”以获取更多详细信息。此 contig 有一个 DTR,但由于某种原因被标记(有关详细信息,请参阅 complete_genomes.tsv)
  • 第三个重叠群被认为是“中等质量”,因为它的完整性估计为 80%,这是基于“HMM”方法的。这意味着基于 AAI 估计完整性太新颖了,但与 CheckV 参考基因组共享一个 HMM。请注意,此值表示下限(意味着真实完整性可能高于但不低于此值)。请注意,此重叠群也被归类为前病毒。
  • 第四个重叠群基于 >90% 的完整性被归类为高质量。但是,请注意“kmer_freq”的值为 1.7。这表明病毒基因组在重叠群中多次表示。这些情况非常罕见,但需要注意。
  • 第五个重叠群基于直接末端重复 (DTR) 的存在被分类为完全,并且基于 AAI 方法具有 100% 的完整性。该序列可以放心地视为完整的基因组。

完整性.tsv

关于如何估计完整性的详细概述:

contig_id contig_length proviral_length aai_expected_length aai_completeness aai_confidence aai_error aai_num_hits aai_top_hit aai_id aai_af hmm_completeness_lower hmm_completeness_upper hmm_hits
1 9837 5713 53242.8 10.7 高的 3.7 10 DTR_517157 78.5 34.6 5 15 4
2 39498 不适用 37309 100.0 中等的 7.7 11 DTR_357456 45.18 30.46 75 100 22
3 29224 不适用 44960.1 65.8 低的 15.2 17 DTR_091230 39.74 19.54 52 70 10
4 23404 不适用 不适用 不适用 不适用 不适用 0 不适用 不适用 不适用 不适用 不适用 0

在示例中,上面有 4 个病毒重叠群的结果:

  • 使用基于 AAI 的方法 (100 x 5713 / 53242.8),第一个前病毒重叠群的估计完整性为 10.7%。此估计的置信度很高,基于 3.7% 的相对估计误差,这又基于与 CheckV 参考 DTR_517517 的 aai_id(平均氨基酸同一性)和 aai_af(重叠群的比对分数)
  • 第二个重叠群使用基于 AAI 的方法具有 100% 的完整性,使用基于 HMM 的方法具有 75-100% 的完整性范围。请注意,重叠群长度比预期的基因组长度 37,309 bp 长一点。
  • 根据 AAI 方法,估计第三个 contig 完成了 65.8%。然而,我们不能那么相信这一切,因为 aai_confidence 很低(意味着基于 AAI 的最高命中相当弱)。保守起见,我们可能希望报告基于 HMM 方法的完整性范围(52-70%)
  • 最后一个 contig 没有任何基于 AAI 的命中,也没有任何病毒 HMM,所以我们对此序列无话可说

污染.tsv

如何估算污染的详细概述:

contig_id contig_length 总基因 病毒基因 主机基因 原病毒 proviral_length 主机长度 region_types 区域长度 region_coords_bp region_coords_genes region_viral_genes region_host_genes
1 98051 158 27 1 不适用 不适用 不适用 不适用 不适用 不适用 不适用 不适用
2 38254 54 23 2 是的 36072 2182 宿主,病毒 1-2182,2183-38254 1-2182,2183-38254 1-4,5-54 0,23 2,0
3 6930 9 1 2 是的 3023 3907 病毒,宿主 3023,3907 1-3023,3024-6930 1-5,6-9 1,0 0,2
4 101630 103 7 24 是的 28170 73460 主机,病毒,主机 46804,28170,26656 1-46804,46805-74974,74975-101630 1-43,44-85,86-103 0,7,0 13,0,11

在示例中,上面有 4 个病毒重叠群的结果:

  • 第一个重叠群不是预测的前病毒
  • 第二个重叠群的预测宿主区域覆盖 2182 bp
  • 第三个 6930 bp 重叠群在左侧有一个宿主区域
  • 第四个 101630 bp contig 有 103 个基因,包括 7 个病毒基因和 24 个宿主基因。CheckV 确定了两个宿主病毒边界

完整基因组.tsv

确定的推定完整基因组的详细概述:

contig_id contig_length 预测类型 置信度 信心原因 重复长度 重复计数
1 44824 DTR 高的 基于 AAI 的完整性 > 90% 253 2
2 38147 DTR 低的 低复杂度TR;重复TR 20 10
3 67622 DTR 低的 检测到多个基因组拷贝 26857 2
4 5477 ITR 中等的 基于 AAI 的完整性 > 80% 91 2
5 101630 原病毒 还没决定 不适用 不适用 不适用

在示例中,上面有 5 个病毒重叠群的结果:

  • 第一个病毒重叠群具有 253 bp 的直接末端重复。根据估计的完整性 > 90%,它被归类为高置信度
  • 第二个病毒重叠群具有 20 bp 的 DTR,但 DTR 复杂性低且不可信,导致置信度低。DTR 也出现 10 次,被认为是重复的。
  • 第三个病毒重叠群的 DTR 为 26857 bp!这表明基因组的很大一部分是重复的。CheckV 将这些分类为低置信度,但用户可以手动解决这些重复
  • 第四个病毒重叠群的 ITR 为 91 bp。这被认为是基于 AAI 的完整性 > 80% 的中等置信度
  • 第五个病毒重叠群的两侧是宿主(原病毒)。但是 CheckV 无法评估完整性,因此置信度为未确定

经常问的问题

问:基于 AAI 和 HMM 的完整性有什么区别? 答:基于 AAI 的完整性产生一个估计的完整性值,该值被设计为非常准确,并且在报告的置信度为中或高时可以信任。在基于 AAI 的完整性不可靠的情况下,基于 HMM 的完整性给出了 90% 的完整性置信区间(例如 30-75%)。在这个例子中,我们可以 90% 确定(理论上)完整性在 30% 到 75% 之间。

问:kmer_freq 字段的含义是什么? 答:这是衡量病毒基因组在重叠群中出现多少次的指标。大多数时候,这非常接近 1.0。在极少数情况下,可能会发生组装错误,其中重叠群序列代表病毒基因组的多个连接拷贝。在这些情况下,基因组拷贝数将超过 1.0。

问:为什么我的 DTR contig 的估计完整性小于 100%? 答:如果估计的完整性接近 100%(例如 90-110%),那么查询很可能已完成。然而,有时不完整的基因组片段可能包含直接末端重复 (DTR),在这种情况下,我们应该期望它们的估计完整性小于 90%,有时甚至更少。在其他情况下,重叠群将真正是循环的,但估计的完整性是不正确的。如果查询多部分基因组的完整片段(常见于 RNA 病毒),也可能发生这种情况。默认情况下,CheckV 使用 90% 的完整性截止值进行验证,但用户可能希望在这些模棱两可的情况下做出自己的判断。

问:为什么当我的序列具有高污染时被认为是“高质量”的? 答:CheckV 仅根据完整性确定序列质量。主机污染很容易去除,因此不计入这些质量等级。

问:我进行了分箱并生成了病毒 MAG。我可以在这些上使用 CheckV 吗? 答:CheckV 可以估计这些的完整性,但不能估计污染。在运行 CheckV 之前,您需要将每个 MAG 的重叠群连接成一个序列。

问:我可以使用 CheckV 从整个(元)基因组中预测(原)病毒吗? 答:可能,虽然这还没有经过测试。

问:我可以使用 CheckV 去除假阳性病毒预测吗? 答:可能,虽然这还没有经过测试。具有至少 1 个病毒基因和比宿主基因更多病毒的序列可能是真正的病毒。

问:如果没有完整的估计,我应该如何处理假定的“封闭基因组”? 答:在某些情况下,您将无法验证带有末端重复或原病毒整合位点的序列的完整性。DTR 是一个相当可靠的指标(>90% 的时间),并且可能在没有完整性估计的情况下被信任。然而,完整的前病毒和 ITR 是不太可靠的指标,因此需要 >90% 的估计完整性。

问:为什么我的 contig 被归类为“质量未定”? 答:当序列不匹配任何具有足够高相似性的 CheckV 参考基因组以自信地估计完整性并且没有任何病毒 HMM 时,就会发生这种情况。对此有一些解释,按可能出现的频率顺序排列:1)您的 contig 非常短,并且碰巧它与 CheckV 参考不共享任何基因,2)您的 contig 来自一种非常新颖的病毒,它是远亲对于 CheckV 数据库中的所有基因组,3)您的 contig 根本不是病毒,因此与任何参考文献都不匹配。

问:我应该如何处理“未确定质量”的序列? 答:虽然无法估计这些的完整性,但您仍可以选择分析超过一定长度(例如 >30 kb)的序列。

问:CheckV 是否对我的序列进行分类注释? 答:CheckV 不执行病毒重叠群的分类注释。但是,一些分类信息可供用户自行查找。您可以通过查看分类法(以及源环境)来自己实现这一点,以获得基因组数据库的热门搜索。首先,您可以从“completeness.tsv”输出文件的“aai_top_hit”字段中找到热门信息。然后,您可以查找热门歌曲的分类。如果顶部命中以“DTR”开头,请查看“checkv_circular.tsv”数据库文件中的“世系”字段。您也可以在这里查看“栖息地”字段。对于以“GCA”开头的 GenBank 参考资料,请查看“checkv_genbank.tsv”中的“vog_clade”或“lineage”字段

问:为什么 CheckV 输出中包含 0 个病毒基因的序列 目前,CheckV 假设输入序列代表病毒并尝试估计它们的质量。一些输入序列可能来自细菌、质粒或其他来源,因此可能检测到 0 个病毒基因。

支持代码

基于成对 ANI 的快速基因组聚类

首先,创建一个blast+数据库: makeblastdb -in <my_seqs.fna> -dbtype nucl -out <my_db>

接下来,使用 blast+ 包中的 megablast 来执行序列的 all-vs-all blastn: blastn -query <my_seqs.fna> -db <my_db> -outfmt '6 std qlen slen' -max_target_seqs 10000 -o <my_blast.tsv> -num_threads 32

注意:使用 -perc_identity 标志会以敏感度为代价加快搜索速度: blastn -query <my_seqs.fna> -db <my_db> -outfmt '6 std qlen slen' -max_target_seqs 10000 -perc_identity 90 -o <my_blast.tsv> -num_threads 32

接下来,通过组合序列对之间的局部比对来计算成对 ANI: anicalc.py -i <my_blast.tsv> -o <my_ani.tsv>

最后,使用 MIUVIG 推荐参数(95% ANI + 85% AF)执行类似 UCLUST 的聚类: aniclust.py --fna <my_seqs.fna> --ani <my_ani.tsv> --out <my_clusters.tsv> --min_ani 95 --min_tcov 85 --min_qcov 0

这个怎么运作

管道可以分为 4 个主要步骤:

A:去除原病毒上的宿主污染

  • 基于与 HMM 的自定义数据库的比较,基因首先被注释为病毒或微生物
  • CheckV 扫描 contig(5' 到 3'),比较一对相邻基因窗口之间的基因注释和 GC 内容
  • 此信息用于计算每个基因间位置的分数并识别宿主病毒断点
  • 宿主病毒断点通过以下方式标识:
    • 高分 (>1.2)
    • 在假定的宿主区域中至少有 2 个宿主特异性基因(对于具有 >=10 个基因的重叠群)
    • 在假定的病毒区域中至少有 2 个病毒特异性基因(对于具有 >=10 个基因的重叠群)
    • 在假定的宿主区域中至少有 30% 的基因被注释为微生物

B:估计基因组完整性(2 个算法)

  • 基于 AAI 的方法(基因组完整性的准确点估计;如上图所示)
    • 首先,使用 AAI(平均氨基酸同一性)将蛋白质与 CheckV 基因组数据库进行比较
    • 在识别出最高命中后,完整性被计算为重叠群长度(或前病毒的病毒区域长度)与匹配参考基因组长度之间的比率
    • 根据比对的强度和重叠群的长度报告置信水平
    • 一般来说,高和中置信度的估计是相当准确的,可以信赖
  • 基于 HMM 的方法(基因组完整性的估计范围)
    • 高度新颖的病毒可能与具有足够 AAI 的 CheckV 基因组不匹配(即低置信度估计)
    • 在这些情况下,CheckV 识别重叠群上的病毒 HMM(参见图 A)并将重叠群长度与共享相同 HMM 的参考基因组进行比较
    • CheckV 然后返回基因组完整性的估计范围(例如 35% 到 60% 的完整性),它表示基于具有相同病毒 HMM 的参考基因组长度分布的 90% 置信区间

C:预测封闭基因组(3 个特征)

  • 直接末端重复 (DTR)
    • 在 contig 的开始/结束处重复 >20-bp 的序列
    • 我们经验中最受信任的签名
    • 可能表示从环状模板(即多联体)复制的环状基因组或线性基因组
  • 原病毒
    • 在 5' 和 3' 末端具有预测宿主边界的病毒区域(见面板 A)
    • 注意:如果宿主区域已经被移除(例如使用 VIBRANT 或 VirSorter),CheckV 将不会检测到原病毒
  • 反向末端重复序列 (ITR)
    • 重叠群开始/结束处 >20-bp 的重复序列(3' 重复反转)
    • 在我们的经验中最不可信的签名

CheckV 还将根据与完整性估计的比较报告置信水平(面板 B):

  • 高置信度:>90% 的估计完整性
  • 中等置信度:估计完整性为 80-90%
  • 低置信度:<80% 估计的完整性

对于 DTR 和 ITR,CheckV 执行一些额外的过滤/检查:

  • 重复中不明确的碱基(例如“NNNNN”):<= 20% 的重复序列,Ns
  • 重复模式碱基频率(例如“AAAAA”):<= 75% 的重复序列由单碱基组成
  • 重复序列的最大出现次数:<= 每个 contig 8 次(去除高度重复的序列)
  • 最大 kmer 频率:<= 1.5(删除背靠背重复的具有相同基因组的重叠群)

D:总结质量。

根据 AC 的结果,CheckV 生成一个报告文件并将查询重叠群分配给五个质量层之一(与 MIUViG 质量层一致并扩展):

  • 完整(高或中等置信度预测;见面板 C)
  • 高质量(>90% 完整性)
  • 中等质量(50-90% 的完整性)
  • 低质量(<50% 的完整性)
  • 质量未定

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

checkv-1.0.1.tar.gz (35.5 kB 查看哈希

已上传 source

内置分布

checkv-1.0.1-py3-none-any.whl (34.1 kB 查看哈希

已上传 py3