10分钟用ANARCI给抗体编号:从一条序列到千条FASTA的实战笔记
10分钟用ANARCI给抗体编号从一条序列到千条FASTA的实战笔记【免费下载链接】ANARCIAntibody Numbering and Antigen Receptor ClassIfication项目地址: https://gitcode.com/gh_mirrors/an/ANARCI开篇审稿人一句话逼你学会编号我第一回接触抗体编号是被审稿意见逼的。当时论文里有个小鼠单抗的序列审稿人只回了一句Please provide the IMGT numbering of the antibody variable domains and annotate the CDRs. 大意是把 CDR 位置按 IMGT 标准标出来。我盯着那条一百多个氨基酸的字符串看了十分钟然后翻开 IMGT 编号表开始手抄FRI 的残基对齐 1 号CDR1 从 27 号开始……抄到第 50 个残基就乱了因为 CDR1 长一点的序列会插进 A、B、C 这样的插入码。最后我抄出来的编号自己都不敢信是对的。如果你也有过类似经历——手里攥着一条抗体序列却不知道它该叫1、2、3还是26、27、28不知道怎么把 CDR1、CDR2、CDR3 从一串字母里精确切出来——那这篇笔记就是给你写的。我要带你把牛津蛋白信息学组OPIG开发的ANARCI用起来。这个名字是 Antibody Numbering and Antigen Receptor ClassIfication 的缩写它干的事一句话说清给你一条抗体或 TCR 序列它用隐马尔可夫模型自动识别物种和链型然后按 IMGT、Kabat、Chothia 等 6 种编号方案给出标准编号顺带把 CDR 边界、种系基因germline归属全部算好。接下来我们不做安装→功能介绍→FAQ式的流水账。我们直接演一遍从你拿到一条序列、到把上千条序列跑完导出 CSV 的完整过程。每一步都是真实场景每一段代码你都能直接跑。魔法时刻一条命令编号和CDR全出来先给你看 ANARCI 最爽的地方。假设你手里有一条小鼠重链可变区序列就是我从项目自带示例里摘的来自抗体 12E8 的重链真实存在于项目Example_scripts_and_sequences/12e8.fasta中ANARCI -i EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA一秒之内屏幕上会吐出类似这样的结果# 12E8:H # ANARCI numbered # Domain 1 of 1 # Most significant HMM hit #|species|chain_type|e-value|score| #|mouse|H|8.6e-58|184.9| # Scheme imgt H 1 Q H 2 V H 3 Q H 4 L H 5 Q ... H 26 G H 27 F - CDR1 起点 ... H 105 A - CDR3 区域 ... //注意那行#|mouse|H|8.6e-58|184.9|——它告诉我们ANARCI 自动识别出这是小鼠mouse的重链He-value 8.6e-58 表示这个判断的可信度极高。你不需要告诉它物种不需要告诉它链型它自己用 HMMER 把序列和人类、小鼠、大鼠、兔等物种的 V/J 种系 HMM 数据库比对一遍谁的分最高、最显著就用谁的。每条氨基酸都有标准位置编号CDR 在哪里自然一目了然。这就是魔法时刻从一串字母面条到结构化、可比对的编号结果你只敲了一行命令。现在让我们把魔法用在一个真实的项目流程里。案例主线把 2000 条序列变成一张编号表假设你现在的任务真实一点从实验室的杂交瘤筛选结果里拿到了一批候选抗体序列存在一个 FASTA 文件里有 2000 条。老板说把每条序列的链型分出来按 IMGT 编号标出 CDR导出成表格。手动做不可能。下面是完整的四步。第一步把环境搭好10 分钟内能跑通安装没有想象中复杂。ANARCI 是 Python 包但核心的序列比对靠的是 HMMER 这个外部程序所以要先把它请进来。用 conda 是最省事的conda install -c conda-forge biopython -y conda install -c bioconda hmmer3.3.2 -y git clone https://gitcode.com/gh_mirrors/an/ANARCI cd ANARCI python setup.py install装完之后验证一下ANARCI --help能看到用法说明就说明成功了。这里有个小细节要提前告诉你setup.py install的过程中会从 IMGT/GENE-DB 下载种系基因数据并构建 HMM 模型项目里的INSTALL文件明确写了这一步所以第一次安装需要联网也请耐心等它跑完。验证完先把项目自带的一对示例序列跑一遍确认环境 OKANARCI -i Example_scripts_and_sequences/12e8.fasta12e8.fasta里其实藏了四条链H、L、M、PM 是轻链 L 的重复、P 是重链 H 的重复。你会看到它们被正确分成了重链和轻链这就是第一步的成果你能得到什么——一条条带物种、链型、编号注释的清晰输出。第二步处理真正的 FASTA 文件项目里给你准备了一个很好的练习素材Example_scripts_and_sequences/antibody_sequences.fasta里面有近 2000 条真实 PDB 抗体链序列。直接喂给 ANARCIANARCI -i Example_scripts_and_sequences/antibody_sequences.fasta -o my_numbering.txt-o指定输出文件不加的话结果会刷满整个终端。每条序列的结果以//分隔没被识别成抗体的序列比如某个溶菌酶混进去了会原样输出名字并告诉你没有显著比对结果。但垂直格式的编号人读起来舒服做下游分析却不好处理。所以更常用的是 CSV 模式——这是我最推荐你用的姿势ANARCI -i Example_scripts_and_sequences/antibody_sequences.fasta -s i --csv -o my_imgt --ncpu 4 --assign_germline逐块解释这段命令在干什么-s i选择编号方案i是 IMGT 的缩写。项目支持的 6 种方案缩写分别是iIMGT、kKabat、cChothia、mMartin即增强版 Chothia、aAHo、wWolfguy。等下我们会专门对比它们。--csv把编号结果按链型分开写成横向排列的 CSV 文件。所有序列按编号方案对齐同一位点排在同一列——这正是你想要的表格。-o my_imgtCSV 模式必须给一个输出文件名前缀ANARCI 会生成my_imgt_H.csv、my_imgt_L.csv这样的文件按链型自动分类。--ncpu 4让 HMMER 用 4 个核并行。项目里的性能脚本Example_scripts_and_sequences/run_numbering_benchmark.sh用 4 进程处理约一万条序列注释写着不到 5 分钟你可以拿 2000 条序列感受一下这个速度。--assign_germline额外输出与该序列最相似的种系基因注释比如IGHV1-12*01和序列同一性分数这个信息对分析抗体的成熟程度很有用。跑完后打开my_imgt_H.csv你会看到每一行是一条序列、每一列是 IMGT 的一个位点CDR 区域一目了然。你能得到什么一份干净的、可直接丢进 Excel 或 pandas 的抗体编号对齐表。第三步把 ANARCI 嵌进你的 Python 流程命令行适合一次性任务但如果你要写脚本批量分析、或者把编号结果接进自己的管线就该用 Python API 了。项目里有两个公开函数先看最省事的numberfrom anarci import number seq EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA numbering, chain_type number(seq, schemekabat) print(链型, chain_type) # 输出 H print(第一个结构域的 Kabat 编号, numbering)number很贴心传一条序列进去返回编号结果和链型适合快速验证这条序列是不是抗体、是重链还是轻链。如果你想要完整信息——物种、e-value、比对位点、HMMER 的全部命中表——用anarci主函数。示例脚本Example_scripts_and_sequences/anarci_API_example.py写得非常清楚我把骨架拆给你看from anarci import anarci # 输入是 (名字, 序列) 的列表可以一次塞很多条 sequences [ (12e8:H, EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA), (lysozyme:A, KVFGRCELAAAMKRHGLDNYRGYSLGNWVCAAKFESNFNTQATNRNTDGSTDYGILQINSRWWCNDGRTPGSRNLCNIPCSALLSSDITASVNCAKKIVSDGNGMNAWVAWRNRCKGTDVQAWIRGCRL), ] numbering, alignment_details, hit_tables anarci(sequences, schemeimgt, outputFalse) for i in range(len(sequences)): if numbering[i] is None: print(sequences[i][0], 没有识别出抗体/TCR 结构域) else: print(sequences[i][0], 识别出, len(numbering[i]), 个结构域) print(alignment_details[i][0][chain_type], alignment_details[i][0][species])注意我把一条溶菌酶序列混了进去——这不是抗体。ANARCI 会老老实实告诉你它没有找到结构域numbering[i] is None。这个特性恰好可以用来做一件事把你的序列库先过一遍 ANARCI快速筛出哪些是抗体非抗体的原样跳过。函数返回的三个列表和输入的序列一一对应返回值内容典型用法numbering每个结构域的编号列表含插入码、起止索引提取 CDR、做结构比对alignment_details物种、链型、e-value、bit 分数等比对细节质量控制、物种分类hit_tablesHMMER 对所有 HMM 的完整命中排名排查异常序列、调试阈值你能得到什么一个可编程的抗体编号引擎几十行代码就能接入自己的分析管线。第四步上万条序列的批处理当序列量再上一个数量级——比如你要给整个 PDB 数据库里的免疫球蛋白重编号——项目也给了现成的答案。打开Example_scripts_and_sequences/run_numbering_benchmark.sh看看ANARCI -i pdb_sequences.fa.txt.gz -s i --csv -o /tmp/pdb_imgt --ncpu 4 --assign_germline ANARCI -i pdb_sequences.fa.txt.gz -s k --csv -o /tmp/pdb_kabat --ncpu 4 --assign_germline看到了吗这个脚本一口气用 6 种编号方案各跑了一遍同一批数据那个.gz结尾的输入文件 ANARCI 直接支持不用手动解压。你可以照葫芦画瓢同一份 FASTA换不同的-s参数就能得到不同编号方案下的对齐结果用于对比方案间的差异。而在 Python 侧如果你要处理的序列实在太多就用run_anarci而不是裸的anarci——后者走的是 HMMER 内部的并行前者是 ANARCI 在 Python 层面的原生多进程任务量大的时候效率更稳。你能得到什么一条可扩展的批处理链路从 2000 条到几万条只是时间问题不是能力问题。能力地图你现在站在哪一级把刚才走过的东西整理成一张能力地图方便你对号入座也方便跳级级别你能做的事关键操作/参数新手建议入门单条序列编号、判断链型ANARCI -i 序列、number()必学10 分钟进阶FASTA 批处理、CSV 对齐输出、物种识别-i 文件 --csv -o 前缀 --ncpu必学对应真实项目专业种系基因注释、阈值调优、多核压测、PDB 结构重编号--assign_germline、bit_score_threshold、ImmunoPDB.py按需学可先跳过新手把前两级跑通就能解决 90% 的日常需求第三级是遇到瓶颈时再回来翻的锦囊。过来人的避坑笔记下面这些坑都是我在实际使用中踩过或从项目代码注释里读出来的比任何 FAQ 都实在。坑一别拿 ANARCI 当物种注释工具。项目 README 第一页就明确写了ANARCI 用物种的 V/J 种系比对来决定编号时该用哪套 HMM但官方明确不推荐把它当作主要的物种鉴定工具。e-value 低只能说明它最像小鼠重链不等于它就是小鼠的。跨物种嵌合抗体、人源化抗体、驼类 VHH 都可能给出偏颇的物种判断。要报物种请用专门的工具ANARCI 的结果只当参考。坑二非抗体序列不会被硬编号。我们前面混入的溶菌酶就是例子——ANARCI 不会硬凑一个编号出来没有显著比对结果就返回None。这其实是好事天然的筛选器。但反过来如果你拿到的序列太短比如只有 50 个残基或者经过了大量工程改造、偏离天然抗体太远它也可能漏判。这时候可以调低bit_score_threshold默认 80让识别更宽松但小心调太低会把其他免疫球蛋白样分子误认成抗体。坑三scFv 会识别出两个结构域。示例脚本里有个scfv:A的序列VH 和 VL 通过 linker 连在同一条链上。ANARCI 会诚实地报告识别出两个结构域numbering[i]是个长度为 2 的列表。写代码时如果默认每条序列只有一个结构域遇到 scFv 就会下标越界或取错域——记得先判断len(numbering[i])。坑四不同编号方案同一段序列CDR 边界不一样。这是新手最容易懵的地方。同一个 CDR-H1在 Kabat 里可能是 31-35在 Chothia 里却算 26-32在 IMGT 里又变成 27-38。所以论文里写编号务必同时声明用了哪个方案不然审稿人没错就是你遇到的那位会再打回来。Kabat、Chothia、Martin 只适用于抗体免疫球蛋白IGTCR 得用 IMGT 或 AHo。Wolfguy 方案的 CDRL1 长度分类依赖硬编码的序列 motif处理少见长度时要留意它的注释逻辑这部分逻辑在lib/python/anarci/schemes.py的_get_wolfguy_L1里。坑五插入码不是 Bug是特性。长 CDR 会引入字母插入码比如 IMGT 的 CDR3 插入是围绕 111/112 对称编号的Kabat 则用 100A、100B 这样的后缀。这不是编号错了而是方案本身的设计。解析结果时把位置编号和插入码当两个字段处理别拼成一个整数。坑六想给 PDB 结构重编号有现成脚本。如果你的序列不是 FASTA 而是 PDB 结构文件项目里的Example_scripts_and_sequences/ImmunoPDB.py能用 ANARCI 给结构中的每条链按指定方案重编号还能标注 CDR 区域、按界面半胱氨酸距离做 H/L 配对甚至把 scFv 拆成两条链。用法很简单python ImmunoPDB.py -i your.pdb -o renumbered.pdb -s imgt处理 TCR 结构就把--receptor tr加上。注意它依赖 Biopython 和 muscle缺了会报错。收尾现在就把手弄脏回到开头那个场景。审稿人要 IMGT 编号和 CDR 标注如果当时的我会用 ANARCI整个过程只需要两步把序列丢进去把输出贴进论文。10 分钟完事。现在轮到你了。动手路径我给到最具体的程度装好环境先跑Example_scripts_and_sequences/12e8.fasta把输出里的物种、链型、编号逐行读一遍。用--csv处理antibody_sequences.fasta打开生成的 CSV肉眼扫一遍对齐效果。打开Example_scripts_and_sequences/anarci_API_example.py把它跑通然后改成处理你自己的序列。找一条自己的序列分别用-s i和-s k跑一次对比 CDR 边界的差异——这个对比做完你对编号方案的理解就超过大多数只会背概念的人了。ANARCI 的核心价值是把抗体编号这件本该是体力活的事变成一行命令的事。用顺了之后你会发现真正值钱的时间省下来应该花在理解你的抗体为什么这么编号、以及这些位置背后的结构含义上——那才是研究该去的地方。【免费下载链接】ANARCIAntibody Numbering and Antigen Receptor ClassIfication项目地址: https://gitcode.com/gh_mirrors/an/ANARCI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Ubuntu文件刻录工具与命令行实战指南

Ubuntu文件刻录工具与命令行实战指南

1. Ubuntu系统文件刻录全攻略:从工具选型到避坑指南在Linux桌面环境中,文件刻录这个看似简单的需求却让不少Ubuntu用户踩过坑。我至今记得第一次在Ubuntu 20.04上尝试刻录ISO镜像时,系统自带的Brasero居然报错退出的尴尬场景。经过多年实践&a…

2026/10/2 12:32:10 阅读更多 →
DM数据库备份还原:保障数据安全的核心基石

DM数据库备份还原:保障数据安全的核心基石

一、DM数据库备份还原:保障数据安全的核心基石 1.1 备份还原概述:理解数据安全基础 DM数据库备份还原是保障数据安全的核心技能。在生产环境中,硬件故障、误操作或数据损坏都可能导致灾难性后果。掌握DM数据库备份还原技术,能够帮…

2026/9/30 7:46:01 阅读更多 →
告别非法红叉,5关通关宝可梦合法化:PKHeX自动合法性插件完整指南

告别非法红叉,5关通关宝可梦合法化:PKHeX自动合法性插件完整指南

告别非法红叉,5关通关宝可梦合法化:PKHeX自动合法性插件完整指南 【免费下载链接】PKHeX-Plugins Plugins for PKHeX 项目地址: https://gitcode.com/gh_mirrors/pk/PKHeX-Plugins 晚上十点,小林正准备用自己精心组好的队伍参加一场线…

2026/10/11 8:27:29 阅读更多 →

最新新闻

Scratch图层顺序详解:背景为何会挡住角色?层次指令一次弄懂

Scratch图层顺序详解:背景为何会挡住角色?层次指令一次弄懂

1. 一个让人抓狂的现象:背景为什么会跑到角色前面去前阵子有人拿着一个半成品的Scratch作品来问我:“背景坏了不显示前面了,明明画好了山和天空,运行起来整个画面却被一块黑乎乎的东西盖住,角色怎么点都不出现。”我打…

2026/10/13 18:16:09 阅读更多 →
Aras PLM权限与对象配置实战手册:从TOC空白到工作流发信

Aras PLM权限与对象配置实战手册:从TOC空白到工作流发信

简介:本资源是一份面向PLM初学者与企业系统实施人员的Aras PLM入门学习文档,聚焦用户管理、权限配置与数据建模等核心运维能力培养,助力读者快速掌握Aras平台基础管理逻辑与实操要点。文档为单文件Word(.docx)格式&…

2026/10/13 18:16:09 阅读更多 →
华为IPD需求流与PDT运作实战指南:从OR过滤到Charter落地

华为IPD需求流与PDT运作实战指南:从OR过滤到Charter落地

简介:本资源为华为IPD流程管理(完整版)专业培训课件,面向企业流程管理者、研发体系从业者、IPD实施顾问及高校管理类专业学习者,系统解析以客户需求为核心的端到端集成产品开发管理体系。课件深度覆盖OR流程设计逻辑、…

2026/10/13 18:16:09 阅读更多 →
迪思杰RealSync异构数据库实时同步部署实战与避坑指南

迪思杰RealSync异构数据库实时同步部署实战与避坑指南

简介:迪思杰RealSync部署手册面向数据库运维人员与系统集成工程师,聚焦Oracle环境下数据复制软件的安装与配置,帮助读者在源端与目标端完成RealSync的完整部署。手册以doc文档形式呈现,压缩包内共1个文件,大小约129KB&…

2026/10/13 18:16:09 阅读更多 →
写论文软件哪个好?宏智树AI全流程实测解析

写论文软件哪个好?宏智树AI全流程实测解析

又到了一年毕业季,实验室群里几乎每天都有学弟学妹在问"写论文软件哪个好"。这个问题我实在被问太多次了,加上我自己这两年密集指导过一些本科和硕士论文,前后试过不下十款写作辅助工具,从纯模板类的、到单一降重类的、…

2026/10/13 18:16:09 阅读更多 →
MuAsk:离线桌面级Text2SQL工具实战指南

MuAsk:离线桌面级Text2SQL工具实战指南

1. 项目概述:为什么一个桌面级 Text2SQL 工具值得你花十分钟装上试试?“沐问 MuAsk”这四个字刚出现在我 GitHub Star 列表里时,我第一反应是——又一个披着中文外衣的 LLM 前端?点开仓库主页,看到PySide6SQLite本地模…

2026/10/13 18:15:04 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →