跳转至

AMRFinderPlus — NCBI 抗生素耐药基因鉴定工具


一句话说明

AMRFinderPlus 是 NCBI 开发的权威耐药基因检测工具,可鉴定细菌蛋白质/核苷酸序列中的 AMR 基因、点突变耐药位点以及毒力/胁迫相关基因(当前版本 v4.2.7)。


安装与配置

# 创建专用环境
conda create -n amr python=3.10 -y
conda activate amr

# 从 bioconda 安装 AMRFinderPlus(最新版 v4.2.7)
conda install -c bioconda ncbi-amrfinderplus -y

# 验证安装
amrfinder --version           # 查看版本号

# 下载/更新数据库(运行前必须操作)
# --force_update:强制更新到最新版数据库
amrfinder --update            # 自动下载最新数据库(推荐)
amrfinder -u                  # 等价简写

# 查看数据库版本
amrfinder --database_version  # 显示当前数据库版本

核心用法

模式一:蛋白质序列扫描(最常用)

# 输入:Prokka/Bakta 输出的蛋白质序列 (.faa)
# --protein:输入蛋白质 fasta 文件
# --output:输出 TSV 文件
# --organism:指定生物体(提高点突变检测精度)
amrfinder \
    --protein prokka_out/sample.faa \
    --output amr_results.tsv \
    --threads 8                       # 线程数

模式二:核苷酸序列扫描

# 输入:基因组 fasta(不需要预先注释)
# --nucleotide:输入核苷酸 fasta
# --output:结果文件
amrfinder \
    --nucleotide genome.fa \
    --output amr_nucl_results.tsv \
    --threads 8

模式三:蛋白质 + 核苷酸联合(最全面,推荐)

# 同时分析蛋白质和核苷酸,结合 GFF 坐标信息
# --protein:蛋白质序列
# --nucleotide:基因组核苷酸序列
# --gff:GFF 注释文件(提供位置信息)
# --organism:生物体名称(用于点突变数据库查询)
amrfinder \
    --protein prokka_out/sample.faa \
    --nucleotide prokka_out/sample.fna \
    --gff prokka_out/sample.gff \
    --organism Escherichia \
    --output amr_combined.tsv \
    --plus \                          # 同时检测毒力和胁迫基因
    --report_common \                 # 报告常见基因
    --threads 16

参数详解

参数说明默认值
-p/--protein蛋白质 fasta二选一
-n/--nucleotide核苷酸 fasta二选一
-g/--gffGFF 注释文件(坐标信息)可选
-O/--organism生物体(点突变查询)
-o/--output输出 TSV 文件stdout
--plus同时检测毒力/胁迫基因关闭
--report_common报告常见但非耐药基因关闭
-u/--update更新数据库
--threads线程数4
--coverage_min最小序列覆盖度0.5
--ident_min最小序列同一性-1(自动)

输出格式说明

# 输出 TSV 文件的列说明
head -1 amr_results.tsv   # 查看表头

# 主要列含义:
# Protein identifier    — 蛋白质 ID
# Gene symbol           — 基因符号(如 blaTEM-1)
# Sequence name         — 数据库序列名
# Scope                 — core(核心)或 plus(毒力/胁迫)
# Element type          — AMR/VIRULENCE/STRESS/POINT
# Element subtype       — 具体子类(AMR, HEAT, BIOCIDE等)
# Class                 — 抗生素类别(如 BETA-LACTAM)
# Subclass              — 子类别(如 CARBAPENEM)
# Method                — 检测方法(EXACTX/BLAST/HMM等)
# Coverage percent      — 参考序列覆盖度
# Percent identity      — 序列同一性

实战案例

# 场景:宏基因组样本多个 MAG 的 AMR 基因批量扫描

mkdir -p amr_results

for bin_dir in bakta_annotations/*/; do
    bin_name=$(basename ${bin_dir})
    prot_file="${bin_dir}/${bin_name}.faa"       # Bakta 蛋白质文件
    nucl_file="${bin_dir}/${bin_name}.fna"       # Bakta 核苷酸文件
    gff_file="${bin_dir}/${bin_name}.gff3"       # Bakta GFF 文件

    if [ -f "${prot_file}" ]; then
        amrfinder \
            --protein ${prot_file} \
            --nucleotide ${nucl_file} \
            --gff ${gff_file} \
            --output amr_results/${bin_name}_amr.tsv \
            --plus \
            --threads 8
        echo "[完成] ${bin_name} AMR 扫描完毕"
    fi
done

# 汇总所有 MAG 的 AMR 基因(添加 bin 名列)
echo -e "Bin\t$(head -1 amr_results/*.tsv | tail -1)" > all_amr.tsv
for f in amr_results/*_amr.tsv; do
    bin=$(basename $f _amr.tsv)
    tail -n +2 $f | awk -v b="$bin" '{print b"\t"$0}' >> all_amr.tsv
done
wc -l all_amr.tsv   # 统计总 AMR 基因命中数

常见报错与解决

报错信息原因解决方法
Database not found数据库未下载运行 amrfinder --update
Invalid organism生物体名称不对运行 amrfinder --list_organisms 查看支持列表
GFF format errorGFF 格式不符合要求使用 Prokka/Bakta 输出的标准 GFF
blast+ not foundBLAST+ 未安装conda install blast
版本与数据库不匹配工具版本太旧conda update ncbi-amrfinderplus

速查表

# 更新数据库
amrfinder --update

# 蛋白质序列扫描
amrfinder -p sample.faa -o amr.tsv --threads 8

# 联合扫描(最全面)
amrfinder -p sample.faa -n sample.fna -g sample.gff -O Escherichia -o amr.tsv --plus --threads 16

# 查看支持的生物体列表
amrfinder --list_organisms

# 统计各类抗性基因数量
awk -F'\t' 'NR>1{print $8}' amr.tsv | sort | uniq -c | sort -rn