偵測器丟掉的東西
回想繞射那一階:每個反射都帶著一個結構因子 F_hkl,而 F 是個複數——它有振幅 |F_hkl|(散射波有多高)與相位 phi_hkl(它的波峰落在哪,那個說出這道波如何與其他所有波對齊的時序)。但偵測器只是個光子計數器。它感受不到時序;它只能記錄有多少 X 光落進一個點,也就是正比於 |F_hkl|^2 的強度 I_hkl。開平方根,你就復原了振幅 |F_hkl|。而相位 phi_hkl 就這麼沒了——從未被量到,資料裡哪兒都找不到。
為什麼遺失一個相位會要緊到這種地步?因為原子只在你把所有散射波以正確的節拍重新加回去時才會現身,而定下節拍的正是相位。想像你錄下一個鋼琴和弦,卻只記下每個音有多「大聲」,從不記下每個音在何時被彈下。你叫得出那些音,卻永遠重建不出旋律,因為曲調就住在你丟掉的那份時序裡。遺失每個反射的相位,正是這件事,只是發生在三維、且一次上千個音。這場時序遺失的災難有個名字——相位問題——它是橫在繞射圖與晶體結構之間、最深的那道障礙。
若你握有相位:電子密度圖
先看看假如相位被交到你手上、你能做什麼,會很有幫助,因為那恰恰點名了缺的是什麼。繞射圖與晶體的電子密度是一對傅立葉轉換對:一個住在倒空間,一個住在實空間,而彼此正好是對方的轉換。具體地說,每個反射 (hkl) 都貢獻一道餘弦電子密度漣漪——一道密度波,它的重複間距是 d_hkl,高度由振幅 |F_hkl| 決定,波峰的位置則由相位 phi_hkl 定下。把這些漣漪對每個量到的反射全部加起來,電子密度 rho(x,y,z) 就重建了自己。這道加總就叫做傅立葉合成。
FROM A DIFFRACTION EXPERIMENT TO A STRUCTURE
crystal --> diffraction --> detector counts photons
|
v
I(hkl) = |F(hkl)|^2 <-- measured
|
sqrt() | the PHASE phi(hkl) is LOST here
v
you HAVE: |F(hkl)| you LACK: phi(hkl)
electron density (the answer you want):
rho(x,y,z) = (1/V) * sum over hkl of
|F(hkl)| * cos( 2pi(hx+ky+lz) - phi(hkl) )
^^^^^^^^ ^^^^^^^^^
have this need this
atoms = the spots where thousands of density waves crest together完成的圖裡,原子不過就是那上千道密度波恰好在同一處交會出的波峰;原子之間的空隙,則是它們相消之處。那些波峰出得多銳利,取決於你餵進多少反射、以及它們在倒空間裡伸得多遠。這又是兩個空間之間那個反比關係:最精細的實空間細節由最高角度的反射攜帶,所以要分開相距 1 angstrom 的兩顆原子,你必須量到 d = 1 angstrom 左右的資料。太早截斷資料,原子就糊在一起;圖的解析度,只跟你收到的最外圈反射一樣好。
於是解出一個結構的全部任務,塌縮成一句話:把相位弄到手。振幅你已經免費握著了。若有人在你耳邊低聲說出每個反射的相位,你就把它們敲進傅立葉合成、按下執行,直接從圖上讀出原子。接下來的一切——帕特森、直接法、整箱工具——都只是製造出一組「起始相位」的不同法子,而那組相位是你從一開始就不被允許量到的。
帕特森:你永遠畫得出的那張圖
這裡有個漂亮的把戲。假如你照樣跑一次傅立葉合成,但用你真正握有的量——強度 |F_hkl|^2——當係數,並把每個相位都設為零,會怎樣?你會得到一張真實、算得出來的圖,完全不需要任何相位資訊,因為 |F|^2 正是你量到的東西。這就是帕特森函數 P(u,v,w),它最大的美德是:對任何晶體,你都能直接從原始資料把它畫出來。
代價是:帕特森圖不給你原子——它給你原子「之間」的向量。帕特森圖上位置 (u,v,w) 處的一個峰,意思是:真實結構裡某處有一對原子,恰好被那個向量分開。若原子坐在 r_1 與 r_2,帕特森圖就在 r_2 - r_1 處(以及 r_1 - r_2 處)有個峰。關鍵在於,每個帕特森峰的高度正比於那兩顆原子原子序的乘積,Z_i times Z_j——因為越重的原子散射 X 光越強,所以兩顆重原子之間的向量喊得最大聲。
正是那個 Z times Z 的加權,透過重原子法,讓帕特森真正好用起來。假設一個主要由碳(Z = 6)構成的有機分子,含有單獨一顆溴原子(Z = 35)。一個碳-碳向量的權重約為 6 times 6 = 36,但溴-溴向量的權重是 35 times 35 = 1225——大約高 34 倍,凌駕在那一片輕原子向量的森林之上。這就像一場伸手不見五指的派對,你認不出任何人,唯獨那位穿亮白西裝的賓客除外:找到那個主宰全場的 Br-Br 峰,你就釘住了重原子的位置。從這一顆已知的原子,你就能算出近似相位、跑傅立葉合成,並開始從得出的圖裡一顆一顆把較輕的原子拉出來。
直接法:藏在振幅裡的相位
第二條大路不肯這麼輕易對相位認輸。它的立基洞見是:相位其實並非可以隨便取值——它們被你早已知道的物理悄悄約束著。電子密度處處必須非負(你在某一點不可能有比「沒有電子」還少的電子),而且它不是一團平滑的模糊,而是一撮撮尖銳、離散、坐落在平坦空曠背景上的原子峰。這兩件事——非負性與原子性——把相位與振幅在統計上綁在了一起。單憑振幅並不能唯一定出相位,但它們讓某些相位組合的可能性壓倒性地高過其他組合。
直接法的主力是三重相位關係。在那些強反射之間,相位以高機率服從:phi_h 近似於 phi_k 加 phi_(h-k)——一個把指標相加的反射三方連起來的關係。沒有任何單一三重關係是確定的,但每一個都是一張機率性的選票,而牽涉的三個振幅越大,機率就越高。於是你固定幾個起始相位,讓上千條三重關係把它們的選票傳遍整份反射清單,並搜尋那組能同時滿足最多關係、自洽的相位集。把那組相位餵進傅立葉合成,若它奏效了,原子就對焦現身。
振幅竟能招供自己的相位,聽起來像魔法,所以要抓緊那個讓它成立的約束。這就像一副拼圖,你恰好還知道完成的圖必定是一張「空白場上散布著分離小點」的真實照片——單這一個要求,就把天文數字般多的相位組合,砍到只剩極少數幾個可能合乎物理的。直接法如今幾乎能自動解出多數小分子結構(可達數百顆原子),而這個構想也讓 Herbert Hauptman 與 Jerome Karle 贏得 1985 年諾貝爾化學獎。不過要把它的界線說清楚:它需要接近原子解析度的資料(要有許多強反射,三重關係才投得了票),而且它對大致等重原子的結構最管用——所以非常大的蛋白質通常仍舊倚賴重原子法與異常散射法。
從第一張圖到完成的結構
帕特森與直接法都不會交給你一個完美的結構——各自交給你的是一個粗略的起始模型:幾顆大致擺對位置的原子。從那裡,模型靠精算來打磨。你計算你那組試探原子「會」給出什麼強度,拿去跟量到的比較,再微調原子位置與熱因子,把不合之處縮小。對單晶繞射,每個反射都分開量到,這是一次最小平方精算;對粉末資料,整條輪廓一次擬合,則是里特沃爾德精算——下一篇的主題。無論哪一種,那個迴圈都一樣:模型給相位,相位給更好的圖,圖揭露你先前漏掉的原子,你再精算一次,相位在每一輪都更加銳利。
兩點誠實的提醒為這個迴圈收尾。第一,一個解出的結構是一個「擬合資料的模型」,而非原子的字面照片;它擬合得多好由一個 R 因子回報,而 R 低表示模型與量測相符,並不表示這個答案保證唯一。第二,粉末資料讓這一切比單晶資料更難,因為 2-theta 幾乎相同的反射會重疊,它們各自的 |F| 值無法乾淨地分開——這正是為什麼一整套三維單晶資料集,把每個 (hkl) 各自給出,是從零解出一個新結構的黃金標準。