导读:如果你手里只有 抗体氨基酸序列,要批量编号、建 CDR 掩码、或对接 Python/ML pipeline,ANARCI 是社区里最常用的本地工具之一。本文覆盖原理、安装、命令行与 API。
在抗体计算流程里,你经常会拿到一条 氨基酸序列(FASTA 或 DataFrame 里的一列),需要回答:这是 VH 还是 VL?来自人还是鼠?CDR 边界在哪?按 IMGT 还是 Kabat 编号? ANARCI(Antigen receptor Numbering And Receptor ClassificatIon)就是为解决这类问题而生的本地可脚本化工具——由牛津 OPIG/SAbPred 团队维护,用 HMMER3 将序列对齐到胚系 隐马尔可夫模型(Hidden Markov Model,HMM) 库,再套用你选的编号方案。
段末注释:HMM 用概率模型描述序列模式;HMMER 是搜索 HMM 的常用软件套件。
官方资源:GitHub oxpig/ANARCI · PyPI · SAbPred Web(旧版)
1. ANARCI 能做什么

| 能力 | 说明 |
|---|---|
| 链型分类 | 判断 VH、Vκ、Vλ、Vα、Vβ 等可变域类型 |
| 物种推断 | Human、Mouse、Rat、Rabbit、Pig、Rhesus 等(见功能边界) |
| 多方案编号 | IMGT、Kabat、Chothia、Martin(Enhanced Chothia)、AHo、Wolfguy |
| 插入位处理 | CDR 区超长序列用字母插入码(如 111A、100B…) |
| 批量处理 | 单条序列、FASTA 文件、Python 批量 API |
| 可解释性输出 | E-value、bit-score、序列起止索引 |
一句话定位:ANARCI 是抗体/TCR 可变域氨基酸序列的「识别 + 编号」工具,适合本地批处理与嵌入 Python 流程(CDR 掩码、统一编号导出等)。
[!tip] 快速记住
手里是 蛋白序列、要 Kabat/Chothia 或塞进 Python → 优先 ANARCI。
2. 工作原理
2.1 为什么用 HMM 而不是简单 BLAST
可变区与胚系 V 基因高度同源,但 CDR3 长度多变、物种间 FR 有差异。ANARCI 为每种 (物种 × 链型) 构建代表胚系序列的 HMM,用 HMMER3 做全局比对。对输入序列,程序:
- 与全部候选 HMM 比对,按 E-value / bit-score 排序;
- 取得分最高的 HMM → 推断 链型 + 物种;
- 在 HMM 对齐列上,映射到目标编号方案的位点;
- 对无法一一对应的插入区,按各方案规则加 插入字母。
这比单纯序列相似度搜索更擅长处理 gap 与插入,对 nanobody(VHH)、部分非模式物种序列也更鲁棒(物种标签可能标错,但编号常仍合理)。
2.2 支持的编号方案(抗体相关)

| 方案 | ANARCI 支持 | 要点 |
|---|---|---|
| IMGT | Ig + TCR | 128 个可能位置;VH/VL/Vα/Vβ 位置可比;CDR3 插入对称分布在 111/112 附近 |
| Kabat | 仅 Ig | VH/VL 位置不可比;插入常见于 100 等位 |
| Chothia | 仅 Ig | 与 Kabat 类似,CDR-H1 插入位置不同(结构导向) |
| Martin | 仅 Ig | Enhanced Chothia |
| AHo | Ig + TCR | 149 位;抗体与 TCR 统一坐标,适合跨受体比较 |
| Wolfguy | 仅 Ig | 较少用 |
段末注释:Enhanced Chothia(Martin) 在 Chothia 基础上扩展环区定义,常用于结构建模社区。
2.3 插入码规则(直觉)
当 CDR 比标准方案「多出」残基时,ANARCI 不会丢弃,而是在指定锚点旁加字母:
- IMGT:如
111A、111B… 对称于 111–112; - Kabat/Chothia:如
100A、100B… 直至100Z。
读输出时,数字位 = 标准位置,字母 = 插入。
3. 安装
推荐:从 GitHub 安装(维护者指出部分 Bioconda 版本结果偏差,CLI 与 Python API 在 conda 包下也可能不一致)。
1 | git clone https://github.com/oxpig/ANARCI.git |
HMMER3 必须可用(ANARCI 内部调用 hmmscan)。若仅装 Python 包而未装 HMMER,编号步骤会失败或走不完整回退。
4. 使用方式
4.1 命令行:单条序列
1 | ANARCI -i QVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA |
常用参数:
| 参数 | 含义 |
|---|---|
-i |
输入序列或 FASTA 文件 |
--scheme imgt |
编号方案:imgt / kabat / chothia / martin / aho / wolfguy |
--csv |
输出 CSV(水平格式) |
--outfile |
写出到文件 |
--species |
限制物种 HMM 子集(可选) |
4.2 命令行:FASTA 批量
1 | ANARCI -i antibodies.fasta --scheme imgt --csv -o numbered.csv |
输出 header 含:species、chain_type(H/L/K/A/B)、e-value、score、序列起止索引等,随后是 (位置, 氨基酸) 列表。
4.3 Python API(pipeline 最常用)
1 | from anarci import number |
批量场景可对 DataFrame 每行调用 number(),或用官方封装的批处理函数(见仓库 anarci.py)。
4.4 Web 版(Legacy)
SAbPred ANARCI 页面 支持单条或 FASTA 上传,仅 Human/Mouse 胚系以保证结果长期稳定。适合快速试一条序列;生产环境建议 GitHub 版 + 固定版本。
5. 典型应用场景
| 场景 | 为什么用 ANARCI |
|---|---|
| 序列库批处理 | 统一 IMGT/Kabat 编号,导出 CSV |
| ML 特征提取 | 按位点建 CDR 掩码、对齐 embedding |
| Kabat vs IMGT 对照 | 同一序列 --scheme 切换即可 |
| 纳米抗体(VHH) | 无轻链;重链可变域仍可按 VH 编号 |
| TCR 序列 | --scheme imgt 或 aho |
6. 优缺点
6.1 优势
- 本地 + 可脚本化:适合 HPC、Snakemake、CI 与百万级序列批处理。
- 多编号方案:一套 HMM,多套输出——工程上极省事。
- 输入是氨基酸:直接吃表达/预测蛋白序列,无需阅读框。
- 链型自动识别:减少手工判断 VH/VL 混用错误。
- 牛津 OPIG 维护:与 SAbPred 抗体预测生态同源,文档与社区活跃。
- 开源 MIT:可嵌入商业 pipeline(遵守许可证即可)。
6.2 局限
- 胚系 V/D/J 注释较粗:不如专用核酸比对工具给出完整 D 基因、Junction 分解与突变统计表。
- 依赖 HMMER 与内置 HMM 库:环境不完整时结果异常;勿默认信任过时的 conda 构建。
- 物种覆盖有限:官方 HMM 主攻人/鼠等;羊驼 VHH、鲨鱼 NCAR 等可能 编号对、物种标错。
- 仅 variable domain:不注释 CH1/Fc、不处理融合标签(需先裁剪)。
- Web 版功能收缩:仅人/鼠;全物种用本地包。
7. 功能边界
ANARCI 聚焦 可变域氨基酸序列的链型识别与编号,下列任务超出其设计范围:
| 问题 | ANARCI 能否直接解决 |
|---|---|
| 核酸序列的精细 V/D/J 胚系指派 | 否(不完整) |
| 相对胚系的体细胞突变率统计 | 否 |
| scFv 一条肽里两条可变域 | 需拆分后分别编号 |
| 恒定区编号 | 否 |
| 非 Ig 可变域序列 | 通常无法编号 |
擅长回答:这条蛋白序列是 VH 还是 VL、按 IMGT/Kabat/Chothia 等方案每位点对应什么氨基酸。
8. 实践建议与踩坑
- 固定版本:记录
ANARCIcommit / PyPI 版本与hmmscan -h版本;升级后复跑金标准序列。 - 优先 GitHub 安装:若 conda 与 GitHub 结果不一致,以 GitHub 为准(见 Issue #86)。
- 检查 E-value:异常高的 E-value 或未编号成功片段 → 可能不是标准 Ig 可变域(融合蛋白、污染序列)。
- 注明 scheme:发表与跨团队对接时写清
scheme=imgt等。 - nanobody:无轻链正常;若 pipeline 强制 VH+VL 双输入,需改逻辑或复用重链槽位。
- 残基序号 ≠ 编号位点:FASTA 或导出文件中的顺序位置,与 IMGT/Kabat 等编号位点不是同一套索引;下游按位点取特征时需以编号结果为准。
9. 小结
| 维度 | 要点 |
|---|---|
| 输入 | 氨基酸序列(单条 / FASTA) |
| 原理 | HMMER3 对胚系 HMM 比对 → 链型/物种 → 映射编号 |
| 输出 | 编号位置列表 + 链型 + 比对得分 |
| 擅长 | 多方案编号、本地批处理、Python 集成 |
| 局限 | 胚系精细注释弱、variable 区为主、物种覆盖有限 |
ANARCI 回答的是:「这条蛋白序列的可变域,按所选编号方案每位点该怎么标、链型是什么」。
参考文献与链接
- Dunbar J., Deane C.M. ANARCI: Antigen receptor numbering and receptor classification. Bioinformatics (2016). PMC4708101
- GitHub:https://github.com/oxpig/ANARCI
- SAbPred ANARCI Web:https://opig.stats.ox.ac.uk/webapps/sabdab-sabpred/sabpred/anarci/
- HMMER3:Eddy S.R. PLoS Comput Biol (2009)
- IMGT 编号对照:IMGT Scientific chart