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_type | protein/contig/read | protein |
--alignment_tool | BLAST/DIAMOND | BLAST |
--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 found | Diamond 未安装 | 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