驗證與實驗合作Validation and the experimental loop
怎麼證明你的分數有預測力,以及該要求實驗端量什麼。
01一句話只有一句
驗證端點必須是功能與速率,平衡結合只能當次要。
02Why should I care?我為什麼要讀這頁
因為這一步決定你的 paper 是可證偽的還是自證的,而兩者在稿子裡看起來一模一樣。
想像最順利的情況:你的分數跟實驗端給的 SPR KD 相關係數 0.9,圖上一條漂亮的直線,全綠。你證明了什麼? 你證明了你的計算能預測結合。你沒有證明它能預測編輯效率,更沒有證明它能預測專一性。如果你的排序軸本來就是平衡結合 ΔG,那這條直線只是在說「我的 ΔG 跟你的 ΔG 對得起來」——那是力場與取樣的驗證,不是機制的驗證。
這件事對你來說應該很熟。你不會用另一套 DFT 算出來的 ΔGH 去「驗證」你的新描述符——兩個數字共享同一套物理假設,相關性再漂亮也只是自證。真正的驗證是對到實驗的 exchange current density 或 overpotential。Cas9 這邊完全同構:KD 是計算端的同溫層,cleavage rate 才是外面的世界。
而且落差大到不可忽視。Chen 等人量到**刪掉整個 REC3 domain(ΔREC3)**讓 cleavage rate 掉了約 1000 倍,而它對 on-target 底物的親和力仍接近 WT。同一個擾動,用速率看是三個量級的效應,用親和力看是零。 ΔREC3 是 domain 刪除、不是你會放進 panel 的點突變變體,但正因為它極端,它把「結合與切割可以完全脫鉤」證得最乾淨。如果你的驗證端點選了親和力,高保真變體這一整類都會被你的驗證系統判定為「沒有效應」。
03What這是什麼
驗證端點分三層。這個分層不是重要性排序,是**「它能證明什麼」的排序**。
Tier A · 主要端點:功能與動力學
- In vitro cleavage rate。 single-turnover 條件下的切割速率常數。這是最直接對應「HNH 檢查點放不放行」的量,也是動態範圍最大的量。
- Cellular editing efficiency。 細胞裡的 indel 百分比,用 NGS 讀。它是 endpoint 而非 rate,而且中間還隔著遞送效率、染色質可近性與細胞的修復途徑選擇——它與 cleavage rate 之間是機制上相關,但不是一對一。用它的理由是它是最終使用者在乎的量,不是因為它乾淨。
- Time-resolved engagement。 smFRET 的滯留時間分布、stopped-flow 的構形轉換速率、單分子的 dwell time。這一類直接量到構形檢查點本身,是最貼近你 MD 敘事層的實驗量。
- Specificity ratio。 on-target 活性除以 off-target 活性。這是你真正想預測的東西,而它必然是兩個 Tier A 量的比值——不可能從單一條件、單一底物得到。
Tier B · 次要端點:平衡結合
- SPR、BLI 的 KD,ITC 的 ΔG。
- 正當用途有兩個:一是當健康檢查閘門——如果一個變體連 DNA 都綁不住,那它的低活性跟專一性無關,只是壞掉了;二是校準 ΔG 類粗篩方法(MM-PBSA、FEP)的準確度,那本來就是它們該對到的量。
- 不正當用途:拿來當專一性模型的主要驗證。
Tier C · 外部測試:全基因體 off-target profiling
- GUIDE-seq、CIRCLE-seq、Digenome-seq 這一類。
- 它們的價值在最後的外部測試,不在早期校準。原因是讀數受偵測極限與文庫製備偏差影響,而且本質上是 endpoint 而非 rate。
- 而且這一類要再分兩種,它們的假陽性/假陰性來源相反。 GUIDE-seq 在活細胞裡做,多一層染色質可近性與細胞型別的過濾,會漏掉「酵素分得清、但染色質蓋住」的位點;CIRCLE-seq 與 Digenome-seq 在試管裡對裸露基因體 DNA 做,沒有染色質這一層,會報出一堆細胞裡根本碰不到的位點。兩種數據不能疊在同一張圖裡當同一種 ground truth。
- 它們最擅長回答「這個位點有沒有被切」,不擅長回答「被切的速率是多少」。當成二元或分級標籤用,不要當成連續的 ground truth 排序。
問自己:「如果我的模型完全正確,這個實驗量會怎麼變?如果我的模型完全錯誤呢?」兩個答案必須不一樣。 平衡結合對高保真變體的兩個答案幾乎一樣(都是「跟 WT 差不多」),所以它無法驗證。
04Why為什麼重要
因為驗證的邏輯是證偽,而一個無法區分「模型對」與「模型錯」的端點沒有證偽能力。
三層論證:
第一,映射不是單射。 從 KD 到 specificity 的映射會把大量不同的動力學行為壓成同一個數字。Cas9 的專一性由 HNH 構形檢查點決定:REC lobe 先感測 R-loop 遠端的配對品質,通過了才放行 HNH docking。這整個過程發生在結合之後、切割之前,平衡結合常數對它完全不敏感。高保真變體(SpCas9-HF1、eSpCas9(1.1)、HypaCas9)對 on/off-target 的結合親和力與 WT 差不多,差別全在這個檢查點——這就是你的 project 的核心科學論點,而驗證設計必須跟這個論點對齊。
第二,動態範圍決定訊噪比,而你的樣本數少得可憐。 校準集現實上是 3 到 5 個變體,加上盲測集整個 panel 也就 10 個上下。在這種 n 之下,端點的效應量大小直接決定你看不看得見訊號。切割速率在 Cas9 的擾動上可以差到三個量級(ΔREC3 的 ~1000 倍是上限案例);KD 通常只差幾倍,而 SPR 本身的批次間變異就不小。選端點也是在選訊噪比,這跟你選 metric 時看 CV 是同一件事。
第三,方向也可能是錯的。 一個變體活性下降,可能是因為它變得更挑剔(好),也可能是因為它折疊變差或整體失活(壞)。平衡結合分不出這兩者,功能端點加上 on/off 比值才分得出來。順帶一提,序列層級的穩定性預測(thermoMPNN 之類)在這裡有用:所有文獻上的專一性變體都落在 ΔΔGfold < ~1 kcal/mol,也就是 fold-neutral。這給了你一個事前的篩選閘:一個算出來明顯去穩定的變體,就算實驗上活性下降,也不該被解讀成專一性提升。
05How怎麼做
需要和實驗端共同敲定的規格清單
1 · 校準集:3 到 5 個已知功能結果的變體。
建議組合:WT、SpCas9-HF1、eSpCas9(1.1)、HypaCas9,可以的話再加 HiFi Cas9(R691A)。這些變體在文獻上有明確的功能表型,設計理念分屬兩類:SpCas9-HF1 與 eSpCas9(1.1) 是削弱蛋白對 DNA 骨架與 non-target 股的非專一接觸,HypaCas9 動的是 REC3、走的是提高構形門檻。
注意「設計理念」不等於「作用機制」。 Chen 等人的 smFRET 顯示前一類實際上也是透過同一個構形閘門起作用——在錯配標的上被鎖在非活化態。這個落差本身就是你的 workflow 值得驗的假說:如果你的分數只抓得到「接觸被削弱了多少」、抓不到「構形門檻被抬高了多少」,那 HypaCas9 會是它最先排錯的那一個。把這個可證偽的預測寫進事前凍結的規格檔(含 commit hash),它比任何相關係數都更能證明你的模型有機制內容。
硬性要求:同一個 guide、同一個 target、同一批試劑、同一個實驗室、同一套條件。 從不同 paper 拼湊出來的數字不能當校準集——那些數字之間的差異裡混著實驗室效應,而實驗室效應的大小可能跟變體效應同量級。
變體的排名會隨遞送格式翻盤。Vakulskas 等人在 RNP 格式下量到的 on-target normalized median 是:HiFi Cas9(R691A)82%、eSpCas9(1.1) 20%、SpCas9-HF1 2%、HypaCas9 1.7%——而同一批變體在質體遞送下看起來都還過得去。如果你的實驗端用 RNP,SpCas9-HF1 與 HypaCas9 會近乎全死,你精心挑的五個點會剩下三個,而且死掉的那兩個正好是「提高構形門檻」那一路的代表。
所以格式要在第一次討論就問清楚,並寫進規格檔。這也是一個一般性的方法學提醒:篩選格式與應用格式不一致,會讓變體排名整個翻掉——這正是「用平衡結合指標篩、卻期待動力學表現」的實驗版佐證。
2 · 底物:mismatched panel,不是只有 on-target。
至少要涵蓋 seed 區(PAM-proximal,PAM 旁約 10 到 12 nt)、spacer 中段、PAM-distal 三處的單錯配,再加一組雙錯配。理由是機制性的,而且沿著 spacer 走過去,壞掉的方式會換三次:
- 緊貼 PAM 的那一兩個位置是死區,不要浪費一組實驗在上面。 Sternberg 等人 2014 的單分子實驗顯示,緊鄰 PAM 的錯配會讓 Cas9 對該位點完全不結合。連 WT 都綁不住,所有變體當然看起來一樣——那不是因為它們真的一樣,是因為動態範圍被壓到地板。
- PAM-distal 錯配仍然結合得住,卡住的是結合之後的構形檢查點。 這是變體之間最可能分得出高下的區間,也是你的 MD 敘事層講的那個機制。
- 中段與 seed 外緣不能省。 Chen 等人報告 HypaCas9 相對 SpCas9-HF1 與 eSpCas9(1.1) 的優勢正好落在 spacer 中段與 PAM-proximal 側;只掃 PAM-distal 會看到「幾個變體都比 WT 好」,但看不出它們之間誰更好,而排序要的正是後者。
這一項也是你 MD 端的必要輸入:你的雙差打分設計需要兩組底物條件,實驗端與計算端必須用同一組序列。所以規格檔裡要放每個底物的完整序列,不能只寫「3 個 mismatch」這種描述。
3 · 讀數:要 rate,不要只要 endpoint。
如果對方只能給終點值(例如 24 小時的 indel 百分比),退而求其次的要求是至少三個時間點,讓你能擬合出速率或至少看出順序。終點值有飽和問題:兩個速率差十倍的變體,跑到 24 小時可能都是 90%,你會看到一片平的。
4 · 條件與原始資料。
酵素濃度、RNP 比例、溫度、Mg²⁺ 濃度全部列出來(這些會改變絕對值);資料要逐 replicate 的原始數字,不要只給平均值與星號。你要算的是相關係數,星號對你沒用。
5 · 一份「你們量不到什麼」的清單。
偵測下限、動態範圍上限、哪些位點因為 mappability 或引子設計而無法讀。這份清單決定了你的預測有沒有可能被驗證——預測一個實驗端量不到的差異,等於沒有預測。
Blind test 怎麼設計
- 分割。 校準集(你看得到實驗值)與測試集(你看不到)。測試集的實驗數據由實驗端保管,在你交出預測之前不揭露。測試集至少要跟校準集一樣大,否則沒有意義。
- 先凍結,再交件。 打分公式已經在分析與打分那一步凍結了;這裡再交出測試集每個變體的分數、排序、誤差棒、以及預測的方向,帶時間戳(git commit 或寄一封 email 給對方都行,重點是不可事後修改)。
- 評估指標事先宣告。 三選一或並列:panel 上的 Spearman ρ、top-k enrichment(前 k 名裡有幾個是真的高專一性)、pairwise accuracy(任兩個變體的相對順序猜對的比例)。在拿到資料之前寫下來,否則你會事後挑一個看起來最好的。
- Null model。 用 permutation 產生隨機排序的 ρ 分布,你的值要放在這個分布上比較,而不是跟 0 比較。
- 要打敗的 baseline。 至少兩個免費的序列基準:ESM-2 的保守性分數與 thermoMPNN 的 ΔΔGfold。這兩個特別適合當 baseline——thermoMPNN 對所有文獻專一性變體都給 fold-neutral 的結果(< ~1 kcal/mol),代表它本身無法區分專一性,所以它幾乎是一個誠實的 null;而 ESM-2 這類序列演化訊號與結構/序列設計模型的分數相關性很低,兩個正交的先驗都該放進來比。如果你花了幾百 GPU-hour 的分數贏不過一個幾分鐘就跑完的序列分數,這件事必須寫出來。
- 事前寫下「什麼算成功」。
n 在 5 到 10 這個範圍,相關係數的統計檢定力非常差。先把兩個很容易混的東西分開:下面給的是臨界值(觀測到的 ρ 要多大才會被判為顯著),不是 power(真值是某個 ρ 時你抓得到它的機率)。Spearman 臨界值查表的量級是:n = 6 在雙尾 0.05 下大約要 0.89、單尾大約 0.83;n = 10 雙尾大約 0.65。臨界值被推到這麼高,就等於說在這個 n 之下 power 本來就很低——除非效應大到誇張,否則你根本沒有機會顯著。(投稿前請自己核一次表。)
這代表兩件事。 第一,不要把成功判準寫成「p < 0.05」,你多半達不到,而且達到了也可能是假的。第二,正確的做法是把這一輪定位成 pilot / 校準,成功判準寫成效應量與方向一致性(例如:所有已知高專一性變體的分數都落在 WT 之上,且 pairwise accuracy 顯著高於 permutation null 的中位數),並明說 power 不足、需要更大的 panel 才能下強結論。先自己說出來,比被 reviewer 說出來好。
06When什麼時候用
- 在跑變體之前就把資料需求談定。 這是這一頁最違反直覺的一句:驗證設計屬於流程的第 5 步,不是第 7 步。實驗端的排程以週到月計,你晚一個月開口就晚一個月拿到。
- 當團隊要對排序軸取得共識時。 把話講成「我們的驗證端點是 cleavage rate,所以排序軸不能只有 ΔG」,比停留在理論層討論更容易收斂——它把方法學選擇變成一個可執行的實驗設計問題。
- 當你要決定下一輪算力花在哪時。 驗證結果會告訴你是 metric 不夠好、還是取樣不夠、還是底物設計錯了,這三者的補救成本差很多。
- 當你要寫 abstract 的第一句時。 主張的強度必須與你握有的驗證等級匹配。
- 每一次擴充變體 panel 時。 新變體要不要進校準集還是測試集,這個決定必須在算之前做。
07When NOT什麼時候別用
- 不要把平衡結合當成主要驗證端點。 為什麼會壞: 高保真變體對 on/off-target 的親和力與 WT 差不多,差別在構形檢查點的動力學;KD 對這個機制不敏感,所以它無法區分「模型對」與「模型錯」。怎麼看出它壞了: 你的校準集裡所有變體的 KD 都落在幾倍以內,而它們的功能表型在文獻上差三個量級——那一刻你就知道端點選錯了。替代: 把 SPR/BLI 降級為健康檢查閘門。
- 不要用 on-target editing efficiency 驗證專一性分數。 為什麼會壞: 專一性變體的設計目標就是保住 on-target,所以在 on-target 上它們該跟 WT 差不多。怎麼看出它壞了: 全部變體的編輯效率都落在你自己量到的批次間變異範圍內、而且沒有方向性——這與 eSpCas9(1.1) 在 on-target 底物上是 null 的計算結果是同一回事。替代: 驗證量必須是比值或雙差。
- 不要在看過實驗數字之後調整分數、換權重、或把「不合的」變體移出 panel。 為什麼會壞: 你的自由度遠多於資料點,事後選擇必然高估預測力,而且高估的幅度無法量化。怎麼看出它壞了: 從結果看不出來——這正是它危險的原因。唯一防線: 交件時間戳。若真的必須修改,同時報改前與改後。
- 不要用 n = 3 的相關係數宣稱預測力。 為什麼會壞: 三個點永遠能連出一條線;相關係數在這種 n 下的抽樣分布幾乎覆蓋整個 [−1, 1]。怎麼看出它壞了: 拿掉任何一個點,ρ 就大幅改變。做法: 報 leave-one-out 的 ρ 分布,而不是單一數字;並把結論寫成 pilot。
- 不要用跨 lab、跨 guide 拼湊的文獻數字當校準集。 為什麼會壞: 不同實驗室、不同 guide、不同細胞株之間的變異可能跟變體效應同量級,你會把實驗室效應當成訊號。怎麼看出它壞了: 你的分數與「這個數字來自哪篇 paper」的相關性,比它與突變位置的相關性還高。替代: 寧可要 3 個同一批做出來的變體,也不要 10 個從不同 paper 抄來的。
- 不要把 GUIDE-seq / CIRCLE-seq 的清單當成連續的 ground truth 排序,也不要把兩者混用。 為什麼會壞: 這些方法的讀數受偵測極限與文庫偏差影響,而且是 endpoint 不是 rate;再者細胞內的 GUIDE-seq 多一層染色質過濾、試管裡的 CIRCLE-seq 與 Digenome-seq 完全沒有這一層,兩者的偏差方向相反。「沒偵測到」不等於「沒有切」,「偵測到」也不等於「在細胞裡會被切」。怎麼看出它壞了: 你的相關性主要由幾個訊號極強的位點撐著,把它們拿掉就消失了;或者同一個變體在 in vitro 與 cellular 兩套資料上排名相反。正確用法: 當二元或分級標籤,放在最後的外部測試,不放在早期校準,而且兩種來源分開報。
- 不要把「活性下降」直接讀成「專一性提升」。 為什麼會壞: 折疊變差、表達量下降、RNP 組裝變差都會讓活性下降。怎麼看出它壞了: 這個變體在 on-target 上也掉了同樣多——那就不是專一性,是壞掉了。事前閘門: 用 thermoMPNN 之類的方法確認 fold-neutral(文獻專一性變體都在 < ~1 kcal/mol),並要求實驗端提供蛋白純度與 on-target 對照。
08Project Lens跟我的 project 多相關
為什麼不是更低: 因為這一步是整條 workflow 唯一決定「這篇 paper 有沒有科學內容」的一步,而它目前是專案的最大缺口。
- 它零算力,卻是唯一的可證偽性來源。 前面每一步都在產生數字;只有這一步在決定那些數字是否可能是錯的。一個無法被證偽的排序分數,寫得再漂亮也只是一個假設。
- 它是 kinetics 論點的落地方式。「以平衡結合 ΔG 排序」與「專一性由 HNH 檢查點動力學決定」這兩種立場,在理論層很難有結論,但在驗證設計層有:選 cleavage rate 當主要端點,這個方法學選擇就交由實驗來裁決。 把方法學選擇轉成可執行的實驗設計,是這個階段最有價值的一件事。
- 它的前置時間最長。 算力可以排隊等,實驗端的排程等不了。這是唯一一個「今天不開口,三個月後就卡住」的步驟。
風險要誠實講: 這一頁描述的是驗證設計的規格,不是已完成的結果。實驗校準與 blind test 的結果會在取得之後另行報告;在此之前,整條 workflow 的預測力是零證據——不是負面證據,是還沒有證據。這是全站唯一一頁的內容幾乎完全是「應該怎麼做」而不是「已經怎麼做」,而這正是它排在最高優先序的理由:其他每一頁的價值都以這一頁能否兌現為條件。
09Reviewer Thinkingreviewer 會問什麼
你的驗證端點為什麼是這個?為什麼不用 SPR?點開看參考答案
要準備一個機制論證加一個數字。機制:Cas9 的專一性檢查點發生在結合之後、切割之前,平衡結合常數對它不敏感。數字:Chen 等人的 ΔREC3(刪掉整個 REC3 domain)切割速率差約 1000 倍,而 on-target 親和力接近 WT。然後給正面回答——SPR 我們有用,但它的角色是健康檢查閘門,用來排除「變體只是壞掉了」這個可能性。這一問答得好,等於一次講清楚整篇的方法學立場。
n 這麼小,你憑什麼說你的分數有預測力?點開看參考答案
不要辯護,直接給出 power 分析。承認 n 在 5 到 10 之間時常規顯著水準需要極高的相關係數,因此本輪定位為 pilot;成功判準是事前宣告的效應量與方向一致性,並附上 permutation null 的分布。同時說明要達到什麼樣的 n 才能下強結論,並把那個數字寫進未來工作。誠實的 power 討論會讓 reviewer 相信你的其他數字。
你的預測真的是 blind 的嗎?怎麼證明?點開看參考答案
準備具體證據鏈:打分規格檔的 commit hash、交出預測的時間戳、實驗端保管測試集數據的往來紀錄。「我們沒有看」這句話沒有證據力,時間戳才有。如果做不到完全 blind,就誠實說明哪一部分不是 blind,並額外報告只用 blind 部分的結果。
你的分數贏過免費的 baseline 嗎?點開看參考答案
這是最實際也最傷人的一問。要準備 ESM-2 與 thermoMPNN 的分數在同一個 panel 上的表現。特別注意 thermoMPNN 對文獻專一性變體給的是 fold-neutral(< ~1 kcal/mol),它幾乎不含專一性資訊,所以是一個乾淨的 null baseline。如果你贏不過,這件事本身就是結果——它會告訴你目前的綠燈 metric 抓不到專一性,而那是一個值得報告的負面發現。
如果驗證失敗,你的論文還剩下什麼?點開看參考答案
這一問要在動筆前就有答案。如果主張是「我們建立了一套可靠性分層的流程,並量化了哪些 MD 觀測量能/不能支撐變體排序」,那麼 null 結果仍然有價值——它排除了一整類描述符,而且你的 CV 分層表本身就是可重用的成果。如果主張是「我們的分數能預測專一性」,null 就是致命的。這個定位選擇必須在拿到實驗數據之前做完。
10Common Mistakes最常犯的錯
- 等到分析做完才去找實驗合作者。 後果:只能用對方手邊現成的數據,而那通常是平衡結合。正解:第 5 步就談,把端點需求寫成一頁文件寄過去。
- 接受「我們只能給 24 小時的 indel 百分比」。 後果:終點飽和,速率差十倍的變體看起來一樣。正解:爭取至少三個時間點;真的不行就在論文裡明說這是端點不是速率,並限制結論。
- 從不同 paper 拼湊校準集。 後果:實驗室效應混進訊號。正解:寧可少幾個變體,也要同一批同條件。
- 沒先問遞送格式就敲定校準集名單。 後果:對方用 RNP,SpCas9-HF1 與 HypaCas9 的 on-target 只剩個位數百分比,你的五個校準點當場變三個,而且死掉的是「構形門檻」那一路的代表。正解:一開始就問清楚格式,並把格式當成規格檔的一個欄位。
- 只在 on-target 底物上驗證。 後果:所有專一性變體都是 null。正解:mismatched panel,且計算與實驗用同一組序列。
- 事後選擇評估指標。 後果:在 Spearman、Pearson、top-k、pairwise accuracy 之間挑一個最好看的,等於偷偷做了多重比較。正解:事前宣告一個主要指標,其餘列為次要。
- 把 p < 0.05 當成功判準。 後果:n 太小時幾乎不可能達到,達到了也多半是假陽性。正解:改用效應量與方向一致性,並誠實報告 power。
- 把 off-target 定序的「未偵測到」當成「沒有切」。 後果:把偵測極限誤讀成生物學。正解:報告每個位點的偵測下限,並把分析限制在有訊號的位點。
- 拿到實驗數據後才決定哪些變體算「離群值」。 後果:整個 blind test 作廢。正解:離群值判準必須寫在事前的規格檔裡。
11Further Reading讀哪幾篇
12Summary三句話
驗證的主要端點必須是功能與動力學量(cleavage rate、editing efficiency、time-resolved engagement),SPR/BLI 這類平衡結合只能當健康檢查閘門,因為高保真變體的親和力與 WT 差不多、差別全在結合之後的構形檢查點。向實驗端具體要求的是三到五個同一批條件下做出來的已知功能變體、一組涵蓋 PAM-distal 的錯配底物 panel、逐 replicate 的原始速率資料,以及一份「你們量不到什麼」的清單。Blind test 要在交件前凍結公式與評估指標、要跟 permutation null 比、要打敗免費的序列 baseline,而且必須事先誠實承認這個 n 的檢定力不足以支撐強結論。