Ground truth 從哪來Where ground truth comes from
實驗資料集有哪些、各自的偏差在哪、能不能拿來對答案。
01一句話只有一句
實驗給你讀數,模擬給你結構,中間那道換算得你自己寫。
02Why should I care?我為什麼要讀這頁
因為 funnel 每一層都在吐數字,但只要沒有任何一層有答案可以對,那些數字就撐不起任何預測宣稱。
用你熟的世界對一次,而且這個類比要對到底。你算了一整排 ΔGads,實驗那邊給你的卻是電流密度與 overpotential。這兩個量的單位不一樣、量的東西不一樣,中間靠的是一條你自己選的連結假設:Sabatier 原理、scaling relation、微觀動力學模型。那條假設是可以被質疑的、是你論文的一部分、而且審稿人會直接攻擊它。你不會假裝吸附能就是電流。
Cas9 這邊完全一樣,只是更慘一點:這條連結假設目前是空白的。 你的輸出是 Å、kcal/mol、接觸數;實驗輸出是每個基因組位點的 sequencing read count,或是 indel 百分比。沒有 Sabatier、沒有 scaling relation、沒有公認的微觀動力學模型把兩邊接起來。
這是壞消息也是機會。壞消息是你不能偷懶;機會是那條連結假設本身就可以是你論文的貢獻,只要你把它明寫出來、並且設計出一個能否證它的檢驗。
03What這是什麼
實際上能拿到的「答案」有四類,規格差異很大。選哪一類本身就是一個 claim。
一、細胞內 DSB 標記法:GUIDE-seq
在活細胞裡轉染一段平端的雙股寡核苷酸(dsODN),它會經由 NHEJ(non-homologous end joining,細胞把斷掉的雙股直接接回去的修復路徑,接的時候會順手把附近的短 DNA 片段夾進去)插進 Cas9 造成的雙股斷裂處,再用定序把插入位點抓出來。
- 靈敏度:原文報告可偵測到突變頻率低至約 0.1% 的位點。
- 輸出:一張位點清單,每個位點附一個 read count。
- 它獨有的東西:真實的染色質、真實的修復環境、真實的細胞內濃度。
- 它的偏差:需要能轉染的細胞株、dsODN 本身有毒性與整合偏好、結果依細胞型別而變。而且它偵測的是被修復過的斷裂,不是切割事件本身。
二、無細胞的體外切割法:CIRCLE-seq 與 Digenome-seq
把純化的基因組 DNA 拿到試管裡,直接用 Cas9 RNP(ribonucleoprotein,先在試管裡把 Cas9 蛋白與 sgRNA 組成複合體再用)切,再定序找切點。CIRCLE-seq 先把基因組 DNA 環化、盡量消掉自由端以壓低背景,Digenome-seq 則是切完直接做全基因組定序,靠「一群 reads 共用同一個 5′ 端」來認出切點。
- 靈敏度:這一類的靈敏度高於細胞內方法。CIRCLE-seq 原文對 6 條非重複序列的 gRNA 抓到 21 到 124 個 off-target 位點,六條全部都比先前的 GUIDE-seq 抓到更多;對 Digenome-seq 則是用約百分之一的定序量拿到更好的訊噪比。Digenome-seq 那邊也驗證出 indel 頻率低於 0.1% 的位點。
- 輸出:位點清單加 read count,跟 GUIDE-seq 同一種格式。
- 它的偏差:沒有染色質、沒有修復、沒有細胞內的濃度與時間尺度。它會列出一堆在活細胞裡永遠不會被切的位點。
CHANGE-seq(2020,同一個團隊)把 CIRCLE-seq 的環化改成 tagmentation 並自動化,通量拉到 110 條 sgRNA、13 個治療相關 loci,一次產出 201,934 個 off-target 位點。對你有兩個用處:一是它是目前規模最大的體外真值資料集,panel 型任務要找對照答案先看它;二是它同時量了染色質效應 —— 細胞內的 off-target 活性在活躍 promoter、enhancer、轉錄區附近高出 2 到 4 倍。這個 2 到 4 倍就是你把 cell-based 資料當真值時,額外吞進殘差裡的東西的量級。
你的 MD 也是裸 DNA、沒有染色質、沒有修復。 所以在量綱與物理內容上,體外切割法(CIRCLE-seq、Digenome-seq)跟你的模擬近得多。多數計算論文反射性地拿 GUIDE-seq 當真值,是因為它比較「生理」,但對一個沒有核小體的 MD 系統來說,那等於把染色質可及性的誤差整包吞進你的殘差裡。優先對體外資料,是這一頁能給你最實際的一個建議。
三、序列型分數:CFD score
Doench 等人 2016 年建立的容忍度矩陣:對「哪一種 mismatch、在哪一個位置」給一個活性保留率,再把一個候選位點上所有 mismatch 的保留率相乘,得到 0 到 1 的分數。資料來自一個針對 CD33 的 27,897 條 sgRNA 變體庫(涵蓋所有單鹼基 mismatch、單鹼基插入與單鹼基缺失),實際用來擬合的是其中 65 條有活性的完全配對 guide 及其 9,914 條變體。
它不是 ground truth,它是 baseline。 這件事必須講死:CFD 是一個預測器,拿預測器當答案就是循環論證。它在你的 benchmark 裡的位置是基準線那一欄,而且是你必須打敗的那一格。
它的限制也要一併知道,因為那正是你的 MD 可能贏的地方:位置之間假設獨立(所以用相乘),以單 mismatch 的量測擬合、多 mismatch 靠連乘外推,不含染色質,常見實作只吃 mismatch 矩陣、不處理 DNA/RNA bulge。最關鍵的一條是結構性的:它的輸入只有 guide 與標的序列,所以它原理上分不出兩個 Cas9 蛋白變體 —— 而變體排序正是你要做的事。
四、已知高保真變體 panel
這是排序型的真值,也是算力受限時現實上唯一負擔得起的那一類。
| 變體 | 突變 | 怎麼來的 | 出處 |
|---|---|---|---|
| SpCas9-HF1 | N497A / R661A / Q695A / Q926A | 理性設計:削弱與 target 股磷酸骨架的氫鍵 | Kleinstiver 等,2016 |
| eSpCas9(1.1) | K848A / K1003A / R1060A | 理性設計:中和 non-target 股溝槽的正電 | Slaymaker 等,2016 |
| HypaCas9 | N692A / M694A / Q695A / H698A | 理性設計:提高 REC3 的構形活化門檻 | Chen 等,2017 |
| HiFi Cas9 | R691A | 細菌雙重篩選,單點 | Vakulskas 等,2018 |
| evoCas9 | M495V / Y515N / K526E / R661Q | 酵母體內定向演化(REC3 隨機庫) | Casini 等,2018 |
| Sniper-Cas9 | F539S / M763I / K890N | E. coli 定向演化,位點與理性設計完全不重疊 | Lee 等,2018 |
- 規模:個位數到十幾個。這就是你的 n。
- 它獨有的東西:它是唯一直接對應到「Cas9 蛋白本身怎麼改」的真值,而你的 workflow 要排序的正是變體。
- 它的偏差:不同論文用不同 guide、不同細胞、不同 assay,所以跨論文的「誰比較專一」排序本身就不可靠。連遞送格式都會翻盤:Vakulskas 等人 2018 年測到同一批變體改用 RNP 遞送後,SpCas9-HF1 的 on-target 只剩野生型的 2%、HypaCas9 只剩 1.7%,而它們在質體遞送的原始論文裡看起來都沒事。更麻煩的是效果 guide-dependent —— Nucleic Acids Research 2023 的一份系統性研究發現,約 20% 的 sgRNA 在高保真變體(HiFi、LZ3)下會顯著損失 on-target 效率,而且損失與 seed 區(緊鄰 PAM 那一段,配對錯在這裡最致命)以及非 seed 區 15 到 18 位的序列脈絡有關。這代表「這個變體更專一」這句話,嚴格說起來是對特定 guide、特定遞送格式才成立的。
04Why為什麼重要
因為 ground truth 的選擇會把你的整篇論文導向不同的結論,而且大部分人不知道自己做了這個選擇。
三個層次:
第一,沒有真值就沒有 benchmark,只有 descriptive MD。 這是最低標準。一篇說「我們模擬了 Cas9,觀察到 HNH 會動」的論文,在 2026 年已經沒有位置。
第二,選 GUIDE-seq 還是 CIRCLE-seq,決定了你的殘差裡裝的是什麼。 選 cell-based,你的預測誤差裡混進了染色質可及性、修復路徑選擇、細胞內濃度 —— 全都是你的模型裡不存在的自由度。選 in vitro,你排除掉這些,但也放棄了「跟臨床相關性」這個賣點。兩個選擇都可以辯護,說不出理由的那個不行。
第三,這個 project 的核心主張需要特定的真值才驗證得了。 你的立場是:高保真變體對 on-target 與 off-target 的結合親和力跟 WT 差不多,差別在 HNH 構形檢查點的動力學,所以平衡結合 ΔG 只能當粗篩、不能當專一性 ranker。要把這句話從觀點變成證據,你需要的真值是變體 panel 的專一性排序,不是位點清單。因為只有 panel 才能同時餵給 ΔG 型方法與你的動力學型方法,看誰排得對。
把結構量(HNH docking 距離、介面接觸數、BSA)定量校準到 cleavage rate 或 specificity ratio 上,就這張地圖收錄的文獻範圍看不到系統性的先例。但這句話的把握度不高,它是一個待查證的宣稱,不是已知事實;任何要以此為基礎的工作,動筆前都應自行完成一次完整的文獻檢索。
05How怎麼做
把真值變成 benchmark task,只有三種現實選項。
Task A:位點排序。 給定一條 guide 與一組候選 off-target 位點,排序哪些會被切。真值用 CIRCLE-seq 的 read count。 → 每一個 mismatched 底物都要一個獨立的 MD 系統。你的一個 5F9R 三元系統是 535,265 atoms、4 replica × 約 87 ns,而共用叢集上可同時執行的 job 數與可用儲存空間都有硬性上限。在這種算力約束下這條路做不起來,不要規劃它。
Task B:變體排序。 給定一組 Cas9 變體,排序專一性。真值用上面那張 panel。 → n 小(個位數),但每個變體只需要一組系統,成本可控 —— 在算力受限時,這通常是三種任務裡唯一負擔得起的一種。
Task C:單一變體的 on/off 對比。 同一個變體,比較 on-target 底物與 mismatched 底物。 → 成本是 Task B 的兩倍,但它直接測到機制,而且自帶 negative control:eSpCas9(1.1) 在 on-target 底物上本來就該是 null,因為它削弱的是對 non-target 股的靜電抓握,完全配對時沒有東西可削。你的模擬給了這件事一個定性旁證 —— 三個 grip 位點裡 K848 貼著 non-target 股(跨 4 replica 平均 0.7 nm),K1003 與 R1060 平均在一到兩奈米外(1.6 nm、1.5 nm);但這三個逐位點距離的 CV 都在 38 到 46%(noise tier),R1060 在其中一條 replica 就貼到 0.5 nm,所以只能定性用,不能拿來斷言那兩個位點碰不到 DNA。要看到效應,底物一定要有 mismatch。
資料處理的六個實務細節:
- read count 一律取對數並正規化到 on-target 位點。 絕對讀數受定序深度與文庫製備影響,比值才有跨實驗意義。
- 用 rank-based 相關(Spearman、Kendall),不要用 Pearson。 read count 分佈極度右偏,Pearson 會被最強的一兩個位點綁架。
- class imbalance 要正視。 同一條 guide 在人類基因組上允許到 4 個 mismatch 的候選位點,量級在數百到數千(隨 guide 落不落在重複序列、以及 PAM 與 bulge 的計數規則而變,動手前用 Cas-OFFinder 對你自己那條 guide 實際數一次),而實測真的有活性的通常少一到兩個數量級 —— 前面 CIRCLE-seq 那六條 gRNA 是 21 到 124 個。在這種比例下 ROC-AUC 會看起來很漂亮但沒有意義,要報 precision-recall。
- 先過可靠性關卡。 只有 CV 分層 裡綠燈的量才有資格進來對答案。拿一個 CV 145.5% 的量來對實驗,你測的是亂數種子。
- 明寫連結假設。 例如:「HNH 停留在催化構形的機率正比於 cleavage rate」。寫成一句可否證的句子,並想好如果它錯了,哪一個觀測會不一樣。
- 穩定度閘要先過。 thermoMPNN 顯示所有文獻專一性變體的 ΔΔGfold 都小於約 1 kcal/mol,也就是它們都是 fold-neutral 的。任何你的流程排在前面、卻明顯破壞摺疊穩定度的候選,都是假陽性。
06When什麼時候用
- 決定 funnel 的最終出口要對什麼答案時。 這是這一頁存在的理由,也應該是你動筆寫方法段的第一件事。
- 當你要主張「ΔG 不適合當專一性 ranker」時。 這個主張只能用變體 panel 驗證,位點清單驗證不了。
- 選擇要模擬哪些系統之前。 真值決定 panel,panel 決定要跑哪些系統,順序不能倒過來。
- 當 reviewer 問「你的方法比 CFD score 好在哪」時。 你需要 CFD 與你的流程在同一組真值上的並排結果。
- 當一個團隊要對齊 funnel 設計時。 「我們最後拿什麼對答案」通常是最能快速把隱性假設攤開來的一個問題。
07When NOT什麼時候別用
-
不要拿 cell-based 的 GUIDE-seq 去 benchmark 一個沒有染色質的 MD。 為什麼會壞:染色質可及性是細胞內切割訊號的主要決定因素之一,而你的系統裡根本沒有這個自由度,於是你的殘差有一大塊來自一個你沒有建模、也不打算建模的東西。你會誤把「模型缺染色質」讀成「這個物理量沒用」。這不是想像出來的顧慮:CHANGE-seq 那份資料量到細胞內 off-target 活性在活躍 promoter、enhancer、轉錄區附近高出 2 到 4 倍。怎麼看出它壞了:把你的預測誤差對位點的染色質狀態(DNase 或 ATAC 這類開放度訊號)作圖,如果誤差跟可及性相關而跟 mismatch 位置無關,病因就確定了。正解:改對 CIRCLE-seq 或 Digenome-seq,或明寫「本工作只解釋 chromatin-free 的切割傾向」。
-
不要把 read count 直接當 cleavage rate。 為什麼會壞:read count 裡混了 PCR 擴增偏差、定序深度、位點的 mappability,cell-based 的還多混一層修復路徑選擇。它是一個單調但非線性、且量綱不明的替代指標。怎麼看出它壞了:同一個位點在兩篇論文的絕對讀數差一個數量級,但相對排序大致相同 —— 這就是在告訴你只有排序可用。正解:只用秩,並且在方法段寫明「本工作將 read count 視為序位資訊」。
-
不要跨論文合併變體 panel 當成單一排序真值。 為什麼會壞:不同 guide、不同細胞株、不同 assay、不同遞送格式,而且效果本身就是 guide-dependent(約 20% 的 sgRNA 在高保真變體下會顯著掉效率)。你合併出來的「共識排序」可能根本不對應到任何一個真實的實驗條件。怎麼看出它壞了:同一對變體在兩篇論文裡的相對排序翻過來 —— HF1 與 HypaCas9 在質體遞送下是模範生、在 RNP 下 on-target 只剩 2% 與 1.7%,就是現成的例子。正解:以單一篇同時比較多個變體、用同一組 guide 與同一種遞送格式的研究為主軸,其他當佐證。
-
不要用 CFD score 當 ground truth。 為什麼會壞:循環論證。你的 MD「準」只會代表它學到了序列模型已經知道的東西,而那正是你想超越的對象。怎麼看出它壞了:你的流程跟 CFD 的相關性遠高於它跟任何實驗資料的相關性。正解:CFD 永遠只能站在 baseline 那一欄。
-
不要在 n 小於 10 的 panel 上報 AUC 或 p 值。 為什麼會壞:這種樣本量下 AUC 只能取少數幾個離散值,對單一點的移動極度敏感,信賴區間寬到無用。怎麼看出它壞了:做 leave-one-out,看 AUC 的跳動範圍。正解:直接把排序表登出來,讓讀者看那幾個點,並用「排序方向一致」而非「顯著相關」來敘述。
-
在 metric 還沒過可靠性關卡之前,不要去對答案。 為什麼會壞:量測誤差會把真實相關係數往 0 壓,這是 衰減公式 的必然結果。你會把一個物理上正確的量誤判成無效,然後永遠不再回頭看它。怎麼看出它壞了:換一組亂數種子重跑,跟實驗的相關係數變號或掉一半。
-
不要在 on-target 底物上測專一性變體。 為什麼會壞:高保真變體的設計原理就是在有 mismatch 的時候才削弱結合或提高構形門檻,on-target 上它們本來就該跟 WT 差不多。怎麼看出它壞了:你的 WT 與變體差異落在跨 replica 誤差棒之內。正解:底物一定要帶 mismatch,這是 Task C 存在的理由。
08Project Lens跟我的 project 多相關
為什麼是五星: 因為在任何以 MD 排序變體的流程裡,ground truth 都是最容易被跳過、也最先被審稿人攻擊的一環。可靠性分層 回答的是「穩不穩」,但只要沒有任何一層對過實驗答案,整條流程就只能宣稱精密、不能宣稱正確。用審稿人的語言講:精密不等於指向正確的東西。這一問會出現在第一輪意見的第一段。
為什麼不是更低: 還有一個算力上的理由。可同時執行的 job 數與可用儲存空間都有硬性上限,能燒的 GPU 時數因此是封頂的。整理一份可防守的 ground truth panel 完全不需要 GPU —— 它是文獻工作加試算表工作。在算力封頂的專案裡,不燒算力卻能決定論文成敗的工作,優先序不可能低於五星。
誠實的限制: 五星是優先序,不是可行性保證。Task A(位點排序)在這種算力下明確做不起來,規劃它等於浪費時間;剩下兩種任務裡,變體排序是負擔得起的那一種,on/off 對比則提供機制證據,而且沒有染色質的系統應該優先對體外資料而非 cell-based 資料。至於「結構量到 cleavage rate 的定量校準有沒有人做過」這件事,本頁的把握度不高,動筆前一定要自己查一次再決定要不要寫成 novelty。
具體怎麼用: 三件不燒 GPU 的事可以先做完 —— 把變體 panel 的突變、出處、原文用的 guide、assay 與遞送格式建成一張表;把變體排序任務的 baseline 跑出來(注意這裡不是 CFD,CFD 分不出蛋白變體,要跑的是突變數/淨電荷變化這類 trivial 特徵,以及 ΔΔG 型打分);把連結假設寫成一句可否證的句子並 commit 進 git。三件都不燒 GPU,卻會直接決定接下來要跑哪些系統。
09Reviewer Thinkingreviewer 會問什麼
你用 GUIDE-seq 當真值,但你的模擬沒有染色質,你怎麼分離這兩個效應?點開看參考答案
最好的回答是一開始就不要落入這個陷阱:優先對 CIRCLE-seq 或 Digenome-seq,因為它們跟你的系統一樣是 chromatin-free,物理內容對得起來。如果基於臨床相關性一定要用 cell-based 資料,那就必須加做一個檢查:把預測誤差對染色質可及性作圖,證明殘差不是由可及性主導。把「我的模型缺什麼」講在前面,比被指出來好得多。
你的 panel 只有五到八個變體,這個相關係數的信賴區間是多少?點開看參考答案
直接給,而且要寬得誠實。在這種 n 下區間通常跨過 0,此時正確的敘述是「排序方向與實驗一致,但樣本量不足以支持定量宣稱」。同時說明 n 為什麼只能這麼小:單一系統 535,265 atoms、4 replica × 約 87 ns,加上叢集併發與儲存的硬性上限。把限制歸因到算力上限並給出可跑的系統數,遠比含糊帶過有說服力。
你的計算輸出是 Å 與 kcal/mol,實驗輸出是 read count,你的連結假設是什麼?可以被否證嗎?點開看參考答案
這是這一頁真正的核心一問。答案必須是一句明確、可檢驗的話,例如「HNH 停留在催化構形的比例正比於相對 cleavage rate」。接著要說出否證條件:如果某個變體的 HNH docking 比例明顯較低、實驗上的相對切割效率卻不低,假設就有問題。提出假設不扣分,提不出否證條件才扣分。
為什麼不直接用 CFD score?你的方法好在哪?點開看參考答案
先給並排的 baseline 表,再談機制。如果你只是小勝,就不要賣「更準」,改賣「提供序列模型看不到的機制解釋」—— 例如 CFD 完全無法區分兩個 mismatch 位置相同但蛋白端不同的變體,而變體排序正是你的方法能做而它做不到的事。這個定位比硬拚準確度誠實,也更難被打掉。
你的 negative control 是什麼?點開看參考答案
eSpCas9(1.1) 在 on-target 底物上,這是免費且乾淨的。它的機制是削弱對 non-target 股的靜電抓握,在完全配對的底物上沒有東西可削,所以本來就該 null。你的結構數據給了這個前提一個定性旁證:三個 grip 位點裡 K848 貼著 non-target 股(跨 4 replica 平均 0.7 nm),K1003 與 R1060 平均在一到兩奈米外(1.6 nm、1.5 nm)。這裡要主動補一句限制:這三個逐位點距離的跨 replica CV 都在 38 到 46%,R1060 在其中一條 replica 就貼到 0.5 nm,所以它撐得起「K848 最靠近」這種定性敘述,撐不起「另外兩個接觸不到 DNA」這種二分結論。如果你的流程在 on-target 底物上就把它判成「更專一」,那訊號來源是胺基酸組成而不是機制。
你有沒有排除掉「這些變體只是比較不穩定」這個平凡解釋?點開看參考答案
有,而且很便宜。thermoMPNN 顯示所有文獻專一性變體的 ΔΔGfold 都小於約 1 kcal/mol,全部通過穩定度閘、屬於 fold-neutral。把這一項當成 panel 的入場檢查寫進方法段,可以一次擋掉這類質疑。
10Common Mistakes最常犯的錯
- 拿 CFD score 當答案。 後果:循環論證,你證明的只是「我的 MD 像一個序列模型」。正解:CFD 永遠是 baseline,答案要來自實驗。
- 反射性地選 GUIDE-seq 因為它「比較生理」。 後果:把染色質可及性的誤差整包吞進殘差。正解:無染色質的模型優先對體外資料,並在方法段寫明理由。
- 把 read count 當成連續的 cleavage rate 去做 Pearson 相關。 後果:結果被最強的一兩個位點綁架。正解:取對數、正規化到 on-target、只用秩相關。
- 跨論文拼一個「共識」變體排序。 後果:那個排序可能不對應任何真實實驗條件。正解:以單一篇同 guide 同 assay 的多變體比較為主軸。
- 在 on-target 底物上比較高保真變體與 WT。 後果:看到 null 之後誤以為方法無效。正解:底物必須帶 mismatch。
- 在小 panel 上報 AUC 與 p 值。 後果:leave-one-out 一做就崩。正解:登出原始排序表,用「方向一致」敘述。
- 沒有把連結假設寫出來。 後果:整篇論文最脆弱的一環變成隱性假設,reviewer 一戳就倒。正解:明寫成一句可否證的話,並附上否證條件。
11Further Reading讀哪幾篇
12Summary三句話
能拿來當答案的實驗資料有四類:細胞內的 GUIDE-seq、體外的 Digenome-seq 與 CIRCLE-seq/CHANGE-seq、序列型的 CFD score(它是 baseline 不是真值),以及已知高保真變體的排序 panel。對一個沒有染色質、沒有修復的 MD 系統來說,體外資料在物理內容上對得起來,而變體 panel 是這種算力預算下唯一負擔得起的主線任務。真正的難關不在資料難拿,而在計算輸出的 Å 與 kcal/mol 跟實驗輸出的 read count 之間那道量綱落差 —— 那條連結假設沒有人會替你寫,而它會是審稿人攻擊的第一個點。