跳转至

DAS_Tool — 多 binning 工具结果整合优化器


一句话说明

DAS_Tool 将 MetaBAT2、MaxBin2、CONCOCT 等多个 binning 工具的结果进行整合去冗余,挑选出每组中质量最高的非冗余 bin 集合。


安装与配置

# 激活 binning 环境
conda activate binning

# 从 bioconda 安装 DAS_Tool(当前版本 v1.1.7)
conda install -c bioconda das_tool -y

# 安装依赖:ruby、prodigal、diamond、pullseq
conda install -c bioconda prodigal diamond pullseq -y

# 验证安装
DAS_Tool --version        # 查看版本
DAS_Tool --help           # 查看帮助

核心用法

第一步:准备各工具的 scaffold-to-bin 映射文件

# DAS_Tool 需要每个工具的"contig归属文件"
# 格式:contig名\tbin名(制表符分隔,两列)

# 从 MetaBAT2 结果提取
# Fasta_to_Scaffolds2Bin.sh:DAS_Tool 提供的辅助脚本
Fasta_to_Scaffolds2Bin.sh \
    -i metabat2_bins/ \
    -e fa \
    > scaffolds2bin_metabat2.tsv    # 生成 MetaBAT2 的映射文件

# 从 MaxBin2 结果提取
Fasta_to_Scaffolds2Bin.sh \
    -i maxbin2_out/ \
    -e fasta \
    > scaffolds2bin_maxbin2.tsv     # 生成 MaxBin2 的映射文件

# 从 CONCOCT 结果提取
Fasta_to_Scaffolds2Bin.sh \
    -i concoct_bins/ \
    -e fa \
    > scaffolds2bin_concoct.tsv     # 生成 CONCOCT 的映射文件

# 验证格式(应为两列:contig名 + bin名)
head -3 scaffolds2bin_metabat2.tsv  # 预览前几行

第二步:运行 DAS_Tool 整合

# 主命令:整合多个 binning 结果
# --scaffolds2bin:多个映射文件,逗号分隔
# --labels:对应工具标签,逗号分隔
# --contigs:原始组装 fasta
# --outputbasename:输出文件前缀
# --search_engine:蛋白质搜索引擎(推荐 diamond,速度快)
# --write_bins:写出最终优化的 bin fasta 文件
DAS_Tool \
    --scaffolds2bin scaffolds2bin_metabat2.tsv,scaffolds2bin_maxbin2.tsv,scaffolds2bin_concoct.tsv \
    --labels metabat2,maxbin2,concoct \
    --contigs assembly.fa \
    --outputbasename das_tool_out/DASTool \
    --search_engine diamond \
    --write_bins \
    --write_bin_evals \
    --threads 16                    # 线程数

参数详解

参数说明默认值
--scaffolds2bin各工具的映射文件(逗号分隔)必填
--labels各工具的标签(逗号分隔)必填
--contigs原始组装 fasta必填
--outputbasename输出前缀必填
--search_engine蛋白搜索引擎(diamond/blast)diamond
--write_bins写出最终 bin fasta关闭
--write_bin_evals写出每个 bin 的质量评估关闭
--score_thresholdbin 保留分数阈值(0-1)0.5
--threads线程数1
--db_directory自定义数据库目录内置

实战案例

# 场景:整合三种工具结果,优化肠道宏基因组 bin 集合

mkdir -p das_tool_out

# 1. 生成各工具映射文件
Fasta_to_Scaffolds2Bin.sh -i metabat2_bins/ -e fa > s2b_mb2.tsv
Fasta_to_Scaffolds2Bin.sh -i maxbin2_out/ -e fasta > s2b_mx2.tsv
Fasta_to_Scaffolds2Bin.sh -i concoct_bins/ -e fa > s2b_concoct.tsv

# 2. 运行 DAS_Tool(全部参数)
DAS_Tool \
    --scaffolds2bin s2b_mb2.tsv,s2b_mx2.tsv,s2b_concoct.tsv \
    --labels metabat2,maxbin2,concoct \
    --contigs coassembly.fa \
    --outputbasename das_tool_out/DASTool \
    --search_engine diamond \
    --write_bins \
    --write_bin_evals \
    --score_threshold 0.5 \
    --threads 16

# 3. 查看整合后的高质量 bin
# _DASTool_bins/:最终优化的 bin 目录
ls das_tool_out/DASTool_DASTool_bins/ | wc -l  # bin 数量

# 查看每个 bin 的质量得分
cat das_tool_out/DASTool_DASTool_summary.tsv    # 完整质量报告

常见报错与解决

报错信息原因解决方法
diamond not foundDiamond 未安装conda install diamond
No bins pass threshold所有 bin 质量低于阈值降低 --score_threshold 到 0.2
scaffolds2bin file is empty映射文件为空检查 bin 目录和扩展名 -e 是否匹配
ruby errorRuby 版本不兼容用 conda 安装 das_tool(含 ruby 依赖)
输出 bin 比预期少DAS_Tool 去冗余了重复 bin正常现象,检查 summary 文件

速查表

# 生成映射文件(三种工具)
Fasta_to_Scaffolds2Bin.sh -i mb2_bins/ -e fa > s2b_mb2.tsv
Fasta_to_Scaffolds2Bin.sh -i mx2_out/ -e fasta > s2b_mx2.tsv
Fasta_to_Scaffolds2Bin.sh -i concoct_bins/ -e fa > s2b_cct.tsv

# 一键整合
DAS_Tool \
    --scaffolds2bin s2b_mb2.tsv,s2b_mx2.tsv,s2b_cct.tsv \
    --labels mb2,mx2,concoct \
    --contigs assembly.fa \
    --outputbasename out/DASTool \
    --search_engine diamond \
    --write_bins --threads 16

# 查看最终结果摘要
cat out/DASTool_DASTool_summary.tsv | column -t