跳转至

CARD — 综合抗生素耐药数据库使用指南


一句话说明

CARD(Comprehensive Antibiotic Resistance Database)是目前最全面的 AMR 知识库,提供 RGI 工具将序列比对到精确整理的耐药基因/突变数据库,支持基因组和宏基因组分析。


安装与配置

# 安装 RGI(Resistance Gene Identifier)— CARD 配套命令行工具
conda create -n rgi python=3.10 -y
conda activate rgi

# 从 bioconda 安装 RGI(当前版本 v6.0.3)
conda install -c bioconda -c conda-forge rgi -y

# 验证安装
rgi --version             # 查看版本

# 下载 CARD 数据库(必须步骤)
# 从 CARD 官网下载最新数据库
wget https://card.mcmaster.ca/latest/data \
    -O card_data.tar.bz2          # 下载最新 CARD 数据包

# 解压
tar -xjf card_data.tar.bz2        # 解压得到 card.json

# 加载数据库到 RGI
rgi load --card_json card.json \
    --local                        # 加载到当前目录

# 验证数据库加载
rgi database --version            # 显示当前数据库版本

核心用法

基础:蛋白质/核苷酸序列分析

# 分析蛋白质序列(速度最快,最常用)
# --input_sequence:输入序列文件
# --output_file:输出文件前缀
# --input_type:序列类型(protein/contig/read)
# --alignment_tool:比对工具(BLAST/DIAMOND)
rgi main \
    --input_sequence prokka_out/sample.faa \
    --output_file rgi_results/sample \
    --input_type protein \
    --alignment_tool DIAMOND \
    --local \                     # 使用本地数据库
    --num_threads 16 \
    --clean                       # 清理临时文件

宏基因组 reads 直接分析(bwt 模式)

# 直接分析宏基因组 reads(无需预先组装)
# rgi bwt:基于 Bowtie2/BWA 的宏基因组 reads 比对模式
rgi bwt \
    --read_one sample_R1.fq.gz \
    --read_two sample_R2.fq.gz \
    --output_file bwt_results/sample \
    --aligner bowtie2 \           # 比对工具(bowtie2/bwa)
    --threads 16 \
    --local \
    --clean

批量分析多个基因组

# 批量分析多个 MAG 的蛋白质文件
mkdir -p rgi_results

for faa in bakta_annotations/*/*.faa; do
    name=$(basename $(dirname $faa))       # 提取 MAG 名
    rgi main \
        --input_sequence $faa \
        --output_file rgi_results/${name} \
        --input_type protein \
        --alignment_tool DIAMOND \
        --local \
        --num_threads 8 \
        --clean
    echo "[完成] ${name}"
done

参数详解

参数说明默认值
--input_sequence输入序列文件必填
--output_file输出前缀必填
--input_typeprotein/contig/readprotein
--alignment_toolBLAST/DIAMONDBLAST
--num_threads线程数1
--include_loose包含低置信度结果关闭
--exclude_nudge排除 nudge 结果关闭
--local使用本地数据库关闭
--clean清理临时文件关闭

输出文件说明

# RGI 输出多个文件
ls rgi_results/sample*
# sample.txt     — 制表符分隔主结果(最常用)
# sample.json    — JSON 格式完整结果
# sample.fasta   — 命中序列

# 主结果文件 sample.txt 重要列
# ORF_ID         — 查询序列 ID
# Model_Name     — CARD 数据库模型名(如 TEM-1 beta-lactamase)
# ARO            — CARD 本体编号
# Drug Class     — 抗生素类别
# Resistance Mechanism — 耐药机制
# AMR Gene Family — AMR 基因家族
# Best_Hit_Bitscore — 比对 bitscore
# Best_Identities — 序列同一性(%)
# Cut_Off        — 置信度(Strict/Perfect/Loose)

# 筛选高置信度结果(Strict 或 Perfect)
awk -F'\t' '$16=="Strict" || $16=="Perfect"' rgi_results/sample.txt \
    > rgi_results/sample_hq.txt    # 高质量 AMR 命中结果

实战案例

# 场景:比较健康人和 T2D 患者肠道菌群的 AMR 基因丰度

# 1. 分析每个样本的宏基因组(reads 模式)
mkdir -p card_bwt_results

for sample in HC_01 HC_02 T2D_01 T2D_02; do
    rgi bwt \
        --read_one reads/${sample}_R1.fq.gz \
        --read_two reads/${sample}_R2.fq.gz \
        --output_file card_bwt_results/${sample} \
        --aligner bowtie2 \
        --threads 16 \
        --local \
        --clean
done

# 2. 汇总 AMR 基因频率(从 gene_mapping.txt 提取)
for f in card_bwt_results/*.gene_mapping.txt; do
    sample=$(basename $f .gene_mapping.txt)
    echo "样本 ${sample} 的 AMR 命中数: $(wc -l < $f)"
done

# 3. 可视化(Python 简单热图)
python3 -c "
import pandas as pd
# 加载多个样本结果汇总成矩阵
# 可用 RGI heatmap 子命令
"

# 或使用 RGI 自带热图工具
rgi heatmap \
    --input rgi_results/ \         # 包含多个结果的目录
    --category drug_class \        # 按抗生素类别分组
    --display fill \               # 填充模式
    --output amr_heatmap.png       # 输出图片

常见报错与解决

报错信息原因解决方法
card.json not found数据库未加载运行 rgi load --card_json card.json --local
DIAMOND not foundDiamond 未安装conda install diamond
No hits found阈值太严或序列质量差添加 --include_loose
数据库版本过旧长时间未更新重新下载 CARD 数据库
Bowtie2 index error索引构建失败检查磁盘空间和权限

速查表

# 数据库下载与加载
wget https://card.mcmaster.ca/latest/data -O card.tar.bz2
tar -xjf card.tar.bz2 && rgi load --card_json card.json --local

# 蛋白质序列分析
rgi main -i sample.faa -o results/sample -t protein --alignment_tool DIAMOND --local -n 16 --clean

# 宏基因组 reads 分析
rgi bwt -1 R1.fq.gz -2 R2.fq.gz -o results/sample --aligner bowtie2 --threads 16 --local --clean

# 查看 CARD 数据库统计
rgi database --version