Benchmark基準與可靠性
你怎麼知道你的數字不是雜訊?這章是 methodology paper 的核心。
這章的頁面
這章在講什麼
這章是整站唯一一章不產生任何新數字、卻決定所有舊數字值多少錢的地方。它回答四個問題:什麼樣的比較才配叫 benchmark、我的數字換個亂數種子還在不在、正確答案從哪裡來、以及我算出來的 Å 跟實驗量到的 read count 之間那道落差要怎麼補。這四個問題加起來燒掉零分鐘 GPU 時間,但它們決定這篇論文是方法學貢獻還是一堆漂亮的圖。
用你熟的世界來定位:你不會拿一組沒做過 ENCUT 與 k-mesh 收斂測試的吸附能,去跟實驗吸附熱比對。理由不是規矩,是邏輯 —— 如果同一個系統換個截止能就給你差 0.2 eV 的答案,那麼它跟實驗差 0.15 eV 這件事根本不帶任何資訊。收斂測試量的是精密度,跟實驗比對量的是準確度,而前者是後者的上界。這章從頭到尾就是在把這個你早就內化的順序,搬到一個誤差來源完全不同的世界裡:把「換個 k-mesh」換成「換個亂數種子」,把「跟實驗吸附熱比」換成「跟切割速率比」。順序不變,只是這邊沒有人會提醒你先做第一步。
還有第二個你熟的判準,這裡同樣適用:一個描述符如果打不贏一個免費的經驗式,它就沒有存在價值。 你判斷 d-band center 有沒有用的時候,心裡真正的對照組不是「隨機」,是「用電負度或 d 電子數的簡單關係能不能猜到同樣好」。在 Cas9 這邊,那個免費的經驗式叫 CFD score —— 純序列、不用跑任何模擬、一秒鐘出答案。你的整條 MD 流程如果贏不了它,那不是一個負面結果,那是一個必須寫進論文的結論。
metric 可靠性分析的用途是分層,不是排名。CV 低不代表那個量有意義,它只代表「如果它有意義,你量得到」。把可靠度當成有用度,是這一章唯一會讓你走遠路的誤解。
三頁在目錄上是並列的,實際動手時卻不照目錄的順序走,這件事值得先講清楚。Benchmark 是什麼定義遊戲規則:四個零件缺一不可 —— 獨立的 ground truth、一個比你笨的 baseline、事先登記的成功判準、以及一個本來就該是 null 的 negative control;三種最常見的假 benchmark 恰好各缺一件,症狀都是「數字很漂亮但排除不掉任何一個平凡解釋」。Metric 可靠性才是你真正該先做的那一步,因為它只需要 WT 的軌跡、不需要任何實驗資料:在你的 5F9R 四條 replica 上,聚合的積分量穩(BSA 2.1%、總接觸 4.1%),逐點的離散量不穩(DNA RMSF 59.1%、groove 接觸計數 145.5%),而 n = 2 會系統性高估一致性。最後Ground truth 從哪來處理答案的來源與那道量綱落差:四類資料各有偏差,體外資料在物理內容上跟你的系統對得起來,而已知高保真變體的排序 panel 通常是算力受限時唯一負擔得起的那一種任務。真正的難關不是資料難拿,是沒有人會替你寫那條把 Å 連到 read count 的假設。
這章不回答:任何一個分析怎麼算(在 Analysis)、實驗方法本身的原理與操作、以及你該做哪一個題目(不在本站範圍內)。它也不保證你的流程會通過 —— 這章的功能是讓「不通過」變成一個有資訊量的結果,而不是一場災難。
教授可能問
reliability 跟 validity 差在哪?為什麼順序不能顛倒?點開看參考答案
reliability 問的是「換個亂數種子、換條 replica,這個數字還在不在」;validity 問的是「這個數字跟真實世界的量對不對得上」。順序不能顛倒的理由是數學的:一個不穩的量,它跟任何外部真值的相關係數會被自己的雜訊按 √rxx 的量級打折,所以可重現性直接封死了效度的天花板。實務上這代表兩件事:先做 reliability 是因為它便宜(只要 WT 軌跡,不用任何實驗資料),也因為它能救你 —— 一個 CV 59% 的量跟實驗相關性差,你根本無法分辨是描述符沒用還是太吵,而先量了 CV 你就知道那是後者。
baseline 為什麼一定要挑一個免費又比你笨的?挑一個更強的計算方法來比,不是更嚴謹嗎?點開看參考答案
因為 baseline 的功能是排除平凡解釋,不是展示你贏過誰。在 off-target 這件事上那個免費的對照叫 CFD score:純序列、不用跑任何模擬、一秒出答案。它之所以不能被更強的計算方法取代,是因為只有它能回答那個真正被問的問題 —— 「這一整條要燒 GPU 的流程,到底有沒有必要存在」。如果你的對照本身就要跑 MD,那不論輸贏,你都證明不了成本值得付;而在算力配額是硬約束的前提下,成本本來就是這條路線的現實限制,不是一句客氣話。更強的計算方法可以擺第二層,用來回答「同樣花這筆錢,有沒有更好的花法」,但它排不掉第一層要排的那個解釋。順序是:先跟免費的比,贏了再跟貴的比。
給我一個「本來就該是 null」的條件,並說明它為什麼有價值。點開看參考答案
最現成的一個是 eSpCas9(1.1) 在 on-target 底物上結構性地就是 null —— 這個變體的設計是把正電溝槽裡的殘基中性化,削弱對 non-target 股(R-loop 裡被頂開、沒有跟 sgRNA 配對的那一股)的靜電抓握,而在完全配對的底物上根本沒有東西可削。所以 null 不是模擬失敗,是預期中的正確答案;要看到效應,底物一定要帶 mismatch,尤其是 PAM-distal 那一段。 它的價值在於它是你流程的體溫計:如果你在這個條件下量到了「顯著差異」,那代表你的流程在製造訊號,而不是在偵測訊號。一個設計良好的研究會主動安排一個「如果這裡出現訊號就代表我錯了」的條件,而不是只安排會出現訊號的條件。
「ground truth」這個詞讓你不安嗎?它到底有多 ground?點開看參考答案
應該不安。實驗資料本身也有雜訊、偏差與定義問題:不同的 off-target 偵測方法測量的物理事件不同(細胞內的雙股斷裂痕跡、體外的裸 DNA 切割),read count 不等於切割速率,跨方法比較 off-target 的絕對數目沒有意義。而且不同論文的變體是在不同的 guide、細胞株與量測平台上做出來的,數字不能直接放進同一張散布圖。可防守的用法只有兩種:只用同一篇論文內部的相對排序,或者向實驗合作者要求一組在同一批條件下重測的 panel。把 ground truth 當成「另一個帶誤差棒的量」而不是「答案」,你的統計處理才會是對的。
Reviewer 可能問
你的正例極少、負例極多。你用什麼評估指標?AUROC 在這種比例下會不會騙人?點開看參考答案
會。在極端不平衡的情況下,一個幾乎沒有實用價值的排序器也可以有看起來不錯的 AUROC,因為大量的真負例讓分母膨脹。這一題的正確回答是換指標並說明理由:報 precision–recall 曲線下的面積、或報「前 k 名裡命中幾個」這類 early enrichment 指標,因為那才對應到真正的使用情境(你只會拿排序最前面的少數幾個去做實驗)。同時要報盲猜的基線值,否則讀者無法判斷你的數字算好還是算差。
你的 ground truth 有沒有在流程的更早階段就被用過一次?點開看參考答案
這是循環驗證的問題,而它非常容易在不知不覺中發生:如果你挑描述符的時候看過那批變體的實驗排序、或者你的候選變體本身就是從那批文獻挑出來的,那麼後面的「驗證」就是自我實現的。可防守的做法是把資料切乾淨並且明講:哪些資料用來建立與調整流程、哪些資料從頭到尾沒被看過。在這種規模下,誠實的做法是承認文獻變體通常在挑描述符的階段就已經被看過,因此那是 retrospective 校準而不是 blind test,真正的盲測必須留給下一批資料。
你的 <span class="m">n</span> 是多少?這個檢定力足以支撐你的結論嗎?點開看參考答案
不足,而且必須主動說。已知的高保真變體只有少數幾個,即使全部拿來排序,樣本數也小到任何相關係數都帶著很寬的信賴區間。這一題的正確處理不是把 n 藏起來,而是事先誠實承認檢定力不足,並把結論的形式改成與檢定力相稱的形式 —— 例如報「排序方向與符號」加上 permutation null 的比較,而不是報一個聽起來很硬的相關係數。在小樣本下宣稱強結論,是這類論文最常見的死法。
你的 linking hypothesis 是什麼?寫在論文的哪一段?點開看參考答案
如果答不出「哪一段」,那多半就是沒寫。這道落差很具體:你的輸出是 Å、nm²、接觸數;實驗的輸出是 read count、editing efficiency、速率常數。中間那條假設(例如「介面 engagement 的下降單調對應到切割速率的下降」)沒有人會替你寫,而它會是審稿人攻擊的第一個點。可防守的作法是把它寫成方法段裡一個獨立、明文、可被否證的段落,並且說明它在什麼情況下會失效。一條被寫出來的假設可以被討論;一條藏起來的假設只會被當成錯誤。
口試可能問
你為什麼把主線放在「排序已知變體」,而不是「預測 off-target 位點」?點開看參考答案
講成算力與對照品質的取捨。要排序 off-target 位點,每一個位點都是不同的 DNA 序列,等於每一個都要重新建系統、重新平衡、重新取樣,而且你需要幾十個位點才有統計;在算力配額是硬約束的前提下,這條路的成本量級直接出局。排序變體則是在同一個底物、同一套建模流程上做點突變比較,系統性偏差在雙差裡大幅抵消,對照乾淨得多。代價要一起講:變體 panel 的樣本數天生就小,而且它們的實驗數字來自不同論文,所以你買到的是乾淨的對照,賣掉的是樣本數與外推性。
你要求自己在看到結果之前凍結打分公式。萬一凍結錯了呢?點開看參考答案
凍結錯了的代價是這一輪的結論比較弱,但這個代價是有界的,而且是可以在論文裡誠實交代的:報凍結版本的結果當主結果,把事後想到的更好版本當成探索性分析、明確標示、留給下一批資料驗證。不凍結的代價則是無界的 —— 你永遠無法向自己或別人證明那個漂亮的相關不是從十幾種組合裡挑出來的。兩種錯誤的量級不對等,這就是為什麼凍結是預設值。
你為什麼不直接對細胞內的資料驗證?那才是大家真正在乎的。點開看參考答案
因為你的模型裡沒有染色質、沒有 DNA 修復、沒有遞送效率,而細胞內的 off-target 譜是這三件事疊在切割傾向上的結果。拿細胞資料去驗證一個不含這些機制的模型,即使對得上也解釋不了為什麼對得上,對不上更無從歸因。正確的策略是驗證的層級要跟模型的層級對齊:優先用體外資料與功能速率,把細胞內的落差寫進 limitations,並在向實驗端提需求時明確要求體外的、逐 replicate 的原始速率資料。代價是你的結論離「臨床上有用」還隔一層,這一點不要迴避。
如果 benchmark 做完發現你的描述符沒有預測力,這篇論文還在嗎?點開看參考答案
在,但它會是另一篇論文,而且你必須現在就決定是不是接受那一篇。可防守的形態是:主張從「我們提出一個有預測力的專一性描述符」退到「我們界定了便宜的平衡態 MD 描述符在這個問題上的可用邊界,並給出跨 replica 的可靠性基準與起始結構的污染效應」。這一退看似示弱,實際上把論文從一個押注賭局變成一個必然有結果的研究 —— 因為可靠性分層與起始結構對照這兩塊資料已經在你的硬碟上了,它們不依賴預測力成不成立。真正該害怕的不是沒有預測力,是做完之後連「有沒有預測力」都答不出來。
AI 對話練習
你是一位專門審方法學論文的審稿人,看過大量「看起來像 benchmark、其實不是」的研究。
規則:
- 你一次描述一個研究的驗證設計給我(資料來源、比較對象、報告的指標、以及作者的結論)。描述要寫得像論文摘要一樣有說服力。
- 我要判斷四件事:這個設計缺了哪一個零件(獨立的 ground truth/比它笨的 baseline/事先登記的成功判準/本來就該 null 的對照)、缺這一件會讓什麼平凡解釋無法被排除、我會要求作者補做哪一個實驗或分析、以及補做之後最可能發生什麼。
- 我答完你再評,並告訴我我抓到的是主要缺陷還是次要缺陷。
請設計 6 個案例,其中至少一個是「四個零件都在、但 ground truth 被用了兩次」的循環驗證,至少一個是「指標選錯導致極度不平衡的資料看起來表現很好」,最後一個請設計成真的沒有問題的對照,看我會不會硬找毛病。
你分飾兩角,我會告訴你何時切換。
第一階段(你是我的方法學顧問): 幫我起草一份預先登記文件,主題是「用平衡態分子動力學的結構描述符,排序數個已知高保真 Cas9 變體的專一性」。文件必須包含:假設的明文陳述、要凍結的打分公式形狀、描述符的納入判準(提示:判準應該只根據野生型軌跡的跨 replica 可重現性,不能看變體結果)、成功與失敗的事前定義、baseline 是什麼、negative control 是什麼、以及樣本數與檢定力的誠實評估。起草前請先問我三個問題把條件確認清楚。
第二階段(我說「換邊」之後,你變成敵意審稿人): 逐條攻擊你剛才寫的那份文件,找出所有還有事後調整空間的地方、所有沒被凍結的自由度、以及所有「無論結果如何都可以宣稱成功」的措辭。每找到一處,給出一個更緊的替代寫法。
最後告訴我:這份文件裡哪一條最可能在真正投稿時被要求修改,為什麼。
你是一位極度重視邏輯的審稿人,專長是計算與實驗之間的對接。
背景:我的計算輸出是結構統計量(介面埋藏面積 nm²、接觸數、鹽橋數、某個構形座標的分布,單位是 Å 或無因次),實驗端能給我的是切割速率、編輯效率,或某種 off-target 偵測方法的 read count。
請你:
- 要求我寫出一條明文的連結假設,形式是「若計算量 X 下降,則實驗量 Y 下降,因為……」。
- 我寫完後,你逐條追問:這條假設在什麼情況下會失效、它有沒有隱含單調性、它有沒有隱含「其他條件不變」而那些條件在實驗裡其實會變、以及有沒有一個已知的反例。
- 特別挑戰我一次:「你的計算量是平衡態的統計,實驗量是速率。你憑什麼認為兩者單調相關?」
- 最後幫我把這條假設改寫成一段可以直接放進方法段的文字,並且附上一句「這條假設會在什麼觀測下被否證」。
不要幫我把假設寫得比它應得的更強。如果我的假設本質上就很弱,直接說它弱在哪,並告訴我該把宣稱縮到哪個層級。