新人第一次选抗体序列注释工具,常见困惑是:三个名字都听过,功能好像重叠,到底用哪个? 本文横向对比 IMGT/V-QUEST、ANARCI、RIOT(riot-na)——三者都做可变区注释与编号,但设计重心不同:IMGT 是行业标准的免疫遗传学体系;ANARCI 是蛋白序列本地编号利器;RIOT 是核酸+蛋白双通道的高通量批处理引擎。
段末注释:本文对比的是序列层面的 V(D)J 注释、FR/CDR 编号与胚系归属,不涉及三维结构坐标预测。
系列:工具-03 IMGT · 工具-04 ANARCI · 工具-05 RIOT · 工具索引
1. 三十秒选型:先回答两个问题

问题 A:你手里主要是核酸还是氨基酸?
| 输入 | 优先考虑 |
|---|---|
| 核酸(测序、cDNA、组库) | IMGT/V-QUEST 或 RIOT(NT 模式) |
| 氨基酸(表达序列、预测蛋白、PDB 链) | ANARCI 或 RIOT(AA 模式) |
问题 B:你要多「深」的免疫遗传学信息?
| 需求深度 | 优先考虑 |
|---|---|
| 完整 V/D/J、Junction、突变统计、监管/发表口径 | IMGT/V-QUEST |
| 只要链型 + 多方案编号,嵌入 Python/ML pipeline | ANARCI |
| 百万级批处理 + AIRR 标准输出 + NT/AA 统一流程 | RIOT |
若仍不确定,继续读 §3 总表与 §6 场景对照。
2. 注释原理:共同逻辑与三家差异
三款工具表面都在报 v_call、CDR 边界,但底层路径不同。先弄清「注释在算什么」,再读对比表更有意义。
2.1 共同逻辑:不是「先找保守 FR,剩下算 CDR」
可变区注释不是在单条序列上扫描保守区、再把剩余划为 CDR。更标准的模型是:
1 | 目标序列 |
要点:
- FR/CDR 边界来自编号方案规则(如 IMGT 的 CDR1 常见为位点 27–38),不是每条胚系等位基因各贴一套独立标签。
- 胚系比对提供坐标系;方案提供切刀位置。
- CDR3 横跨 V–(D)–J junction,需 V/D/J 共同参与界定,不只靠 V 基因模板。
段末注释:Kabat 历史上用群体序列变异性定义 CDR,Chothia 偏结构环区;但 IMGT/V-QUEST、ANARCI、RIOT 对单条序列的执行方式都是「比对 + 方案位点投影」,而非现场算保守性。
2.2 三家实现路径对比
| 环节 | IMGT / V-QUEST | ANARCI | RIOT |
|---|---|---|---|
| 参考库 | IMGT reference directory(行业目录) | 内置胚系 HMM 库(人/鼠等) | OGRDB 开放胚系库(可 CUSTOM) |
| 比对引擎 | V-QUEST 专用核酸比对 + IMGT 规则 | HMMER3 对 HMM 全局比对 | Rust 预过滤 + Python 胚系比对 |
| 输入主场景 | 核酸(cDNA、组库 reads) | 氨基酸 | 核酸 + 氨基酸 双通道 |
| V(D)J 调用 | ✅ V、D、J 精细指派 | ❌ 不做完整 V/D/J(仅链型/物种) | ✅ V、D、J + c_call |
| FR/CDR 切分 | IMGT 方案位点(输出 FR/CDR-IMGT) | 多方案切换(--scheme) |
四方案(IMGT/Kabat/Chothia/Martin) |
| 遗传学延伸 | 突变表、Junction 分解、Collier de Perles | E-value、链型、位点列表 | productive、AIRR 扩展字段 |
| 设计目标 | 免疫遗传学标准与可发表报告 | 蛋白序列编号适配器(pipeline) | 组库级批处理 + 标准化输出 |
1 | IMGT: 核酸 ──► 对 IMGT 胚系目录精细 V(D)J 比对 ──► IMGT 编号 + 突变/Junction 报告 |
2.3 原理层面的优劣势
| 工具 | 原理优势 | 原理局限 |
|---|---|---|
| IMGT / V-QUEST | 与行业 IMGT 目录同源,V/D/J/Junction/相对胚系突变一体化;核酸链上可读框、移码、翻译与注释一致;报告口径最适合 Methods/CMC | 以 Web/HighV-QUEST 为主,难嵌入本地超大规模 pipeline;主要输出 IMGT 方案;对蛋白输入非主线 |
| ANARCI | HMM 对 gap/插入鲁棒,适合 CDR3 长度多变;一套比对、多套编号方案(含 AHo);API 轻量,直接得 (位点, aa);MIT 许可 |
不做完整 V/D/J 与 Junction 遗传学叙事;物种标签可能错但编号仍可用;无核酸 productive/移码层 |
| RIOT | 双输入统一逻辑;Rust 预过滤适合百万级;输出 AIRR 便于组库生态;OGRDB 开放可自定义 | 遗传学报告深度不及 V-QUEST 突变表;商业许可需单独确认;Ig 为主,TCR 等需实测 |
按「你要注释的到底是什么」选:
| 注释目标 | 更匹配的原理路径 |
|---|---|
| 「这条 cDNA 的 V/D/J 是谁、相对胚系突变了多少」 | IMGT 核酸精细比对 |
| 「这条蛋白按 Kabat 每位点怎么标、链型是什么」 | ANARCI HMM + 多方案投影 |
| 「这批序列能否标准化进组库 pipeline」 | RIOT 预过滤批处理 + AIRR |
2.4 特殊序列:原理仍成立,解读要小心
人源化 / CDR 移植(CDR 来自鼠、FR 来自人)时,三家的切分逻辑不变(仍是比对 + 方案位点),但遗传学解读易偏:
| 现象 | 原因 | 对三家的影响 |
|---|---|---|
v_call 常显示人源 V |
FR 占比较长且已人源化,全局比对偏向人胚系 | IMGT/RIOT 的 V 调用与构建记录可能「语法一致、故事不同」 |
| CDR 区「突变」偏多 | 相对被指派人胚系,鼠 CDR 被视为大量差异 | IMGT 突变表不能直接当体细胞突变或免疫原性唯一依据 |
| D/J 与 V 物种叙事不一致 | CDR3/junction 可能保留原始鼠重排 | IMGT/RIOT 可能出现人 V + 鼠倾向 D/J;需与实验记录对照 |
| FR/CDR 边界通常仍可用 | 边界由方案位点决定,不随物种嵌合改变 | ANARCI 编号往往最稳;遗传学报告需人工注明供体来源 |
原则:编号/切分信工具;胚系归属与突变含义信实验设计与构建文档。
3. 一张总表看全貌

| 维度 | IMGT / V-QUEST | ANARCI | RIOT(riot-na) |
|---|---|---|---|
| 本质 | 标准 + 数据库 + 在线工具生态 | 本地 CLI/Python 编号工具 | 本地 CLI/Python 批注释引擎 |
| 维护方 | IMGT® 联盟 | 牛津 OPIG/SAbPred | Natural Antibody |
| 输入:核酸 | ✅ 主场景 | ❌ | ✅ NT 通道 |
| 输入:氨基酸 | ⚠️ 非 V-QUEST 主线 | ✅ 主场景 | ✅ AA 通道 |
| V 基因指派 | ✅ 精细 | ⚠️ 间接(HMM 链型) | ✅ |
| D / J 基因指派 | ✅ 完整 | ❌ | ✅ |
| Junction / CDR3 分解 | ✅ 详细 | ❌ | ✅ |
| 相对胚系突变统计 | ✅ 突变表 | ❌ | ⚠️ 有限 |
| productive / 移码检测 | ✅(核酸) | ❌ | ✅(NT 为主) |
| 编号方案 | IMGT 为主 | IMGT、Kabat、Chothia、Martin、AHo、Wolfguy | IMGT、Kabat、Chothia、Martin |
| TCR 支持 | ✅(IMGT/TR) | ✅(IMGT/AHo 等) | ⚠️ 以 Ig 为主,需实测 |
| 多结构域(融合蛋白) | ⚠️ scFv 模式 | ⚠️ 需手动拆分 | ✅ --multiple-domains |
| 部署方式 | Web;批处理用 HighV-QUEST | 本地 pip/GitHub | 本地 pip wheel / Docker |
| 批处理规模 | 单条方便;大规模需 HighV-QUEST | 本地 FASTA + Python 循环 | Rust 预过滤 + 多进程,适合组库级 |
| 输出格式 | 网页 + IMGT-gapped FASTA 等 | CSV / (位点, aa) 列表 |
AIRR 扩展 CSV/JSON |
| Python API | ❌(需解析导出) | ✅ anarci.number() |
✅ create_riot_nt/aa() |
| 胚系库 | IMGT reference directory | 内置 HMM(人/鼠等) | OGRDB + 可自定义 |
| 行业认可度 | ⭐ 最高(发表/监管) | ⭐ 计算抗体社区常用 | ⭐ 组库/AIRR 生态上升 |
| 许可 | 免费 Web;HighV-QUEST 有配额 | MIT | 非商业免费;商业需查 LICENSE |
读表口诀:
- 写报告、对 IMGT 官方口径 → IMGT
- 蛋白序列、要 Kabat/Chothia、塞 pipeline → ANARCI
- 测序组库、要 AIRR、NT+AA 一套搞定 → RIOT
4. 分维度细比
4.1 输入与前置条件
| 情况 | 推荐 | 原因 |
|---|---|---|
| 杂交瘤测序得到的 cDNA | IMGT 或 RIOT-NT | 需要 V(D)J 与 reading frame 信息 |
| 只有 VH/VL 氨基酸 FASTA | ANARCI 或 RIOT-AA | 无需翻译;ANARCI 编号方案更多 |
| BCR 组库 百万 FASTA | RIOT | 并行 + AIRR 输出;IMGT HighV-QUEST 有配额 |
| scFv 一条肽 含 VH+VL | RIOT(多域)或手动拆两条后 ANARCI | ANARCI 不自动拆双域 |
| 纳米抗体 VHH 单链 | ANARCI | 编号成熟;注意物种标签可能不准 |
4.2 编号方案
三者都支持 IMGT,但「一套序列多种方案」的能力不同:
| 方案 | IMGT | ANARCI | RIOT |
|---|---|---|---|
| IMGT | ✅ 默认 | ✅ | ✅ 默认 |
| Kabat | 对照表 | ✅ | ✅ |
| Chothia | 对照表 | ✅ | ✅ |
| Martin | — | ✅ | ✅ |
| AHo / Wolfguy | — | ✅ | ❌ |
若项目必须在 IMGT 与 Kabat/Chothia 间切换,ANARCI 与 RIOT 更省事;若只认 IMGT 且要官方 gapped 输出,IMGT/V-QUEST 最直接。
4.3 输出与下游对接
| 下游任务 | 更顺手的工具 | 说明 |
|---|---|---|
| 论文 Methods「按 IMGT 注释」 | IMGT | 审稿人熟悉;可附 V-QUEST 截图/导出 |
| PyTorch 按 CDR 位点抽特征 | ANARCI | number() 直接得位点列表 |
| Immcantation / AIRR 组库分析 | RIOT | 字段与 Rearrangement Schema 对齐 |
| 人源化报告(FR 回复突变统计) | IMGT | V-QUEST 突变表最完整 |
| Snakemake / Spark 流水线 | RIOT 或 ANARCI | 均本地;RIOT 自带 Spark 示例 |
4.4 性能与运维
| 维度 | IMGT | ANARCI | RIOT |
|---|---|---|---|
| 单条试序列 | ⭐ Web 即开即用 | CLI 一条命令 | CLI 一条命令 |
| 10³ 条 | Web 重复提交或 HighV-QUEST | 本地 FASTA | 本地 FASTA,-p 并行 |
| 10⁶ 条组库 | HighV-QUEST(注册/配额) | 可行但无预过滤加速 | ⭐ Rust 预过滤 + 多进程 |
| 环境依赖 | 浏览器 | Python + HMMER3 | Python ≥3.10;wheel 通常免编译 |
| 版本复现 | 注明 IMGT reference release | 固定 GitHub commit + hmmscan 版本 | 固定 riot-na 版本 + 胚系库日期 |
4.5 许可与合规
- IMGT:学术 Web 免费;HighV-QUEST 大规模需注册;商业用途查 IMGT 条款。
- ANARCI:MIT,商业 pipeline 友好。
- RIOT:非商业机构非商业使用免费;商业用途需单独查阅 LICENSE。
企业选型时,许可有时比功能差异更先决定答案。
5. 三者各自最擅长什么
用一句话概括(不重复单篇全文,只帮记忆):
| 工具 | 最擅长回答 |
|---|---|
| IMGT | 「这条核酸在免疫遗传学标准下是谁、突变了多少、Junction 长什么样?」 |
| ANARCI | 「这条蛋白是 VH 还是 VL、按 Kabat/Chothia/IMGT 每位点怎么标?」 |
| RIOT | 「这批核酸或蛋白能否批量注释成 AIRR 表、是否 productive、V/D/J 是谁?」 |
6. 按场景选型(对照表)
| 场景 | 首选 | 备选 | 备注 |
|---|---|---|---|
| 克隆测序验证(单条 cDNA) | IMGT/V-QUEST | RIOT-NT | 要突变表选 IMGT |
| 人源化 / 免疫原性分析 | IMGT | — | FR 突变统计 IMGT 最全 |
| 抗体 ML 训练(CDR 掩码) | ANARCI | RIOT-AA | ANARCI API 最轻量 |
| 读老文献 Kabat 编号 | ANARCI | RIOT | --scheme kabat |
| BCR 测序后处理(>10⁵ 条) | RIOT | IMGT HighV-QUEST | RIOT 本地无配额 |
| 组库入库 AIRR 格式 | RIOT | — | 字段原生对齐 |
| 双特异性 / CAR 融合蛋白 | RIOT | 手动拆分 + ANARCI | --multiple-domains |
| TCR 序列(α/β 链) | IMGT 或 ANARCI | — | RIOT 需项目内验证 |
| 快速 Web 试一条 AA | ANARCI Web(人/鼠) | — | 生产仍建议本地固定版本 |
| 监管申报材料 / CMC 文档 | IMGT | — | 行业默认语言 |
| 商业 closed-source pipeline | ANARCI | RIOT(查 LICENSE) | MIT 最省心 |
7. 可以组合用吗?
可以,且实践中常见——不是互斥,而是分工:
1 | 典型组合 A(发现 → 计算) |
原则:批处理用 RIOT,蛋白编号方案切换用 ANARCI,报告级遗传学细节用 IMGT。同一克隆若三处结果不一致,优先核对输入序列(是否含信号肽/Fc)、编号 scheme 是否一致、胚系库版本是否相同。
8. 新人常见误区
把「编号」当成「胚系注释」
ANARCI 给的是位点映射 + 链型;不等于 V-QUEST 级 D 基因与突变统计。核酸丢给 ANARCI、蛋白丢给 V-QUEST
输入类型与工具主场景错配,结果要么跑不通要么信息不全。不同 scheme 混比 CDR 长度
IMGT 与 Kabat 的 CDR1 边界可能差 1–3 个残基;对比前必须统一 scheme(见 抗体-01.结构-02)。忽略版本与胚系库
IMGT reference release、ANARCI commit、RIOT + OGRDB 日期都会影响v_call; Methods 里应写明。RIOT 多进程直接传对象
须用get_or_create_riot_*;ANARCI 无此限制,但需装 HMMER。以为注释工具能预测功能
三者都不输出亲和力、表达量或三维结构;注释是下游分析的前置步骤。以为注释是在序列上找保守区再切 CDR
实际是胚系比对 + 编号方案位点投影;见 §2.1。人源化分子直接信突变表
CDR 鼠 + FR 人时,IMGT/RIOT 突变统计需结合构建记录解读;见 §2.4。
9. 选型速查卡
1 | ┌─────────────────────────────────────────────────────────────┐ |
10. 小结
| 若你只能记三句 |
|---|
| IMGT = 标准 + 核酸胚系注释最全,Web 友好,发表首选 |
| ANARCI = 蛋白本地编号 + 方案最全,ML pipeline 首选 |
| RIOT = NT/AA 双通道 + 组库批处理 + AIRR,高通量首选 |
没有「永远最好」的工具,只有与输入类型、注释深度、输出格式与合规要求最匹配的选择。建议先读 §2 注释原理与三篇单工具科普,再用 §6 场景表拍板。
延伸阅读
| 篇目 | 链接 |
|---|---|
| IMGT 详解 | 抗体-04.工具-03 |
| ANARCI 详解 | 抗体-04.工具-04 |
| RIOT 详解 | 抗体-04.工具-05 |
| CDR 与编号方案背景 | 抗体-01.结构-02 可变区结构 |
参考文献
- Lefranc M.-P. IMGT unique numbering. Immunology Today (1997); IMGT/V-QUEST: Brochet X. et al. Nucleic Acids Res. (2008)
- Dunbar J., Deane C.M. ANARCI. Bioinformatics (2016)
- Dudzic P. et al. RIOT. Briefings in Bioinformatics (2024). doi:10.1093/bib/bbae632