抗体序列编号总出错?ANARCI 这个免费工具一次搞定 IMGT 等 6 大编号方案

📅 2026/8/17 20:47:13
抗体序列编号总出错?ANARCI 这个免费工具一次搞定 IMGT 等 6 大编号方案
抗体序列编号总出错ANARCI 这个免费工具一次搞定 IMGT 等 6 大编号方案【免费下载链接】ANARCIAntibody Numbering and Antigen Receptor ClassIfication项目地址: https://gitcode.com/gh_mirrors/an/ANARCI做抗体研究的都知道序列本身很好理解可一旦要编号事情就变得微妙起来。同一段序列换个编号方案CDR 位置就完全对不上同样是发表的数据这一篇用 IMGT那一篇用 Kabat你想横向比较时每个残基都对不齐。ANARCIAntibody Numbering and Antigen Receptor ClassIfication抗体编号与抗原受体分类正是来终结这种混乱的它由牛津大学蛋白信息学组OPIG开发基于 HMM 模型自动识别链类型与物种并按你指定的国际标准方案给序列编号全程只需一条命令。那个让你在论文表格前崩溃的瞬间想象一下这个场景你刚拿到一批从噬菌体展示筛出来的抗体序列想对照文献里已有的结构数据标注 CDR 区域。打开文章一看作者用的是 Kabat 编号而你手头的参考结构是 IMGT 编号。于是你开始手动数残基数到 CDR-H3 附近插入的氨基酸让你彻底数不清了。更糟的是不同工具给出的编号还互相矛盾你根本不知道该信谁。这不是你能力的问题而是编号本身就是一个标准化难题。抗体的可变区长度不一CDR 插入长度可以从几个残基到几十个残基不等没有一个统一的第几位对应哪个残基的天然答案。历史上形成了多套编号方案各有各的插补规则。手动处理既慢又容易错。ANARCI 登场编号这件小事为什么值得一个专门工具ANARCI 来自牛津蛋白信息学组是抗体领域使用非常广泛的免费开源工具。它做的事情听起来简单——给抗体序列编号——但背后是一套完整的流水线它先用 HMMER 把输入序列与一批物种特异性的隐马尔可夫模型HMM做比对识别出这是重链还是轻链、是抗体还是 T 细胞受体甚至是哪个物种的来源然后再根据你指定的编号方案把序列中的每个残基映射到标准位置上。整个过程自动完成物种、链型、e 值、bit 分数都会一并报告给你。核心代码集中在lib/python/anarci/目录下编号方案的具体规则在 lib/python/anarci/schemes.py主流程在 lib/python/anarci/anarci.py。即使你不懂算法细节也能直接拿来用。十分钟跑通你的第一条编号先装上它。最省事的方式是 conda 配好依赖然后从 gitcode 克隆源码安装git clone https://gitcode.com/gh_mirrors/an/ANARCI cd ANARCI conda install -c conda-forge biopython -y conda install -c bioconda hmmer3.3.2 -y python setup.py install安装过程会自动下载 IMGT 种系序列并构建 HMM耐心等几分钟即可。装好后验证一下ANARCI --help看到帮助信息就说明环境就绪。接下来直接给它一段序列ANARCI -i EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA输出会分成几个部分最上面是比对信息哪个物种、什么链型、e 值和分数然后是逐残基的编号表每一行都是链型 编号 氨基酸的格式#|mouse|H|8.6e-58|184.9|0|119| H 1 Q H 2 V H 3 Q ...看到这行表你的序列就算上了户口了。默认使用 IMGT 方案这也是最常用的起点。六种编号方案别再用错ANARCI 支持六种国际主流编号方案IMGT、Kabat、Chothia、Martin也叫增强版 Chothia、Aho 和 Wolfguy。新手最容易犯的错是随手选一个但它们的哲学差别很大IMGT为所有抗原受体类型统一设计128 个标准位置理论上覆盖所有情况。CDR-H3 的插入按 111/112 位对称展开。最通用跨物种、跨受体类型比较都靠它。Kabat经典老牌只定义抗体重链和轻链两链位置并不等价。CDR 里可以出现 A-Z 的插入字母比如 100ABCDEFGH 101。Chothia基于结构信息改进CDR-H1 的插入位置和 Kabat 不同做结构研究时常选它。Martin在 Chothia 基础上进一步调整框架区的插入位置也叫增强版 Chothia。Aho149 个位置覆盖所有受体类型几乎不需要插入字母。Wolfguy结构导向CDR 区域用一段数字范围表示基本不用插入代码。怎么选简单粗暴的答案是要和现有数据、结构或文献对齐就选对方用的那套没有约束就默认 IMGT。命令行用-s切换比如-s chothia、-s kabat。注意一点Kabat、Chothia、Martin、Wolfguy 只支持抗体链如果你把 T 细胞受体序列喂进去会被直接忽略。一份 FASTA 上千条序列一次全跑完单序列只是热身实际研究里你手里多半是一个 FASTA 文件。ANARCI 原生支持文件输入ANARCI -i antibody_sequences.fasta -o numbered.anarci仓库里的 Example_scripts_and_sequences/antibody_sequences.fasta 就是现成的练手数据12e8.fasta 也包含一条完整的抗体对。跑完之后每条序列的结果用//分隔没识别出来的序列只会列出名字一眼就能看出哪些不像抗体。如果想让结果更好用加--csv参数它会按链型拆分成独立的 CSV 文件并按编号方案对齐排好直接就能导入 Excel 或画图ANARCI -i antibody_sequences.fasta -o result --csv生成了几个文件就有几种链型。配合-ht参数还能把每条序列对所有 HMM 的比对统计hit 表单独存下来方便你追溯为什么这条序列被识别成小鼠重链。把 ANARCI 塞进你的 Python 流水线命令行够用但如果你在做大规模分析迟早要把编号逻辑集成到自己的脚本里。ANARCI 提供了完整的 Python API入口在 Example_scripts_and_sequences/anarci_API_example.py。最省事的入口是number给一段序列直接返回编号和链型from anarci import number numbering, chain_type number( EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA, schemekabat )而anarci函数则返回三份结果编号、比对细节和 hit 表适合要细看的场景。数据量大时用run_anarci它支持多进程并行输入可以是序列列表、单条序列或 FASTA 文件路径接口统一是批量场景的首选。我踩过的坑提前帮你避开说几个新手容易翻车的地方都是实测经验序列太短会被拒。number函数对长度小于 70 的序列直接返回False因为残基太少的片段编号结果不可靠。截短的序列建议先拼好完整可变区再跑。物种识别不等于物种注释。项目文档里明确提醒过ANARCI 用种系序列比对来辅助编号不要把它的物种判断当成严格的物种注释工具。跨物种重排的序列比如人源化抗体可能被归到别的物种属正常现象。识别不出来先看阈值。默认 bit 分数阈值是 80重工程化改造过的分子往往分数偏低被拒。可以调低阈值试试ANARCI -i my_seq.fasta --bit_score_threshold 60但注意别调太低否则会开始误报其他免疫球蛋白样蛋白。非抗体序列也会跑。拿溶菌酶序列去跑ANARCI 会诚实地告诉你不存在显著匹配——Example_scripts_and_sequences/lysozyme.fasta 就是官方用来演示这种情况的。所以没编号出来不一定是报错也可能是输入确实不是抗体。想指定物种用--use_species限定到已知物种如 human配合--assign_germline还能拿到最相近的 V/J 种系基因及一致性这在分析人源化程度时非常有用。现在轮到你了工具讲完接下来就是动手。建议按这个顺序走一遍克隆仓库用antibody_sequences.fasta跑一遍默认 IMGT 编号对照输出的 hit 表看懂每条序列的物种和链型换成-s chothia再跑一次对比两套方案在同一序列上 CDR 位置的差异你就能直观感受到为什么编号方案重要打开 Example_scripts_and_sequences/anarci_API_example.py把它改成处理你自己的序列文件接入现有分析流程最后把你筛出来的抗体序列用--csv导出和已有的结构数据对上号。从数残基数到眼花到一条命令出全部编号中间只隔着一个 ANARCI。花上半小时把示例跑通你手头的抗体序列从此就有了统一的国际语言。【免费下载链接】ANARCIAntibody Numbering and Antigen Receptor ClassIfication项目地址: https://gitcode.com/gh_mirrors/an/ANARCI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考