Metric 可靠性Metric reliability and reproducibility
在問「這個 metric 準不準」之前,先問「它穩不穩」。
01一句話只有一句
一個換個亂數種子就散掉的量,準不準根本無從談起。
02Why should I care?我為什麼要讀這頁
因為這件事你已經做完了,而它是整套流程裡最便宜、卻最少人做的一道關卡。
你在 5F9R 完整 R-loop 三元複合體上跑了 4 條獨立 replica、各約 87 ns(535,265 atoms、菱形十二面體盒、H100)。然後你做了一件在 Cas9 MD 論文裡很少看到的事:把每一個要用的 metric 拿去算跨 replica 的變異係數。結果是一張分層表,直接告訴你哪些量可以進打分層、哪些量只能當敘事。這張表就是一篇 methodology paper 的骨幹,因為它回答的是這個領域普遍迴避的問題。
用你熟的世界對一次:這相當於 ENCUT 與 k-mesh 收斂測試,只是收斂變數換成了亂數種子。但這個類比有一個你必須抓住的斷點 —— k-mesh 收斂是單調的,replica 不是。 你把 k 點加密,能量會朝一個極限收斂,加到夠密就可以宣告收斂;你多跑一條 replica,逐殘基 RMSF 不會變得更穩,你只是把它本來就有的散度量得更清楚一點。DFT 那邊的誤差是可以靠加算力消掉的離散化誤差,MD 這邊的誤差是系綜取樣的統計誤差,加 replica 只買到誤差棒,買不到收斂。
這個差別決定了整頁的結論:有些量不是跑久一點就會變好,它們從根本上就不該進打分層。
03What這是什麼
要分開兩個常被混為一談的概念。
- Reliability(可靠性、再現性):同一個系統、同一套設定,只換亂數種子與初始速度,重複量測之間的離散程度。它量的是隨機誤差。
- Validity(正確性):這個量跟你真正在乎的外部真值(cleavage rate、specificity ratio)的關係。它量的是你有沒有量對東西。
兩者的關係不是並列,是上下界:reliability 把 validity 封了頂。這不是修辭,是古典測量理論的衰減公式(attenuation)的直接後果 —— 兩個都帶量測誤差的量,觀測到的相關係數會被系統性壓低:
其中 R 是各自的 reliability 係數。因為 ρtrue ≤ 1,所以 √(Rx·Ry) 就是你可能觀測到的相關係數的天花板。一個 reliability 接近 0 的量,就算它背後的物理跟實驗完全一致,你也量不到相關性。 這就是為什麼「先穩後準」不是順序偏好,是邏輯順序。
最常用的可靠性指標是變異係數:
σ 是跨 replica 的標準差,μ 是跨 replica 的平均。注意分母 —— 這個細節後面會咬人。
衰減公式要的 R 是「訊號變異 ÷(訊號變異 + 雜訊變異)」,也就是 ICC 那一類的量。要算它,你需要多個不同的系統(例如多個變體)來提供分子的訊號變異。CV 只有分母是單一系統的平均值,它是你只有一個系統時的權宜替代品。真正該報的是 ICC,這件事在 ## How 裡展開。
分母那件事現在就要講清楚:σ 固定不動、μ 往 0 走的時候,CV 會發散到無限大。也就是說,一個絕對散度很小但平均值也很小的量,會被 CV 判成災難級的雜訊,而它其實只是稀疏。表上 groove 接觸計數的 145.5% 有很大機會就住在這個陷阱裡,這是後面 ## When NOT 第一條要處理的事。
你的實測分層表:
| 量測量 | 跨 4 replica CV | 分層 |
|---|---|---|
| BSA(介面埋藏面積) | 2.1% | 🟢 reproducible |
| 總 protein–DNA 接觸數 | 4.1% | 🟢 reproducible |
| target-DNA 接觸數 | 9.4% | 🟢 reproducible |
| 鹽橋數 | 9.5% | 🟢 reproducible |
| protein RMSD | 12.2% | 🟡 marginal |
| non-target 接觸數 | 17.7% | 🟡 marginal |
| 介面 iRMSD | 23.9% | 🔴 noise |
| 逐位點距離(K848/K1003/R1060 三個 grip 位點) | 38–46% | 🔴 noise |
| groove 距離 | 48% | 🔴 noise |
| DNA RMSF | 59.1% | 🔴 noise |
| groove 接觸計數 | 145.5% | 🔴 noise |
結論一句話:打分要用聚合量,不要用逐殘基、逐位點。
04Why為什麼重要
因為這張表不只是一個 QC 結果,它是三件事的裁決者。
第一,它決定 funnel 每一層能用什麼。 一個 CV 145.5% 的量放進 gate,你的排序就是亂數排序。這不是理論擔憂 —— groove 接觸計數的散度已經大到超過它自己的平均值。相對地,BSA 的 2.1% 意味著你可以拿它去偵測百分之幾等級的差異。同一條軌跡上跑出來的兩個量,跨 replica 散度差了將近七十倍(145.5 ÷ 2.1)。
第二,它讓你有能力診斷「壞的是 metric 還是壞的是別的東西」。 這是這個 project 最漂亮的一段。逐殘基的 top-8 接觸殘基一致性,在以 Chai-1 預測結構為起始時是 0/8 共享、ρ ≈ −0.03,也就是完全隨機;換成 5F9R 晶體結構起始,同樣的 metric 變成 3/8 共享(450、695、765)、pairwise Jaccard 0.48、Spearman +0.77。metric 沒變、分析腳本沒變、力場沒變,變的只有起始座標。
如果你只做了 Chai-1 那一組,你會得出「逐殘基接觸是雜訊,這個 metric 沒用」的結論,然後把它丟掉。但真相是元兇是起始結構,不是 metric。可靠性分析必須是二維的:換種子(隨機誤差)與換起始結構(系統性誤差)要分開跑,缺一個就會把兩種完全不同的病灶誤診成同一種。
第三,它是 reviewer 一定會問而多數論文答不出來的問題。 主動把這張表放進正文,等於在說「我知道我的數字能承受多少重量」。這件事在 Cas9 MD 文獻裡並不常見,本身就可以是賣點 —— 但「有多不常見」是一句 reviewer 可以直接查證的宣稱,投稿前自己做一次檢索,再決定要寫「rarely reported」還是「to our knowledge, not reported」。
05How怎麼做
產生真正獨立的 replica。
「獨立」的定義比多數人以為的嚴格:
- 換初始速度種子是最低要求,但不夠。
- 更好的做法是重新做溶劑化與離子放置,讓水與離子的初始構型也不同。
- 從同一條長軌跡切成四段不算四條 replica。 它們共享同一段歷史、同一個 basin,彼此高度相關,這樣算出來的 CV 會系統性偏低,等於自己騙自己。
- 至少 3 到 4 條。n = 2 沒有統計力,理由見本頁下方的〈最貴的一課〉。
算 CV 的正確流程。
- 每條 replica 各自丟掉 equilibration,用同一個時間窗取 production。
- 對每條 replica 算該 metric 的時間平均,得到 n 個數。
- 跨這 n 個數算 mean、SD、CV。
- 單條軌跡內先做 block averaging,確認你的時間平均沒有被自相關汙染 —— 如果 block size 加大時誤差還在漲,代表你的有效樣本數遠小於幀數。
- 對 n 條 replica 做 bootstrap,給出 CV 本身的區間。
- 排序型的量(哪些殘基最重要)不要用 CV,要用 rank-based 一致性:pairwise Spearman 與 top-k 的 Jaccard 重疊。你的 3/8、Jaccard 0.48、Spearman +0.77 就是這一類。
成本: 分析本身是分鐘等級,真正的成本是那 4 條軌跡。這也是為什麼可靠性分析的 ROI 高得離譜 —— 軌跡你本來就要跑,這張表是附贈的。想在同樣的 GPU 預算下多買幾條 replica,見 production MD 裡關於時間步長與 hydrogen mass repartitioning 的部分。
升級版:報 ICC 而不是 CV。
當你手上有多個變體(不只一個系統)時,該報的是組內相關係數:
分子是不同變體之間的變異,分母加上同一變體跨 replica 的變異。它直接回答「這個 metric 能不能分辨不同變體」,而這正是 funnel 真正要它做的事。慣例上的解讀(Koo 與 Li 2016 那一套,廣泛用於再現性研究)是:低於 0.5 為 poor、0.5 到 0.75 為 moderate、0.75 到 0.9 為 good、高於 0.9 為 excellent,而且應該用 95% 信賴區間的下界來判,不要用點估計。
門檻怎麼定:10% 是慣例,不是定理。
必須誠實講清楚這件事。CV < 10% 這條線沒有任何來自 MD 理論的推導,它是從分析化學與生物分析方法驗證那邊借過來的直覺 —— 在受規範的生物分析裡,FDA 的接受標準是 CV 不超過 15%(定量下限處放寬到 20%),而業界常態落在 5% 到 10%。把 10% 拿來當 MD metric 的分界,是一個合理但可協商的選擇。
真正該問的問題不是「CV 有沒有低於 10%」,而是 「我要偵測的效應有多大」。做個粗估:兩組(例如 WT 與變體)各 n 條 replica,兩組平均差值的相對標準誤約為
要有機會看見訊號,效應至少要是它的三倍左右。代進 n = 4:
- BSA(CV 2.1%)→ SErel ≈ 1.5% → 可望偵測約 5% 以上的相對差異。
- protein RMSD(CV 12.2%)→ SErel ≈ 8.6% → 要差到約 26% 才看得見。
- groove 接觸計數(CV 145.5%)→ SErel ≈ 103% → 要差到三倍以上才看得見;換句話說,在 n = 4 下這個量對「變體之間的差異」沒有任何解析度。
(這三行是把上表的 CV 代進這條公式推出來的粗估,不是量測值 —— 用途是排出「誰進得了 gate」,不是拿去報數。)
這個算術把門檻的選擇從慣例變成設計決策:先問高保真變體與 WT 之間的介面差異大概是幾個百分點,再回頭決定哪些 metric 進得了 gate、需要幾條 replica。
06When什麼時候用
- 每一批 production 軌跡跑完的第一件事。 在畫任何圖、下任何結論之前,先出這張表。
- 決定 funnel 每一層要用什麼打分的時候。 這是它最重要的用途:CV 分層直接對應到 gate 的可用 metric 清單。
- 當你要對一個既有做法提出保留時。 例如要說明「逐殘基分析不足以當排序依據」,這類跨 replica 離散度的表格是最不需要爭辯的證據。
- 當一個 metric 的結果跟你的預期不合時。 先問它的 CV,再問物理。很多「有趣的發現」在算完 CV 之後就消失了,而這是好事。
- 論文方法段與補充材料。 這張表放正文,完整的 per-replica 數值放補充材料。
07When NOT什麼時候別用
-
平均值接近 0 或可以變號的量,不要用 CV。 為什麼會壞:CV 的分母是平均值,平均值趨近 0 時 CV 發散,一個絕對散度其實很小的量會被誤判成純雜訊。怎麼看出它壞了:把四條 replica 的絕對值列出來,如果它們彼此其實很接近、只是都很小,那 CV 高就是分母造成的假象。正解:改報絕對標準差,或把稀疏計數換成連續距離。groove 接觸計數的 145.5% 很可能就同時混了真雜訊與這個分母效應,這兩者必須分開診斷再下結論。
-
n = 4 時,不要把 CV 之間的細微差別當真。 為什麼會壞:樣本標準差本身就是一個有雜訊的估計,它的相對標準誤大約是 1/√(2(n−1)),在 n = 4 時約四成(這是常態近似下的漸近結果)。這代表 12.2% 與 17.7% 之間的差距,在統計上根本分不開。怎麼看出它壞了:對 replica 做 bootstrap,看 CV 的區間有多寬。正解:把 CV 當分層工具用,不要當排名工具用。綠、黃、紅三層是可以講的;「A 比 B 穩」在 n = 4 時講不得。
-
不要用 CV 判斷有沒有系統性誤差。 為什麼會壞:CV 只看得見亂數種子造成的隨機散度。力場、水模型、離子參數、質子化狀態、起始結構造成的偏差,在所有 replica 裡是一致的,CV 完全看不到。一個 CV 2% 的量可以穩定地、精密地錯著。怎麼看出它壞了:換一個力場或換一個起始結構重跑一組,看平均值移動多少 —— 如果位移遠大於 CV,那你的誤差預算被系統性誤差主導。你已經有現成的例子:Chai-1 起始與 5F9R 起始把逐殘基一致性從 0/8 變成 3/8,這個位移是任何 CV 都抓不到的。
-
不要把「穩」讀成「對」。 為什麼會壞:這是這一頁最容易被誤用的方向。BSA 的 CV 2.1% 只說明它可再現,完全沒有保證它跟 cleavage specificity 有任何關係 —— 它甚至可能跟專一性零相關。怎麼看出它壞了:你講不出「這個量透過什麼機制影響切割速率」這條因果鏈。正解:可靠性是入場券,不是獎盃;接下來必須過 ground truth 那一關。
-
不要跨系統、跨長度比較 CV 的絕對值。 為什麼會壞:CV 依賴平均值的大小、軌跡長度、以及有效樣本數。同一個 metric 在 500 ns 的軌跡上,CV 通常會比在 87 ns 上小,因為每條 replica 的時間平均更收斂(反例也存在:如果拉長之後某幾條 replica 跨進了新的 basin、另幾條沒有,CV 反而會變大,而那個變大是真實的訊號,不是噪音)。拿你的表去跟別人論文的 CV 比,比的是取樣量不是 metric 品質。怎麼看出它壞了:把你自己的軌跡砍成一半長度重算,看 CV 怎麼變 —— 那個變化量就是長度效應的量級。
-
不要在建模補出的區段上算可靠性然後推廣到整體。 為什麼會壞:沒有實驗座標約束的區段(你的系統裡是 5′ 端那一段)本來就會亂晃,它們會把整體的 CV 往上拉,讓你誤判整個 metric 不可用。怎麼看出它壞了:分開算「有晶體座標的區段」與「補模區段」的 CV,如果差距很大,問題出在建模不是 metric。細節見 RMSF。
在 2 條 replica 時,逐殘基 top-8 的重疊看起來是 6/8,非常漂亮;跑到 4 條掉到 3/8。原因有兩個:兩條軌跡的 top-k 重疊有一個不低的隨機基準線,而且你沒有第三條可以否證它。任何在 n = 2 得到的一致性數字,都要當成上界而不是估計值。
08Project Lens跟我的 project 多相關
為什麼是五星: 因為它是這條線上少數已經有實測數據撐著的方法學環節。三件東西已經在手上:5F9R 三元 4 replica × 約 87 ns 的完整 CV 分層表、Chai-1 起始與 5F9R 起始的對照(0/8、ρ ≈ −0.03 對上 3/8、Jaccard 0.48、Spearman +0.77)、以及 n = 2 到 n = 4 的一致性崩塌(6/8 → 3/8)。這三件事合起來論證的是一句該領域普遍沒說的話:Cas9 MD 的逐殘基結論多半沒有統計支撐,而這件事可以量出來。
為什麼不是更低: 它不是可選的品質裝飾,它是任何篩選流程每一層的存在前提。以平衡結合 ΔG 作為專一性排序軸是這個領域常見的做法;要檢驗這種做法撐不撐得住,靠的不是觀點而是這張表 —— 因為它同時證明了「哪些量撐得住排序」與「哪些量撐不住」。沒有它,關於 kinetics 與 equilibrium 的主張就只是另一種意見。
誠實的限制: 五星是優先序,不是「這頁的內容已經完備」。目前完成的是 reliability 那一半,validity 那一半是空的 —— 表上所有綠燈的量,都還沒有跟任何實驗答案對過。而且分層本身也還有兩個洞:CV 是在單一系統上算的(該升級成跨變體的 ICC),以及 groove 接觸計數的 145.5% 還沒有做「真雜訊 vs 小分母假象」的分離診斷。這兩件事都不需要新的 GPU 時數,是現在就能補的。
具體怎麼用: 綠燈那四個量(BSA、總接觸、target 接觸、鹽橋)進打分層;黃燈兩個只能當輔助證據並附誤差棒;紅燈全部退到敘事與 QC,可以畫圖但要標明僅供定性參考。要做逐位點的故事時,把稀疏計數改寫成連續距離(退一步至少改報絕對標準差),這是把那一類量救回打分層最直接的手段。
09Reviewer Thinkingreviewer 會問什麼
4 條 replica 夠嗎?你的 CV 本身的不確定度有多大?點開看參考答案
不夠,而且要主動說。n = 4 時樣本標準差的相對標準誤約四成,所以這張表只能支持分層,不能支持排名。正確的講法是「我們把 metric 分成三個可再現性層級」,不是「BSA 比鹽橋更可靠」。同時說明 n 為什麼只能是 4:單一系統 535,265 atoms、每條約 87 ns,加上叢集上可同時執行的 job 數有硬性上限。把限制歸因到算力上限並給出可跑的系統數,比含糊帶過有說服力得多。
你的 replica 真的獨立嗎?還是從同一條軌跡切出來的?點開看參考答案
這一問專門用來抓一個很普遍的偷懶做法。要能明確回答:獨立的初始速度種子、獨立的溶劑化與離子放置、從各自的 equilibration 開始。並且要說明為什麼從單條長軌跡切段不算 —— 那些片段共享同一段歷史,彼此高度相關,算出來的 CV 會系統性偏低。這個回答本身就展示了你知道 CV 在測什麼。
你把 CV 高的 metric 丟掉,這是不是在挑對自己有利的結果?點開看參考答案
這一問很致命,而且只有一種答得漂亮的方式:CV 門檻是在看到任何實驗答案之前定的。 篩選準則來自可再現性,與 ground truth 完全獨立,所以它不可能是為了迎合答案而設。這也是為什麼 benchmark 的 pre-analysis 檔案 要先 commit —— 那份時間戳就是你在這一問上的護身符。
DNA RMSF 的 59.1% 是 metric 不穩,還是你的 DNA 建模不好?點開看參考答案
這是一個對的質疑,不要辯,要拆。正解是分開報:有晶體座標的區段一組、建模補出的區段一組。你在 RMSF 頁已經有這個例子 —— 補上去的 5′ 端 res 1 到 11 的 RMSF 是 6 到 8 Å,而晶體本體只有 3.9 Å。如果拆開之後晶體區段的 CV 明顯下降,那結論就從「DNA RMSF 不可用」修正成「建模區段不可用」,兩者對 workflow 的意涵完全不同。
為什麼門檻是 10%,不是 15% 或 5%?點開看參考答案
誠實回答:10% 是借來的慣例,不是推導出來的。受規範的生物分析用 15%(定量下限放寬到 20%),業界常態 5% 到 10%。更好的辯護方式是把門檻接到效應量:以 SErel ≈ CV·√(2/n) 估算,在 n = 4 下 CV 10% 對應到約 21% 的可偵測相對效應,而這個數字要跟你預期的變體間差異比對。把門檻講成設計決策而不是行規,這一問就從弱點變成加分。
10Common Mistakes最常犯的錯
- 只跑一條軌跡,然後報逐殘基或逐位點的結論。 後果:你報的是那一顆亂數種子的性格。正解:至少 3 到 4 條獨立 replica,並公開 CV。
- 把一條長軌跡切成幾段當 replica。 後果:CV 系統性偏低,reviewer 一問就破。正解:獨立速度種子加獨立溶劑化,並在方法段寫清楚。
- 對平均值接近 0 的稀疏計數用 CV。 後果:分母效應把一個可能還好的量判成純雜訊。正解:改用連續距離,或改報絕對標準差。
- 在 n = 2 得到漂亮的一致性就下結論。 後果:跑到 n = 4 全部翻掉,而你已經把它寫進投影片了。正解:把 n = 2 的一致性當上界,不當估計。
- 拿 CV 去證明沒有系統性誤差。 後果:把力場或起始結構造成的偏差整個漏掉。正解:另外做換起始結構與換力場的敏感度測試。
- 把可靠性當成論文的結論。 後果:reviewer 會說「所以呢?穩定的錯誤還是錯誤」。正解:可靠性是第一章,第二章必須是跟 ground truth 對答案。
- 只報綠燈、不報紅燈。 後果:讀者無法判斷你篩掉了什麼,也就無法信任你留下的東西。正解:整張表照登,紅燈那幾行反而是這篇論文最有價值的部分。
11Further Reading讀哪幾篇
12Summary三句話
Reliability 問的是「換個亂數種子還在不在」,validity 問的是「跟實驗對不對得上」,而前者是後者的數學上界,所以順序不能顛倒。你在 5F9R 三元 4 replica 上量到的分層很清楚:聚合的積分量穩(BSA 2.1%、總接觸 4.1%),逐點的離散量不穩(DNA RMSF 59.1%、groove 接觸計數 145.5%),其中稀疏計數還會被 CV 的小分母效應額外放大、真雜訊與假象必須分開診斷,而 n = 2 會系統性高估一致性。這張表的用途是分層不是排名,它決定了 funnel 能拿什麼打分,但它本身還不構成正確性的證據。