metawarp的使用

647 阅读7分钟
参考官方文档:https://github.com/bxlab/metaWRAP
metawrap安装:
metawrap数据库准备:

一什么是metawrap

MetaWRAP 旨在成为一个易于使用的宏基因组包装套件,从头到尾完成宏基因组分析的核心任务:
    读取质量控制、组装、可视化、分类分析、提取基因组草案(分箱)和功能注释。
MetaWRAP还提供了一种强大的混合方法,通过使用metaBAT2、CONCOCTMaxBin2,从宏基因组数据中提取高质量的初步基因组(bin)。
MetaWRAP 还包括一个新颖的 bin 重组模块,通过提取属于每个 bin 的 reads 
    并使用更宽容的非宏基因组装器对这些 bin 进行重新组装,
    从而极大地提高一组 bin 的质量。

image.png

原始数据reads-->reads质量控制-->干净的reads数据-->kraken-->krona
干净的reads数据-->Assemble组装-->分箱-->metaBAT2、MaxBin2CONCOCT-->细化分箱-->final bins-->Blobology-->Blobplots可视化
final bins-->定量分析
final bins-->重新组装-->分类
重新组装-->注释-->功能注释

二、metawrap模块概述

1 宏基因组数据预处理模块

Read_QC: reads质量控制
Assembly: 使用metaSPAdes or MegaHit进行宏基因组组装和质量控制
Kraken/Kraken2: 对reads和contigs进行分类分析和可视化分析

2 Bin处理模块

Binning: 使用MaxBin2, metaBAT2, CONCOCT进行初始分箱
Bin_refinement: 细化分箱
Reassemble_bins: 重新分箱提高完整性和N50, 减少污染
Quant_bins: 丰度分析
Blobology: 使用blobplots可视化
Classify_bins: 对bins进行分类预测
Annotate_bins: 对bins进行功能注释

3 metawrap分析流程结构

metawrap结构.png

三、metawrap使用指南

1 metawrap质量控制reads

# `metawrap read_qc`可以对reads进行质量控制

# 使用示例:
metawrap read_qc -1 RAW_READS/ERR011347_1.fastq -2 RAW_READS/ERR011347_2.fastq -t 24 -o READ_QC/ERR011347

# 参数说明
-1 -2  :输入的测序数据文件
-t 24  :指定使用线程数
-o     :指定输出目录

2 metawrap组装reads

# `metawrap assembly`可以对reads进行组装
# 使用示例:
metawrap assembly -1 CLEAN_READS/ALL_READS_1.fastq -2 CLEAN_READS/ALL_READS_2.fastq -m 200 -t 96 --use-metaspades -o ASSEMBLY

# 参数说明
-1 -2   :指定输入测序数据
-m 200  :指定内存大小,默认24
-t 96   :指定线程数
--use-metaspades  :使用MetaSPAdes组装器进行组装
-o      :指定输出目录

3 在reads和组装上运行Kraken

基于reads和contigs进行分类和物种相关分析。

在读取上运行 kraken 将使我们了解三个样本中群落的分类组成,
而在组装上运行 kraken 将使我们了解哪些分类组比其他组组装得更好。
# 使用示例
metawrap kraken -o KRAKEN -t 96 -s 1000000 CLEAN_READS/ERR*fastq ASSEMBLY/final_assembly.fasta

4 使用binning进行分箱

# 使用`CONCOCT``MaxBin``metaBAT`的初始分箱过程将是一个耗时的步骤(尤其是 CONCOCTMaxBin);
# metaWRAP 支持同时运行这三个算法进行分箱预测,实际上也可以分别运行每个算法的分箱模块。
# metawrap binning分箱操作过程不依赖于任何数据库,是根据数据本身特征和相似性进行的。
# 使用示例:
metawrap binning -o INITIAL_BINNING -t 48 -a ASSEMBLED/final_assembly.fasta --metabat2 --maxbin2 --concoct CLEAN_READ/*.fastq
# 代码解释:
-o           指定输出目录
-t 96        指定CPU线程数
-a           指定输入的组装文件
--metabat2 
--maxbin2 
--concoct    指定分箱方法(这里三种方法同时使用)
处理干净的reads数据

# 其他参数:
-l            :指定生成bin的最小contig长度,默认1000bp,metaBAT默认是1500bp
--metabat1    :metaBAT,分箱方法
--universal   :使用通用标记基因而不是细菌标记基因进行MaxBin2分箱,提高古菌分箱效果
--run-checkm  :立即在分箱结果上运行CheckM
--single-end  :单端reads模式
--interleaved :输入的read文件包括交织的paired-end reads

# 输出文件
insert_sizes.txt
work_files
concoct_bins
maxbin2_bins
metabat2_bins

5 使用bin_refinement整合bin集

使用metawrap binning分箱得到的concoct,maxbin2,metabat2的bin集,
可以使用bin_refinement进行整合。

# 使用示例
metawrap bin_refinement -o BIN_REFINEMENT -t 96 -A INITIAL_BINNING/metabat2_bins/ -B INITIAL_BINNING/maxbin2_bins/ -C INITIAL_BINNING/concoct_bins/ -c 50 -x 10

# 代码解释
`-o`                                   指定输出目录
`-t 96`                                指定CPU线程
`-A INITIAL_BINNING/metabat2_bins/`    第一个分箱集的路径
`-B INITIAL_BINNING/maxbin2_bins/`     第二个分箱集的路径
`-C INITIAL_BINNING/concoct_bins/`     第三个分箱集的路径
`-c 50`                                指定完整度阈值
`-x 10`                                指定污染度阈值
# 输出目录:
concoct_bins
concoct_bins.stats
maxbin2_bins	
maxbin2_bins.stats
metabat2_bins	
metabat2_bins.stats
metawrap_50_10_bins
metawrap_50_10.stats
Binning_refiner.stats
.stat 文件包含有关每个 bin 的有用信息,包括其完整性和污染情况。

6 使用 Blobology 模块可视化社区和提取的bin

# 将contig的GC含量和丰度进行散点图可视化,并对不同分箱bin进行着色。
# 使用示例
metawrap blobology -a ASSEMBLY/final_assembly.fasta -t 96 -o BLOBOLOGY --bins BIN_REFINEMENT/metawrap_50_10_bins CLEAN_READS/ERR*fastq

# 代码解释:
`-a ASSEMBLY/final_assembly.fasta`        指定了用于投影组装文件的路径
`-t 96`                                   要使用的 CPU 线程数
`-o BLOBOLOGY`                            指定了输出结果的目录路径
`--bins BIN_REFINEMENT/metawrap_50_10_bins` 指定了要使用的分箱信息
`CLEAN_READS/ERR*fastq`                   这是用于投影和分析的清洁读取文件

7 查找样本中基因组草图(bin)的丰度

我们想知道提取的基因组如何在样本中分布,以及每个样本中每个 bin 的丰度是多少。
`Quant_bin` 模块可以为我们提供这些信息。
它使用 Salmon来估计每个样本中每个支架的丰度,然后计算平均箱丰度。
运行此模块,建议使用非重新组装的bin(由Bin_Refinment模块生成的bin,而不是 Reassemble_bins模块)
# 运行示例
metawrap quant_bins -b BIN_REFINEMENT/metawrap_50_10_bins -o QUANT_BINS -a ASSEMBLY/final_assembly.fasta CLEAN_READS/ERR*fastq

# 代码解释
`-b BIN_REFINEMENT/metawrap_50_10_bins`    指定了要进行分箱定量的细化分箱数据的路径
`-o QUANT_BINS`                            指定了分箱定量结果的输出目录路径
`-a ASSEMBLY/final_assembly.fasta`         指定了用于分析的宏基因组组装文件的路径
`CLEAN_READS/ERR*fastq`                    用于分析的清洁读取文件

8 使用 Reassemble_bins 模块重新组装合并的 bin 集

# 使用示例
metawrap reassemble_bins -o BIN_REASSEMBLY -1 CLEAN_READS/ALL_READS_1.fastq -2 CLEAN_READS/ALL_READS_2.fastq -t 96 -m 800 -c 50 -x 10 -b BIN_REFINEMENT/metawrap_50_10_bins

# 代码解释
`-o BIN_REASSEMBLY`                        指定了重新组装分箱数据的输出目录路径。
`-1 CLEAN_READS/ALL_READS_1.fastq`         指定了clean reads数据的第一部分
`-2 CLEAN_READS/ALL_READS_2.fastq`         指定了clean reads数据的第二部分
`-t 96`                                    用于处理的 CPU 线程数
`-m 800`                                   指定重新组装的最小 contig(连续序列)长度
`-c 50`                                    指定完整性阈值
`-x 10`                                    指定污染度阈值
`-b BIN_REFINEMENT/metawrap_50_10_bins`    指定了用于重新组装的分箱数据的路径

9 使用 Classify_bins 模块确定每个 bin 的分类

此模块需要 NCBI_nt 和 NCBI_tax 数据库
使用 Classify_bins 模块估计最终重新组装的 bin 的分类:
metawrap classify_bins -b BIN_REASSEMBLY/reassembled_bins -o BIN_CLASSIFICATION -t 48

# 代码解释
`-b BIN_REASSEMBLY/reassembled_bins`    指定了要进行分类的重新组装分箱的路径
`-o BIN_CLASSIFICATION`                 指定了输出结果的目录路径
`-t 48`                                 指定用于处理的 CPU 线程数

10 使用 Annotate_bins 模块对 bin 进行功能注释

已经完成了重新组装的容器,接下来要对它们进行功能注释以进行下游功能分析。
metaWRAP annotate_bins -o FUNCT_ANNOT -t 96 -b BIN_REASSEMBLY/reassembled_bins/