分箱

•使用metabat2 进行分箱

## 构建index
singularity exec ../../software/MetaGenome.sif bowtie2-build \
A1.contigs.fa \
A1.contigs.db
## 比对并排序
singularity exec ../../software/MetaGenome.sif bowtie2 \
--threads 4 -x ./A1.contigs.db \
-1 ../../dataFQ/A1_1.fq.gz \
-2 ../../dataFQ/A1_2.fq.gz 2>A1.map.log | \
singularity exec ../../software/MetaGenome.sif samtools sort \
-o A1.sort.bam
## 运行分箱
singularity exec ../../software/MetaGenome.sif runMetaBat.sh \
A1.contigs.fa \ # 输入, 组装结果
A1.sort.bam \ # 输入,bam文件
--minContig 1000 # contig最小长度
**输出结果:A1.contigs.fa.metabat-bins/

• 使用 maxbin2 进行分箱

使用metabat2进行分箱:
## 构建index
singularity exec ../../software/MetaGenome.sif bowtie2-build \
A1.contigs.fa \
A1.contigs.db
## 比对并排序
singularity exec ../../software/MetaGenome.sif bowtie2 \
--threads 4 -x ./A1.contigs.db \
-1 ../../dataFQ/A1_1.fq.gz \
-2 ../../dataFQ/A1_2.fq.gz 2>A1.map.log | \
singularity exec ../../software/MetaGenome.sif samtools sort \
-o A1.sort.bam
## 运行分箱
singularity exec ../../software/MetaGenome.sif runMetaBat.sh \
A1.contigs.fa \ # 输入, 组装结果
A1.sort.bam \ # 输入,bam文件
--minContig 1000 # contig最小长度
**输出结果:A1.contigs.fa.metabat-bins/

• 使用 maxbin2 进行分箱

## 创建目录
mkdir A1.bindir
## 该软件自动调用bowtie2进行比对
singularity exec ../../software/MetaGenome.sif run_MaxBin.pl \
-contig A1.contigs.fa \ # 输入, 组装结果
-reads ../../dataFQ/A1_1.fq.gz \ # 输入,测序数据
-reads2 ../../dataFQ/A1_2.fq.gz \ # 输入,测序数据
-out A1.bindir/A1.bin \
-min_contig_length 1000 \
-thread 10
**输出结果:A1.bindir/A1.bin*.fasta

• 使用 concoct 进行分箱

## bowtie2 比对
singularity exec ../../software/MetaGenome.sif bowtie2-build \
A1.contigs.fa \
A1.contigs.db
singularity exec ../../software/MetaGenome.sif bowtie2 \
--threads 4 -x ./A1.contigs.db \
-1 ../../dataFQt/A1_1.fq.gz \
-2 ../../dataFQt/A1_2.fq.gz 2>A1.map.log | \
singularity exec ../../software/MetaGenome.sif samtools \
sort -o A1.sort.bam
singularity exec ../../software/MetaGenome.sif samtools \
index A1.sort.bam
## 数据划分
singularity exec ../../software/MetaGenome.sif cut_up_fasta.py \
-c 10000 -o 0 \
--merge_last \
-b contigs_10K.bed \
A1.contigs.fa > contigs_10K.fa
## 生成coverage信息
singularity exec ../../software/MetaGenome.sif concoct_coverage_table.py \
contigs_10K.bed ./*.sort.bam > coverage_table.tsv
## 运行分箱
singularity exec ../../software/MetaGenome.sif concoct \
--composition_file contigs_10K.fa \ # 输入,fasta序列
--coverage_file coverage_table.tsv \ # 输入,coverage信息
-b concoct_output/ \ # 输出,结果目录
--threads 5 \ # 线程数
--read_length 150 \ # read长度
--length_threshold 1000 # contig阈值
## subcontig 合并回原始contig
singularity exec ../../software/MetaGenome.sif merge_cutup_clustering.py \
concoct_output/clustering_gt1000.csv \
> concoct_output/clustering_merged.csv
## 构建bin输出目录
mkdir concoct_output/fasta_bins
## 提取bin序列
singularity exec ../../software/MetaGenome.sif extract_fasta_bins.py \
A1.contigs.fa \
concoct_output/clustering_merged.csv \
--output_path concoct_output/fasta_bins

分箱结果评估

## 链接分箱结果到当前目录
ln -s ../01.metabat2/A1.contigs.fa.metabat-bins/ ./bins
## 运行checkM
singularity exec ../../software/MetaGenome.sif checkm lineage_wf \
--threads 5 \ # 线程
--tmpdir ./ \ # tmp目录路径
--extension fa \ # 序列文件后缀
bins \ # 输入,分箱结果目录
bins_checkm \ # 输出目录
> checkM.sh.log 2>&1 # 存储日志

宏基因组分箱_bin

metaWRAP 使用

metaWARP 可以整合运行以上三款分箱软件,并可以自动运行 checkM, 也可以对不同软件分箱结果进行整合。一步到位,操作简单。

## 准备宏基因组组装结果
ln -s ../../P3.Assembly_annotation/01.megahit/A1_megahit/A1.contigs.fa
## 解压测序数据
gzip -dc ../../dataFQ/A1_1.fq.gz > A1_1.fastq
gzip -dc ../../dataFQ/A1_2.fq.gz > A1_2.fastq
## 使用metaWRAP进行分箱,并运行checkM
singularity exec ../../software/MetaGenome.sif metaWRAP binning \
-t 6 \
--metabat2 \ # 允许metabat2
--maxbin2 \ # 允许maxbin2
--run-checkm \ # 对分箱结果运行checkM
-a A1.contigs.fa \ # 输入,组装结果
-o metawrap_bin \ # 输出目录
A1_1.fastq \ # 输入fq1
A1_2.fastq # 输入fq2
## 多个软件分箱结果整合
singularity exec ../../software/MetaGenome.sif metaWRAP bin_refinement \
-t 6 \
-o metawrap_refine \ # 输出结果目录
-A metawrap_bin/maxbin2_bins/ \ # 输入,分箱结果1
-B metawrap_bin/metabat2_bins/ # 输入,分箱结果2
## refine结果为metawrap_refine/metawrap_70_10_bins*

分箱结果去冗余

计算资源充足的情况下,可以将所有测序数据一起进行组装,然后分箱。 但实际操作中,由于内存限制,一般会分样品或者将生物学重复放在一 起进行拼接。这样就会存在多个组装和分箱结果,需要对其中重复的 bin 去冗余。这个操作可以使用 dRep 实现。

## 将所有分箱fasta文件存放在bin目录下
## 运行dRep去冗余
singularity exec ../../software/MetaGenome.sif dRep dereplicate \
out_dRep \
--length 50000 \
-comp 75 -con 25 \
-g ./bins/*.fasta
**结果存放于 out_dRep/dereplicated_genomes 目录

确定物种分类

当我们得到高质量 bin 以后,可以使用 GTDB-tk 对物种基于进化关系 进行分类学注释。 gtdb-tk 运行时需要使用 50G 的 GTDB 数据库,要提前准备好。下载地 址如下: https://data.gtdb.ecogenomic.org/releases/latest/auxillary_ files/gtdbtk_data.tar.gz 注意:该软件数据库大小为 50G,运行时需要消耗 200G 以上内存,请勿在基因课服务器运行。

## 将需要进行分类学注释的bin存放于genomes目录
## 运行gtdbtk
singularity exec \
-B ../../Database/GTDB/refdata/:/refdata \ # 挂载数据库到容器中
../../software/gtdbtk_latest.sif gtdbtk classify_wf \
--genome_dir ./genomes/ \ # 基因组文件目录
--out_dir out_gtdbtk \ # 输出结果目录
--cpus 5 \ # 线程
--extension fa \ # 基因组序列文件后缀
--tmpdir ./
**输出结果:
out_gtdbtk/gtdbtk.bac120.summary.tsv :bin 物种分类信息
out_gtdbtk/gtdbtk.bac120.classify.tree :合并其他物种构建的 tree,可
以使用 Dendroscope 查看