
拿到一堆抗体序列后我用ANARCI解决了编号、链型和物种识别的全部麻烦【免费下载链接】ANARCIAntibody Numbering and Antigen Receptor ClassIfication项目地址: https://gitcode.com/gh_mirrors/an/ANARCI免疫学研究者可能都经历过这样的时刻从测序仪或公共数据库拿到一批候选序列第一件事就是想知道——这条是重链还是轻链它来自哪个物种CDR3到底从哪个残基开始如果靠肉眼比对或手工翻阅文献几十条序列就能消耗一整天。ANARCIAntibody Numbering and Antigen Receptor ClassIfication正是为解决这一连串问题而生的抗体编号工具它由牛津蛋白信息学小组开发用隐马尔可夫模型HMM自动完成链型识别、物种判断和标准编号新手只需一条命令就能拿到结构化结果。本文会用一条主线带你把命令行和 Python API 都跑通。先搞懂一件事抗体编号到底在编什么抗体可变区序列长短不一、插入缺失频繁如果只按字母顺序排列两株抗体的第 50 位根本没有可比性。编号方案如 IMGT、Kabat、Chothia给每个结构位置分配固定号码于是不同抗体的对应残基可以横向对齐CDR 区域也有了稳定坐标。这套逻辑的重要性在实验中体现得最直接设计引物需要知道框架区边界做 CDR 移植需要精确切出三个环区构建系统发育树需要对齐后再算距离。没有编号后面这些全得靠猜。ANARCI 的独特之处在于它不只是标号而是先用 HMMER 把序列和物种特异的 V/J 种系数据库做比对同时给出链型、物种、e 值和 bit 分数编号只是最后一步。走进 ANARCI 的流水线比对、判定、编号三连击打开lib/python/anarci/anarci.py你会发现核心逻辑干净得令人舒适run_hmmer()负责把每条序列丢给 hmmscan 扫描 HMM 数据库number_sequences_from_alignment()把命中结果套进你指定的编号方案如果遇到超长 CDR3check_for_j()还会做二次修正。三个函数各司其职这也是它被大批生信流程选为上游预处理组件的原因。判断结果时请留意两个质量指标e 值越小越可信bit 分数越大越可靠。默认阈值是 80遇到人源化抗体或工程改造序列时可以调低让识别更宽容。五分钟装好依赖、克隆、验证ANARCI 依赖 HMMER3 和 Biopython推荐用 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安装过程会从 IMGT/GENE-DB 下载种系数据并现场构建 HMMbuild_pipeline/目录里就是完整流程所以会等一两分钟。验证方式很简单ANARCI -h能看到参数说明就算成功。如果提示找不到 hmmscan用-hp参数指定 HMMER 安装目录即可。第一条序列命令行三秒钟出结果在Example_scripts_and_sequences/12e8.fasta里躺着一株现成的抗体先拿它试试ANARCI -i Example_scripts_and_sequences/12e8.fasta屏幕会输出一段以//结尾的记录头部信息依次是#|species|chain_type|e-value|score|seqstart_index|seqend_index| #|mouse|H|8.6e-58|184.9|0|119|这一行就回答了开头三个问题这是小鼠mouse重链He 值 8.6e-58 说明比对极其可靠。下面是逐行的 IMGT 编号例如H 100 DH 101 Y空格处用.表示该方案中该位置在此链不适用。输出直接打到标准输出用-o 文件名可以重定向保存。批量处理一个 FASTA 文件喂饱几百条序列真实研究很少只处理一条链。Example_scripts_and_sequences/antibody_sequences.fasta收录了近千条来自 PDB 的序列直接丢给 ANARCIANARCI -i Example_scripts_and_sequences/antibody_sequences.fasta -o my_numbering.txt -ht my_hits.txt-o存编号结果-ht额外存下每条序列对所有 HMM 的完整命中排名表——即使某条序列没有被编号你也能在 hit 文件里看到它最接近哪类链。想导入 Excel 做下游分析加--csv参数ANARCI 会按链型自动拆分输出outfile_H.csv、outfile_L.csv等文件同一编号位置对齐成一行序列间可直接比对。多条序列请用-p开多进程加速-p 4就是 4 个进程并行HMMER 的ncpu参数会同步生效。六套编号方案怎么选一张表看懂差异命令行用-s切换方案-r限制识别链型。选错方案最典型的坑是想编 Kabat 却把 TCRα/β 链塞了进去——非 IG 链只能用 IMGT 或 AHo 编ANARCI 会警告并自动忽略。各方案定位如下方案适用链型特点与典型场景IMGT全部IG TCR128 个标准位点跨物种可比默认首选Kabat仅 IG经典方案插入残基用 A~Z 后缀标注Chothia仅 IG结构导向CDRH1 插入位置与 Kabat 不同Martin仅 IG增强版 Chothia框架区插入放置更符合结构AHo全部149 个位点靠大密度位点免去插入码Wolfguy仅 IGCDR 用上行/下行方式编号无需插入码做免疫组库分析通常用 IMGT做结构建模或抗体人源化Martin 和 Chothia 更贴近三维坐标。想快速切换对比命令行依次加-s kabat、-s chothia各跑一遍即可无需改代码。把 ANARCI 塞进你的分析管道Python API 实战命令行适合交互写流程还得用 API。项目自带的Example_scripts_and_sequences/anarci_API_example.py是一份非常完整的教材核心只有三行from anarci import anarci sequences [(seq1:H, EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA)] numbered, alignment_details, hit_tables anarci(sequences, schemeimgt, outputFalse)返回的三个列表与输入序列一一对应numbered存每株抗体的所有结构域编号及起止索引scFv 这类双结构域序列会返回两个域alignment_details是链型、物种、e 值等比对细节的字典hit_tables是 HMMER 原始命中表。更省事的封装是number()一条序列返回编号和链型两个值from anarci import number numbering, chain_type number(EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA, schemekabat) print(chain_type) # 期望输出 H注意number()只处理第一个结构域且序列短于 70 个氨基酸会直接返回(False, False)——这是它提醒你片段别硬编的方式。两个高阶开关解决工程抗体和物种争议工程改造序列识别不准把bit_score_threshold从默认 80 降到 60 甚至 50识别更宽容但也会放进来更多假阳性建议配合 e 值一起看。HMM 物种判定不放心开启assign_germlineTrueANARCI 会用最高序列一致性重新指派 V/J 种系基因输出里多一行v_gene、v_identity、j_gene、j_identity。这对判断嵌合抗体或跨物种来源特别有用。allowed_species参数可以把候选物种锁死在 human/mouse 等已知范围内避免误判。实战中我踩过的三个坑序列里有杂字符。ANARCI 只接受 20 种标准氨基酸混入X、B或小写以外的符号会直接报错。先清洗序列再送进去validate_sequence()会帮你把问题暴露出来。把溶菌酶当抗体。Example_scripts_and_sequences/lysozyme.fasta是官方埋的反例溶菌酶和免疫球蛋白结构域同源容易产生弱信号。ANARCI 输出里它只会列出序列名、不会给出编号——看到这种结果别慌说明过滤机制在工作。CSV 忘了指定-o。--csv必须配合-o使用否则报错退出。所有输出目录必须已存在。下一步行动清单运行ANARCI -i Example_scripts_and_sequences/12e8.fasta把输出和 README 里的示例逐字段对照一遍用antibody_sequences.fasta跑一次批量编号加--csv和-p 4对比两种输出格式改-s martin重跑同一条序列观察 CDRH1 插入位置如何变化打开Example_scripts_and_sequences/anarci_API_example.py逐行运行并打印alignment_details字典把你自己的抗体序列整理成 FASTA用 Python API 接进现有的分析脚本。当你能流畅地回答这条链是什么物种的哪条链、CDR3 在哪几个位置时ANARCI 就已经成为你抗体分析工作流里值得信赖的一环了。剩下的就是用它去打磨你自己的数据管道。【免费下载链接】ANARCIAntibody Numbering and Antigen Receptor ClassIfication项目地址: https://gitcode.com/gh_mirrors/an/ANARCI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考