跳转至

antiSMASH — 细菌/真菌次级代谢产物生物合成基因簇检测工具


一句话说明

antiSMASH(antibiotics & Secondary Metabolite Analysis SHell)自动识别基因组中编码抗生素、毒素、色素等次级代谢产物的生物合成基因簇(BGC),是天然产物发现的核心工具。


安装与配置

# 创建专用环境(antiSMASH 依赖复杂,强烈建议隔离)
conda create -n antismash python=3.10 -y
conda activate antismash

# 从 bioconda 安装 antiSMASH(当前版本 7.1.0)
conda install -c bioconda -c conda-forge antismash -y

# 下载数据库(必须步骤,约 4GB)
download-antismash-databases       # 自动下载所有必要数据库

# 验证安装
antismash --version               # 查看版本
antismash --check-prereqs         # 检查所有依赖是否完整

核心用法

基础:细菌基因组 BGC 检测

# 输入:基因组 fasta 或已注释的 GenBank 文件
# --taxon:生物分类(bacteria/fungi)
# --output-dir:输出目录
# --cpus:线程数
antismash \
    --taxon bacteria \
    --output-dir antismash_out/ \
    --cpus 16 \
    genome.gbk                    # 推荐用 GenBank 格式(含已有注释)
    # 或直接用 fasta(内部用 Prodigal 预测基因)
    # genome.fa

开启全部分析模块

# 使用所有可用模块(最全面,速度较慢)
antismash \
    --taxon bacteria \
    --output-dir antismash_full_out/ \
    --cpus 16 \
    --genefinding-tool prodigal \  # 从头预测基因(输入为 fasta 时)
    --clusterhmmer \               # 更深入的 HMM 搜索
    --tigrfam \                    # TIGRFAM 数据库搜索
    --asf \                        # 活性位点预测
    --pfam2go \                    # Pfam 到 GO 映射
    --rre \                        # RiPP 识别元件检测
    --cc-mibig \                   # 与 MIBiG 数据库交叉比对(BGC 参考库)
    --cb-general \                 # 通用 BGC 比较
    prokka_out/sample.gbk

宏基因组 contig 模式

# 宏基因组模式:不强制要求完整基因组
antismash \
    --taxon bacteria \
    --output-dir antismash_meta_out/ \
    --cpus 16 \
    --allow-long-headers \         # 允许长序列头(宏基因组常见)
    --genefinding-tool prodigal-m \ # 宏基因组模式 Prodigal
    assembly.fa

参数详解

参数说明默认值
--taxon生物类型(bacteria/fungi)bacteria
--output-dir输出目录必填
--cpusCPU 核心数1
--genefinding-tool基因预测工具(prodigal/none)none
--cc-mibig与 MIBiG 数据库比较关闭
--cb-generalBGC 通用比较关闭
--asf活性位点预测关闭
--rreRiPP 识别元件关闭
--clusterhmmer深度 HMM 搜索关闭
--minimal最小分析模式(快速)关闭
--allow-long-headers允许长序列名关闭

输出文件说明

ls antismash_out/
# index.html          — 交互式 HTML 可视化报告(主要查看入口)
# *.gbk               — 包含 BGC 注释的 GenBank 文件
# regions.js          — 区域信息(供 HTML 使用)
# knownclusterblast/  — 与已知 BGC 的比对结果
# subclusterblast/    — 子簇比对结果

# BGC 类型(antiSMASH 能识别的主要类型)
# NRPS               — 非核糖体肽合成酶
# PKS                — 聚酮合酶
# terpene            — 萜类
# RiPP               — 核糖体合成后修饰肽(含 lanthipeptide 等)
# bacteriocin        — 细菌素
# siderophore        — 铁载体
# other              — 其他

实战案例

# 场景:扫描肠道菌 MAG 中的 BGC(寻找潜在抗生素和细菌素)

mkdir -p antismash_results

# 1. 先用 Prokka 注释 MAG(获取 GenBank 格式)
for bin in das_tool_bins/*.fa; do
    name=$(basename $bin .fa)
    prokka --outdir prokka_annot/${name}/ --prefix ${name} \
           --metagenome --cpus 8 --mincontiglen 500 ${bin}
done

# 2. 用 antiSMASH 检测 BGC
for gbk in prokka_annot/*/*.gbk; do
    name=$(basename $(dirname $gbk))
    antismash \
        --taxon bacteria \
        --output-dir antismash_results/${name}/ \
        --cpus 8 \
        --cc-mibig \
        ${gbk}
    echo "[完成] ${name} BGC 检测完毕"
done

# 3. 汇总各 MAG 中的 BGC 数量和类型
echo -e "MAG\tBGC_count\tBGC_types" > bgc_summary.tsv
for dir in antismash_results/*/; do
    name=$(basename $dir)
    # 从 JSON 或 GBK 提取 BGC 信息(简化示例)
    bgc_count=$(ls ${dir}*.region*.gbk 2>/dev/null | wc -l)
    echo -e "${name}\t${bgc_count}" >> bgc_summary.tsv
done
cat bgc_summary.tsv | sort -t$'\t' -k2 -rn  # 按 BGC 数量降序排列

常见报错与解决

报错信息原因解决方法
Database not found数据库未下载运行 download-antismash-databases
hmmscan not foundHMMER 未安装conda install hmmer
prodigal not foundProdigal 未安装conda install prodigal
Sequence too shortcontig 太短过滤短 contig(>5kb 才可能含完整 BGC)
BioPython error版本冲突conda install biopython>=1.79

速查表

# 下载数据库(一次性)
download-antismash-databases

# 细菌基因组 BGC 检测(GenBank 输入)
antismash --taxon bacteria --output-dir out/ --cpus 16 genome.gbk

# 从 FASTA 检测(自动预测基因)
antismash --taxon bacteria --output-dir out/ --cpus 16 --genefinding-tool prodigal genome.fa

# 完整分析模式
antismash --taxon bacteria --output-dir out/ --cpus 16 --cc-mibig --cb-general --asf genome.gbk