宏基因组测序分析(十三) 宏基因组分箱
2023-09-27 本文已影响0人
Bioinfor生信云
分箱-binning
宏基因组分箱是指从宏基因组数据中将不同物种的序列分离,将来自同一菌种的序列聚类,得到单个菌株的数据。分箱的对象可以是reads、contig以及gene。
我们常说的binning一般指的是contig binning,侧重于单菌基因组的获得,目标是从宏基因组数据中提取出单菌的draft genome。
binning本质是聚类,聚类操作基于下面的数据:
- 核酸组成(不同物种间核酸组成存在差异)
- 丰度信息(对contig来说就是测序深度,来自同一个物种的片段测序深度应该相近。)
分箱流程
分箱软件
Metabat2,maxbin2 和 concoct 是三款常用的分箱软件;需要准备的输入数据为宏基因组拼接结果和质控过滤的测序数据。
metabat2 分箱
# 构建index
bowtie2-build A1.contigs.fa A1.contigs.db
# 比对并排序
bowtie2 --threads 6 -x ./A1.contigs.db \
-1 ./A1_1.fq.gz \
-2 ./A1_2.fq.gz 2>A1.map.log | \
samtools sort -o A1.sort.bam
# 运行分箱
runMetaBat.sh A1.contigs.fa \ # 输入, 组装结果
A1.sort.bam \ # 输入,bam文件
--minContig 1000 # contig最小长度
maxbin2 分箱
# 创建目录
mkdir A1.bindir
# 该软件自动调用bowtie2进行比对
run_MaxBin.pl -contig A1.contigs.fa \ # 输入, 组装结果
-reads ./A1_1.fq.gz \ # 输入,测序数据
-reads2 ./A1_2.fq.gz \ # 输入,测序数据
-out A1.bindir/A1.bin \ # 输出目录
-min_contig_length 1000 \
-thread 6
concoct 分箱
# bowtie2 比对
bowtie2-build A1.contigs.fa A1.contigs.db
bowtie2 --threads 6 -x ./A1.contigs.db \
-1 ./A1_1.fq.gz \
-2 ./A1_2.fq.gz 2>A1.map.log | \
samtools sort -o A1.sort.bam
samtools index A1.sort.bam
# 数据划分
cut_up_fasta.py -c 10000 -o 0 \
--merge_last \
-b contigs_10K.bed \
A1.contigs.fa > contigs_10K.fa
# 生成coverage信息
concoct_coverage_table.py \
contigs_10K.bed ./*.sort.bam > coverage_table.tsv
# 运行分箱
concoct --composition_file contigs_10K.fa \ # 输入,fasta序列
--coverage_file coverage_table.tsv \ # 输入,coverage信息
-b concoct_output/ \ # 输出,结果目录
--threads 6 \ # 线程数
--read_length 150 \ # read长度
--length_threshold 1000 # contig阈值
# subcontig 合并回原始contig
merge_cutup_clustering.py concoct_output/clustering_gt1000.csv \
> concoct_output/clustering_merged.csv
# 构建bin输出目录
mkdir concoct_output/fasta_bins
# 提取bin序列
extract_fasta_bins.py A1.contigs.fa \
concoct_output/clustering_merged.csv \
--output_path concoct_output/fasta_bins