Tanimoto 相似度與 SMARTS 子結構搜尋詳解,附免費工具
簡答:Tanimoto 相似度比較兩個分子的指紋:T = c / (a + b − c),其中 a 與 b 是各分子中設為 1 的位元數,c 是兩者共有的位元數,取值範圍為 0 到 1。開啟分子相似度與子結構搜尋工具,輸入兩個 SMILES 並按 比較。阿斯匹靈與水楊酸得分 0.554(中等相似)。進行模式搜尋時,可以用 SMARTS,例如以 [CX3](=O)[OX2H1] 表示羧酸。
關鍵術語,一句話解釋
| 分子指紋 | 一串二進位位元。當分子含有某種結構片段時,對應的位元為 1。 |
|---|---|
| Tanimoto 係數 | c / (a + b − c)。共有位元數除以任一分子中設為 1 的全部位元數。範圍 0 到 1。 |
| Dice 係數 | 2c / (a + b)。給共有位元雙倍權重。總是至少與 Tanimoto 一樣高。 |
| 子結構 | 較大分子中一組相連的原子與化學鍵,例如苯環或 COOH 基團。 |
| SMARTS | 一種以 SMILES 為基礎 的模式語言,用於描述帶有原子與化學鍵條件的子結構。 |
| 共同子結構 | 兩個分子中都存在的最大相連原子與化學鍵集合。 |
分子指紋的工作原理
電腦無法直接比較兩張結構圖,所以要把每個分子轉換為指紋。常見的有三類:
- 片段字典指紋每個預定義片段對應一個位元,例如與氧相連的羰基。MACCS 鍵(166 位元)就是這樣工作的。
- 路徑指紋把每條不超過設定長度的原子線性路徑雜湊到某個位元。
- 環形指紋(ECFP、Morgan)把每個原子周圍半徑為 2 或 3 個鍵的環境雜湊到某個位元。
MolDraw 工具使用 512 位元片段字典指紋,與分子比較外掛相同。阿斯匹靈在 512 個位元中有 74 個設為 1,水楊酸有 41 個。較大的分子通常設為 1 的位元較多。
指紋記錄哪些原子相互鍵結,但不記錄楔形鍵或 3D 形狀。這就是 L-丙胺酸與 D-丙胺酸得分為 1.000 的原因。
Tanimoto 公式與計算範例
設 a 為分子 A 中為 1 的位元數,b 為分子 B 中的位元數,c 為兩者共有的位元數。
- Tanimoto:T = c / (a + b − c)
- Dice:D = 2c / (a + b) = 2T / (1 + T)
計算範例,阿斯匹靈與水楊酸:
- 阿斯匹靈,CC(=O)Oc1ccccc1C(=O)O:a = 74 位元。
- 水楊酸,OC(=O)c1ccccc1O:b = 41 位元。
- 兩者共有:c = 41。水楊酸的每個位元也都在阿斯匹靈中。
- 並集 = a + b − c = 74 + 41 − 41 = 74。
- T = 41 / 74 = 0.554。D = 82 / 115 = 0.713。
水楊酸是阿斯匹靈的子結構,但得分只是中等。阿斯匹靈乙醯酯基多出的 33 個位元拉低了分數。Tanimoto 會懲罰大小差異,當你想找大小相近的類似物時,這一點很有用。
Tanimoto 是對稱的:A 對 B 與 B 對 A 的結果相同。完全相同的指紋得分恰好為 1。
Tanimoto 分數的含義
| 0.85 到 1.00 | 非常相似。近似類似物,或在 1.00 時為同一分子。 |
|---|---|
| 0.70 到 0.85 | 相似。共有核心結構,只有一兩個基團不同。 |
| 0.50 到 0.70 | 中等相似。有一些共同片段,骨架或取代基不同。 |
| 0.30 到 0.50 | 弱相似。只有一個環或一個官能基相同。 |
| 低於 0.30 | 不相似。 |
這些閾值適用於這裡使用的 512 位元片段指紋。使用 ECFP4 等環形指紋時,同一對分子的分數往往更低,0.4 就可能意味著相關化合物。永遠不要在同一張表中混用兩種指紋的分數。
用於子結構搜尋的 SMARTS 基礎
普通 SMILES 本身就是一個查詢:c1ccccc1 可以找到每個苯環。方括號為單個原子新增條件。
#7 | 原子序 7:任何氮,無論是否芳香。 |
|---|---|
c / C | 芳香碳 / 脂肪碳。 |
H1、!H0 | 恰好一個氫 / 至少一個氫。 |
X3、D2 | 總共三個連接(含 H)/ 兩個重原子鄰居。 |
R、R0、r5 | 在環中 / 不在環中 / 在五元環中。 |
, ; ! | 或 / 與 / 非。[F,Cl,Br,I] 表示任何鹵素。 |
- = # : ~ | 單鍵、雙鍵、三鍵、芳香鍵與任何鍵。 |
常用模式:
- 羧酸:
[CX3](=O)[OX2H1] - 酯:
[#6][CX3](=O)[OX2][#6] - 一級烷基胺:
[NX3;H2][CX4] - 芳基鹵化物:
c[F,Cl,Br,I] - Lipinski 氫鍵供體:
[#7,#8;!H0]。Lipinski 氫鍵受體:[#7,#8]
該工具目前還不支援用 $( ) 寫的遞迴 SMARTS 或用點分隔的查詢。請用相鄰原子改寫這類條件。
如何使用 MolDraw 相似度與子結構工具
- 開啟分子相似度與子結構搜尋頁面。預設開啟的是相似度分頁。
- 在分子 A(SMILES)與分子 B(SMILES)中輸入 SMILES,然後點選比較。如果想繪圖,在繪圖填入旁邊選擇分子 A或分子 B,然後在編輯器中繪製。點選嗎啡 vs 可待因等範例試一試。
- 檢視 Tanimoto 與 Dice 分數、相似程度判斷與彩色條。表中顯示 a、b 與 c,你可以核對計算。著色的原子是最大共同子結構。
- 要對許多分子排序,在依分子 A 排序清單下每行貼上一個 SMILES(SMILES 後面可以加名稱),然後點選排序清單。用 Download CSV 儲存表格。
- 進行模式搜尋時,開啟子結構搜尋。輸入查詢或點選速查表按鈕,貼上目標分子,然後點選搜尋。勾選只顯示相符的分子可隱藏其餘分子。
範例解析
例 1:乙醯胺酚與非那西汀
非那西汀(CCOc1ccc(NC(C)=O)cc1)在乙醯胺酚的 OH 位置上是乙氧基。Tanimoto = 0.846,Dice = 0.917。判斷:相似,剛好低於「非常相似」的界線。共同核心是整個乙醯苯胺單元。
例 2:以布洛芬為參照對 NSAID 排序
點選範例:NSAID 類藥物 vs 布洛芬。萘普生排第一(0.711),其次是酮洛芬(0.691)與氟比洛芬(0.681)。這三者都是 2-芳基丙酸。雙氯芬酸得分 0.336,咖啡因以 0.106 排在最後。
例 3:哪些藥物是羧酸?
在 9 種範例藥物上查詢 [CX3](=O)[OX2H1]:9 種中有 6 種相符。乙醯胺酚、塞來昔布與咖啡因不相符。每個酸基都在結構圖中著色顯示。
例 4:乙醯胺酚中的 Lipinski 供體
在 CC(=O)Nc1ccc(O)cc1 上查詢 [#7,#8;!H0],得到 2 個相符:醯胺 N–H 與酚 O–H。受體查詢 [#7,#8] 得到 3 個:N、C=O 的氧與 OH 的氧。
例 5:鏡像異構物
L-丙胺酸與 D-丙胺酸的 Tanimoto 為 1.000。工具會附加提示,說明兩者只在立體化學上不同。
總覽表
| 阿斯匹靈 vs 水楊酸 | T = 0.554,D = 0.713,中等相似 |
|---|---|
| 乙醯胺酚 vs 非那西汀 | T = 0.846,相似 |
| 嗎啡 vs 可待因 | T = 0.944,非常相似 |
| 布洛芬 vs 萘普生 | T = 0.711,相似 |
| 苯 vs 環己烷 | T = 0.000,不相似 |
| 羧酸 SMARTS | [CX3](=O)[OX2H1] |
| 供體與受體 SMARTS | [#7,#8;!H0] 與 [#7,#8] |
常見錯誤
- 比較不同指紋得到的分數。一種指紋上的 0.6 並不等於另一種指紋上的 0.6。
- 期望立體異構物得分不同。二維指紋忽略立體化學。
- 把相似度當作活性。改變一個原子就可能讓藥物失效。
- 查詢中省略了氫。
C(=O)O也會相符酯。羧酸的 OH 請用[OX2H1]。 - 混淆 c 與 C。
C1CCCCC1是環己烷,不會相符苯。 - 忘記鹽與電荷。羧酸根
[O-]不會相符 OH 查詢。
問題與解答
多少 Tanimoto 相似度分數算高?
在 MolDraw 工具使用的 512 位元片段指紋上,0.85 以上為非常相似,0.70 到 0.85 為相似,0.50 到 0.70 為中等相似,0.30 到 0.50 為弱相似,低於 0.30 為不相似。門檻會隨指紋類型而變,所以只能比較同一種方法得到的分數。
如何計算 Tanimoto 係數?
數出分子 A 中設為 1 的位元數(a)、分子 B 中的位元數(b),以及兩者共有的位元數(c)。Tanimoto = c / (a + b − c)。阿斯匹靈(a = 74)與水楊酸(b = 41),c = 41,Tanimoto = 41 / 74 = 0.554。
Tanimoto 相似度與 Dice 相似度一樣嗎?
不一樣。兩者使用相同的計數,但 Dice = 2c / (a + b)。Dice 總是等於或高於 Tanimoto,兩者的關係為 Dice = 2T / (1 + T)。Tanimoto 0.554 對應 Dice 0.713。
為什麼工具對兩個不同的分子給出 1.000?
指紋記錄的是連接關係,而不是 3D 形狀。鏡像異構物、非鏡像異構物與 E/Z 異構物具有相同的片段,所以得分為 1.000。當兩個輸入只在立體化學上不同時,工具會顯示一條提示。
SMILES 與 SMARTS 有什麼不同?
SMILES 描述一個分子。SMARTS 描述許多分子都可能包含的一種模式。每個 SMILES 都是合法的 SMARTS,但 SMARTS 還增加了條件,例如 H1(一個氫)、X3(三個連接)、R(在環中),以及用逗號(或)、分號(與)與感嘆號(非)表示的邏輯。
如何在一組分子中找出所有羧酸?
開啟「子結構搜尋」分頁,在速查表中點選 Carboxylic acid 載入 [CX3](=O)[OX2H1],貼上你的 SMILES 清單並點選「搜尋」。在 9 種藥物的範例集中,有 6 種相符:布洛芬、萘普生、酮洛芬、氟比洛芬、雙氯芬酸與阿斯匹靈。
能用 SMARTS 數氫鍵供體嗎?
能。模式 [#7,#8;!H0] 相符每個至少帶一個氫的氮或氧,這就是 Lipinski 供體計數。乙醯胺酚得到 2 個相符,受體模式 [#7,#8] 得到 3 個。
相似度高是否意味著兩個分子活性相同?
不一定。相似的分子往往具有相似的活性,這就是相似度搜尋被用來尋找類似物的原因。但一個小改動,比如一個甲基或一個掌性中心,就可能使活性消失。請把分數當作參考,而不是證據。