如果學校體檢報告顯示你的身高排在全校前 1%,這是否意味著你 100% 確定會成為職業 NBA 籃球員?
當然不!身高很高(前 1%)代表你具備了極高的人才優勢與被球探關注的「優先權」,但你最終能不能打進 NBA,還取決於你的運球技術、體能訓練、場上位置,以及球隊願不願意選你。
在基因醫學的世界裡,許多人看到 AI 給出一個「高風險評分」時,常會陷入相同的誤解,以為這代表病患有九成的機率會生病。但 Google DeepMind 的 AlphaGenome 團隊特別強調:AVI 分數提供的是「優先級(Prioritization)」,絕對不是「罹病機率(Probability)」!
今天,我們就來拆解 AVI 分數的數學真相,並看看 AI 如何透過「特徵歸因」幫我們打開黑盒子!
AVI 分數採用了類似傳統 CADD 工具的 Phred 標度(PR Scale)。這是一種對數轉換的數學表達方式,代表的是一個變異在全人類 90 億種可能變化中的 「罕見與破壞力排名」:
當一個變異拿到了 20 分的高分,只代表 AI 幫你把這顆可疑的變異從幾百萬個字母的大海裡 「撈到了桌面上」,提醒醫生:「這顆變異非常不尋常,請優先檢查它!」
至於病患究竟會不會發病?這還取決於:
AI 負責「排序與定位」,而最終的臨床診斷,依然需要人類專家結合實際症狀來定奪。
如果 AI 系統只丟出一個冷冰冰的高分數,卻不解釋原因,這就像股票分析軟體只給你顯示「這檔股票 95 分,買進!」,卻不告訴你原因一樣。專業操盤手需要知道:這 95 分是因為公司賺大錢、外資大買,還是單純的市場炒作?
在基因學中也是一樣, 兩個 AVI 分數完全相同的變異,背後的生物學機制可能截然不同:
| 候選變異 | AVI 分數 | 特徵歸因(主要信號來源) | 白話機制解讀 | 後續驗證與臨床推論方向 |
|---|---|---|---|---|
| 變異 A | 22 (前 1%) | AlphaMissense(蛋白質結構破壞) | 實體零件壞掉:蛋白質的 3D 物理結構被破壞。 | 檢驗目標蛋白質是否發生結構失穩或功能喪失。 |
| 變異 B | 22 (前 1%) | AlphaGenome(RNA 剪接異常) | 剪接藍圖出錯:蛋白質藍圖沒壞,但 RNA 剪接位置出錯。 | 設計細胞實驗,檢驗 mRNA 長度是否異常。 |
| 變異 C | 21 (前 1%) | AlphaGenome(轉錄因子結合度下降) | 開關被稍微調暗:僅在特定神經元中些微降低產量。 | 可能不致命,而是影響某種複雜的生理性狀。 |
如果沒有特徵歸因,醫生就無法知道變異 B 需要做 RNA 剪接實驗,而變異 A 需要做蛋白質結構分析。DeepMind 刻意保留了特徵歸因,讓每一個高分背後都有清晰的證據鏈!
contact_map_2d.py)AlphaGenome 能在 1 Mb(100 萬鹼基)的超長視野 下,輸出 2,048 bp 解析度的 2D 接觸矩陣(Contact Maps)。今天我們來計算 3D 空間折疊結構是否因為突變而發生了崩塌!
contact_map_2d.py# contact_map_2d.py - 2D 染色質 3D 折疊矩陣解析器
import numpy as np
import config
from hello_alphagenome import fetch_variant_raw_response
def compute_2d_contact_delta(raw_response):
"""計算 2D Contact Map 矩陣突變前後的落差"""
tracks = raw_response.get("tracks", [])
contact_track = next((t for t in tracks if t.get("assay_type") == "contact_maps"), None)
# 若 API 無 2D 矩陣,提供 10x10 的模擬對角接觸矩陣
if not contact_track or "ref_signal_2d" not in contact_track:
ref_mat = np.eye(10) * 0.5
alt_mat = np.eye(10) * 0.5
alt_mat = 0.65 # 模擬第 2 區與第 7 區跨越空間打電話!
alt_mat = 0.65
else:
ref_mat = np.array(contact_track["ref_signal_2d"])
alt_mat = np.array(contact_track["alt_signal_2d"])
delta_mat = alt_mat - ref_mat
max_3d_impact = float(np.max(np.abs(delta_mat)))
return {
"matrix_shape": delta_mat.shape,
"max_3d_impact": max_3d_impact,
"delta_matrix": delta_mat
}
if __name__ == "__main__":
raw = fetch_variant_raw_response(config.TEST_VARIANT)
res_3d = compute_2d_contact_delta(raw)
print("\n" + "="*50)
print(f"📐 3D Contact Map 矩陣維度: {res_3d['matrix_shape']}")
print(f"⚠️ 最大 3D 空間折疊改變量: {res_3d['max_3d_impact']:.4f}")
print("="*50)
明天,我們將迎來模組三的最高潮!我們將拿著這套 AVI 評分與特徵歸因武器,親自拆解那名六週大幼兒的「頑固型癲癇謎團」,看看 AI 是如何在 98% 的基因暗物質中精準揪出真兇的!