想像一下,AI 就像是一位算力超強的神探。它在 400 萬個嫌疑犯中,幫我們抓出了深藏在 DNM1 基因內含子深處的變異,還推理出:「這傢伙在大腦神經元裡貼了假告示牌,造出了隱藏剪接點,讓蛋白質多長了 13 個胺基酸!」
這套推理聽起來完美無缺,但在嚴謹的醫學與科學界,沒有任何一家醫院或醫生會單憑 AI 的預測就直接下診斷或開藥。
AI 提出了極具說服力的「假說」,但最終的「定罪宣判」,必須回到培養皿、細胞與試管裡——也就是我們常說的 「Wet lab (是指需要使用液體試劑、化學藥品或生物材料進行實際動手操作與實驗驗證的研究實驗)」!
近年國內許多 AI 醫療專案(如國科會 NSTC 補助、台大團隊執行的計畫)也一再強調 「虛實整合」 的核心價值:AI 的任務是幫我們把範圍縮小數百萬倍,而最終的生物學因果關係,仍必須由 Wet lab來拍板定案。
今天,我們就來看這個六週大癲癇嬰兒案例的最終章:科學團隊如何用高通量實驗,在培養皿裡 100% 證實了 AlphaGenome 的神準預測!
如果沒有 AI,科學家想要在培養皿裡驗證,可能得把整段幾萬個字母長度的基因全部試一遍,耗時費力又像在大海撈針。
但有了 AlphaGenome,AI 已經幫我們圈出了精確的地點!研究團隊精準鎖定 DNM1 外顯子(Exon 10a)上游的 265 個 DNA 字母(鹼基),並設計了一場「高通量飽和突變實驗(High-throughput Saturation Mutagenesis)」:
這是一場教科書級別的假說驗證閉環:
| 實驗與分析階段 | 傳統盲目試錯流程 | AI 指導的精準流程 | 實際Wet lab成果 |
|---|---|---|---|
| 目標鎖定 | 大海撈針,隨機挑選數百個 VUS 做全基因長度測試。 | 精準打擊:直接鎖定 AI 圈出的 DNM1 剪接區域。 | 精準限縮於外顯子上游 265 個鹼基 範圍。 |
| 測試載體 | 僅在常規血液細胞測試,容易看錯重點。 | 組織特異性驗證:針對大腦神經系統機制進行測試。 | 在 5 種細胞系中完成高通量檢驗。 |
| 最終結論 | 耗時數年,往往無法確立因果關係。 | 虛實閉環:電腦預測與細胞實驗高度吻合。 | 成功找到 12 個造成框內延長的變異(含 3 個已知致病變異)。 |
這場實驗的結果令人振奮:AlphaGenome 輸出的剪接預測分數,與實際培養皿實驗分類結果的相符程度(AUPRC)高達 0.943(滿分為 1.0)!
這證明了 AI 不僅沒有猜錯,甚至連腦細胞裡微小的剪接動態都算得一清二楚。這不僅為那個六週大的罕病嬰兒家庭找到了病因、評估了復發風險,更為未來的標靶藥物開發奠定了最堅實的起點。
vcf_parser.py)VCF (Variant Call Format) 是生醫界最核心的檔案格式。當醫院對病患進行基因測序後,只會把病患與標準基因組「不一樣的地方」印成這張身分證總清冊。
今天我們撰寫一個不需要安裝複雜外部套件(零依賴)的基礎 VCF 解析器,自動過濾掉品質不佳的雜訊(只保留 FILTER == 'PASS' 的變異):
vcf_parser.py# vcf_parser.py - 零依賴 VCF 基因身分證解析器
import os
import config
def parse_vcf_file(vcf_path):
"""
讀取並解析 VCF 檔案,自動過濾 quality 低於標籤的列,
回傳格式化變異座標清單: ["chr9:128225994:G:A", ...]
"""
variants_list = []
# 若檔案不存在,自動生成一個測試用的模擬 VCF 檔案 (Mock VCF)
if not os.path.exists(vcf_path):
print(f"💡 [Mock 模式] 建立測試用 VCF 檔案: {vcf_path}")
with open(vcf_path, "w", encoding="utf-8") as f:
f.write("##fileformat=VCFv4.2\n")
f.write("#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n")
# 寫入 5 個候選變異,包含病患的 DNM1 致命變異與低品質雜訊
f.write("chr9\t128225994\t.\tG\tA\t99\tPASS\tDP=45\n")
f.write("chr9\t128225900\t.\tA\tG\t99\tPASS\tDP=50\n")
f.write("chr9\t128225910\t.\tC\tT\t20\tLOW_QUAL\tDP=5\n") # 低品質應過濾
f.write("chr9\t128225920\t.\tT\tC\t99\tPASS\tDP=40\n")
f.write("chr1\t45678900\t.\tT\tC\t99\tPASS\tDP=60\n")
print(f"📄 正在解析 VCF 檔案: {vcf_path} ...")
with open(vcf_path, "r", encoding="utf-8") as f:
for line in f:
# 忽略註解開頭的標頭列 (#)
if line.startswith("#"):
continue
parts = line.strip().split("\t")
if len(parts) >= 7:
chrom, pos, _, ref, alt, _, filter_status = parts[:7]
# 1. 品質過濾:只保留通過品管 (PASS) 的變異
if filter_status == "PASS":
# 組裝成 AlphaGenome API 標準格式 "chr:pos:ref:alt"
variant_str = f"{chrom}:{pos}:{ref}:{alt}"
variants_list.append(variant_str)
print(f"✅ VCF 解析完成!成功提取 {len(variants_list)} 個高品質候選變異。")
return variants_list
if __name__ == "__main__":
vcf_file = "patient_sample.vcf"
candidate_variants = parse_vcf_file(vcf_file)
print("\n📦 提取到的變異座標清單:")
for v in candidate_variants:
print(f" • {v}")