Tanimoto 相似度與 SMARTS 子結構搜尋詳解,附免費工具

發布:2026 年 10 月 19 日 · 作者:Scidart Academy · 閱讀時間:約 7 分鐘
兩個藥物分子並排顯示,下方是一個 Tanimoto 相似度刻度條
Tanimoto 相似度衡量兩個分子共有多少個指紋位元。

簡答: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)

計算範例,阿斯匹靈與水楊酸:

  1. 阿斯匹靈,CC(=O)Oc1ccccc1C(=O)O:a = 74 位元。
  2. 水楊酸,OC(=O)c1ccccc1O:b = 41 位元。
  3. 兩者共有:c = 41。水楊酸的每個位元也都在阿斯匹靈中。
  4. 並集 = a + b − c = 74 + 41 − 41 = 74。
  5. 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 相似度與子結構工具

  1. 開啟分子相似度與子結構搜尋頁面。預設開啟的是相似度分頁。
  2. 在分子 A(SMILES)與分子 B(SMILES)中輸入 SMILES,然後點選比較。如果想繪圖,在繪圖填入旁邊選擇分子 A或分子 B,然後在編輯器中繪製。點選嗎啡 vs 可待因等範例試一試。
  3. 檢視 Tanimoto 與 Dice 分數、相似程度判斷與彩色條。表中顯示 a、b 與 c,你可以核對計算。著色的原子是最大共同子結構。
  4. 要對許多分子排序,在依分子 A 排序清單下每行貼上一個 SMILES(SMILES 後面可以加名稱),然後點選排序清單。用 Download CSV 儲存表格。
  5. 進行模式搜尋時,開啟子結構搜尋。輸入查詢或點選速查表按鈕,貼上目標分子,然後點選搜尋。勾選只顯示相符的分子可隱藏其餘分子。

範例解析

例 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 個。

相似度高是否意味著兩個分子活性相同?

不一定。相似的分子往往具有相似的活性,這就是相似度搜尋被用來尋找類似物的原因。但一個小改動,比如一個甲基或一個掌性中心,就可能使活性消失。請把分數當作參考,而不是證據。

相關工具

相關指南

最後更新: