DAY 1 · S3 · 下午 90 分钟
数据格式与标识符:你的主场
这一节全是你的主场——格式、schema、主键、别名冲突。
U3.1FASTA:一行描述 + 一段 payload
>WQA35248.1 Sequence 45 from patent US 11753463 QVQLVQSGAEVKKPGASVKVSCKASGYTFTNYYMYWVRQAPGQGLEWMGG INPSNGGTNFNEKFKNRVTLTTDSSTTTAYMELKSLQFDDTAVYYCARRD
就这么简单。> 开头是描述行(defline),下面是序列,
换行只是排版、不带语义。它是 1985 年的格式,至今没有被取代,
因为它够用——这一点你应该很熟悉。
这就是整个行业最大的瓶颈:序列供给巨大,但靶点标签要读专利全文才有。 一条没有靶点标签的抗体序列,对「从头设计抗体」这个任务来说是没有 label 的样本。 这条线索会在 S5 变成一个具体的商业结论。
U3.2IMGT / Kabat / Chothia:三套并存的 schema 版本
问题是什么:不同抗体的可变区长度不一样。 那「第 52 位氨基酸」在不同抗体之间就没法比较—— 就像两本页数不同的书没法按页码互相对照。
解法是什么:搞一套标准编号,让不同抗体的「同一个结构位置」拿到同一个编号。 长度不同的地方用插入字母(52A、52B)或留空位来对齐。
最常见的三套:来历和取向
| 体系 | 提出年代 | 依据什么划 | 今天的位置 |
|---|---|---|---|
| Kabat | 1970 年代起 | 序列变异度:哪些位置在不同抗体间变化最大 | 最老,早期文献大量沿用 |
| Chothia | 1987 | 结构环的起止:真正在空间上凸出来的那一段 | 做结构建模时常用 |
| IMGT | 1997 | 统一的结构域编号,跨物种、跨受体类型通用 | 最系统,目前的主流 |
「三套」是入门时够用的简化,但写进合同验收条款时不要这么写—— 要写「明确声明所使用的编号体系」,而不是「须提供三套编号」。
为什么这件事对你重要
因为不同编号会切出不一样的 CDR 边界。同一条真实序列 (AT8 抗体的重链),问「CDR 是什么」,得到的答案取决于你用哪套:
| 编号体系 | 切出的 CDRH1 | 切出的 CDRH3 |
|---|---|---|
| IMGT | DYSITSGYY | TRGSLV |
| Kabat | SGYYWN | GSLV |
| Chothia | DYSITSGY | GSLV ← 与 Kabat 相同 |
Kabat 和 Chothia 对 CDR-H3 的定义是完全相同的
(都是 H95–H102)。它们的差别体现在 CDR-H1 和 CDR-L1 上,不体现在 H3 上。
这条本身就是一次判断力训练:「三套编号会切出不同的 CDR」这句话是对的,
但不能推出「任意两套在任意一个 CDR 上都不同」。
把前者当成后者去写代码,你会给 H3 建一套根本不存在的转换逻辑。
(顺带一提:网上流传的一个「Chothia CDR-H3 = SL」的说法,
其实是把极少使用的 Consensus Chothia 定义错标成了 Chothia。这门课第一版也抄错过。)
TRGSLV(6 个字符)、用 Kabat/Chothia 切出 GSLV(4 个字符)——
更短的键会把本不相同的抗体误判成重复而合并掉。
一次编号体系选错,损失的是数据集的有效样本量,而且不会有任何报错。正经数据集必须明确声明用的是哪套编号,
最好多套并给。只给一套还不说是哪套,
那和给你一个日期字段但不说是 UTC 还是本地时间一样——数据无法安全使用。
这也是你能问出的第二个专业问题:「CDR 用哪套编号切的?和独立工具比对过吗?」
U3.3UniProt 登录号 = 主键;名字 = 会撞的别名
每个蛋白在 UniProt 里有一个全球唯一的
登录号(accession),比如人 PD-1 是 Q15116。
为什么必须用它:靶点的名字非常乱。PD-1 又叫 PDCD1、CD279、 programmed cell death protein 1——都是同一个东西。只有登录号唯一且稳定。
最初把
CCR4 归一到了 NOCT(登录号 Q9UK39)这个基因上。
而真正的 CCR4(趋化因子受体 CC motif receptor 4,一个真实的药物靶点)是完全另一个基因。同类的还有几个:4-1BB、CD166、OX40 ——全都是主流免疫肿瘤靶点, 全都因为名字解析走错了路由而被归到了错误的条目上。
而且从数据表面完全看不出来:字段齐全、格式正确、条数够、每条都有登录号。
→ Lab 4 会让你亲手把这个 bug 跑出来。
直觉上的解释是「NOCT 的废弃旧名叫 CCR4」——但这个解释是错的,值得你注意。
去 HGNC 查 NOCT,
它记录的 previous symbol 是 CCRN4L,不是 CCR4。
「CCR4」出现在 UniProt 的 Q9UK39
里,作为一个 gene name synonym。
后果很具体:如果你的防御措施是「把 HGNC 里所有废弃符号拉黑」,
这个坑照样会踩——因为它根本不在那张表里。
两个权威库对「什么算这个基因的别名」本来就不完全一致,
而冲突恰好发生在它们不一致的地方。
三条,按重要性排:
① 现用符号优先路由:先查现用基因符号,再查别名和旧名,
命中别名时降低置信度并标记待复核。
② 不要只用一个源的别名表——因为它们互相不一致。
③ 用另一个独立源复核归一化结果,两边不一致的一律人工看。
翻译成你的语言:外键解析不能用可能冲突的 alias 当第一路由,
而且别名表本身也需要交叉验证。
U3.4PDB:三维坐标数据
PDB 是全球蛋白质三维结构的公共库,
每个结构一个 4 位编号(如 5B8C)。文件里逐个原子记录 (x, y, z) 坐标。
一个抗体-抗原复合物结构里会有多条链,每条一个字母标识。
数据表里常见的 Hchain / Lchain / Antigen_chain 三列,
记录的就是「哪条链是重链、哪条是轻链、哪条是抗原」。
没有这个约定。链 ID 完全由结构的沉积者自己起名。
反例就是本课一直在用的
5B8C(PD-1 与 pembrolizumab 的复合物):
它的轻链是 A/D/G/J,重链是 B/E/H/K,抗原是 C/F/I/L。
按「H=重链、L=轻链、A=抗原」这条规则去解析,
你会把轻链当成抗原,然后算出一份完全错误的表位。所以
Hchain / Lchain / Antigen_chain 这三列是别人替你判定过的结果
(SAbDab 这类策展库会做这件事),不是从 PDB 文件里直接读出来的。
它们是加工过的字段,你有权追问它是怎么判定的。看到一个字段叫 Hchain,
不要假设它等于「PDB 里那条叫 H 的链」。
字段名的含义来自生成它的那个管线,不来自它长得像什么。
这也是为什么 Lab 5 那个例子里,
抗原链是 P ——硬编码 chain == "A" 会直接算错。
有了三维结构,「这个抗体抓这个抗原」就不是别人说的,
而是看得见的物理事实——两个分子在坐标里真的贴在一起。
所以这类记录被定为最高证据等级。
代价是稀少:结构测定昂贵,抗体-抗原复合物结构全球只有数千个量级。
这个天花板本身就是一件判定武器,见 S8 的红旗清单。
当堂自测
六道题,本节内容最多,题也最多。