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 | 输出目录 | 必填 |
--cpus | CPU 核心数 | 1 |
--genefinding-tool | 基因预测工具(prodigal/none) | none |
--cc-mibig | 与 MIBiG 数据库比较 | 关闭 |
--cb-general | BGC 通用比较 | 关闭 |
--asf | 活性位点预测 | 关闭 |
--rre | RiPP 识别元件 | 关闭 |
--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 found | HMMER 未安装 | conda install hmmer |
prodigal not found | Prodigal 未安装 | conda install prodigal |
Sequence too short | contig 太短 | 过滤短 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