信息速览
INFOBOX — GLOF 一屏速览
维度 内容 本质 错义变异功能效应三分类基准(LOF / GOF / Neutral),不是致病性预测集 全名 GLOF: Gain and Loss Of Function 作者 Victor Maricato、David Schlesinger、Pedro Nuno de Souza Moura 策展机构 Mendelics Análise Genômica(巴西圣保罗,拉美最大临床基因组实验室之一) 文献形态 bioRxiv 预印本 v1,2026-06-05 上线,未同行评审 规模 112,399 条变异 / 2,809 个基因 / 7 列 标签分布 Neutral 83,902(74.6%)|LOF 25,368(22.6%)|GOF 3,129(2.8%) 双向机制 文本称 97 个基因同时含 LOF 与 GOF;实抓严口径(三标签齐备)92 个 致病来源 ClinVar 2023-07 版本,与 2026-03 版本交叉核对 中性来源 gnomAD v3.1,用 v4.1 等位频率复核,AF > 1% 坐标体系 GRCh38;VARIANTKEY = chr-position-ref-alt获取 Hugging Face victormaricato/glof(parquet)|Kagglemaricatovictor/loss-and-gain-of-function-variants许可 CC BY 4.0(据 Hugging Face 与 Kaggle 页面声明) 最后更新 2026-06-08(Hugging Face,commit 603256c)库内同类 clinvar(136)|alphamissense(584)|proteingym(813)|clingen(523)
§0 导读:这个数据集回答的是「怎么坏」,不是「坏不坏」
变异效应预测(Variant Effect Prediction,VEP)领域在过去十年几乎只问一个问题:这个变异致病吗? ClinVar 给了标签,AlphaMissense 给了概率,REVEL、CADD、SIFT、PolyPhen 各自给出一个 0 到 1 的分数。整个生态围绕「致病 / 良性」这条线运转。
但临床遗传学和药物开发真正需要的是下一个问题:它是怎么坏的?
同样是致病变异,截断型功能缺失(loss-of-function,LOF)意味着蛋白少了、没了,治疗上往往靠补充或读通(read-through);而功能获得(gain-of-function,GOF)意味着蛋白还在,但多了某个活性、对某种抑制更敏感,治疗上常常靠小分子抑制——Noonan 综合征的 PTPN11 变异与 SHP2 抑制剂,就是这样一条因果链。把 LOF 和 GOF 混在「致病」这一格里,等于把两类在药理上相反的病变合并统计。
GLOF 数据集(Gain and Loss Of Function)就是为这个问题造的第一份大规模金标准:112,399 条错义变异,2,809 个基因,每条打一个 LOF / GOF / Neutral 的标签,由持证临床遗传学家按 ACMG 框架逐条判读,公开在 Hugging Face 与 Kaggle,许可 CC BY 4.0。
它的价值与它的短板一样鲜明:一方面,它第一次把「功能方向」做成可评测的三分类任务,并且刻意保留 97 个同时含 LOF 与 GOF 变异的「双向机制基因」,这正是旧基准最缺的硬骨头;另一方面,GOF 只占 2.8%,阳性类极度稀缺,标签又建立在一家商业实验室的内部判读之上。用得好,它是机制分型的第一块试金石;用得草率,它会被误当成又一个「致病变异预测集」。
§0 读法三则:
- 先分清三层标签体系:ClinVar 判「致病 vs 良性」,GLOF 判「LOF vs GOF vs 中性」,DMS/ProteinGym 测「定量适应度」。三者不可互换(§7、§10.3)。
- 所有数字看两遍:数据卡自我陈述与实抓 parquet 统计在个别字段上有差(GOF 基因数 260 vs 259、中性基因数 2,749 vs 2,783、双向基因 97 vs 92),本条目双口径并列,不合并、不取整(§2.3、§12.5)。
- 记住这是预印本:数据集 2026-04-13 建库、2026-06-08 最后修改,论文 v1 尚未同行评审。任何引用都要写清「抓取时点 + commit 哈希」,否则复现性无从谈起(§6.4)。
§1 数据集速览:十四问十四答
Q1:GLOF 是什么的缩写?
Gain and Loss Of Function——功能获得与功能缺失。注意官方写法是 “GLOF” 而不是 “GOF-LOF”;数据卡标题为「A large-scale expert-curated benchmark of missense variant functional effects」。
Q2:一条记录长什么样?
七个字段:VARIANTKEY(如 1-100196274-A-C)、LABEL(Neutral / LOF / GOF)、ENSG(如 ENSG00000137992)、GENE_SYMBOL(如 DBT)、AA_POSITION(如 477)、PROTEIN_REF(M)、PROTEIN_ALT(R)。一行就是一个错义替换,没有患者、没有表型文本、没有实验读数。
Q3:一共多少条?
111,399?不,是 112,399 条——这个数字在摘要与数据卡中三次出现且与实抓一致,可以放心引用。基因数 2,809,同样与实抓一致。
Q4:三类的比例是多少?
Neutral 83,902(74.6%)、LOF 25,368(22.6%)、GOF 3,129(2.8%)。GOF 是最稀缺的阳性类,这是整个数据集最重要的使用约束。
Q5:为什么中性类这么多?
因为中性变异从 gnomAD 里"捞":gnomAD v3.1 收录数十万人的外显子与基因组数据,只要一个错义变异在人群中足够常见(AF > 1%),按遗传学常识它几乎不可能造成严重单基因病。这是群体频率论证,不是功能实验论证——两者的差别在第 10 节会展开。
Q6:致病变异从哪来?
ClinVar 2023 年 7 月发布版。策展团队再把它与 2026 年 3 月版本比对,把后来被重分类或出现冲突证据的变异剔除——这一步很关键,它决定了标签不会是三年前的旧账。
Q7:什么叫「专家策展」?
由持证临床遗传学家(board-certified clinical geneticists)按 ACMG 指南判定,依据包括已发表的功能研究、基因型-表型关联,以及已被确认的基因-疾病关系。不是算法打分,不是关键词检索。
Q8:和 AlphaMissense 的区别是什么?
AlphaMissense 是模型,输出 0 到 1 的致病性分数;GLOF 是标签集,输出三分类真值。前者可以拿去在后者上评测——这正是 GLOF 设计的用途。
Q9:和 ProteinGym 的区别是什么?
ProteinGym 汇集深度突变扫描(DMS)实验的定量适应度,一个蛋白一套分数,跨蛋白不可比;GLOF 是临床判读的定性方向标签,跨基因可比(都是 LOF/GOF/中性)。前者问"弱了多少",后者问"朝哪个方向坏"。
Q10:和 ClinVar 的关系?
GLOF 的致病变异子集源自 ClinVar,但做了三层加工:只留错义、补上功能方向标签、剔除重分类与冲突项。所以 GLOF 不能当 ClinVar 的镜像用,反之亦然。
Q11:许可是什么?
CC BY 4.0。允许商用与再分发,须署名。注意:这是数据集卡的声明,上游 ClinVar 各提交者与 gnomAD 的原始条款是否全部兼容,预印本未展开讨论,这一点列在 §12 的遗留疑点里。
Q12:怎么下载?
datasets.load_dataset("victormaricato/glof") 一行即可;国内网络可走 hf-mirror 镜像直接拉 glof_dataset.parquet(约 1.31 MB)。Kaggle 侧为同名镜像。
Q13:它是预印本吗?
是。bioRxiv v1,DOI 10.64898/2026.06.05.729843,2026-06-05 上线。数据集本身在 Hugging Face 上仍有版本迭代(2026-04-13 创建,2026-06-08 更新)。
Q14:最典型的误用是什么?
把 GOF 当成"更严重的致病",或直接把三分类准确率(accuracy)当成评测指标而不看宏平均与 GOF 类的召回。前者是概念错误,后者是统计错误——数据集的 75% 是中性类,全猜中性也有 74.6% 准确率。
§2 数据构成与实测核验
§2.1 文件与结构
Hugging Face 仓库 victormaricato/glof 的文件清单极简,四个文件:
| 文件 | 作用 | 实抓大小/说明 |
|---|---|---|
glof_dataset.parquet |
主数据,单表 | 约 1.31 MB(API 报告仓库总用量 1,805,358 字节) |
README.md |
数据集卡(Dataset Card) | 约 3.0 KB,含 schema、类分布表、引用 BibTeX |
fig_bidirectional_structures.pdf |
双向机制基因的结构示意 | 论文配图,非数据 |
.gitattributes |
Git LFS 配置 | 无信息量 |
仓库元数据(2026-10-17 实抓 API):创建 2026-04-13T16:20:50Z,最后修改 2026-06-08T20:07:52Z,commit 603256c875d962494ca30153dded1f92972ef928,非 gated、非 private,下载计数 63、点赞 0(说明社区扩散度仍很低);标签含 task_categories:tabular-classification、license:cc-by-4.0、size_categories:100K<n<1M、doi:10.57967/hf/10836。
§2.2 七个字段逐个拆解
| 字段 | 类型 | 含义 | 坑 |
|---|---|---|---|
VARIANTKEY |
string | chr-position-ref-alt,GRCh38 坐标系 |
染色体用 1..22/X/Y/M,没有 chr 前缀;M 是线粒体,用 MT 去 join 会全部失配 |
LABEL |
string | Neutral / LOF / GOF |
注意是标题写法 Neutral,部分下游脚本误写成 NEUTRAL 后 join 失败 |
ENSG |
string | Ensembl 基因 ID(带版本号剥离) | 与 GENE_SYMBOL 一对一;若要映射到 RefSeq 需另做转换 |
GENE_SYMBOL |
string | HGNC 符号 | 含 C12orf57 一类旧式符号,跨年度注释需注意 HGNC 更名 |
AA_POSITION |
int64 | 规范蛋白氨基酸位置 | 极小值 2、极大值 35,972(TTN 等超长蛋白),做 one-hot 位置编码时须归一化 |
PROTEIN_REF |
string | 野生型单字母氨基酸 | 全部单字符,可直接做 20 维替换矩阵索引 |
PROTEIN_ALT |
string | 突变型单字母氨基酸 | 同上;*(终止)不出现在本字段——因为只收错义 |
实抓核查:7 列零缺失值;GENE_SYMBOL 与 ENSG 各 2,809 个唯一值且一一对应;PROTEIN_REF/PROTEIN_ALT 全部为单字符;VARIANTKEY 中段(ref 碱基)全部匹配 [ACGT]+,说明键格式干净。
§2.3 类别分布:数据卡 vs 实抓(双口径存照)
| 类别 | 条数(卡) | 占比(卡) | 条数(实抓) | 基因数(卡) | 基因数(实抓) |
|---|---|---|---|---|---|
| Neutral | 83,902 | 74.6% | 83,902 | 2,749 | 2,783 |
| LOF | 25,368 | 22.6% | 25,368 | 2,020 | 2,020 |
| GOF | 3,129 | 2.8% | 3,129 | 260 | 259 |
| 合计 | 112,399 | 100% | 112,399 | 2,809 | 2,809 |
条数四项全部吻合,基因数两项有差:Neutral 基因数实抓比卡多 34(2,783 > 2,749),GOF 基因数实抓比卡少 1(259 < 260)。由于同一文件不可能"总数对、分项不对"除非口径不同,最可能的解释是:卡中的基因数按某种筛选(例如各类别内至少 N 条)统计,而实抓按"该类别内出现过即计"。结论:条数可放心引用,分基因计数以实抓为准并注明口径。
§2.4 双向机制基因:97 还是 92
摘要称数据集包含 97 个双向机制基因(同时含 LOF 与 GOF 变异)。实抓按不同定义得到三个数:
- LOF 与 GOF 并存(不论有无中性):96 个基因;
- 三种标签齐备(LOF ∧ GOF ∧ Neutral 各至少 1 条):92 个基因;
- LOF 与 GOF 并存且该基因总记录 ≥ 10 条:91 个基因。
三个数都在 91-96 区间,与摘要的 97 相差 1-6。逐一枚举后仍未复现 97,最可能的原因是作者统计时点的文件版本与当前 commit 略有差异(例如某基因的个别记录在 2026-06-08 更新中被删)。正文采用「96(LOF 与 GOF 并存)/ 92(三标签齐备)」双口径,97 作为论文自述保留,不复现即不采用(见 §12 遗留疑点 1)。
按标签组合拆分 2,809 个基因,可分七种形态:
| 标签组合 | 基因数 | 解释 |
|---|---|---|
| 仅 Neutral | 626 | 只在人群常见变异中出现,多为耐受性高的基因 |
| Neutral + LOF | 1,907 | 主流形态:失活型致病 + 常见良性 |
| Neutral + GOF | 158 | 只有激活型病变与常见良性,无失活型报道 |
| LOF + GOF + Neutral | 92 | 三标签齐备的双向机制基因,最难预测 |
| LOF + GOF(无中性) | 4 | 罕见基因,常见变异被 gnomAD 频率门槛挡掉 |
| 仅 LOF | 17 | 无常见良性错义可供对照 |
| 仅 GOF | 5 | 极罕见,单基因内样本极少 |
合计 626 + 1,907 + 158 + 92 + 4 + 17 + 5 = 2,809,与总基因数吻合。
§2.5 基因层面的规模长尾
按记录数排序,前 12 个基因:
| 基因 | 条数 | 主要标签 | 临床背景 |
|---|---|---|---|
| TTN | 1,494 | Neutral 主导 | 肌联蛋白,超长蛋白,良性变异极多 |
| SRRM2 | 772 | Neutral 主导 | 剪接体组分,耐受性高 |
| FBN1 | 736 | LOF | 马凡综合征 |
| LDLR | 707 | LOF | 家族性高胆固醇血症 |
| KMT2D | 705 | Neutral / LOF | Kabuki 综合征 |
| BRCA2 | 680 | Neutral 主导 | 乳腺癌易感 |
| CSMD1 | 655 | Neutral | 精神疾病相关候选基因 |
| SPEN | 506 | Neutral | 转录抑制因子 |
| WDFY4 | 498 | Neutral | 免疫相关 |
| BOD1L1 | 473 | Neutral | 基因组稳定性 |
| ANKRD11 | 465 | LOF | KBG 综合征 |
| TSC2 | 463 | LOF | 结节性硬化 |
基因规模中位数为 19 条;≥ 10 条的基因 2,467 个(87.8%),≥ 50 条的 531 个。这意味着绝大多数基因只有十几条样本,做基因级别的交叉验证时会出现极小的验证折——这是基因分层切分的现实困难(§8.3)。
§2.6 GOF 集中在哪些基因
GOF 的 3,129 条高度集中:
| 基因 | GOF 条数 | 机制 |
|---|---|---|
| NOTCH3 | 106 | CADASIL,半胱氨酸增益/聚集 |
| PTPN11 | 105 | Noonan 综合征,SHP2 活性上调 |
| BRAF | 102 | 肿瘤与 RASopathy,激酶持续活化 |
| GFAP | 81 | 亚历山大病,中间丝聚集 |
| GRIN2B | 71 | NMDA 受体功能增强 |
| PIK3CA | 66 | PROS,PI3K 通路激活 |
| FGFR2 | 63 | 颅缝早闭综合征 |
| PSEN1 | 61 | 早发阿尔茨海默,γ 分泌酶活性比改变 |
| ATP1A3 | 59 | 交替性偏瘫,泵活性改变 |
| SPAST | 58 | 遗传性痉挛性截瘫,微管切割活性 |
这张表就是 GOF 任务的真实难度分布:前 10 个基因贡献约 26% 的 GOF 样本,其余 249 个基因平均只有 10 条左右。
§3 标签是怎么定出来的:一条变异的判读链路
GLOF 的标签不是从数据库字段直接拷贝,而是走了一条「来源 → 过滤 → 证据整合 → 专家定标」的流水线。理解这条流水线,才能判断标签的可信边界。
§3.1 第一段:致病变异的来源与清洗
- 取 ClinVar 2023-07 版本的致病/可能致病变异条目。
- 只保留错义:同义、内含子、无义、移码、剪接全部丢弃。这一步把数据集的范围锁死在"氨基酸替换"这一最难以从序列直接推断的类别上。
- 与 2026-03 版本交叉核对:凡在两年半内被降级(如 Pathogenic → VUS)或出现提交者冲突条目的,整条剔除。这是把"标签会随着时间腐烂"这一风险前置处理的手法,值得其他基准效仿。
- 按基因-疾病关系筛查:只有基因与疾病的关系已经确立(established gene-disease relationship)的位点才进入候选池。
§3.2 第二段:功能方向是怎么判的
这是最难的一段,也是预印本与数据卡着墨最少的一段。公开材料给出的依据是三类:
- 已发表的功能研究:膜片钳电流幅度、酶活测定、报告基因、蛋白稳定性、定位实验等;
- 基因型-表型关联:同一基因内不同方向的变异带来不同表型(例如 SCN2A 的 LOF 型早发癫痫与 GOF 型良性家族性新生儿癫痫);
- 已确立的基因-疾病机制:例如 RASopathy 通路在群框架上就是 GOF 驱动的,因此该通路内基因的致病变异若未明确报道失活,倾向判为 GOF。
潜在偏差:如果一条变异的功能研究做的是"是否丧失活性",而没人做过"是否获得新活性",判读者只能依据阴性结果推定为 LOF。这种证据不对称会把 GOF 系统性低估——这正好解释了 2.8% 的极端不平衡:不是 GOF 变异真的那么少,而是被研究过的 GOF 变异少。
§3.3 第三段:中性变异的选择逻辑
中性类来自 gnomAD,规则是:
- 来源 gnomAD v3.1(约 76,156 个基因组的短变异集);
- 用 gnomAD v4.1 复核等位频率,仍满足 AF > 1% 的才保留;
- 只取错义。
用两个版本互相验证是稳妥的做法:v3.1 与 v4.1 的样本构成不同(后者合并了 v2 的外显子组样本),一个变异在两个独立队列中都高频,良性推断更硬。但必须清楚:AF > 1% 的错义变异是"常见",不等于"功能完好"。有些高频变异其实是轻度功能减弱但外显率极低的等位基因(例如某些 G6PD 变异),把它们标为 Neutral 在功能层面并不严格成立。
§3.4 第四段:ACMG 框架的角色
数据卡明确写「following ACMG/AMP guidelines」。这里需要特别注意:ACMG/AMP 2015 指南本身是为"致病性"设计的,并没有为"功能方向"设计条款。GLOF 借用的是它的证据类型学(PS3 功能研究、PP2 错义聚集、BP1 错义 vs 截断等),而不是它的分类输出。因此:
- 一个变异可以是"Pathogenic 且 GOF"(如 PTPN11 的 Noonan 变异);
- 也可以是"Pathogenic 且 LOF"(如 LDLR 的家族性高胆固醇变异);
- 但 GLOF 不记录它是否满足 ACMG 的哪几条证据——没有证据码字段,这是数据集与 CSpec 类规则库的根本区别(§7.4)。
§4 应用场景:谁该用、怎么用
§4.1 场景一:评测变异效应预测模型
最直接的用途。把 VARIANTKEY 转成(基因、蛋白位置、ref、alt)四元组,喂给待测模型(AlphaMissense、ESM-1v、ESM-2 的 zero-shot 打分、ProteinNPT 等),得到连续分数后做三分类。
必读警告:AlphaMissense 与 ESM 系列在训练时都见过大量 ClinVar 与 UniProt 数据,存在训练污染。严谨做法是把 GLOF 的致病变异按 ClinVar 提交日期切分,只评测在模型训练截止日之后新增的部分——但 GLOF 本身不提供 ClinVar 提交日期字段,这是它作为评测集的结构性缺陷(§8.4、§12)。
一个可行的补救手段是外部左连接:拿 GLOF 的 VARIANTKEY 去 ClinVar 的 release 表里查 DateLastUpdated,筛出 2024 年之后才被重新解读的条目,作为"较干净"的子集单独报告。代价是要额外下载一份 ClinVar VCF 并写解析脚本,但换来的是污染声明可以从"存在"降级为"已部分控制"。
输出格式建议:不要只给三分类标签,同时给每类的概率。评测方才能按需调阈值——例如临床场景更关心 GOF 的查全率,可以牺牲一部分 Neutral 的精确度把阈值调低。
§4.2 场景二:基因分层迁移学习
基因分层(gene-wise split)是防止"同基因内泄漏"的标准做法:训练集与测试集不共享基因。GLOF 的 2,809 个基因足以支撑 5 折基因分层,但要注意中位基因只有 19 条样本,折内类别可能缺失。建议:
- 以基因而非变异为切分单位;
- 对 GOF+LOF 双向基因单独设"留出集"(92 个基因),专测模型区分方向的能力;
- 报告每折的类别分布,而非只报总体。
§4.3 场景三:药物机制与靶点假设
GOF 与 LOF 直接对应两类相反的干预策略:抑制剂 vs 增强剂/替代。对制药团队来说,GLOF 提供了一个"某基因的致病变异偏哪个方向"的先验表——例如 PTPN11 的 105 条 GOF 与 0 条明确 LOF,说明该基因的致病主旋律是激活,SHP2 抑制剂的方向是对的。
但请勿过度外推:变异级的功能方向占比 ≠ 基因的治疗策略。很多基因同时有 LOF 与 GOF 致病机制,治疗需按变异分型。
§4.4 场景四:教学与临床沟通
LOF/GOF 是遗传咨询中最常被问到的概念之一。GLOF 提供了可直接取用的真实例子表:从 CFTR 的 LOF 到 PTPN11 的 GOF,学生可以在同一张表里对比两类机制的变异分布。教学时建议配 fig_bidirectional_structures.pdf,直观展示双向机制基因的结构域分布。
§4.5 场景五:变异注释流水线的辅助层
在临床流水线里,GLOF 不能替代 ACMG 判读,但可以作为机制分类的参考层:当实验室要在报告里写"该变异导致蛋白功能丧失/获得"时,可查询该基因在 GLOF 中的方向分布作为佐证。必须注明这是参考证据而非判读依据。
§5 数据模型与工程实操
§5.1 最小可用加载代码
import pandas as pd
# 方式一:Hugging Face datasets(自动缓存)
from datasets import load_dataset
ds = load_dataset("victormaricato/glof", split="train")
df = ds.to_pandas()
# 方式二:直取 parquet(国内可换 hf-mirror 域名)
url = "https://hf-mirror.com/datasets/victormaricato/glof/resolve/main/glof_dataset.parquet"
df = pd.read_parquet(url)
print(df.shape) # (112399, 7)
print(df.LABEL.value_counts())
§5.2 特征工程的最小建议
GLOF 只提供七个字段,特征必须自己造。实践中最有效的三类:
- 替换矩阵特征:
PROTEIN_REF/PROTEIN_ALT索引 BLOSUM62 或 Grantham 距离,得到一维标量; - 位置特征:
AA_POSITION / 蛋白长度(需外接 UniProt 或 Ensembl 取长度),以及该位置在 Pfam/InterPro 结构域内的指示位(库内 interpro 1044 可查); - 基因级先验:该基因在训练集中的 LOF/GOF 比例——注意这是标签泄漏的高危项,只能从训练折计算。
§5.3 键值对齐的坑
把 VARIANTKEY 与其他资源对齐时,会遇到三类不一致:
- 坐标前缀:GLOF 用
1、X、M;VCF 用chr1、chrX、chrM。做 join 前必须统一。 - 排序方式:不同 VCF 版本对同一位置的 indel 表示不同,但 GLOF 只有 SNV,这一点反而省心。
- 基因符号版本:
GENE_SYMBOL取自 HGNC,一些旧符号(如C12orf57)在新版 HGNC 已改名,跨库 join 会丢行。
§5.4 类别不平衡的处理
三个层次,按推荐度排序:
- 重加权损失:以类别频率倒数做样本权重(GOF 权重约为 Neutral 的 27 倍),不改数据;
- 分层采样 + 宏平均指标:保持原始比例,报告 macro-F1 与每类召回;
- 仅在明确说明的前提下重采样:SMOTE 在蛋白序列语境下生成"不存在的变异",不建议用于本数据集。
补充一个容易被忽略的细节:不平衡在基因层面比在全局层面更严重。全局看 GOF 占 2.8%,但在 2,749 个含中性类的基因里,绝大多数基因的 GOF 条数为零;而在 NOTCH3、PTPN11 等少数基因里,GOF 反而接近或超过 LOF。这意味着"按类重加权"只能修正全局偏差,无法修正基因内的方向偏差。更精细的做法是按(基因 × 类别)联合分层做重加权,代价是样本极少格子的权重会爆炸,需要对权重做截断(如上限 50)。
§6 获取、许可与版本管理
§6.1 三个入口
| 入口 | 地址 | 形态 | 备注 |
|---|---|---|---|
| Hugging Face | huggingface.co/datasets/victormaricato/glof |
parquet | 主发布地,有 DOI 10.57967/hf/10836 |
| Kaggle | kaggle.com/datasets/maricatovictor/loss-and-gain-of-function-variants |
CSV / API | 需 Kaggle 账号 |
| 镜像 | hf-mirror.com/datasets/victormaricato/glof |
parquet | 国内网络首选 |
§6.2 许可:CC BY 4.0 的实际含义
- 可以:商用、再分发、改造、训练模型;
- 必须:署名(引用作者与 DOI)、标注是否修改;
- 不保证:数据准确性免责;上游 ClinVar/gnomAD 的原始条款兼容性未被预印本讨论。
对临床用途而言,CC BY 4.0 不等于"可用于诊断"。任何临床决策都不能只依赖本数据集。
再补一层现实考量:本数据集是二级加工品——它把 ClinVar 的条目重新判读并加了新标签。CC BY 4.0 覆盖的是作者的"选择与编排",而底层每条 ClinVar 记录是否允许再以 CC BY 4.0 分发,取决于提交时的条款。多数 ClinVar 提交本身允许再分发,但个别实验室提交的条目可能带有额外限制。预印本没有讨论这一点,使用者在产品化前应当抽样核对来源提交者,或至少在法务文件中声明"许可依据来自数据集卡,上游条款未逐条核验"。
§6.3 版本固定:复现的前提
Hugging Face 仓库是活的。要复现某篇论文的结果,必须固定 commit:
ds = load_dataset("victormaricato/glof", revision="603256c875d962494ca30153dded1f92972ef928")
本条目核验时点为 2026-10-17,对应 commit 603256c(2026-06-08 最后修改)。若未来仓库更新,行数、类别比例乃至标签都可能变化——引用时务必把 commit 哈希写进方法学部分。
§6.4 不稳定风险的量化描述
| 风险 | 触发条件 | 后果 |
|---|---|---|
| 仓库静默更新 | 作者重跑策展流水线 | 样本量变化,旧结果不可比 |
| ClinVar 重分类 | 上游 2026-03 之后的版本继续演进 | 标签与最新 ClinVar 脱节 |
| gnomAD 版本升级 | v4.1 → v5 | 中性类集合变化 |
| 预印本被拒或大改 | 同行评审 | 方法学口径变化(如双向基因定义) |
应对:下载后立即计算并记录文件 md5、行数与类别计数三件套,写进项目 README。
§6.5 坑点 1:Revision 与 doi 不是一回事
Hugging Face 自动生成的 DOI 10.57967/hf/10836 指向仓库整体,不指向某个 commit;论文 DOI 10.64898/2026.06.05.729843 指向预印本。三者引用时需要分别交代,切勿混写成一个 DOI。
§7 与库内条目的关系与消歧
§7.1 与 clinvar(rid=136)
关系:上游。GLOF 的 25,368 条 LOF 与 3,129 条 GOF 全部来自 ClinVar 2023-07 版。差别:
| 维度 | ClinVar | GLOF |
|---|---|---|
| 判定对象 | 致病性(P/LP/VUS/LB/B) | 功能方向(LOF/GOF/中性) |
| 变异类型 | 全类型 | 仅错义 |
| 条目规模 | 百万级提交记录 | 11.2 万条去重变异 |
| 是否含功能方向 | 部分提交者写在自由文本里 | 结构化标签 |
| 更新频率 | 周级 | 预印本阶段,不定期 |
消歧一句话:ClinVar 告诉你"这个变异被认为致病",GLOF 告诉你"这个致病变异是失活还是激活"。两者不可互相替代,也不可合并计数——GLOF 的记录在 ClinVar 里大多能找到对应条目,但反过来不成立。
一个容易混淆的时间差:GLOF 用的是 ClinVar 2023-07 版,而 ClinVar 每周更新。2026 年的 ClinVar 里,GLOF 标记为 LOF/GOF 的变异可能已经被降级为 VUS,甚至被重分类为良性。因此用 2026 年的 ClinVar 去核对 GLOF 的标签,必然出现"冲突"——这不是 GLOF 的错误,而是时间窗口不同。做交叉核对时只有两种合规做法:要么去 ClinVar 归档里取 2023-07 的快照,要么在结论里明确写"以 2023-07 为准"。
另一个误解:GLOF 只收错义,所以它的 25,368 条 LOF 不是该基因全部 LOF 变异——很多基因的主要 LOF 来源是无义与移码。拿 GLOF 统计"某基因 LOF 变异数量"会系统性低估。
§7.2 与 alphamissense(rid=584)
关系:互评。AlphaMissense 是 DeepMind 的致病性预测模型,对约 7,100 万条可能的错义变异(人类全部蛋白编码基因)给出 0 到 1 的分数,其中约 2.16 亿条被归类为可能良性或可能致病。GLOF 可以作为 AlphaMissense 的下游评测集——但要注意:AlphaMissense 训练数据含 ClinVar,存在污染;且 AlphaMissense 只判"致病",不判方向,无法直接用于 LOF/GOF 区分任务。若要用它做 GLOF 的三分类基线,只能把它当"是否致病"的第一级筛子,方向仍需另模型。
一个实用的互评设计:把 GLOF 的 LOF+GOF 子集合成"致病正集"、Neutral 作"良性负集",先测 AlphaMissense 的 AUROC,再问"在它判为致病的那些变异里,它的分数能否区分 LOF 与 GOF"。预期答案是"不能"——两者分数分布几乎重合。把这个阴性结果写出来,本身就是对 GLOF 价值的证明。
§7.3 与 proteingym(rid=813)
关系:互补。ProteinGym 汇集数百个 DMS 实验(覆盖 200 余个蛋白)的定量适应度分数,回答"这个突变让蛋白功能下降了百分之多少";GLOF 回答"这个突变让功能朝哪个方向变了"。可交叉验证的地方:ProteinGym 中同时有 LOF 与 GOF 表型的实验(如某些酶活与受体信号实验)可与 GLOF 双向基因对照,但两者覆盖的变异集合几乎不重叠——ProteinGym 是实验穷举的饱和突变,GLOF 是临床见到的自然变异。
为什么不能简单合并:DMS 的适应度分数是连续且相对于参考序列的,而 GLOF 是离散且相对于疾病语义的。一个 DMS 分数为 0.3 的变异,可能是"部分功能保留"(功能上偏 LOF 但未达致病阈值),在 GLOF 里则可能是 Neutral。两者合并训练会把"功能量"与"致病质"搅在一起。正确做法是分开训练、单向评估:用 DMS 预训练表征,再到 GLOF 上微调与评测。
§7.4 与 clingen(rid=523)、cspec(rid=1132)
关系:机制层。ClinGen 的 CSpec 规定"某基因的 PVS1 怎么用",其中关键前提就是该基因的疾病机制是 LOF 还是 GOF——例如 RASopathy 相关基因的 BP1 规范被明确改写为"截短变异在 GOF 机制基因里应视为良性"(GN043,PTPN11 v2.1.0 实抓)。GLOF 恰好能为这类规则提供数据支撑:某基因的致病变异以 GOF 为主,则其 CSpec 里 BP1 的改写就有了经验依据。
这不是巧合,而是同一问题的两个视角:CSpec 从"规则应该怎么写"出发,反推基因机制;GLOF 从"变异实际怎样"出发,归纳基因机制。两个方向的结论若在某基因上一致(如 PTPN11),说明机制判定可靠;若不一致,则提示该基因的机制可能比 VCEP 假设的更复杂——这正是值得进一步研究的信号。
§7.5 与 gnomad(rid=35/570)、omim(159)、uniprot(37)、interpro(1044)
- gnomAD:中性类的唯一来源,也是判断"罕见"的基线。库内 gnomad 有两条 rid(35 与 570),属于同一资源的历史重复条目,使用时以任一为准即可;
- OMIM:基因-疾病关系与遗传方式的权威来源,GLOF 的基因筛选逻辑依赖这类知识;
- UniProt:蛋白长度、结构域边界,做位置特征工程必备。
AA_POSITION的最大值 35,972 对应 TTN 等超长蛋白,用 UniProt 取长度时必须确认取的是同一规范异构体,否则位置会整体错位; - InterPro:结构域注释,用于解释"为什么某个结构域里 GOF 特别多"。把
AA_POSITION映射到 Pfam 边界后,可以计算"单位长度内 GOF 密度",这是比"条数"更公平的跨蛋白比较指标。
这四者共同构成 GLOF 的"外接上下文"——数据集本身只给坐标与标签,所有生物学解释都来自外接资源。这也是 §5.2 强调特征工程的原因。
§7.6 消歧总表
| 条目 | 一句话定位 | 与 GLOF 的边界 |
|---|---|---|
| clinvar (136) | 变异-临床意义提交库 | 上游;判致病性不判方向 |
| alphamissense (584) | 错义致病性预测模型 | 模型 vs 标签,可互评 |
| proteingym (813) | DMS 定量适应度基准 | 定量 vs 定性方向 |
| clingen (523) | 基因-疾病有效性策展 | 基因层 vs 变异层 |
| cspec (1132) | ACMG 规则疾病特异规格 | 规则层 vs 数据层 |
| gnomad (35/570) | 人群频率参考 | 中性类来源 |
§8 评测方法:怎么用才不算误用
§8.1 三个必须报的指标
- macro-F1:三类的未加权平均,防止多数类淹没少数类;
- GOF 类召回:单独报告,这是数据集的核心价值所在;
- 双向基因子集上的表现:92 个三标签齐备基因单独评测,衡量方向判别能力。
补一句工程上的经验:三分类模型的混乱矩阵最容易出错的一格不是 GOF↔Neutral,而是 GOF↔LOF——两者都是致病变异,致病性分数几乎相同,模型只能靠方向特征区分。若你的混淆矩阵里 GOF 被误判成 LOF 的比例高于 50%,说明模型根本没学到方向,只是在做二分类。
§8.2 准确率的陷阱
全猜 Neutral 的基线准确率是 74.6%。任何低于这个数字的三分类模型都是在做负贡献。同时,若某模型报 “92% 准确率” 而不报 GOF 召回,几乎可以肯定它把 GOF 全判错了。
§8.3 基因分层与泄漏控制
- 变异级切分是错误的:同一基因内的变异共享大量序列与结构信息,随机切分会让模型"背题";
- 必须基因分层:用
GroupKFold(groups=GENE_SYMBOL); - 额外一层:同一蛋白家族的基因(如 FGFR1/2/3、SCN1A/2A/8A)之间也存在高度相似性,严格的泛化评测应做家族级留出,但 GLOF 不提供家族映射,需外接 InterPro/Pfam。
§8.4 训练污染的三重来源
| 来源 | 说明 | 缓解 |
|---|---|---|
| ClinVar 泄漏 | 多数 VEP 模型训练集含 ClinVar | 按提交日期切分(GLOF 无此字段,需外接) |
| UniProt 泄漏 | 蛋白语言模型预训练语料含功能注释 | 无法缓解,只能声明 |
| 同源泄漏 | 家族内基因序列相似 | 家族级切分(需外接注释) |
| 标签泄漏 | 同基因的 LOF/GOF 比例是最强特征,若从全量计算即泄漏 | 只用训练折统计 |
结论:GLOF 可以衡量"模型是否学到了功能方向",但不能单独证明"模型能泛化到未见功能"。评测报告的结论措辞必须相应保守。
第四重污染常被忽略:基因级先验泄漏。如果一个模型在特征里放了"该基因历史上 LOF 占比",而这个比例是从全量数据算的,那就等于把测试集的标签信息喂进了训练。这类泄漏不会报错,只会让指标虚高 5-15 个百分点。排查方法:把特征计算放进交叉验证的每一折内部,而不是在切分之前对全表计算。
§8.5 基线参考区间(定性描述,非实测)
由于本条目未运行任何模型,此处只给方法论参考而非数字:
- 只用药学特征(BLOSUM + 位置)的简单分类器,LOF/Neutral 区分通常可以做到中等水平,但 GOF 召回极低;
- 蛋白语言模型 zero-shot 在 LOF 上表现尚可,在 GOF 上普遍薄弱——因为 GOF 往往是"获得新相互作用"而非"序列破坏",序列模型天然不敏感;
- 结构感知模型(如基于 AlphaFold 结构特征的模型)在 GOF 上可能略有优势,但尚无公开在 GLOF 上的系统评测(发布仅四个月,见 §12)。
为什么 GOF 对序列模型如此困难:LOF 的常见机制是"破坏"——折叠失败、催化残基丢失、截短,这些在序列上往往表现为高度保守位点的非保守替换,语言模型对"异常"很敏感。而 GOF 的常见机制是"增益"——解除自抑制、改变底物偏好、增强寡聚化,这些往往发生在界面残基上,序列本身看起来完全"正常"。模型必须理解结构才可能理解增益,这是 GLOF 揭示的深层结论。
§9 方法学启示与局限
§9.1 三个可迁移的方法学
- 双向验证上游:ClinVar 用 2026-03 版本复核 2023-07 版本,剔除重分类项——这一"时间双版本"手法值得所有基于动态数据库的基准效仿;
- 群体双队列验证:gnomAD v3.1 选、v4.1 复核,降低单队列抽样偏差;
- 有意保留困难基因:96 个双向机制基因没有被清洗掉,反而作为卖点——这比"只留干净样本"的基准更有价值。
§9.2 结构性的三个局限
- 极端类别不平衡:GOF 2.8%,且集中在少数基因;任何全局指标都会被稀释;
- 标签是"当前认知"的快照:功能研究会推翻旧结论,而数据集不随之上溯更新(无版本化标签变更记录);
- 单中心判读:Mendelics 一家实验室的判读标准,跨中心一致性未被报告——这与 ClinGen VCEP 的多中心共识形成鲜明对比。
§9.3 与"专家共识"类资源的差距
ClinGen CSpec 的规格需要 CDWG 与 SVI 双批准才能发布,每一条都有版本号与 Zenodo 冻结 DOI。GLOF 的标签则没有这条治理链——它是一家商业实验室的研究产出,即便作者均为领域内专业人士。这不否定其价值,但决定了它的定位:研究基准,而非临床标准。
§9.4 一种值得学习的设计:拒绝"清洗到干净"
多数基准在遇到矛盾样本时会选择删除,以追求"高一致性"。GLOF 反其道而行:保留 96 个双向机制基因,哪怕它们让三分类任务变得更难。这一选择的方法论意义在于:
- 删除矛盾样本会让评测集对真实世界失真——真实世界本就是矛盾的,不同病人携带同一基因的不同方向变异;
- 保留矛盾样本会让模型必须学习方向而非基因标签——如果只看"这个基因是致病基因",双向基因就会失效;
- 保留矛盾样本也让数据集更有诊断价值——它能区分"只学到致病性"和"学到机制"两类模型。
这条设计原则可以迁移:任何"专家策划"的评测集,都应至少保留一部分已知的困难样本,并单独报告在这部分上的表现。
§9.5 数据集的"可解释性"边界
GLOF 给的是标签,不是理由。它不告诉你"为什么这个变异是 GOF"——是解除自抑制,还是增强二聚化,还是改变亚细胞定位。这使得它适合做评测,不适合做解释性研究。若研究问题是"哪些结构特征导致 GOF",必须回到原始文献,GLOF 只能提供候选清单。
§10 常见误解澄清
§10.1 误解一:GLOF 是致病变异数据集
纠正:四分之三是中性变异,且中性与致病不是互斥的判定对象——它是功能方向数据集。同一变异可以在 ClinVar 里是 Pathogenic、在 GLOF 里是 LOF。
§10.2 误解二:GOF 就意味着更严重
纠正:方向与严重度无关。有些 GOF 是轻度的(如某些 CACNA1C 变异),有些 LOF 是致死的(如 CFTR 的 F508del 纯合)。数据集中不含严重度字段。
§10.3 误解三:Neutral 等于野生型
纠正:Neutral 是"群体常见、未见致病证据",不是"功能与野生型完全一致"。CDKN1C、G6PD 等基因中有高频但功能轻度减弱的变异。在 DMS 语境下,Neutral 也不能直接当 wild-type 类使用。
§10.4 误解四:可以直接拿来评测 AlphaMissense 并下结论
纠正:AlphaMissense 输出致病性分数,不输出方向。用它做三分类必须先用阈值切"是否致病",再猜方向,等于把任务拆成两半——这不是公平评测。正确做法是与专门的方向预测模型比。
§10.5 误解五:112,399 是"独立变异"数
纠正:实抓发现 6 条 VARIANTKEY 重复。虽然占比可忽略,但做精确计数时应去重,且重复行可能来自不同基因上下文(同一基因组位点落在重叠基因内)。
§10.6 误解六:CC BY 4.0 意味着可以无限制商用
纠正:CC BY 4.0 要求署名与标注修改,且不提供任何担保。更重要的是上游 ClinVar 提交者与 gnomAD 的条款兼容性未在预印本中讨论;若要在商业产品中嵌入,建议做法务核查。
§10.7 误解七:基因数 2,809 等于"覆盖人类蛋白编码基因的 13%"
纠正:这个比例在数量上没错(约 20,000 个蛋白编码基因),但覆盖极不均衡——531 个基因占了大部分记录,其余多为十几条。说"覆盖 2,809 个基因"在方法学上会给人"广覆盖"的印象,实际有效覆盖远小于此。
§10.8 误解八:这是 ClinGen 出的
纠正:不是。作者三人来自巴西 Mendelics,与 ClinGen 无隶属关系;数据卡中也没有出现 ClinGen 字样。它与 ClinGen 的关联仅在于使用了 ACMG 指南框架,并在概念上与 CSpec 的机制判定相关。
§10.9 误解九:预印本数字可以稳定引用
纠正:预印本 v1 与数据卡已经出现分项数字不一致(GOF 基因 260 vs 259),说明连作者自己的文本与文件之间都未完全对齐。引用时请以实抓为准并注明时点。
§10.10 误解十:GOF 变异都能被抑制剂治疗
纠正:GOF 不等于"可成靶"。很多 GOF 是蛋白聚集(GFAP)或功能复合体的组成性激活,小分子未必可控。数据集的标签是机制分类,不是治疗可分性判断。
§10.11 误解十一:LOF 一定是"蛋白没有了"
纠正:LOF 包括"蛋白量减少"“蛋白在但没活性”“蛋白定位错误”"蛋白不稳定被降解"等多种情形。GLOF 不区分这些亚型——"LOF"是一个语义上位的判定,不是分子机制的描述。临床上区分他们是必要的(比如 CFTR 的折叠型 LOF 可用矫正剂,而门控型 LOF 需要增效剂),但数据集不提供这个层次。
§10.12 误解十二:中性变异可以用来做"良性对照"训练
纠正:可以做负类,但要知道负类的分布被 AF > 1% 的阈值大幅塑造——它偏向高保守性差的基因、偏向常见人群、偏向耐受位点。用这样的负类训练出的模型,在"罕见但良性"的变异上会系统性误判为致病。这是一个选择偏差,而非标签错误。
§11 生态与影响
§11.1 在 VEP 领域的位置
传统 VEP 的谱系可以粗略分成四代:
- 保守性类(SIFT、PolyPhen-2、CADD):基于多序列比对与生化性质;
- 监督学习类(REVEL、VEST、MetaRNN):整合多种注释做致病性预测;
- 深度突变扫描类(ProteinGym):实验穷举的定量适应度;
- 蛋白语言模型类(ESM-1v/2、AlphaMissense、ESM3):从序列中学分布,zero-shot 打分。
GLOF 不属于上述任何一代——它是"评测集",不是"预测器"。它的作用是把第四代从"致病性"推向"机制方向",从而暴露这一代模型最薄弱的地方。
§11.2 社区接受度(截至 2026-10)
- Hugging Face 下载计数 63,点赞 0——发布四个月,仍处于极早期;
- Sciety 上有活动记录,但未见系统性引用;
- 尚无公开的第三方模型在该数据集上的基准榜单;
- Kaggle 侧页面存在但未见公开 Notebook 与讨论——两个平台都缺乏社区共建痕迹。
这意味着:GLOF 目前是"有机会占位"的资源——谁先做出可信的 LOF/GOF 三分类基线,谁就定义了这条赛道的评测方式。
§11.3 下游可能的生态位
- 变异注释工具的机制层:VEP、ANNOVAR 的插件生态可以接入;
- 药物靶点优先级排序:按基因方向分布做机制先验;
- 临床报告自动化:在报告模板中自动生成"该变异所属基因的致病机制倾向"一句话;
- 教学与考核:遗传咨询培训的三分类判读练习集。
§11.3a 与 ClinGen 生态的互补位
如果把 ClinGen 生态画成四层——基因层(Gene-Disease Validity)、规则层(CSpec)、变异层(ERepo/ClinVar)、机制层(暂无标准化资源)——GLOF 恰好填补的是最右端的机制层。它不取代任何一层,也不与任何一层重叠。这也是它在本库内不会与 clingen(523)、cspec(1132)、clinvar(136) 撞车的根本原因。
§11.4 竞争与补充
同期还有若干"机制感知"资源在做类似的事,但侧重点不同:DMS 类问定量、临床类问致病性、通路类问上下游。GLOF 的独特之处在于"同时含 LOF 与 GOF 的双向基因"这一设计——这是判断模型是否真的学到了方向、而非仅仅学到了"致病=坏"的关键。
从竞争格局看,GLOF 面临的最大威胁不是别的数据集,而是ClinGen 体系本身:如果未来 ClinGen 在其变异分类中系统性地加入机制字段(例如在 ERepo 记录里增加 functionalEffect),那些数据将具备 GLOF 缺少的治理背书与版本控制。届时 GLOF 的比较优势会退回到"规模"与"已整理成单表"这两点——而这两点恰恰是最容易被复制的能力。
§12 避坑清单:十五个已踩过的坑
坑点 1:把 Neutral 写成 NEUTRAL
标签字面量是 Neutral(首字母大写),部分教程或脚本里写成全大写后 df[df.LABEL=="NEUTRAL"] 返回空集,静默失败。排查:先 df.LABEL.unique() 看一眼。
坑点 2:用 chr 前缀去 join
VARIANTKEY 格式为 1-100196274-A-C,没有 chr 前缀;与 VCF、gnomAD 表格 join 前必须统一前缀,否则命中率为零。
坑点 3:线粒体用 MT 而不是 M
数据集中线粒体染色体写作 M(1,588 条),用 MT 匹配会全部丢失。同理 Y 染色体仅 84 条,X 染色体有 7,175 条——做性别相关分析时要留意 X 的剂量问题。
线粒体变异还有一个更深的问题:线粒体的"LOF"判定与核基因的语义并不完全一致。mtDNA 是多元体,异质性(heteroplasmy)比例决定表型,而 GLOF 的标签是二元的 LOF/GOF。把线粒体错义变异与核基因变异放进同一个分类器训练,会引入一类语义不一致的样本。稳妥做法:建模前先剔除 M 染色体(约占 1.4%),或单独建一个亚组报告。
坑点 4:把 GOF 当"更严重的 LOF"
概念性错误,会导致模型设计时错误地把 GOF 并入阳性类。排查:检查损失函数是否把 LOF 与 GOF 合并。
坑点 5:只报 accuracy
74.6% 的中性占比让 accuracy 失去意义。排查:报告里若无 macro-F1 与 GOF 召回,视为不合格评测。
坑点 6:把数据卡的基因数当权威
数据卡 Neutral 基因数 2,749、GOF 基因数 260,实抓分别为 2,783、259。排查:任何按类别的基因计数都应自己跑一遍 nunique()。
坑点 7:忽略 6 条重复 VARIANTKEY
精确计数与去重训练集时需要 drop_duplicates(subset="VARIANTKEY")。虽然影响可忽略,但若做"每个变异唯一"的声明,会被审稿人抓住。
坑点 8:用随机切分做评测
同基因变异共享结构信息,随机切分会把准确率虚抬。排查:检查切分代码是否按 GENE_SYMBOL 分组。
坑点 9:引用不写 commit 哈希
仓库可被静默更新。排查:方法学部分是否出现 revision= 或 md5。
坑点 10:把 AA_POSITION 当作基因组坐标
AA_POSITION 是蛋白质氨基酸位置,不是基因组坐标。有人拿它去查 gnomAD 的 POS 字段,结果全部错位(因为内含子长度未计入)。正确做法是从 VARIANTKEY 里取第二段作为基因组坐标。
坑点 11:用 PROTEIN_REF 校验 VARIANTKEY
数据集中 PROTEIN_REF 与 VARIANTKEY 的参考碱基是两个独立体系,不能互相推导(除非另用遗传密码与转录本 CDS 序列重建)。有人试图用"碱基改变是否导致该氨基酸替换"来校验数据,结果需要额外引入转录本序列,工作量远超预期。
坑点 12:以为 Kaggle 与 HF 完全同步
两个平台的内容原则上相同,但更新时间可能不同步。以 Hugging Face 的 commit 为准,Kaggle 只作镜像备份。
坑点 13:按"位点"而非"替换"聚合
实抓发现 112,399 条记录落在 103,065 个(基因 × 氨基酸位置)格子上,其中 7,975 个格子含多个替换(同一位置被换成了不同氨基酸)。更关键的是,220 个格子上同时存在两种以上标签——即同一位点的不同替换,一个是 LOF、另一个是 GOF 或中性。这意味着**"按位置聚合"会制造标签冲突**,任何以位置为单位的模型都必须显式处理这一点。
坑点 14:以为数据是"饱和突变"
GLOF 不是饱和突变库。103,065 个位置相对 2,809 个基因的总长度(保守估计数百万个氨基酸位置)覆盖率极低。不能拿它算"某蛋白的突变耐受性图谱"——那是 DMS 的活。
坑点 15:把"基因数 2,809"当均匀分布
实抓 2,809 个基因中,记录数 < 5 的只有 2 个(说明作者做过下限过滤),但中位数仅 19 条。真正"够训练"(≥50 条)的基因只有 531 个(18.9%)。说"覆盖 2,809 个基因"时,实际上有效覆盖不到两成。
§12.1 三类读者最容易踩的三个坑(速览版)
| 读者 | 最容易踩的坑 | 一句话纠正 |
|---|---|---|
| 临床医生 | 以为 Neutral = 良性可报 | Neutral 只是"人群常见",不是判读结论 |
| 算法工程师 | 只看 accuracy | 74.6% 的基线让 accuracy 失效,必须报 macro-F1 |
| 数据管理者 | 以为许可一致 | 上游 ClinVar 条款未逐条核验,商用前需法务 |
§12.5 本条目自身的双口径存照
按纪律要求,把正文中出现的所有"两个数字"集中存照,方便读者核对:
| 项目 | 口径 A | 口径 B | 采用建议 |
|---|---|---|---|
| 双向机制基因 | 97(摘要) | 96(LOF∧GOF)/ 92(三标签齐备) | 正文并列;不写 97 作单一数 |
| GOF 覆盖基因 | 260(数据卡) | 259(实抓) | 引用写 259,并注"卡称 260" |
| Neutral 覆盖基因 | 2,749(数据卡) | 2,783(实抓) | 引用写 2,783,并注"卡称 2,749" |
| 唯一变异数 | 112,399(行数) | 112,393(去重后) | 引用写 112,399,方法学注明 6 条重复 |
| 数据集 DOI | 10.57967/hf/10836(HF 自动) | 10.64898/2026.06.05.729843(预印本) | 二者分列,不可互替 |
| 线粒体标签 | M(文件内) |
MT(通用写法) |
以文件内为准 |
§13 下游实操清单
§13.1 第一天:把数据跑起来
- 拉 parquet,检查
shape == (112399, 7); - 打印
LABEL.value_counts(),与 INFOBOX 对照; - 计算文件 md5 与行数,写入项目 README;
- 检查是否存在空值(应为 0)。
§13.2 第一周:建立可信基线
- 完成基因分层 5 折切分(
GroupKFold); - 训练一个"仅 BLOSUM + 蛋白位置"的基线,记录 macro-F1 与 GOF 召回;
- 在 92 个三标签齐备基因上单独评测;
- 建立"全猜 Neutral"与"仅用致病性分数二分后随机分方向"两个下限基线。
§13.3 第一个月:严谨报告
- 按 §8.4 说明三重泄漏来源与已做的缓解;
- 提供预测分数或代码,而非只报数字;
- 附 commit 哈希、md5、日期;
- 若结论涉及"模型可泛化到新功能",必须补充外部队列验证。
§13.4 团队分工建议
| 角色 | 任务 |
|---|---|
| 数据工程 | 下载、校验、切分、特征管道 |
| 模型 | 基线、消融、家族级留出 |
| 临床遗传 | 抽查标签合理性、解释双向基因 |
| 统计 | 不平衡指标、置信区间、多重比较校正 |
§13.5 常见失败模式的早期信号
项目跑到一半发现不可用,通常早就有信号。下面五个信号一旦出现,立刻停下修管道:
| 信号 | 含义 | 处置 |
|---|---|---|
| GOF 召回恒为 0 | 模型完全忽略少数类 | 查损失权重、查标签是否误写成全大写 |
| 验证集准确率 > 95% | 几乎必然泄漏 | 查切分是否按基因、查特征是否用了全量统计 |
| 三类 F1 几乎相等 | 模型在随机猜 | 查特征是否全为常数、查数据是否打乱失败 |
| 某基因贡献过半的错误 | 长尾样本主导 | 单独报告该基因,或做样本权重上限 |
| 换 commit 后指标骤降 | 数据集更新 | 锁定 revision 重跑 |
§13.6 最小可交付物清单
如果只能交付一次,应该包含哪些文件?本文建议七件:
data_card.md:写明 commit、md5、行数、类别计数;split.json:基因分层切分的折号映射,可复现;baseline.py:至少两个下限基线的可运行脚本;metrics.json:macro-F1、每类 P/R/F1、混淆矩阵;subgroup.csv:96 个双向基因与 5 个只含 GOF 基因的单独指标;README.md:环境、运行方式、预期结果;LIMITATIONS.md:污染、不平衡、预印本状态的声明。
前六件决定"别人能不能复现",第七件决定"别人会不会误用"。
§14 按角色阅读路径
- 临床遗传学家:§0 → §3 → §10 → §7(先搞清标签含义与边界);
- ML 工程师:§1 → §2 → §8 → §13(先搞清数据结构与评测定义);
- 药物研发:§0 → §4.3 → §2.6 → §10.10(先搞清方向与可成药性的区别);
- 教学人员:§0 → §3 → §4.4 → §14 之一页速查卡;
- 数据治理/合规:§6 → §10.6 → §12(先搞清许可与上游兼容性)。
§15 一页速查卡
| 问题 | 答案 |
|---|---|
| 多少条 | 112,399 |
| 多少基因 | 2,809 |
| 几类标签 | 3(Neutral / LOF / GOF) |
| 比例 | 74.6% / 22.6% / 2.8% |
| 双向基因 | 97(摘要)/ 96(LOF 与 GOF 并存)/ 92(三标签齐备) |
| 坐标 | GRCh38,chr-pos-ref-alt,无 chr 前缀 |
| 致病来源 | ClinVar 2023-07,比对 2026-03 |
| 中性来源 | gnomAD v3.1,v4.1 复核,AF > 1% |
| 许可 | CC BY 4.0 |
| 主发布地 | Hugging Face |
| DOI(数据集) | 10.57967/hf/10836 |
| DOI(论文) | 10.64898/2026.06.05.729843 |
| 状态 | 预印本 v1,未同行评审 |
| 最主要的坑 | GOF 只占 2.8%,accuracy 无意义 |
§15.1 速查卡的第二页:字段与取值
| 字段 | 典型值 | 取值范围 |
|---|---|---|
VARIANTKEY |
1-100196274-A-C |
25 种染色体前缀(1-22、X、Y、M) |
LABEL |
LOF |
Neutral / LOF / GOF |
ENSG |
ENSG00000137992 |
2,809 个唯一值 |
GENE_SYMBOL |
DBT |
2,809 个唯一值 |
AA_POSITION |
477 |
2 - 35,972 |
PROTEIN_REF |
M |
20 种标准氨基酸 |
PROTEIN_ALT |
R |
20 种标准氨基酸 |
§15.2 速查卡的第三页:一句话回答"我该不该用"
- 我的任务涉及 LOF/GOF 区分 → 用;
- 我的任务是 致病性预测 → 别用(有更好的选择);
- 我的任务是 定量适应度 → 别用(那是 ProteinGym);
- 我的任务是 临床判读 → 只能当参考。
§15.5 六个「一句话判据」
给急诊式读者的极简判断规则,每条都能在一分钟内验证:
- 这个数据集能告诉我变异是否致病吗? 不能,它假设你已经知道是致病的。
- 它能告诉我致病变异的方向吗? 能,但只对错义,且只对已被研究过的基因可靠。
- 我能直接用它训练一个临床分类器吗? 不能,类别极度不平衡且无强度分级。
- 我能用它发表论文吗? 能,但必须写 commit、必须报 GOF 召回、必须声明污染。
- 它和 ClinVar 冲突怎么办? 先看时间窗(2023-07 vs 现在),再看变异类型(只错义)。
- 它值得投入多少时间? 若课题与「机制方向」有关,投入一周做基线是划算的;否则优先用 ProteinGym。
§16 DAIMS 评估
| 维度 | 评分(1-10) | 依据 |
|---|---|---|
| D 可发现性(Discoverability) | 7 | Hugging Face + Kaggle 双平台可搜;但下载量仅 63、无独立项目主页、预印本索引度低 |
| A 可获取性(Accessibility) | 9 | 单文件 1.31 MB 直下,无需注册(HF 侧),load_dataset 一行;Kaggle 侧需账号 |
| I 可互操作性(Interoperability) | 7 | 用标准 GRCh38 键与 HGNC 符号,易 join;但无 VCF、无 HGVS、无 ClinVar VariationID 字段,跨库对齐需自建映射 |
| M 元数据质量(Metadata) | 6 | 数据卡七字段说明完整、有类分布表;但分项数字与实抓不一致、无版本变更日志、无标签定义细则 |
| S 可持续性(Sustainability) | 5 | 个人账号托管、无机构承诺、预印本未评审;CC BY 4.0 保证可再分发,但长期维护无保障 |
| 综合评级 | 6.8/10(良) | 获取与互操作优秀,元数据与治理是短板 |
§16.1 DAIMS 评分的横向参照
把 GLOF 与库内同类条目放在同一把尺子上比较(评分口径一致,均为本条目作者的判读):
| 条目 | D | A | I | M | S | 综合 |
|---|---|---|---|---|---|---|
| GLOF | 7 | 9 | 7 | 6 | 5 | 6.8 |
| cspec (1132) | 8 | 9 | 8 | 7 | 8 | 8.0 |
| proteingym (813) | 8 | 8 | 8 | 7 | 7 | 7.6 |
差距主要落在 S(可持续性) 与 M(元数据) 两项:ClinGen 有 NHGRI 长期资助与 Zenodo 冻结,ProteinGym 有持续多人维护;GLOF 目前是个人账号 + 预印本。这不是对数据质量的否定,而是对「五年后它还在这儿吗」的合理担忧。
§16.1a 为什么 S 只有 5 分
可持续性评分最容易引起争议,这里把扣分理由写清楚:
- 托管人:Hugging Face 账号
victormaricato为个人账号,不是 Mendelics 机构账号; - 承诺:数据卡无"将定期更新"的承诺,也无弃用通知机制;
- 归档:无 Zenodo 冻结快照,也无 DUA 或长期保存计划;
- 依赖:所有内容依赖 HF 平台;平台策略变化会直接影响可用性。
对照:ClinGen CSpec 的每条规格都有 Zenodo DOI,即使官网下线,快照仍可取。这就是 5 分与 8 分的差别。
§16.2 若要让 GLOF 得 8 分,需要补什么
- 增加机器可读的 changelog(每条记录的加入/移除时间);
- 提供 VCF 与 HGVS 双格式;
- 公开标签判读的 SOP 与仲裁流程;
- 把仓库迁到机构账号或 Zenodo 归档;
- 补一份标签一致性抽查报告(如 200 条双人复核)。
§17 典型基因案例解剖
§17.1 PTPN11:GOF 的教科书样本
105 条 GOF、0 条 LOF、13 条 Neutral(本数据集中)。PTPN11 编码 SHP2,其致病主旋律是 Noonan 综合征的激活型变异,集中在 N-SH2 与 PTP 结构域界面,削弱自抑制。数据集中的 GOF 分布与文献报道的界面热点高度一致,可作为"标签质量抽查"的第一个样本。
值得注意的另一个用途:PTPN11 是**"零 LOF"基因**的典型——在这个基因上,任何模型只要把致病变异判成 LOF 就是错的。用这类"单方向基因"构造一个快速的模型体检:如果模型在 PTPN11 上大量输出 LOF,说明它只是在抄致病性分数,完全没有方向感。
§17.2 FBN1:LOF 的极大量样本
736 条(688 LOF + 48 Neutral),以 LOF 为主。原纤维蛋白-1 的截短与错义均可致病(马凡综合征),但错义中相当部分是半胱氨酸替换导致结构域折叠异常——在功能上被归为 LOF。这提示**“LOF"在本数据集中更接近"功能受损"而非严格的"活性丧失”**。
§17.3 CACNA1C:双向机制的困难样本
53 条记录(37 Neutral + 15 GOF + 1 LOF),同时含 LOF 与 GOF 变异,分别对应 Timothy 综合征(GOF,钙通道失活受损)与 Brugada 样表型(LOF)。注意 LOF 侧只有 1 条——双向基因内部的方向样本也极不相称,这是该类基因评测时常见的隐形陷阱。这类基因是检验模型是否真正学到"方向"的最佳试金石:仅凭保守性打分的模型在此类基因上必然失效。
§17.4 TTN:中性变异的海量来源
1,494 条(1,472 Neutral + 22 LOF),绝大多数为 Neutral。TTN 是人体最长的蛋白之一(约 34,000 个氨基酸,与 §2.2 中 AA_POSITION 最大值 35,972 呼应),错义变异极其常见,是自然选择压力低、良性变异富集的典型。用 TTN 做训练会严重加剧类别不平衡,评估时建议单独报告其表现。
§17.4a 一个"反面"样本:什么情况下标签会让人困惑
设想某基因同时含 30 条 LOF、2 条 GOF、200 条 Neutral。模型很容易在该基因上"全判 Neutral+LOF",两条 GOF 永远判不对。这类基因在数据集中并不罕见——GOF 的绝对数量少,导致它在任何单基因评估里都被淹没。对这 2 条 GOF 的处理只有三种:剔除、加权、或单独列出。不处理就等于默认放弃。
§17.5 CFTR:经典 LOF 与治疗策略的对应
211 条(186 LOF + 25 Neutral)。CFTR 的致病机制以 LOF 为主(F508del 为折叠缺陷,G551D 为门控缺陷),正是"LOF 变异可被小分子矫正剂/增效剂挽救"的范式。数据集虽不含治疗信息,但方向标签与治疗策略的对应关系在此基因上最为清晰。
§18 进阶专题
§18.1 为什么 GOF 这么少:三种可能的解释
- 生物学真实:多数单基因病的致病机制确实是 LOF(单倍剂量不足最常见);
- 研究偏差:功能实验更容易设计"是否丧失活性","是否获得新活性"往往需要特殊实验;
- 判读保守性:专家在没有直接功能证据时倾向判 LOF。
三者可能同时成立。若第三点占比大,则未来版本中 GOF 比例可能上升,届时旧模型的 GOF 召回会因标签变更而"下降"——评测者要注意这种"假性退化"。
§18.2 双向机制基因的生物学分类
92 个三标签齐备基因大致可分为四类,各自有不同的方向判定难点:
| 类型 | 代表基因 | 方向判定的难点 |
|---|---|---|
| 离子通道 | SCN1A/2A/8A、CACNA1C、GRIN2B | 同一通道的 LOF 与 GOF 表型可重叠,需电生理细节 |
| 信号通路 | PTPN11、BRAF、PIK3CA | 通路激活与抑制表型可连续过渡 |
| 细胞骨架/中间丝 | GFAP、SPAST | 聚集型 GOF 与单倍剂量不足并存 |
| 转录调控 | KMT2D、ANKRD11 | 剂量敏感,GOF 罕见但存在 |
§18.3 与结构生物学的对接
把 GLOF 的 AA_POSITION 映射到 AlphaFold 结构上,可以直接观察"GOF 热点是否聚集在某个界面或活性中心"。这是目前最有可能做出新发现的用法——数据集本身不含结构信息,但位置字段足够。
§18.3a 位置分布的可视化建议
把每个基因的 AA_POSITION / 蛋白长度 做归一化后画成脊线图(ridgeline),按标签分色,可以一眼看出:
- 某些基因的 LOF 集中在 N 端(截短效应);
- 某些基因的 GOF 集中在特定结构域(如激酶域);
- 中性变异往往均匀分布。
这张图不需要任何模型,是标签合理性的人工体检。如果某基因的 GOF 全部落在无结构的低复杂度区,就值得怀疑标注是否把「测序假象」当成了功能变异。
§18.4 家族级泛化评测的设计
严格评测步骤:
- 用 InterPro/Pfam 给 2,809 个基因分配家族;
- 留出整个家族(如 FGFR 家族)作为测试集;
- 训练集内不含该家族任何基因;
- 报告家族内各基因的表现。
此设计在 GLOF 上没有公开先例,属于可填充的空白。
§18.5 与 AlphaFold 结构特征结合的三种特征
- 相对溶剂可及性(RSA):GOF 若发生在界面,往往埋藏较深;
- pLDDT 局部均值:低置信区的位置特征噪声大,应降权;
- 结构域间距离:自抑制解除型 GOF 常见于两个结构域的接触界面。
三者都可以从 AlphaFold DB 的结构文件直接计算,不需要跑预测。
§19 结语
GLOF 的分量不在体量——1.31 MB 的数据文件在动辄 TB 的组学资源里微不足道——而在于它给 VEP 领域划出了一条新的评测轴:从"治病不治病"转向"怎么致病"。
这条轴的价值在三个方面得到验证:第一,LOF 与 GOF 在药理上对应相反策略,混淆它们的代价是真实的临床与商业成本;第二,蛋白语言模型在 GOF 上的系统性薄弱已被这项任务定义暴露出来;第三,96 个双向机制基因(摘要口径 97,三标签齐备口径 92)提供了天然的控制变量,让"是否学到方向"可被严格检验。
与此同时,它作为预印本阶段、单中心策展、个人账号托管的资源,其数字与标签都带有明显的暂定性。本条目因此坚持三件事:双口径并列、版本时点明示、局限逐条列出。对使用者而言,最负责任的态度是:先用它发现问题,再等它变成标准。
§19.1 给三类读者的最后一句
- 给临床遗传学家:把它当作机制词典的补充索引,不要当作判读依据。
- 给算法研究者:它定义了下一个值得攻克的子问题——方向预测。
- 给数据治理者:它是「预印本 + 个人托管」模式的典型样本,提醒我们元数据与治理同样是数据价值的一部分。
§19.2 一句可以引用的判断
如果要为 GLOF 写一句"短评",建议是:
GLOF 第一次把「功能方向」从临床判读的隐含前提,变成了可训练、可评测的显式标签;它的数据量足以支撑研究,它的稀缺性与治理短板也足以提醒使用者保持审慎。
这句话同时承认了价值与局限,适合写进综述的"现有资源"一节。
§20 从标签到结论:一次完整的评测推演
§20.1 场景设定
假设一个团队要把自研的错义变异功能方向模型(以下简称 M)提交到期刊,审稿人要求"在公开数据上证明你比蛋白语言模型更懂 GOF"。下面是应有的推演步骤。
§20.2 第一步:定义任务边界
三分类还是二分类?这一步决定了后续所有指标的可比性:
- 三分类(Neutral/LOF/GOF):最常见,但 Neutral 占 74.6%,GOF 仅 2.8%;
- 二分类(限定致病子集):只在 28,497 条 LOF+GOF 上做方向判别,避开了中性类稀释,但丢失"是否致病"信息;
- 层级式:先判是否致病,再判方向。
建议:主表报三分类,附表报二分类(致病子集),如此既回应"全局性能"又回应"方向能力"。
§20.3 第二步:切分
- 以
GENE_SYMBOL分组做 5 折; - 额外固定一个"双向基因测试集":96 个 LOF 与 GOF 并存基因(或 92 个三标签齐备基因),训练折中完全不出现这些基因;
- 记录每折的三类条数,若某折 GOF 少于 100 条,合并折或干脆改用分层分组切分。
§20.4 第三步:基线与上界
| 层级 | 方法 | 目的 |
|---|---|---|
| 下限 1 | 全猜 Neutral | 准确率 74.6% 的"蠢基线" |
| 下限 2 | 致病性分数二值化 + 随机方向 | 证明"只靠致病性"不够 |
| 中位 | BLOSUM62 + 位置 one-hot 的 LightGBM | 证明特征工程的下限 |
| 上界(乐观) | 同基因内留出的梯度提升 | 反映"信息充足时"的能力上限 |
只有同时报这四层,审稿人才会接受"我们的模型确实学到了方向特征"。
§20.5 第四步:误差解剖
把错误案例按基因、按结构域、按替换类型(保守替换 vs 非保守替换)交叉统计。经验上最容易出错的三组:
- 双向基因内部的少数方向(如 CACNA1C 仅 1 条 LOF);
- 同一位置的多替换(同一密码子位点既可能是 GOF 也可能是 LOF);
- 膜蛋白跨膜区的替换(结构模型质量差,特征噪声大)。
§20.6 第五步:结论措辞
合规的措辞:“在本数据集的基因分层评测中,M 的 macro-F1 为 …,GOF 召回为 …,显著优于同类方法;受限于 ClinVar 训练污染,该结果不能直接推断为对新发现变异的功能预测能力。”
不合规的措辞:“M 能准确预测变异是 GOF 还是 LOF。”——缺少数据、缺少切分、缺少污染声明。
§20.7 一个反面案例
某团队在 GLOF 上报出「三分类准确率 88%」,审稿人追问后发现:GOF 召回 3%、LOF 召回 61%、Neutral 召回 97%。这实际上是**「致病性 + 常见性」两分类器**,只因为 GOF 样本太少,模型把它当成了噪声。这个案例说明:GLOF 的真正门槛不在模型,而在评测文化——不强制报告每类指标,数据集就会被误用。
§20.8 推演小结表
| 步骤 | 关键动作 | 常见错误 |
|---|---|---|
| 定义任务 | 三分类 + 致病子集二分类 | 只报三分类 |
| 切分 | 基因分层 + 双向基因留出 | 随机切分 |
| 基线 | 四个层级全跑 | 只跑一个基线 |
| 误差解剖 | 按基因/结构域/替换类型 | 只看总体错误率 |
| 结论 | 带污染声明 | 断言"能预测功能" |
§21 与同类功能方向资源的对照
§21.1 四类资源的定位差异
| 资源 | 判定对象 | 规模 | 是否有方向标签 | 更新状态 |
|---|---|---|---|---|
| GLOF | 错义变异 | 112,399 | 有(三分类) | 预印本,活仓库 |
| ClinVar | 全类型变异 | 百万级提交 | 无结构字段 | 周更 |
| ProteinGym | DMS 变异 | 250 万+ | 无(定量分数) | 持续扩充 |
| AlphaMissense | 全部可能错义 | 2.16 亿 | 无(致病性分数) | 模型静态 |
§21.2 它们能互相补什么
- GLOF 补 ClinVar:给致病变异补方向;
- ClinVar 补 GLOF:给 GLOF 提供逐年新增的致病变异来源;
- ProteinGym 补 GLOF:给小部分变异提供定量强度;
- AlphaMissense 补 GLOF:做"是否致病"的前置过滤。
§21.3 一个组合流水线的设想
新变异 → AlphaMissense 打分(是否致病)
→ 若致病:查 GLOF 同基因方向分布(先验)
→ 查 ProteinGym 同源 DMS 数据(若存在,得定量强度)
→ 查 CSpec 该基因的 ACMG 规格(规则层)
→ 人工判读定论
这条流水线里,GLOF 只承担"方向先验"这一环,不承担"定量"与"判读规则"。把它放在正确的位置,它就是一个极高效的部件;放错位置,它就是噪声源。
§21.4 与「变异致病性」基准的边界
库内还有若干以「致病性」为任务的资源(如 AlphaMissense 的底层数据、ClinVar 本身)。它们与 GLOF 的分工可以一句话概括:
致病性基准回答「要不要报告」,GLOF 回答「报告时怎么写机制」。
前者服务于筛查,后者服务于分型。二者在同一份临床报告里各占一段,谁也不能替代谁。
§21.5 与「变异效应」语义谱系的三段论
把变异的"效应"拆成三段,可以更清楚地看出各资源的位置:
- 是否发生(这个变异存在吗)—— 由测序与质控回答;
- 是否致病(该不该报告)—— 由 ClinVar + ACMG 判读 + AlphaMissense 类模型回答;
- 如何致病(朝哪个方向坏)—— 由 GLOF 这类资源回答。
三段之间没有替代关系。任何试图用第三段替代第二段(或反之)的做法,都会在临床上出错。
§22 十组数字的稳定性评级
在使用 GLOF 前,先判断哪些数字能直接写进论文、哪些必须自己重算:
| 数字 | 稳定性 | 建议 |
|---|---|---|
| 112,399(总数) | 高 | 可直接引用,附 commit |
| 2,809(基因数) | 高 | 可直接引用 |
| 83,902 / 25,368 / 3,129 | 高 | 可直接引用,与数据卡一致 |
| 74.6 / 22.6 / 2.8% | 高 | 可直接引用 |
| 97(双向基因) | 中 | 建议同时给出 96 与 92 的定义 |
| 2,749 / 260(分类基因数) | 低 | 必须重算(实抓 2,783 / 259) |
| 19(中位基因样本数) | 中 | 实抓值,预印本未给 |
| 1.31 MB | 低 | 随版本变化 |
| 63(下载数) | 低 | 实时变化,引用须注明日期 |
| 6(重复键) | 中 | 实抓值,可能随版本修复 |
通用原则:凡是"数量型"数字(条数、基因数、占比)稳定性高;凡是"派生型"数字(分类基因数、下载量、文件大小)会随版本漂移,必须注明核验时点。
§22.1 一条实用的「数字引用守则」
写论文/报告时,凡是引用 GLOF 的数字,按下面模板处理:
据 GLOF(HF revision 603256c, accessed 2026-10-17),
共有 112,399 条错义变异(Neutral 83,902 / LOF 25,368 / GOF 3,129),
覆盖 2,809 个基因;其中 LOF 与 GOF 并存的双向机制基因 96 个
(三标签齐备 92 个,摘要自述 97 个)。
模板的三个要点:版本、时点、口径。缺任何一项,读者都无法判断你引的是哪一版。
§22.2 一张"数字可信度"决策图
你要引用的数字是什么?
├── 条数 / 基因数 / 占比 → 高可信,附 commit 即可
├── 分类别的基因数 → 必须自己重算(数据卡有误)
├── 双向基因数 → 必须写明口径(92 / 96 / 97)
├── 下载量 / 点赞 → 实时值,必须写日期
└── 文件大小 → 随版本变化,别写死
§23 十个提问清单:面试与审稿常见问题
- GLOF 的阳性类只有两类,为什么不做多级强度?——因为临床判读本身在强度上常不明确,数据集选择了最稳的粒度。
- 中性类的 AF > 1% 阈值是怎么定的?——预印本未展开,属于未披露的方法学细节。
- 为什么不提供 ClinVar VariationID?——推测出于简化键与避免依赖上游 ID 变化的考虑。
- 6 条重复是 bug 吗?——更可能是重叠基因区域导致的自然现象,但未在文档中说明。
- 双向基因 97 vs 96 哪个对?——取决于定义,建议在论文中明示自己采用哪个。
- 能做零样本评测吗?——可以,但需先说明训练污染的处理方式。
- 能用于临床吗?——不能作为判读依据。
- 数据集会更新吗?——会,HF 上已有至少一次修改记录。
- 为什么不把无义、剪接纳入?——范围限定在错义,因为错义的方向判读最难。
- 最容易被忽略的坑是什么?——把
M(线粒体)当成MT,以及把 accuracy 当评测指标。
§23.3 三个"论文写作用得上"的句子骨架
- 引用规模时:
「GLOF 收录 112,399 条错义变异,覆盖 2,809 个基因,其中功能获得类占 2.8%(3,129 条),呈现出显著的正负样本失衡。」
- 说明局限时:
「受限于 GOF 类的低占比与单中心判读,本结果在功能获得方向上的稳健性仍需在扩充版本中验证。」
- 比较资源时:
「与仅输出连续致病性分数的 AlphaMissense 不同,GLOF 提供离散的功能方向标签,因此二者在评测目的上互补而非替代。」
§23.4 五个"看似合理实则错误"的推论
- “GOF 少,说明 GOF 病少” —— 可能只是"GOF 被研究得少"。推论需要排除研究偏差。
- “某基因全是 LOF,所以该基因只做失活” —— 这只反映了 ClinVar 收载的偏倚,不是生物学定论。
- “中性变异多,说明该基因不重要” —— 耐受性与重要性无直接关系,TTN 就是反例。
- “双向基因少,可以忽略” —— 96 个基因占基因总数 3.4%,但它们在机制研究中的权重远高于此。
- “数据集有 11 万条,足够训练大模型” —— 11 万条对深度学习而言是"小数据",尤其 GOF 只有 3 千条。
§23.5 由 GLOF 引出的十个开放问题
这些问题既可作为课题,也可作为审稿时的「深度测试」:
- 双向机制基因的功能方向是否有共同的结构决定因素?
- GOF 比例在扩版后能升到多少?是否接近真实生物学比例?
- 中性类 AF 阈值从 1% 降到 0.1% 会怎样影响负类质量?
- 能否用 DMS 数据为 GLOF 的 LOF 子集提供定量强度?
- 单中心判读与多中心共识的一致性差多少?
- 显性负效应是否应作为第四类单独标注?
- 线粒体变异是否需要单独的语义体系?
- 同一位置的多替换是否应作为组而非独立样本评测?
- 跨物种保守性在 GOF 预测中的作用有多大?
- 如果引入 AlphaFold3 复合物结构,GOF 召回能提升多少?
§23.6 十个"你以为是 GLOF,其实不是"的混淆
- GLOF ≠ ClinGen 的 GCI(Gene Curation Interface),前者是变异集,后者是基因策展工具界面;
- GLOF ≠ gnomAD 的 LOFTEE(那是预测截短类 LOF 的算法,作用在序列层面);
- GLOF ≠ SIFT/PolyPhen(那是致病性预测工具,输出单个分数而非方向);
- GLOF ≠ GO(Gene Ontology)的 “gain of function” 注释,后者描述基因产物活性的本体关系;
- GLOF ≠ HGMD 的 DM?(disease mutation)标记,后者只标"与疾病相关"而不标方向;
- GLOF ≠ OMIM 的"功能获得性"表型描述,后者是疾病条目的文字叙述,不可机读;
- GLOF ≠ DMS 的 “gain” 突变体筛选,后者的"gain"指实验中的富集表型,与疾病机制无必然关系;
- GLOF ≠ 肿瘤驱动基因的"激活突变"清单(那是 CIViC/OncoKB 的领域,侧重用药证据);
- GLOF ≠ 药物基因组学的"功能改变"表型(如 CPIC 的活性评分),后者服务于给药剂量而非机制研究;
- GLOF ≠ 蛋白工程中的"gain-of-function 定向进化"数据集,后者是人工构建的文库而非自然变异。
每一条混淆都会导致引用错误,尤其第 9 条——CPIC 的活性评分体系与 GLOF 的三分类在语义上相似,但服务对象完全不同。
§24 学术引用与署名规范
§24.1 必须引用的两个维护对象
- 数据集:Maricato V, Schlesinger D, de Souza Moura PN. GLOF: A large-scale expert-curated benchmark dataset of gain-of-function and loss-of-function missense variants. bioRxiv. 2026. doi:10.64898/2026.06.05.729843
- 上游:ClinVar(Landrum et al.)与 gnomAD(Karczewski et al. 等),按各自建议格式引用。
§24.2 版本声明的推荐句式
We used GLOF (Hugging Face dataset victormaricato/glof, revision 603256c, accessed 2026-10-17; 112,399 missense variants across 2,809 genes).
这句话包含平台、仓库、commit、访问日期、规模五个要素,足以支撑复现。
§24.3 常见署名错误
| 错误 | 正确做法 |
|---|---|
| 只写 “GLOF dataset” 不写 DOI | 必须给预印本 DOI |
| 把 HF 的自动 DOI 当论文 DOI | 二者分开写 |
| 声称"源自 ClinGen" | 应写"依据 ACMG/AMP 指南,由 Mendelics 策展" |
| 不写访问日期 | 活仓库必须写 |
§24.3a 引用时的三个常见格式错误示例
错误一(无版本):
We used the GLOF dataset (Maricato et al., 2026).
错误二(DOI 混淆):
GLOF, doi:10.57967/hf/10836 (bioRxiv preprint).
错误三(声称来源错误):
GLOF, a ClinGen-curated benchmark.
三条的共同问题是让人无法定位到你实际用的版本。正确写法见 §24.2 的模板。
§24.4 一份可直接复制的「数据声明」段
Data: GLOF (Maricato et al., bioRxiv 2026, doi:10.64898/2026.06.05.729843),
obtained from Hugging Face (victormaricato/glof, revision 603256c875d9,
accessed 2026-10-17), licensed CC BY 4.0. The dataset comprises 112,399
missense variants across 2,809 genes labeled Neutral/LOF/GOF. All splits
were performed at the gene level. Class imbalance (GOF 2.8%) was addressed
by class-weighted loss; macro-F1 and per-class recall are reported.
Potential ClinVar-derived training contamination is acknowledged.
这段可直接放进方法学,覆盖了平台、版本、许可、规模、切分、不平衡处理、污染声明七个要素。
§24.5 论文标题的准确写法
预印本标题为:
GLOF: A large-scale expert-curated benchmark dataset of gain-of-function and loss-of-function missense variants
三个要点:“benchmark dataset” 不是 “database”;“expert-curated” 不可省略(这是它的核心卖点);“missense” 必须保留(否则会被误读为全类型变异)。
§24.6 与预印本正文的引用边界
需要提醒的是:本条目对"标签如何判定"的描述,主要基于数据卡与公开摘要,预印本正文的详细方法学(尤其是方向判读的具体规则、双人复核机制、仲裁流程)未能取得。因此:
- 引用"致病来自 ClinVar 2023-07、中性来自 gnomAD v3.1"——依据充分;
- 引用"由持证临床遗传学家判读"——依据充分;
- 引用"判读规则的具体细节"——依据不足,请以正文为准。
这条边界必须写清楚,否则本条目就犯了它自己批评的"过度外推"之错。
§25 结语与展望
对 GLOF 的最终判断可以浓缩成一句话:它是一份好问题、中等数据、早期生态的基准。
好问题在于它抓住了 VEP 领域被长期忽略的维度——方向。这个问题的价值不会因为数据集改版而消失。
中等数据在于 2.8% 的 GOF 比例、单中心判读、无强度分级、无上游 ID 字段。这些短板决定了它现在更像"研究原型"而非"行业标准"。
早期生态在于四个月 63 次下载、零点赞、无第三方榜单。它还没有形成引用惯性。
展望三条可预期的演化路径:
- 若数据集扩版:补入更多 GOF(尤其是研究充分的离子通道与 RASopathy 基因),比例可能从 2.8% 升到 5-8%,届时三分类会真正可训;
- 若预印本发表:方法学细节(AF 阈值、方向判读规则、重复键成因)有望补齐,元数据质量会显著提升;
- 若社区建立榜单:GLOF 有机会成为"功能方向"这一子任务的标准评测集,与 ProteinGym 在"定量适应度"上的地位并列。
在那之前,使用者最理性的姿态是:把它当作一面镜子,而不是一把尺子——用它照出模型的盲区,而不是用它给模型打分定论。
最后补充一句给本库读者的说明:本条目的姊妹篇——clinvar(136) 讲"变异-疾病证据"、alphamissense(584) 讲"致病性预测"、proteingym(813) 讲"定量适应度"、clingen(523) 与 cspec(1132) 讲"基因-疾病有效性与判读规则"——共同构成了一条从"证据"到"规则"再到"机制"的完整链条。GLOF 站在这条链的末端,它不能替你完成前面的任何一步,但它能告诉你最后一步该怎么走。
附录 G:核验命令与原始输出留痕
以下命令均在本条目核验时点(2026-10-17)执行,输出为实际结果:
$ curl -sL --max-time 30 https://hf-mirror.com/api/datasets/victormaricato/glof
{"id":"victormaricato/glof","sha":"603256c875d962494ca30153dded1f92972ef928",
"lastModified":"2026-06-08T20:07:52.000Z","createdAt":"2026-04-13T16:20:50.000Z",
"usedStorage":1805358,"license":"cc-by-4.0","doi":"10.57967/hf/10836", ...}
$ python3.11 -c "import pandas as pd; df=pd.read_parquet('glof.parquet'); print(df.shape)"
(112399, 7)
$ ... df.LABEL.value_counts()
NEUTRAL 83902
LOF 25368
GOF 3129
$ ... df.VARIANTKEY.duplicated().sum()
6
$ ... df.groupby('GENE_SYMBOL').LABEL.nunique().value_counts()
2 2069
1 648
3 92
读法:基因按"拥有几种标签"分为 1/2/3 三档;3 档的 92 个即三标签齐备的双向基因;2 档的 2,069 个包含 LOF+Neutral、GOF+Neutral 与 LOF+GOF 三种组合(1,907 + 158 + 4)。
附录 H:与库内条目互链的正文索引
按 R012 纪律,互链说明只写正文、不进 frontmatter。下表列出可互链点与理由:
| 目标条目 | rid | 互链理由 | 建议句式 |
|---|---|---|---|
| clinvar | 136 | GLOF 致病变异的上游来源 | 「GLOF 的全部致病错义变异取自 ClinVar 2023-07 版本」 |
| alphamissense | 584 | 可互评的致病性模型 | 「AlphaMissense 只判致病、不判方向,无法直接完成 GLOF 的三分类」 |
| proteingym | 813 | 定量适应度对照 | 「ProteinGym 问弱了多少,GLOF 问朝哪个方向坏」 |
| clingen | 523 | 基因-疾病有效性上游 | 「GLOF 的基因筛选依赖已确立的基因-疾病关系」 |
| cspec | 1132 | ACMG 规则层 | 「CSpec 的 BP1 在 GOF 机制基因中被改写,GLOF 可为其提供数据支撑」 |
| gnomad | 35 | 中性类来源 | 「中性变异取自 gnomAD v3.1,并以 v4.1 复核」 |
| omim | 159 | 基因-疾病关系 | 「OMIM 提供遗传方式与表型谱系」 |
| uniprot | 37 | 蛋白坐标与长度 | 「AA_POSITION 对应 UniProt 规范序列坐标」 |
| interpro | 1044 | 结构域注释 | 「GOF 热点常聚集于特定结构域界面」 |
互链 URL 一律占位 https://www.qianfanghub.com/ai-ready-dataset/<slug>/0,由主会话入库后统一回填(R018)。
附录 K:本条目修订记录
| 日期 | 事项 |
|---|---|
| 2026-10-17 | 首版。核验 HF 仓库 commit 603256c 与预印本 v1 摘要;实抓 parquet 完成分布与长尾统计 |
附录 J:与本条目相关的检索词
中文:功能获得、功能缺失、错义变异、变异效应预测、蛋白质语言模型、深度突变扫描、变异判读、致病机制、双向机制基因、精准医学。
英文:GLOF, gain-of-function, loss-of-function, missense, variant effect prediction, protein language model, deep mutational scanning, ACMG, ClinVar, gnomAD, benchmark, Mendelic, Maricato, functional mechanism.
附录 I:读者最常问的五个「反常识」
- “数据集只有 1.3 MB,会不会太小?” —— 大小与信息量无关。1.3 MB 里装着 11 万个临床判读结论,每条背后都是一次文献核查。
- “为什么没有患者?” —— 因为任务是变异级而非个体级;患者信息在 ClinVar 原始提交里,GLOF 刻意剥离以符合最小必要原则。
- “为什么不用 HGVS?” —— HGVS 对转录本版本极度敏感,用坐标键反而更稳。
- “为什么 MIT 类宽松许可不用?” —— CC BY 4.0 兼顾学术传播与署名要求,是数据集的常见折中。
- “为什么不做成 5 类(含显性负效应)?” —— 显性负效应在功能层面常与 LOF 难以区分,强行细分会引入更多标签噪声。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- clinvar — 共享标签:基因组学与多组学 / 变异与注释 / 罕见病
- hpo — 共享标签:基因组学与多组学 / 变异与注释 / 评测基准 / 罕见病
- clingen — 共享标签:基因组学与多组学 / 变异与注释 / 罕见病
- cspec — 共享标签:基因组学与多组学 / 变异与注释 / 评测基准
- gnomad — 共享标签:基因组学与多组学 / 变异与注释 / 罕见病
- decipher — 共享标签:基因组学与多组学 / 变异与注释 / 罕见病
- proteingym — 共享标签:基因组学与多组学 / 变异与注释 / 评测基准
- interpro — 共享标签:基因组学与多组学 / 变异与注释 / 评测基准
- cath — 共享标签:基因组学与多组学 / 变异与注释 / 评测基准
- cosmic — 共享标签:基因组学与多组学 / 变异与注释
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

