
一串抗体序列到手后如何快速完成标准化编号ANARCI实战拆解【免费下载链接】ANARCIAntibody Numbering and Antigen Receptor ClassIfication项目地址: https://gitcode.com/gh_mirrors/an/ANARCI凌晨两点你从测序平台拿到一条几百字符的氨基酸序列这是从杂交瘤细胞里扩出来的抗体可变区。下一步要做人源化改造、结构建模还是评估CDR长度分布全都卡在一个问题上这条序列的框架区在哪里、CDR从哪里开始、每个残基该叫什么编号不同实验室用不同编号习惯有的标IMGT有的标Kabat对照文献时经常对不上号。手动数残基、对着参考序列描既慢又容易错。如果你也经历过这种拿到序列却无从下手的时刻那么ANARCI正是你需要的工具。**ANARCIAntibody Numbering and Antigen Receptor ClassIfication**是牛津蛋白信息学小组OPIG开源的抗体序列分析工具它把识别物种→判定链型→套用编号方案→输出结果这条链路压缩成一条命令本文会带你从零跑通它并解锁几个实用的进阶姿势。先说清楚抗体编号到底是什么问题抗体可变区的氨基酸序列虽然千差万别但它们在三维结构上遵循相对固定的折叠模式。编号方案就是给每个结构位置分配一个门牌号让第104位的半胱氨酸在不同抗体之间有可比含义。难点在于序列长度不固定——尤其是CDRH3可以长可以短多出来的残基怎么编号插入码怎么给不同方案的回答完全不一样IMGT全受体通用CDR3插入残基对称分布在111/112两侧Kabat插入位置集中在CDR按A到Z标注Chothia与Kabat差别主要体现在CDRH1的插入位置Martin增强版Chothia框架区插入处理不同AHo预设149个位置靠位置数覆盖多数情况WolfguyCDR区域用上行/下行双向编号ANARCI的聪明之处在于它内置了HMM模型输入序列后先自动比对到物种特异性的V/J胚系基因库判断物种和链型再把HMM比对结果翻译成你指定的编号方案。所以人、鼠、兔、猪的序列丢进去都能处理重链轻链TCR链也不用手动声明。先把环境搭起来装依赖、拉代码、验安装安装前确认Python环境可用然后分三步走。第一步装两个关键依赖。conda install -c conda-forge biopython -y conda install -c bioconda hmmer3.3.2 -y其中Biopython负责序列与结构数据的读写HMMER3.x版本是HMM比对的引擎ANARCI依赖它做序列打分与域识别。第二步克隆项目。git clone https://gitcode.com/gh_mirrors/an/ANARCI cd ANARCI第三步安装并验证。python setup.py install ANARCI --help能看到命令帮助信息就说明装好了。项目里的核心代码都集中在lib/python/anarci/下anarci.py是主程序schemes.py定义了各编号方案的转换逻辑感兴趣可以翻一翻。5分钟跑通第一个分析从单序列到FASTA批量安装验证通过后最直接的用法是命令行喂单条序列ANARCI -i EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA输出大致分成三段信息识别结果最显著的HMM命中给出物种如mouse、链型H表示重链、e值和bit分数。e值越小说明越可信这是判断序列到底是不是抗体的核心依据编号表每行一个残基格式为链型 编号 氨基酸例如H 1 Q、H 2 V序列之间用//分隔方案声明Scheme imgt标明当前输出用的是哪套编号手里有多条序列时写成FASTA文件批量丢进去ANARCI -i antibody_sequences.fasta仓库的Example_scripts_and_sequences/目录自带antibody_sequences.fasta包含上百条来自PDB的抗体与TCR序列练手正合适。命令行还支持几个常用开关--outfile结果写进文件而不是打印到屏幕--csv按链型输出水平对齐的CSV文件方便导入Excel或做下游统计--assign_germline额外输出最相近的V/J胚系基因及序列一致性--scheme切换编号方案默认imgt可换kabat、chothia、martin等进阶玩法用Python API把编号塞进自己的分析流程命令行适合手工操作但如果你在写数据清洗管道、批量做抗体人源化评估就得把ANARCI当函数调。它提供了三个入口按需选择场景一只想知道单条序列的编号和链型用number。from anarci import number seq EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSA numbering, chain_type number(seq, schemekabat) print(chain_type) # 输出 H print(numbering) # 输出编号列表场景二一次处理多条序列并拿到完整明细用anarci。from anarci import anarci sequences [ (my_ab:H, EVQLQQSGAEVVRSGASVKLSCTASGFNIKDYYIHWVKQRPEKGLEWIGWIDPEIGDTEYVPKFQGKATMTADTSSNTAYLQLSSLTSEDTAVYYCNAGHDYDRGRFPYWGQGTLVTVSAAKTTPPSVYPLAP), (my_ab:L, DIVMTQSQKFMSTSVGDRVSITCKASQNVGTAVAWYQQKPGQSPKLMIYSASNRYTGVPDRFTGSGSGTDFTLTISNMQSEDLADYFCQQYSSYPLTFGAGTKLELKRADAAPTVSIFPPSSEQLTSGGASV), ] numbering, alignment_details, hit_tables anarci(sequences, schemeimgt, outputFalse) for i, name in enumerate([my_ab:H, my_ab:L]): if numbering[i] is None: print(name, 未能识别出抗体域) continue for j, (domain_numbering, start, end) in enumerate(numbering[i]): print(name, f第{j1}个域链型:, alignment_details[i][j][chain_type], e值:, alignment_details[i][j][e-value])返回的三份列表与输入序列一一对应numbering是编号结果alignment_details装的是物种、链型、e值等比对细节hit_tables是HMMER对所有HMM命中的完整排序表。场景三处理超大规模数据集用run_anarci。from anarci import run_anarci seqs, numbering, details, hits run_anarci(my_big.fasta, ncpu8, schemeimgt, outputFalse)它自动帮你读FASTA、做多进程并行适合动辄上万条序列的筛选任务。识别失败怎么办几个高频坑的绕行方案实战中我遇到过几类反复出现的状况这里按症状→对策的方式直接给出处理办法。症状一明明是真抗体却输出未识别。优先检查序列里有没有非标准字符比如把X、*、-混进了序列。ANARCI对X是容忍的但其它符号会影响比对。其次检查序列长度——number函数对短于70个残基的序列直接返回失败如果只有CDR片段建议补齐可变区再跑。症状二物种识别和你预期不符。注意README里的原话ANARCI的物种信息来自V/J胚系基因比对可以辅助判断但不应作为物种注释的唯一依据。遇到驼类VHH、人源化小鼠嵌合抗体这类特殊分子时识别结果偏离预期是正常的。想要更准的物种归属可以开assign_germline用最高序列一致性的胚系基因辅助判定。症状三高度工程化的分子融合蛋白、双抗被拒之门外。降低HMMER的bit score阈值可以放宽容错让更多边缘匹配被编号numbering, details, hits anarci(sequences, schemeimgt, bit_score_threshold40)默认阈值是80调低后重链轻链都能过但副作用是Ig样分子的假阳性可能增多需要配合结果抽查。症状四想把抗体链的重链轻链分开导出。用--csv输出ANARCI会按链型分别生成CSV文件每条链横向展开、按编号对齐做CDR长度统计或序列比对前的预处理非常顺手。从入门到能自己造轮子练习路线与源码阅读顺序想真正掌握这个工具光跑通示例不够建议按下面这条线推进先跑官方示例仓库的Example_scripts_and_sequences/anarci_API_example.py把anarci和number两个入口的用法都演示了一遍直接python anarci_API_example.py运行对照输出理解返回值结构用12e8.fasta做对照实验分别用imgt、kabat、chothia跑同一条序列观察CDRH1和CDRH3的编号差异这是理解方案为何存在差异的最快方式玩点真数据pdb_sequences.fa.txt.gz是打包好的PDB序列集可以配合run_numbering_benchmark.sh测一测批量性能感受多核并行带来的加速想给PDB结构加编号参考Example_scripts_and_sequences/ImmunoPDB.py它把ANARCI和Biopython的PDB解析结合能直接给结构文件中的残基标注编号和CDR区域读源码从anarci.py的anarci()函数开始顺着run_hmmerHMMER调用→number_sequences_from_alignment编号映射→schemes.py方案模板这条线走就能理解整个流水线另外提一句build_pipeline/目录里是作者当年从数据构建HMM数据库的完整流程RipIMGT、FormatAlignments等脚本虽然一般用户用不上但想深入理解HMM模型怎么训练出来的值得一读。该动手了抗体序列分析这条路上编号是所有下游工作的地基——CDR定义、结构建模、人源化改造、克隆筛选全都建立在一套清晰一致的编号之上。ANARCI把这块地基从手动数残基变成了一条命令。建议你今晚就做三件事把依赖装好、跑一遍antibody_sequences.fasta、再用anarci_API_example.py把Python API摸熟。半小时后你就能在自己的数据上批量输出标准化编号了。等到你对CDR位置、胚系基因、链型识别这些概念都形成直觉就会发现——当初那些在Excel里手工对齐序列的夜晚真的可以彻底告别了。【免费下载链接】ANARCIAntibody Numbering and Antigen Receptor ClassIfication项目地址: https://gitcode.com/gh_mirrors/an/ANARCI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考