Molecular Dynamics分子動力學
給 DFT 人的 MD:力場不是近似的 DFT,它量的是完全不同的東西。
這章的頁面
這章在講什麼
這章只回答一個問題:怎麼從一個座標檔,得到一條你敢在上面掛誤差棒的軌跡。 它處理的範圍從「打開 PDB」到「production 跑完、你能說出這條軌跡支撐得起多強的宣稱」為止,中間所有的決定 —— 力場、水模型、盒型、離子、timestep、控溫、跑幾條、跑多長 —— 全部在這一章裡各有一個位置。
對你來說,這章的真正內容不是操作手冊,而是一次誤差預算的整體替換。在 DFT 世界你的誤差來自哪裡你閉著眼睛都能列:基組(ENCUT)、k-mesh、贗勢、交換相關泛函、有沒有 vdW 修正、smearing。你會為前兩項做收斂測試,因為它們是單調可逼近的 —— 加大就會靠近極限,而且你知道加到哪裡可以停。換到 MD,這份清單整個被抽掉換成另一份:力場的參數化品質、水模型、起始結構、取樣量、replica 數。麻煩的是新清單裡最貴的那一項(取樣)不是單調可逼近的:跑久一點會縮小統計誤差,但不會縮小力場的系統誤差,而且「還有一整片構形空間沒去過」這件事原則上只能反證不能證明。很多人把「多跑 100 ns」當成「把 ENCUT 從 400 加到 500」,這是這一章要拆掉的最大誤解。
力場沒有電子。鍵不能斷、電荷不能轉移、極化被平均進固定電荷裡。凡是需要成鍵、金屬配位化學或質子轉移的問題,答案不會因為軌跡更長而變對 —— 那是 QM 或 QM/MM 的地盤。知道哪些問題不該問 MD,跟知道怎麼跑 MD 一樣重要。
這章不回答的東西:不教任何一種軌跡分析怎麼算(那整章在 Analysis),不教增強取樣的實作(在自由能地景),不教 QM/MM,也不教怎麼調參數去擬合實驗。它更不會告訴你「業界標準是跑多久」—— 這個問題在這章的答案永遠是「看你要宣稱什麼」。
四頁是一條把不確定性從模糊變成數字的鏈。給 DFT 人的 MD 換世界觀:位能面換成經典的、答案換成 300 K 系綜下的分布與時間相關量而不是單點能量。系統建立把整個位能面與邊界條件一次決定完,而它的錯誤幾乎都不會炸給你看;這頁有一個純賺的例子值得記住 —— 立方盒 762,027 原子換成菱形十二面體 535,265 原子,省掉三成、吞吐量約 1.4 倍,而最小影像距離不變,這種不需要新增任何假設的省錢是「便宜」這個硬約束底下最好的一種。Production 設定是一連串換匯:constraints 換掉振動自由度、HMR 換掉質量分布、大 timestep 換掉積分精度,換回來的都是牆鐘時間與 replica 數;唯一的例外是 thermostat,它改變的不是精度而是你在取樣哪個系綜,選錯了跑再久也不會對。最後取樣與收斂把前面所有決定的後果變成一組數字:4 條 replica × 約 87 ns 之下,聚合量的跨 replica CV 在 10% 以下(BSA 2.1%、總 protein–DNA 接觸 4.1%),而紅燈那一層 —— 介面 iRMSD、逐位點距離、groove 量與 DNA RMSF —— 落在 24 到 146%。這一章的產出不是一條軌跡,是一句話:「我的哪些數字可以承擔排序責任,哪些只能拿來講故事。」
教授可能問
用你熟悉的語言講:力場跟 DFT 的關係到底是什麼?點開看參考答案
最容易踩的坑是說「力場是便宜的 DFT」。正確的說法是:力場是一個形式已經寫死、參數事後擬合的經典位能面 —— 鍵長鍵角用簡諧、二面角用傅立葉級數、非鍵用 Lennard-Jones 加固定點電荷。它沒有電子自由度,所以鍵不能斷、電荷不能重新分布,極化效應被平均進那組固定電荷裡。這代表兩件事:第一,它在參數化涵蓋的構形範圍內可以很準,離開那個範圍就沒有任何理論保證,跟泛函「至少形式上是從第一原理出發」的處境不同;第二,你換來的是好幾個數量級的速度,那正是你能對 500,000 個原子取樣百 ns 尺度的唯一原因。把它理解成一個高度專門化的擬合模型,不是一個粗糙的近似解,你後面所有判斷都會比較準。
MD 給你的「答案」是什麼形狀?跟你算一個吸附能有什麼不同?點開看參考答案
吸附能是一個數字,MD 的答案是一個分布。你問「HNH 距離是多少」,正確的答案不是 12 Å,是「在這個系綜下它的分布長這樣、平均在這裡、跨獨立軌跡的散布這麼大」。這個形狀上的差別有一個直接後果:每一個 MD 數字都必須帶誤差棒,而那個誤差棒必須來自獨立的 replica,不是來自同一條軌跡的標準差。 同一條軌跡的相鄰幀高度相關,用它算標準誤等於假裝自己有幾萬個獨立樣本,那是這個領域最常見的統計謊言之一。
「跑久一點」能解決哪些問題、不能解決哪些問題?點開看參考答案
能解決的只有一件事:統計誤差。分布的平均值會收得更準,罕見事件有更多機會出現。不能解決的有三件,而且每一件都比統計誤差貴:力場的系統誤差(跑一微秒也不會讓一個參數化不良的二面角變對)、起始結構的偏差(如果你的軌跡跨不過主要能障,你只是在一個盆地裡取樣得更仔細)、以及模型缺失的物理(沒有電子就是沒有電子)。在算力有限的時候,把時間拿去加 replica 通常比加長度划算,因為前者同時檢驗統計誤差與起始構形的影響,後者只處理前者。
你的模擬跑在 300 K 的 NPT 系綜。這句話對你的結果意味著什麼?點開看參考答案
意味著你量到的每一個量都是系綜平均,而不是某個特定構形的性質;也意味著溫度與壓力是被 thermostat 與 barostat 維持的,而那兩個東西是演算法不是物理。這裡有一個容易被忽略的重點:thermostat 的選擇不是精度問題而是系綜的定義問題。某些做法(例如把速度整體縮放的 Berendsen 家族)會把動能漲落壓窄:平均溫度是對的,分布卻不是正則分布,而且容易出現能量在自由度之間分配不均的病態(flying ice cube),跑再久也不會自己修好。這跟你在 DFT 裡調 smearing 的心態不同:smearing 選錯通常只是收斂性與精度的取捨,thermostat 選錯是你在取樣另一個系綜。
Reviewer 可能問
你的 aggregate 取樣量是多少?為什麼那個量足以支撐你的結論?點開看參考答案
把數字與作用域一起給。你的是 4 條獨立 replica × 約 87 ns、535,265 原子的完整 R-loop 三元複合體。關鍵不在數字大小,而在你能不能用它界定宣稱:聚合量前後半漂移 2 到 17%、跨 replica CV 在 10% 以下,可以承擔排序責任;介面 iRMSD、逐位點量與 DNA RMSF 的 CV 落在 24 到 146%,只能當定性敘述。答「我們跑了領域慣例的長度」是最糟的回答,因為它把責任推給一個不存在的慣例,而且完全沒有回答問題。
你的 replica 是真正獨立的嗎?獨立在哪裡?點開看參考答案
這一問在抓一個很常見的作弊:從同一個平衡化後的構形分出四條、只換亂數種子,跟從四個不同的建系統與加熱過程各自出發,統計意義完全不同。前者共享了整個平衡化歷史,它們的「獨立」只涵蓋速度分配的隨機性。要能防守,就得明講你的獨立性是在哪一層引入的(不同的初始速度?不同的溶劑化與離子放置?不同的平衡化軌跡?),並且承認被共享的那一層不在誤差棒的涵蓋範圍內。你自己的情況要照實寫:四條共用同一個起始座標,換掉的是 integrator、barostat 與初速這三個亂數種子 —— 那是速度層的獨立,不是建系統層的獨立,而換再多種子也解決不了共用起點這件事。誠實地把獨立性的層級寫出來,比含糊地說「四條獨立軌跡」安全。
你用了 HMR 與 4 fs 的 timestep,你怎麼證明這沒有改變你的結果?點開看參考答案
這題不是破口而是一個還沒放上桌的選擇。先把兩把尺攤開:OpenMM 手冊寫的是 constraints=HBonds 之下 Langevin 動力學約可用 4 fs(決定性積分器才是約 2 fs),照這把尺,4 fs 本身就在建議範圍內、1.5 amu 是額外的安全邊際;Amber 生態則習慣 4 fs 配 3.024 Da 的重氫,照那把尺看同一組設定就偏積極。落在兩套慣例中間時,「我照手冊」與「我照 Amber 慣例」都不是完整的回答。可防守的補法成本接近零:一段短 NVE 看能量漂移,加上一段 2 fs、不用 HMR 的對照跑,比對真正拿去打分的那幾個聚合量。特別注意不能拿溫度當證據 —— Langevin 恆溫器會把積分誤差造成的能量漏失吸收掉,溫度計永遠是 300 K,安靜偏掉的是構形分布。做了那兩件事,它從「會被質疑的點」變成「方法段的一句話」。
你的水模型與力場組合有沒有已知的偏差?對蛋白與核酸的介面尤其重要。點開看參考答案
可以守住的答案是把已知問題講在前面,而不是等人指出來。固定電荷力場在高度帶電的核酸介面上,離子與磷酸的作用強度是長期被討論的問題,也因此才有針對離子與磷酸交互作用的修正參數這一整條線;三點水模型在描述水的介電與擴散性質上也有已知的系統偏差。你的防線有兩層:第一,所有宣稱都是同一套力場下的相對比較(WT 與變體、on-target 與 mismatched),系統偏差在雙差裡會大幅抵消;第二,任何依賴絕對數值的敘述都不放進結論。這比宣稱「我們的力場很準」可防守得多。
口試可能問
你為什麼選古典 MD,而不是 QM/MM 或機器學習位能?點開看參考答案
講成三者的可及性與問題匹配度。QM/MM 適合處理切割那一步的化學,但你的問題發生在化學之前的構形檢查點,而且 QM/MM 的取樣量在 500,000 原子的系統上不可能達到你需要的統計。機器學習位能在小系統與特定化學上進展很快,但要涵蓋蛋白加核酸加水這個組成、又要有可用的參數,目前不在你的預算內。古典 MD 是唯一能在這種算力等級(一張消費級 GPU,加上叢集上同時只跑得動個位數 job 的小額配額)之下,對完整複合體取樣到有統計意義的手段。代價一起講:你放棄了任何跟成鍵化學有關的問題,也放棄了絕對能量,只保留構形統計的相對比較。
算力加倍,你會拿去加長度、加 replica、還是加系統條件?為什麼?點開看參考答案
這一問在測你有沒有把取樣分析真的內化。優先序是:先加 replica(因為你的誤差棒與可靠度分層完全建立在 replica 上,而且 n = 2 會系統性高估一致性 —— 逐殘基 top-8 共享從 n = 2 的 6/8 掉到 n = 4 的 3/8),再加系統條件(帶 PAM-distal 錯配的底物,因為 on-target 底物在某些變體上結構性地是 null,沒有條件就沒有動態範圍),最後才加長度。理由要說到底:加長度只縮小同一個盆地裡的統計誤差,加 replica 與加條件則是在檢驗你的結論是否存在。
哪一個 MD 參數最容易被 DFT 直覺誤當成收斂旋鈕?你怎麼處理它,代價是什麼?點開看參考答案
real-space cutoff。DFT 直覺會說「加大一定更準」,所以第一反應是把它從 1.0 nm 推到 1.2 nm 當成免費升級。但力場的 Lennard-Jones 參數是在某個 cutoff 底下配出來的(amber14 這一系的慣例是 0.8 到 1.0 nm 搭 PME),推大不會更靠近真值,只是離開參數化的條件;1.2 nm 是 CHARMM 生態的慣例,換力場才跟著換。正確的處理是把它降級成敏感度測試的旋鈕:要動就固定其他所有參數只動它,再比較你真正要報的那幾個量。代價分兩層講:短期是我放棄了一個看起來白賺的升級,還多付算力做對照;長期省下來的更多 —— 如果當初真的調了,後面每一個數字都會落在一組沒有人驗證過的參數上,而且不會有任何錯誤訊息提醒我。這一題真正在測的是我有沒有把 MD 的參數重新分過類:哪些是可逼近的收斂旋鈕,哪些是力場參數化的一部分,動了就等於換了力場。
如果有人說你的整章結論都只是「力場的產物」,你要怎麼回應?點開看參考答案
不要否認,要重新界定宣稱的層級。可以守住的說法是:本工作宣稱的是在固定力場與固定流程之下,哪些描述符跨獨立軌跡可重現、哪些不可重現,這是精密度(precision)的陳述,不需要力場正確也成立。力場的正確性只有在你要宣稱「這個數字對應到真實的實驗量」時才成為必要條件,而那一步在驗證之前不會發生。把方法學貢獻放在不依賴力場正確性的那一層,是這條路線唯一能全身而退的架構。
AI 對話練習
你是一位同時做過第一原理計算與生物分子模擬的資深研究員。我是計算化學/材料背景,熟 DFT、VASP、吸附能與電催化,剛開始做古典分子動力學。
請跟我一起建一張「誤差預算對照表」。做法:
- 你先問我,在 DFT 裡我通常怎麼決定 ENCUT 與 k-mesh、以及我怎麼知道可以停。
- 然後你逐項給我 MD 這邊的對應項目(力場參數化、水模型、起始結構、盒子大小、timestep 與 constraints、取樣長度、replica 數)。每給一項,我要先自己回答三件事:它對應到 DFT 的哪一項、它是不是單調可逼近的、以及我要用什麼檢查決定它夠不夠。
- 我答完你再糾正。特別注意抓出我把「非單調」的項目當成「單調可逼近」來處理的地方,並說明那個誤會會在下游造成什麼具體的錯誤結論。
- 最後把整張表整理成兩欄,並在每一列標上「這一項答錯的代價:高/中/低」,附一句理由。
不要安慰我,也不要略過我答對的項目的漏洞。
我要向你解釋一個命題:在分子動力學裡,增加模擬長度只縮小統計誤差,不縮小力場的系統誤差,也不保證跨得過主要的構形能障。
你扮演一位聰明但完全沒做過 MD 的計算材料研究生。規則:
- 我每講完一段,你只能做三件事之一:指出我用了沒定義過的名詞、指出我的因果推論跳步、或指出我講的東西無法從我前面說過的推出來。發現任何一項就立刻打斷,不要等我講完。
- 至少挑戰我一次:「那你怎麼分辨『這個現象不會發生』跟『我沒跑到它發生』?」
- 至少挑戰我一次:「既然統計誤差會隨時間下降,那我一直跑下去,誤差棒不就任意小了嗎?那不就等於答案很準?」
- 不要幫我補完我沒講清楚的部分,也不要展示你自己的知識。
我講完後請列出:我漏掉的關鍵環節、我講錯的地方、以及一個「如果我真的懂了就答得出來」的追問。
你是一位務實、討厭空話的計算組 PI。我要向你報告一份分子動力學的算力配置計畫,你的工作是挑戰它。
我的條件:系統是一個約 535,000 原子的蛋白–RNA–DNA 三元複合體,目前有 4 條獨立 replica、每條約 87 ns。算力是一張消費級 GPU,加上叢集上同時只跑得動個位數 job 的小額配額,儲存空間也很緊。目標是建立一套便宜、可大量篩選的變體排序流程,最後寫成方法學論文。
請你:
- 先問我三個問題,確認我打算用哪些描述符打分、我的儲存策略、以及我要比較幾個變體與幾種底物條件。
- 然後要求我提出一份配置方案(跑幾個條件、每個條件幾條 replica、每條多長、存檔頻率多少),我提出後你逐條挑戰。
- 特別針對三件事逼問我:我的方案有沒有一個「本來就該是 null」的對照條件、我的 replica 獨立性是在哪一層引入的、以及儲存空間會不會在計畫的第幾週爆掉。
- 最後給我一張最小可行配置表,標出算力減半時要先砍哪一格、砍掉之後我失去的是哪一句宣稱。
回答要具體到我可以照著寫 job script,不要給我原則性的建議。