在紙上畫個苯環,誰都畫得出來;可要把兩個連在一起的三元環畫得鍵長合理、氫原子一個不漏,就不是隨手的事了。化學家日常的難題也不在「畫不畫得出」,而在「畫出來之後能不能被計算」。MuchSci 應用集裏的化學資訊學,做的正是這一段銜接:你給一行 SMILES 文本,它把分子解析成物件,再從同一個物件上同時長出「圖」和「數」。
最近一次對話是個現成的例子。輸入 C1CC1C2CC2,問這是什麼分子,回傳的是兩張 SVG 結構式加一段總結。這不是檢索拼出來的答案,而是解析、排座標、渲染、算性質一步步跑出來的結果。這篇照著這條鏈拆一遍。
01 同一個分子,為什麼需要兩種圖
先看交付本身。
▲ 圖 1|含氫完整式負責逐原子核對,骨架式貼近文獻的閱讀習慣
兩張圖不是重複交付,對應的是兩種閱讀場景。 含氫完整式把每個碳、每個氫都標出來,核對原子計數和價態時不容易看漏;骨架式按有機化學慣例省略碳氫,兩個三元環和那根連接鍵一眼看清,放進論文或組會匯報也不違和。對一個分子來說,這是同一事實的兩種投影。
麻煩通常出在只拿到其中一張:只看骨架式,初學者數不清氫;只看完整式,又抓不住環系關係。兩張一起給,猜的環節就省了。
02 從一行文本到兩張 SVG,中間走幾步
把這次解析的過程拆開,大致是下面這樣。
▲ 圖 2|真正見功夫的是第 3 步:2D 座標怎麼排,決定圖能不能用
這裏值得多說兩句的是座標排布。SMILES 只描述連接關係,不含座標;要把結構畫出來,得先給每個原子算出一套 2D 座標,讓鍵長鍵角合理、環不變形、原子不重疊。雙環丙烷這種小分子還好,環系一大,排布質素直接決定結構圖能不能用。渲染環節再把同一套座標按兩種畫法各出一張,所以兩張圖的原子位置是對得上的。
介面裏能看到這次交付的樣子:
▲ 圖 3|兩張 SVG 可預覽可儲存,一句話總結與後續建議跟在交付記錄裏
03 圖是畫出來的,數是算出來的
結構之外,它還順手給了一組數值。
▲ 圖 4|組成、拓撲、能量三層,數值全部讀自同一個分子物件
這次的一句話總結是:C1CC1C2CC2 即雙環丙烷(bicyclopropyl),C₆H₁₀,分子量 82.15;兩個孤立三元環經一根 C–C 單鍵相連,非螺環、非橋環、非稠環;全 sp³、無雜原子、無手性;環張力約 27 kcal/mol。這段話裏圖和數不分家——分子式、張力這些量都從解析出的同一個物件上計算得到,不會出現「圖是一個分子、數是另一個分子」的錯位。它還列了下一步可做的事:SMILES 規範化與批量解析、計算指紋與相似度、多構象搜索加 MMFF/UFF 能量排序、輸出 3D SDF。
04 單個分子手畫也行,批量處理才是主場
一個分子畫錯了還能返工,一整個分子庫呢?
▲ 圖 5|藥物發現場景裏,分子庫動輒成千上萬條,逐個手畫不現實
虛擬篩選、相似度聚類的輸入都是成批的 SMILES,這時「畫得好看」只是末端需求,前端的解析、規範化、去重、批量算描述符才是主要工作量。這也是化學資訊學區別於畫圖軟件的地方:畫圖軟件交付一張圖,工具鏈交付一套可重跑的流程——同樣的輸入再跑一遍,圖和數都一致,結果才談得上可復現。MuchSci 把這條鏈接進對話,省下的是自己搭環境的那一段,不是你對結果的判斷。
05 邊界
照例把邊界擺在明面上。
① 本篇講的是功能位置與工作方式,不構成對結果質素的承諾。 解析能否成功、座標排布是否合理,與分子複雜度和輸入寫法都有關係。
② 輸出需要人工覆核。 結構式、性質數值、構象能量都可能因力場或參數選擇而有偏差,用於論文或匯報前應回到原始數據核對;專業判斷不能外包。
③ 涉及藥物設計等受監管方向時,以所在機構與相關法規的現行規定為準。 本篇內容僅用於科研與教學參考。