---
title: 類似構造検索とは何か
tags:  #化学情報学 #類似構造検索 #分子記述子 #ビットベクトル #smiles  
author: [gotoh-poclab](https://image.docswell.com/user/gotoh-poclab)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LE1YRYWV7G.jpg?width=480
description: 類似構造検索では、構造情報をさまざまな数学的空間に表現し、4つの手法を使い分けて類似性を評価します。まず、構造をグラフとして直接比較するMCS類似性を紹介し、計算コストが高いことを指摘します。次に、分子量やTPSAなどの連続値を用いたユークリッド距離やマハラノビス距離といった距離係数で類似性を測ります。さらに、原子や官能基の有無をビットで表すビットベクトル空間では、タニモト係数やダイス係数を使って比較します。最後に、SMILESやInChIKeyといった文字列を文字類似性指標で評価し、正規化レーベンシュタイン距離などを利用します。これらの手法を適切に選択すれば、化合物の類似検索やスクリーニングを効果的に実施できます。  Zennでも記事を書いています https://zenn.dev/poclab_techblog/articles/what_is_chemical_similarity  https://zenn.dev/poclabweb/books/chemoinfomatics_theory_descriptor/viewer/lesson07_030_compound_search
published: May 17, 26
canonical: https://image.docswell.com/s/gotoh-poclab/Z8N1JY-2026-05-17-135203
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LE1YRYWV7G.jpg)

1
類似構造検索とは何か
化合物の類似度計算における4つの方法を比較する


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GEWG1G63J2.jpg)

類似構造検索 (Similarity)
2
実用的な定量的アプローチを行うためには、構造情報を様々な数学的空間で表現（形式化）し、様々
な数学的、統計的、アルゴリズム的アプローチを適用して類似性の概念を探求する必要がある。
検索
記述子計算
DB
類似度計算
連続値
MW: 156.27
TPSA: 20.23
ビットベクトル
..0101110...
C10H20O
SMILES
CC(C)[C@@H]1CC[C@@H](C)C[C@H]1O
記述子ごとに
計算方法が
異なる
• 類似性は、アプリケーションの種類や選択した化学構造の表現に依存する。(各オブジェク
ト空間において異なる意味)
• 類似の構造は、類似の記述子、類似のビットベクトル、または類似の分子特性に対応。
• 各空間（構造、ビットベクトル、記述子ベクトル、物性など）の間にリンクを設けること
ができる。
• 類似性の概念を正しく利用するためには、どのような条件が必要なのか（例えば、どのよ
うな化合物のクラス、特性、記述子の形式化に対して、この原理が妥当な結果を与えるの
か）を知っておかなければならないのである。
化合物を
並び替え
Hit list
類似 0.95
15358-76-6
類似 0.90
2698-99-9
類似0.85
937-05-3
ID順番で並
び替え


# Page. 3

![Page Image](https://bcdn.docswell.com/page/47ZLPLYGJ3.jpg)

類似構造検索 (Similarity)
&gt;=99
に含まれる
化合物
95-98
に含まれる
化合物
類似度
高い
3
90-94
に含まれる
化合物
85-89
に含まれる
化合物
類似度
低い
完全
構造
一致
100に近いほど
類似度は高い
類似構造検索(Similarity)には、完全構造検索
と部分構造検索の結果も含まれる。
青くなっている部分が検索した構造と一致
している部分(部分構造一致)


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YJ6WMWDQJV.jpg)

類似性測定 (連続値, 行列, 文字列を比較)
構造情報と空間
指標の算出方法
代表例
使用する指標の説明
1. グラフ
(Structure Space)
MCS類似性
現在、あまり使われていない
構造のグラフを直接比較
2. 連続値
(Descriptor Space)
距離係数
(Distance coefficients)
ユークリッド距離、
マンハッタン距離
マハラノビス距離
分子量とTPSAなど構造か
ら算出される連続値で類
似性を比較
3. 離散値ベクトル
(Bit-vector Space)
連関係数
タニモト係数
(Association coefficients) ダイス係数
コサイン係数
ECFPなど構造から算出さ
れるビットベクトルで類
似性を比較
4. 文字列
(Word Space)
文字類似性
SMILESなど構造から算出
される文字列で類似性を
比較
1. グラフ
2. 連続値
MW: 156.27
TPSA: 20.23
構造から計算した情報
レーベンシュタイン距離
Jaro-winkler距離
ゲシュタルトマッチング
3. 離散値ベクトル
..0101110...
部分構造を1と0にした情報
4. 文字列
CC(C)[C@@H]1CC[C@@H](C)C[C@H]1O
原子や結合を文字列にした情報
場合によって使い分けるが、類似性測定にはタニモト係数が最もよく用いられる。
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GJ5MZM32J4.jpg)

化合物の指標と類似性における4つの空間
1. グラフの類似性
Structure Space
MCS類似性
2. 距離係数
Descriptor
Space
3. 連関係数
Bit-vector
Space
4. 文字類似性
Word Space
ユークリッド距離
タニモト係数
レーベンシュタイン距離
..0101110...
CC(C)[C@@H]1CC[C@@H](C)C[C@H]1O
350
300
250
200
150
100
50
0
0
直接、構造の
グラフを比較
計算コスト
が非常に高い
20
40
60
分子量や溶解度
などの数字(スカラー)
それぞれが、独立
した要素として取り出し
たものを比較する
..0100101...
..1100010...
..0101110...
..0000010...
部分構造の有無を数字
の集合(ベクトル)意味
を持った要素を並べた
もので取り出す。有無
関係を0と1(ビット)し
たものを比較する
OCCO
CCCCCC
CC1=CC=CC=C1
CC(C)[C@@H]1CC[C@@H](C)CC1
C12CCCCC1CCCC2
O[C@@H](CC(C)C)CC(C)CC
構造を文字列にした
SMILESなどを比較
する。
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/9E29R9Z17R.jpg)

1 グラフの類似性
6
MCS類似性
• 分子AとBを原子と結合と考える。分子Aと分子Bの 構
造の最大公約数的部分構造（MCS）を算出する。
HO
OH
• MCSの原子と結合の数 は、最大共通部分構造C =
MCS(A,B)を持つ構造AとBの間の類似性の程度を定
量化するために使用可能。
• こ こで 、 NE( A )は 構造 A の エッ ジ （ 結 合） の 数、
NE (B)、NE (C)はそれぞれ構造B、Cのエッジ（結
合）の数である。
Structure space
O
• 類似尺度の定義は、構造空間(グラフ構造)において直
接適用することができる。
H
• この適用には、MCSアルゴリズムの複雑さにより、
多くの計算時間を必要とする。
原子と結合を
考えたグラフ
構造
• 部分的に完全に一致していなくても、最大の共通部分
を見つける作業が必要になる。
OH
• 類似構造検索の目的がスクリーニング(非常に多くの
化合物の中から選ぶ作業)であることが多いので時間
がかかるものは選ばれないことが多い。


# Page. 7

![Page Image](https://bcdn.docswell.com/page/D7Y4D4R4EM.jpg)

2 距離係数
7
化合物は、スカラー(連続値)で表すことができる。この距離の類似度を測定可能
化合物
SMILES
分子量
TPSA
1
Cc1cccc(C)c1O
122.167
20.23
2
Cc1ccc(O)c(O)c1
124.139
40.46
3
Cc1c(C)c2c(c(C)c1O)CCC(C)(CCCC(C)CCCC(C)CCCC(C)C)O2 430.717
29.46
4
O=C(OC1Cc2c(O)cc(O)cc2OC1c1cc(O)c(O)c(O)c1)c1cc(O)c(
O)c(O)c1
197.37
458.375
トポロジカル極性表面積 (toplogical PSA; TPSA) とは、分子の表面のうち極性を帯びている部分の面積
分子を分子量と極性表面積で類似なものを探索
1
2
3
4
化合物１と一番似ているのは、化合物２ or 化合物3 or 化合物4?


# Page. 8

![Page Image](https://bcdn.docswell.com/page/VENY6YD6J8.jpg)

2 距離係数 (ユークリッド距離)
x=
x1
x2
( )
y=
y1
y2
( )
xとyの距離の二乗 = (x1 – y1)2 + (x2 – y2)2
ピタゴラス
の定理(三平
方の定理)で
求まる。
y2
x2
x1
y1
8
y2
x2
多次元でも成り立つ
が視覚化のために
変数2つで説明する。
x1
y1
2つ以上の数字を有するものを比較するときは、ユークリッド距離などが用いられる。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/Y79PLPGRE3.jpg)

距離を算出するときの注意点
9
距離を算出する処理を行う場合には、単位が変わるだけでも結果が変わる
30&gt;3.1
体重差
30
身長差
0
体型
類似
体型
類似?
体重差
0
身長差
3.1
体重差
30
身長差
0
30&lt;31
体重差
0
身長差
31
化学的な記述子についても、単位があり、それぞれ異なる分布を持っている


# Page. 10

![Page Image](https://bcdn.docswell.com/page/G78DXDVG7D.jpg)

尺度の異なる数値と変換方法
10
体重の平均
体重
(kg)
体重の標準偏差
身長 (mm)
体重(kg)の差「1」と身長(mm)の差「1」の意味
が異なると算出する距離に意味がなくなる
y2
平均を0
分散を1に
標準化
各軸を伸び縮みさせ
距離を同程度にする。
身長の標準偏差
身長の平均
各値 – 平均
標準偏差
近い
標準化
された
体重
x2
x1
y1
遠い
標準化された
身長
標準化
された
もので
距離を
比較


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L7LM8M5XJR.jpg)

3.3 連関係数による類似性
化合物は、ビットベクトルで表すことができる。この類似度を測定可能
ビットベクトル:
原子や官能基の有無
有無関係を0と1で表す(ビット)
部分構造の有無を数字の集合(ベクトル)
意味を持った要素を並べたもの
で取り出す。
3. Bit-vector space​
部分構造の有無で近さ
を表現することもできる。
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4EMY6Y33EW.jpg)

ECFPを他の分子との比較
8種類
12
同じビット
数ならば
比較可能
同じビット
数ならば
比較可能
同じ部分構造
は同一の数字
同じ部分構造
は同一の数字
2種類
は共通
１４種類
9種類
は共通
１6種類
同じビットがある、異なるビットがあるなどによって類似性が測定できる。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PER9P9QRJ9.jpg)

タニモト係数(Jaccard index)とは
13
ビットベクトルで化合物を比較する。共通な部分と共通していない部分の比較
c
a
b d
a
分子A
1
A
A∩B
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
分子B
B
1
c
•
•
•
•
aはAに存在しBに存在しない特徴の数の合計
bはAに存在せずBに存在する特徴の数の合計
cは両方のオブジェクトに共通の特徴の数の合計
dは両方のオブジェクトから存在しない特徴の数
タニモト係数
c
=
a +
b
+
c
b
上記分子AとB
aは1, bは2, cは2, dは5となる。
分子Aと
=
分子Bの
タニモト係数
2
1 +
2
=
+
2
タニモト係数は類似性が高いほど1に近づく
0.4


# Page. 14

![Page Image](https://bcdn.docswell.com/page/P7XQ3Q5YEX.jpg)

4 文字類似性とSMILES
14
化合物は、文字列で表すことができる。文字列の類似度を測定可能
ただし、文字列の並びと文字自体に意味を持つもので比較する。
文字自体や並びに
意味を持つもの
SMILES
&quot;N[C@@H](Cc1ccccc1)C(=O)O&quot;
文字で
炭素原子
並び順で
カルボン酸
•SMILESの文字列は、構造から算出
されている。
•正規化されたものを使う必要がある。
文字自体や並びに
意味を持たないもの
InChiKey
&quot;COLNVLDHVKWLRT-QMMMGPOBSA-N&quot;
CAS No
&quot;63-91-2&quot;
文字や数字の並び順に
意味はない
• 完全構造検索(完全一致)の時に効果的
に使用できる
• 文字列間の類似性は無い。
SMILESの文字列は、文字自体や並び方が意味を持っている。


# Page. 15

![Page Image](https://bcdn.docswell.com/page/37K9Y9647D.jpg)

L-Phenylalanineの類似化合物
15
O[C@@H](Cc1ccccc1)C(=O)O
L-3-Phenyllactic Acid
構造の
類似性
が高い
1文字しか異ならない
(1文字置換することで変換可能)
N[C@@H](Cc1ccccc1)C(=O)O
L-phenylalanine
1文字しか異ならない
(1文字削除(挿入)することで変換可能)
文字列の
類似性
が高い
N[C@H](Cc1ccccc1)C(=O)O
D-phenylalanine
SMILESの文字列の置換, 削除, 挿入という操作で変換可能なものは類似性高
→ このことを利用したものが正規化レーベンシュタイン距離として知られている。


# Page. 16

![Page Image](https://bcdn.docswell.com/page/LJ3W9W6DJ5.jpg)

レーベンシュタイン距離
16
レーベンシュタイン距離は、別名、編集距離としても知られている。
• 与えられた２つの文字列に対して、 「置換」 「削除」 「挿入」の３つの編
集処理から計算される最小編集コスト*1を計算し、文字列の長さで割ることで
類似度を表現する手法。 *1 最小の編集操作の回数を求めるのに工夫が必要興味のある方は「レーベンシュタイン距離 動的計画法」で検索
1文字を別の1文字
で置き換える
1文字を
削除する。
1文字を挿入する
例 applet → apple
例 apble → apple
abbleは
距離2
(2文字置換)
挿入(insert)
削除(delete)
置換(substitute)
apbleは
距離1
appletは
距離1
apple
例 aple → apple
apleは
距離1
レーベンシュタイン距離は、類似性が高いほど0に近づく
aleは
距離2
(2文字挿入)


# Page. 17

![Page Image](https://bcdn.docswell.com/page/8JDKGKV2EG.jpg)

レーベンシュタイン距離の正規化
pea ⇆ pear
4文字のうちの1文字
が無い。
17
aple ⇆ apple
pineaple ⇆ pineapple
5文字のうちの1文字
が無い
9文字のうちの1文字
が無い
短い単語の方が、１文字の重みが大きいので正規化という処理を行う。
正規化は「最小値を0，最大値を1とする0-1スケーリング手法」
レーベンシュタイン距離の正規化は、比べる単語の長い方の文字数で割ること
で行われる。
apble(5文字) → apple(5文字) 編集1回(置き換え)
1/5 = 0.2
aple(4文字)
→ apple(5文字) 編集1回(挿入)
1/5 = 0.2
applet(6文字) → apple​(5文字) 編集1回(削除)
1/6 = 0.166
正規化レーベンシュタイン距離は、類似性が高いほど0に近づく


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VEPK3KVL78.jpg)

化合物の指標と類似性における4つの空間
1. グラフの類似性
Structure Space
MCS類似性
2. 距離係数
Descriptor Space
3. 連関係数
Bit-vector Space
タニモト係数
ユークリッド距離
..0101110...
350
300
4. 文字類似性
Word Space
正規化レーベンシュタイン距離
CC(C)[C@@H]1CC[C@@H](C)C[C@H]1O
250
ç
直接、構造の
グラフを比較
200
分子の
一部の
情報で
比較
150
100
50
0
0
20
40
特定の物性
を考慮
60
..0100101...
..1100010...
..0101110...
..0000010...
部分構造の
有無を考慮
最も使われる
18
OCCO
CCCCCC
CC1=CC=CC=C1
CC(C)[C@@H]1CC[C@@H](C)CC1
C12CCCCC1CCCC2
O[C@@H](CC(C)C)CC(C)CC
グラフ構造や
分子の繋がり
分子サイズも考慮
DB検索で頻出は、ビットベクトルを用いたタニモト類似度によるもの


