ファルマコフォア (Pharmacophore)

Featured image of post ファルマコフォア (Pharmacophore)

ファルマコフォア (Pharmacophore)

ファルマコフォアモデリングによる薬理活性の理解と新規化合物設計。特徴点マッピングから仮想スクリーニングまで包括的に学習します。

読了時間: 45分

ファルマコフォア (Pharmacophore)

概要

ファルマコフォアは、分子が生物学的活性を示すために必要な立体配置された化学的特徴の集合を表現したモデルです。本ノートブックでは、ファルマコフォアの概念から実際のモデル構築、そして創薬への応用まで包括的に学習します。

学習目標

  • ファルマコフォアの概念と創薬における重要性を理解する
  • 化学的特徴点(Feature Points)の種類と定義を学ぶ
  • ファルマコフォアモデルの構築方法を習得する
  • 既知活性化合物からの共通構造抽出を実装する
  • ファルマコフォアベースの仮想スクリーニングを実践する
  • 3D薬理活性モデルの可視化と解析手法を理解する

補助資料

初心者の方へ: この内容が難しく感じる場合は、以下の補助資料をご参照ください:

これらの資料は、文系出身の方や化学・情報学の予備知識が少ない方でも理解できるよう工夫されています。

ダウンロード

📓 実行済みノートブックをダウンロード

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 必要なライブラリのインポート
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from rdkit import Chem
from rdkit.Chem import AllChem, Descriptors, rdMolDescriptors, Crippen
from rdkit.Chem import Draw, rdDepictor, rdMolAlign
from rdkit.Geometry import Point3D
from sklearn.cluster import DBSCAN, KMeans
from sklearn.metrics import pairwise_distances
import warnings
warnings.filterwarnings('ignore')

# ファルマコフォア関連の機能をインポート
try:
    from rdkit.Chem import ChemicalFeatures
    from rdkit.Chem.Features import FeatureFactory
    HAS_PHARMACOPHORE = True
except ImportError:
    print("Warning: RDKit pharmacophore features not available. Using alternative approach.")
    HAS_PHARMACOPHORE = False

# py3Dmolのインポート(表示用)
try:
    import py3Dmol
    HAS_PY3DMOL = True
except ImportError:
    try:
        import py3dmol as py3Dmol
        HAS_PY3DMOL = True
    except ImportError:
        HAS_PY3DMOL = False
        print("Warning: py3Dmol not available. 3D visualization will be limited.")

# 日本語フォントの設定
plt.rcParams['font.family'] = "Noto Sans CJK JP"
sns.set_style("whitegrid")

print("ライブラリのインポートが完了しました")
Warning: RDKit pharmacophore features not available. Using alternative approach.
Warning: py3Dmol not available. 3D visualization will be limited.
ライブラリのインポートが完了しました

1. ファルマコフォアの基本概念

ファルマコフォアは、Paul Ehrlichによって1909年に提唱された概念で、「薬理活性に必要な分子認識の抽象的記述」として定義されます。現代では、分子の生物学的活性に必要な3次元的に配置された化学的特徴の集合として理解されています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# ファルマコフォア特徴点の定義
class PharmacophoreFeatures:
    """ファルマコフォア特徴点の定義クラス"""
    
    FEATURE_TYPES = {
        'Donor': '水素結合供与体',
        'Acceptor': '水素結合受容体', 
        'Aromatic': '芳香環',
        'Hydrophobic': '疎水性領域',
        'PosIonizable': '正イオン化可能基',
        'NegIonizable': '負イオン化可能基',
        'LumpedHydrophobe': '疎水性クラスター',
        'ZnBinder': '亜鉛結合基'
    }
    
    @classmethod
    def get_feature_description(cls):
        """特徴点の説明を返す"""
        return cls.FEATURE_TYPES

# ファルマコフォア特徴点の説明
print("ファルマコフォア特徴点の種類:")
print("=" * 50)
for code, description in PharmacophoreFeatures.get_feature_description().items():
    print(f"{code:15}: {description}")
ファルマコフォア特徴点の種類:
==================================================
Donor          : 水素結合供与体
Acceptor       : 水素結合受容体
Aromatic       : 芳香環
Hydrophobic    : 疎水性領域
PosIonizable   : 正イオン化可能基
NegIonizable   : 負イオン化可能基
LumpedHydrophobe: 疎水性クラスター
ZnBinder       : 亜鉛結合基

2. 化学的特徴点の抽出

RDKitを使用して分子から化学的特徴点を自動抽出します。これらの特徴点がファルマコフォアモデルの基礎となります。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# 特徴点抽出器の設定
def setup_feature_factory():
    """RDKitの特徴点抽出器を設定(代替実装)"""
    if HAS_PHARMACOPHORE:
        try:
            feature_factory = ChemicalFeatures.BuildFeatureFactory('MinimalFeatures.fdef')
            return feature_factory
        except:
            pass
    return None

def extract_features_alternative(mol):
    """分子から化学的特徴点を代替方法で抽出"""
    if mol is None:
        return []
    
    # 3D座標の生成
    mol_copy = Chem.AddHs(mol)
    AllChem.EmbedMolecule(mol_copy, randomSeed=42)
    AllChem.UFFOptimizeMolecule(mol_copy)
    
    feature_data = []
    
    # 基本的な化学的特徴を手動で検出
    # 水素結合供与体(N-H, O-H)
    donor_pattern = Chem.MolFromSmarts('[!#6;!#1;!H0]')
    donors = mol_copy.GetSubstructMatches(donor_pattern)
    for donor in donors:
        atom = mol_copy.GetAtomWithIdx(donor[0])
        conf = mol_copy.GetConformer()
        pos = conf.GetAtomPosition(donor[0])
        feature_data.append({
            'type': 'Donor',
            'family': 'Donor',
            'position': pos,
            'atom_ids': [donor[0]]
        })
    
    # 水素結合受容体(N, O with lone pairs)
    acceptor_pattern = Chem.MolFromSmarts('[!$([#6,F,Cl,Br,I,o,s,nX3,#7v5,#15v5,#16v4,#16v6,*+1,*+2,*+3])]')
    acceptors = mol_copy.GetSubstructMatches(acceptor_pattern)
    for acceptor in acceptors:
        atom = mol_copy.GetAtomWithIdx(acceptor[0])
        conf = mol_copy.GetConformer()
        pos = conf.GetAtomPosition(acceptor[0])
        feature_data.append({
            'type': 'Acceptor',
            'family': 'Acceptor', 
            'position': pos,
            'atom_ids': [acceptor[0]]
        })
    
    # 芳香環
    aromatic_rings = Chem.GetSymmSSSR(mol_copy)
    for ring in aromatic_rings:
        # リング内の原子がすべて芳香族かチェック
        if all(mol_copy.GetAtomWithIdx(idx).GetIsAromatic() for idx in ring):
            # リングの中心座標を計算
            conf = mol_copy.GetConformer()
            center_x = sum(conf.GetAtomPosition(idx).x for idx in ring) / len(ring)
            center_y = sum(conf.GetAtomPosition(idx).y for idx in ring) / len(ring)
            center_z = sum(conf.GetAtomPosition(idx).z for idx in ring) / len(ring)
            
            # Point3Dオブジェクトの代替
            class SimplePoint3D:
                def __init__(self, x, y, z):
                    self.x = x
                    self.y = y
                    self.z = z
            
            feature_data.append({
                'type': 'Aromatic',
                'family': 'Aromatic',
                'position': SimplePoint3D(center_x, center_y, center_z),
                'atom_ids': list(ring)
            })
    
    # 疎水性原子(炭素)
    hydrophobic_pattern = Chem.MolFromSmarts('[#6]')
    hydrophobes = mol_copy.GetSubstructMatches(hydrophobic_pattern)
    for hydrophobe in hydrophobes:
        atom = mol_copy.GetAtomWithIdx(hydrophobe[0])
        # 極性原子に結合していない炭素のみ
        neighbors = [mol_copy.GetAtomWithIdx(x.GetIdx()) for x in atom.GetNeighbors()]
        if not any(n.GetAtomicNum() in [7, 8, 16] for n in neighbors):
            conf = mol_copy.GetConformer()
            pos = conf.GetAtomPosition(hydrophobe[0])
            feature_data.append({
                'type': 'Hydrophobic',
                'family': 'Hydrophobic',
                'position': pos,
                'atom_ids': [hydrophobe[0]]
            })
    
    return feature_data, mol_copy

def extract_features(mol, feature_factory=None):
    """分子から化学的特徴点を抽出"""
    if feature_factory is not None and HAS_PHARMACOPHORE:
        try:
            # 3D座標の生成
            mol_copy = Chem.AddHs(mol)
            AllChem.EmbedMolecule(mol_copy, randomSeed=42)
            AllChem.UFFOptimizeMolecule(mol_copy)
            
            # 特徴点の抽出
            features = feature_factory.GetFeaturesForMol(mol_copy)
            
            feature_data = []
            for feature in features:
                feature_info = {
                    'type': feature.GetType(),
                    'family': feature.GetFamily(),
                    'position': feature.GetPos(),
                    'atom_ids': list(feature.GetAtomIds())
                }
                feature_data.append(feature_info)
            
            return feature_data, mol_copy
        except:
            pass
    
    # 代替実装を使用
    return extract_features_alternative(mol)

# テスト用分子での特徴点抽出
test_molecules = {
    "アスピリン": "CC(=O)OC1=CC=CC=C1C(=O)O",
    "イブプロフェン": "CC(C)CC1=CC=C(C=C1)C(C)C(=O)O", 
    "ナプロキセン": "COC1=CC=CC2=C1C=C(C=C2)C(C)C(=O)O",
    "インドメタシン": "CC1=C(C2=CC=CC=C2N1C(=O)C3=CC=C(C=C3)Cl)CC(=O)O"
}

# 特徴点抽出器の初期化
feature_factory = setup_feature_factory()

print("分子の化学的特徴点抽出:")
print("=" * 60)

molecule_features = {}
for name, smiles in test_molecules.items():
    mol = Chem.MolFromSmiles(smiles)
    if mol is not None:
        features, mol_3d = extract_features(mol, feature_factory)
        molecule_features[name] = {
            'features': features,
            'mol_3d': mol_3d,
            'smiles': smiles
        }
        
        print(f"\n{name} ({smiles}):")
        print(f"  総特徴点数: {len(features)}")
        
        # 特徴点の種類別カウント
        feature_counts = {}
        for feature in features:
            ftype = feature['family']
            feature_counts[ftype] = feature_counts.get(ftype, 0) + 1
        
        for ftype, count in sorted(feature_counts.items()):
            description = PharmacophoreFeatures.FEATURE_TYPES.get(ftype, ftype)
            print(f"    {ftype} ({description}): {count}")
分子の化学的特徴点抽出:
============================================================

アスピリン (CC(=O)OC1=CC=CC=C1C(=O)O):
  総特徴点数: 20
    Acceptor (水素結合受容体): 12
    Aromatic (芳香環): 1
    Donor (水素結合供与体): 1
    Hydrophobic (疎水性領域): 6

イブプロフェン (CC(C)CC1=CC=C(C=C1)C(C)C(=O)O):
  総特徴点数: 34
    Acceptor (水素結合受容体): 20
    Aromatic (芳香環): 1
    Donor (水素結合供与体): 1
    Hydrophobic (疎水性領域): 12

ナプロキセン (COC1=CC=CC2=C1C=C(C=C2)C(C)C(=O)O):
  総特徴点数: 31
    Acceptor (水素結合受容体): 17
    Aromatic (芳香環): 2
    Donor (水素結合供与体): 1
    Hydrophobic (疎水性領域): 11

インドメタシン (CC1=C(C2=CC=CC=C2N1C(=O)C3=CC=C(C=C3)Cl)CC(=O)O):
  総特徴点数: 35
    Acceptor (水素結合受容体): 17
    Aromatic (芳香環): 3
    Donor (水素結合供与体): 1
    Hydrophobic (疎水性領域): 14

3. ファルマコフォアモデルの構築

複数の活性化合物から共通の化学的特徴を抽出し、ファルマコフォアモデルを構築します。これにより、活性に必要な重要な特徴を特定できます。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
def calculate_feature_distances(features):
    """特徴点間距離を計算"""
    if len(features) < 2:
        return []
    
    distances = []
    for i in range(len(features)):
        for j in range(i+1, len(features)):
            feat1 = features[i]
            feat2 = features[j]
            
            pos1 = feat1['position']
            pos2 = feat2['position']
            
            # 3D距離の計算
            distance = np.sqrt(
                (pos1.x - pos2.x)**2 + 
                (pos1.y - pos2.y)**2 + 
                (pos1.z - pos2.z)**2
            )
            
            distances.append({
                'feature1': feat1,
                'feature2': feat2,
                'distance': distance,
                'type_pair': (feat1['family'], feat2['family'])
            })
    
    return distances

def find_common_pharmacophore(molecule_features_dict, distance_tolerance=2.0):
    """複数分子から共通ファルマコフォアを抽出"""
    all_distances = {}
    
    # 各分子の特徴点間距離を計算
    for mol_name, mol_data in molecule_features_dict.items():
        distances = calculate_feature_distances(mol_data['features'])
        all_distances[mol_name] = distances
    
    # 共通の特徴点ペアを検索
    common_patterns = []
    
    if len(all_distances) < 2:
        return common_patterns
    
    # 最初の分子を基準とする
    reference_mol = list(all_distances.keys())[0]
    reference_distances = all_distances[reference_mol]
    
    for ref_dist in reference_distances:
        ref_type_pair = ref_dist['type_pair']
        ref_distance = ref_dist['distance']
        
        # 他の分子で同様のパターンを検索
        matching_molecules = [reference_mol]
        
        for mol_name, distances in all_distances.items():
            if mol_name == reference_mol:
                continue
                
            for dist in distances:
                if (dist['type_pair'] == ref_type_pair or 
                    dist['type_pair'] == (ref_type_pair[1], ref_type_pair[0])):
                    if abs(dist['distance'] - ref_distance) <= distance_tolerance:
                        matching_molecules.append(mol_name)
                        break
        
        # 半数以上の分子で共通している場合
        if len(matching_molecules) >= len(all_distances) // 2 + 1:
            common_patterns.append({
                'type_pair': ref_type_pair,
                'distance': ref_distance,
                'matching_molecules': matching_molecules,
                'occurrence': len(matching_molecules)
            })
    
    return common_patterns

# 共通ファルマコフォアの抽出
print("\n共通ファルマコフォアパターンの抽出:")
print("=" * 60)

common_pharmacophore = find_common_pharmacophore(molecule_features)

# 結果の表示
if common_pharmacophore:
    print(f"発見された共通パターン数: {len(common_pharmacophore)}")
    print("\n共通パターンの詳細:")
    
    for i, pattern in enumerate(common_pharmacophore, 1):
        type1, type2 = pattern['type_pair']
        desc1 = PharmacophoreFeatures.FEATURE_TYPES.get(type1, type1)
        desc2 = PharmacophoreFeatures.FEATURE_TYPES.get(type2, type2)
        
        print(f"\nパターン {i}:")
        print(f"  特徴点ペア: {type1} ({desc1}) - {type2} ({desc2})")
        print(f"  距離: {pattern['distance']:.2f} Å")
        print(f"  出現頻度: {pattern['occurrence']}/{len(molecule_features)} 分子")
        print(f"  該当分子: {', '.join(pattern['matching_molecules'])}")
else:
    print("共通パターンが見つかりませんでした")
共通ファルマコフォアパターンの抽出:
============================================================
発見された共通パターン数: 190

共通パターンの詳細:

パターン 1:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 6.22 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 2:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 4.29 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 3:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 2.29 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 4:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 0.00 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 5:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 7.50 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 6:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 6.33 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 7:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 6.51 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 8:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 5.91 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 9:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 6.17 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 10:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 4.88 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 11:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 2.51 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 12:
  特徴点ペア: Donor (水素結合供与体) - Acceptor (水素結合受容体)
  距離: 1.01 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 13:
  特徴点ペア: Donor (水素結合供与体) - Aromatic (芳香環)
  距離: 3.78 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 14:
  特徴点ペア: Donor (水素結合供与体) - Hydrophobic (疎水性領域)
  距離: 6.47 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 15:
  特徴点ペア: Donor (水素結合供与体) - Hydrophobic (疎水性領域)
  距離: 4.93 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 16:
  特徴点ペア: Donor (水素結合供与体) - Hydrophobic (疎水性領域)
  距離: 5.12 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 17:
  特徴点ペア: Donor (水素結合供与体) - Hydrophobic (疎水性領域)
  距離: 4.26 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 18:
  特徴点ペア: Donor (水素結合供与体) - Hydrophobic (疎水性領域)
  距離: 2.87 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 19:
  特徴点ペア: Donor (水素結合供与体) - Hydrophobic (疎水性領域)
  距離: 2.49 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 20:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.32 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 21:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.63 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 22:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.22 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 23:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.58 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 24:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 3.25 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 25:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.87 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 26:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.50 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 27:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.68 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 28:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.10 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 29:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.09 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 30:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.88 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 31:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 3.92 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 32:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.38 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 33:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.93 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 34:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.18 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 35:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.12 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 36:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.10 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 37:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.15 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 38:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.61 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 39:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.29 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 40:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 3.36 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 41:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.62 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 42:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 3.02 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 43:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.70 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 44:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.59 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 45:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 5.30 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 46:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.61 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 47:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.92 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 48:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 2.82 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 49:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.49 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 50:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.45 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 51:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.72 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 52:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.22 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 53:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.72 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 54:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.44 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 55:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.29 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 56:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 5.43 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 57:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.18 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 58:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.31 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 59:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.98 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 60:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.15 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 61:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 5.77 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 62:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 3.96 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 63:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.53 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 64:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 3.72 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 65:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.34 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 66:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.29 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 67:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.09 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 68:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.83 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 69:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.64 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 70:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.39 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 71:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 7.50 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 72:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.33 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 73:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.51 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 74:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 5.91 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 75:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.17 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 76:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.88 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 77:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.51 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 78:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 1.01 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 79:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 3.78 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 80:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.47 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 81:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.93 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 82:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.12 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 83:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.26 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 84:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.87 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 85:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.49 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 86:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 1.81 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 87:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 1.81 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 88:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.29 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 89:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.73 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 90:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 8.22 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 91:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 7.93 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 92:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 7.95 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 93:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 5.85 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 94:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 1.11 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 95:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.87 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 96:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.24 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 97:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 7.18 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 98:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.98 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 99:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.79 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 100:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 1.81 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 101:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.41 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 102:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.73 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 103:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 7.80 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 104:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 7.11 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 105:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.68 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 106:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 5.34 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 107:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 1.11 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 108:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.67 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 109:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.04 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 110:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.72 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 111:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.27 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 112:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.96 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 113:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.89 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 114:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 7.18 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 115:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 8.19 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 116:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 7.41 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 117:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.80 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 118:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 5.74 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 119:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 1.11 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 120:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.12 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 121:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.47 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 122:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 7.12 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 123:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.61 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 124:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.28 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 125:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.45 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 126:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.27 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 127:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.95 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 128:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 6.79 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 129:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 2.48 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 130:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 4.07 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 131:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 1.08 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 132:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.13 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 133:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.38 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 134:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.87 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 135:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.43 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 136:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.47 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 137:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 4.27 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 138:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 7.18 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 139:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 2.48 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 140:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.45 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 141:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.15 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 142:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 1.08 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 143:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.15 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 144:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.40 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 145:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.90 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 146:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 2.45 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 147:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 5.87 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 148:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 2.48 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 149:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 7.64 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 150:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.40 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 151:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.15 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 152:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 1.08 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 153:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.15 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 154:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.42 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 155:
  特徴点ペア: Acceptor (水素結合受容体) - Acceptor (水素結合受容体)
  距離: 3.47 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 156:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 2.48 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 157:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 7.09 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 158:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.87 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 159:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.39 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 160:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.13 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 161:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 1.08 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 162:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 2.17 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 163:
  特徴点ペア: Acceptor (水素結合受容体) - Aromatic (芳香環)
  距離: 4.76 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 164:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.87 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 165:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.85 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 166:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 6.12 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 167:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 5.27 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 168:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.88 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 169:
  特徴点ペア: Acceptor (水素結合受容体) - Hydrophobic (疎水性領域)
  距離: 3.42 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 170:
  特徴点ペア: Aromatic (芳香環) - Hydrophobic (疎水性領域)
  距離: 5.19 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 171:
  特徴点ペア: Aromatic (芳香環) - Hydrophobic (疎水性領域)
  距離: 1.40 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 172:
  特徴点ペア: Aromatic (芳香環) - Hydrophobic (疎水性領域)
  距離: 1.40 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 173:
  特徴点ペア: Aromatic (芳香環) - Hydrophobic (疎水性領域)
  距離: 1.40 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 174:
  特徴点ペア: Aromatic (芳香環) - Hydrophobic (疎水性領域)
  距離: 1.40 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 175:
  特徴点ペア: Aromatic (芳香環) - Hydrophobic (疎水性領域)
  距離: 1.41 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 176:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 4.41 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 177:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 5.80 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 178:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 6.57 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 179:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 6.20 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 180:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 4.92 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 181:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 1.39 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 182:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 2.42 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 183:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 2.79 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 184:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 2.44 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 185:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 1.39 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 186:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 2.42 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 187:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 2.82 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 188:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 1.40 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 189:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 2.44 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

パターン 190:
  特徴点ペア: Hydrophobic (疎水性領域) - Hydrophobic (疎水性領域)
  距離: 1.41 Å
  出現頻度: 4/4 分子
  該当分子: アスピリン, イブプロフェン, ナプロキセン, インドメタシン

4. ファルマコフォアの可視化

抽出されたファルマコフォアパターンを3D空間で可視化し、分子の重ね合わせによる構造解析を行います。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
def visualize_molecule_features(mol_data, molecule_name):
    """分子の特徴点を可視化"""
    if not HAS_PY3DMOL:
        print("py3Dmol が利用できないため、2D構造を表示します")
        mol_2d = Chem.MolFromSmiles(mol_data['smiles'])
        return Draw.MolToImage(mol_2d, size=(400, 400))
    
    mol_3d = mol_data['mol_3d']
    features = mol_data['features']
    
    # 3D表示の準備
    mol_block = Chem.MolToMolBlock(mol_3d)
    
    viewer = py3Dmol.view(width=500, height=400)
    viewer.addModel(mol_block, 'mol')
    viewer.setStyle({'stick': {}})
    
    # 特徴点の追加
    colors = {
        'Donor': 'blue',
        'Acceptor': 'red', 
        'Aromatic': 'orange',
        'Hydrophobic': 'green',
        'PosIonizable': 'purple',
        'NegIonizable': 'yellow'
    }
    
    for feature in features:
        pos = feature['position']
        color = colors.get(feature['family'], 'gray')
        
        viewer.addSphere({
            'center': {'x': pos.x, 'y': pos.y, 'z': pos.z},
            'radius': 0.5,
            'color': color,
            'alpha': 0.7
        })
    
    viewer.zoomTo()
    return viewer

# 分子の3D可視化(最初の2分子)
print("\n分子の3D構造と特徴点:")
print("=" * 40)

for i, (name, mol_data) in enumerate(list(molecule_features.items())[:2]):
    print(f"\n{name}の3D構造と特徴点:")
    result = visualize_molecule_features(mol_data, name)
    if HAS_PY3DMOL:
        result.show()
    else:
        # 2D構造の表示情報
        print(f"  分子式: {Chem.rdMolDescriptors.CalcMolFormula(Chem.MolFromSmiles(mol_data['smiles']))}")
        print(f"  特徴点数: {len(mol_data['features'])}")
分子の3D構造と特徴点:
========================================

アスピリンの3D構造と特徴点:
py3Dmol が利用できないため、2D構造を表示します
  分子式: C9H8O4
  特徴点数: 20

イブプロフェンの3D構造と特徴点:
py3Dmol が利用できないため、2D構造を表示します
  分子式: C13H18O2
  特徴点数: 34

5. 特徴点の統計解析

抽出された特徴点の分布と出現頻度を統計的に解析し、各特徴点の重要性を評価します。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
# 特徴点の統計解析
def analyze_feature_statistics(molecule_features_dict):
    """特徴点の統計解析"""
    all_features = []
    feature_counts = {}
    distance_stats = {}
    
    # 全分子の特徴点を収集
    for mol_name, mol_data in molecule_features_dict.items():
        for feature in mol_data['features']:
            all_features.append({
                'molecule': mol_name,
                'type': feature['family'],
                'position': feature['position']
            })
            
            # タイプ別カウント
            ftype = feature['family']
            feature_counts[ftype] = feature_counts.get(ftype, 0) + 1
    
    # 距離統計の計算
    for mol_name, mol_data in molecule_features_dict.items():
        distances = calculate_feature_distances(mol_data['features'])
        
        for dist_info in distances:
            type_pair = tuple(sorted(dist_info['type_pair']))
            distance = dist_info['distance']
            
            if type_pair not in distance_stats:
                distance_stats[type_pair] = []
            distance_stats[type_pair].append(distance)
    
    return all_features, feature_counts, distance_stats

# 統計解析の実行
all_features, feature_counts, distance_stats = analyze_feature_statistics(molecule_features)

# 特徴点出現頻度の可視化
plt.figure(figsize=(12, 8))

# 特徴点タイプの出現頻度
plt.subplot(2, 2, 1)
types = list(feature_counts.keys())
counts = list(feature_counts.values())
plt.bar(types, counts)
plt.title('特徴点タイプの出現頻度')
plt.xlabel('特徴点タイプ')
plt.ylabel('出現回数')
plt.xticks(rotation=45)

# 分子あたりの特徴点数
plt.subplot(2, 2, 2)
mol_feature_counts = []
mol_names = []
for mol_name, mol_data in molecule_features.items():
    mol_feature_counts.append(len(mol_data['features']))
    mol_names.append(mol_name)

plt.bar(mol_names, mol_feature_counts)
plt.title('分子あたりの特徴点数')
plt.xlabel('分子名')
plt.ylabel('特徴点数')
plt.xticks(rotation=45)

# 特徴点間距離の分布
plt.subplot(2, 2, 3)
all_distances = []
for distances in distance_stats.values():
    all_distances.extend(distances)

if all_distances:
    plt.hist(all_distances, bins=20, alpha=0.7)
    plt.title('特徴点間距離の分布')
    plt.xlabel('距離 (Å)')
    plt.ylabel('頻度')

# 主要な特徴点ペアの平均距離
plt.subplot(2, 2, 4)
if distance_stats:
    pair_names = []
    mean_distances = []
    
    for pair, distances in distance_stats.items():
        if len(distances) >= 2:  # 複数のデータがある場合のみ
            pair_names.append(f"{pair[0]}-{pair[1]}")
            mean_distances.append(np.mean(distances))
    
    if pair_names:
        plt.bar(pair_names, mean_distances)
        plt.title('主要特徴点ペアの平均距離')
        plt.xlabel('特徴点ペア')
        plt.ylabel('平均距離 (Å)')
        plt.xticks(rotation=45)

plt.tight_layout()
plt.show()

# 統計サマリーの表示
print("\n特徴点統計サマリー:")
print("=" * 50)
print(f"総特徴点数: {len(all_features)}")
print(f"分子数: {len(molecule_features)}")
print(f"平均特徴点数/分子: {len(all_features)/len(molecule_features):.1f}")

print("\n特徴点タイプ別出現頻度:")
for ftype, count in sorted(feature_counts.items(), key=lambda x: x[1], reverse=True):
    description = PharmacophoreFeatures.FEATURE_TYPES.get(ftype, ftype)
    percentage = (count / len(all_features)) * 100
    print(f"  {ftype} ({description}): {count} ({percentage:.1f}%)")

png

特徴点統計サマリー:
==================================================
総特徴点数: 120
分子数: 4
平均特徴点数/分子: 30.0

特徴点タイプ別出現頻度:
  Acceptor (水素結合受容体): 66 (55.0%)
  Hydrophobic (疎水性領域): 43 (35.8%)
  Aromatic (芳香環): 7 (5.8%)
  Donor (水素結合供与体): 4 (3.3%)

6. ファルマコフォアベースの仮想スクリーニング

構築したファルマコフォアモデルを用いて、化合物データベースから類似の活性を持つ可能性のある化合物を検索します。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
# 仮想スクリーニング用のテスト化合物データベース
screening_database = {
    "化合物A": "CC1=CC=C(C=C1)C(=O)O",  # 安息香酸誘導体
    "化合物B": "COC1=CC=C(C=C1)C(=O)O",  # メトキシ安息香酸
    "化合物C": "CC(C)C1=CC=C(C=C1)C(=O)O",  # イソプロピル安息香酸
    "化合物D": "NC1=CC=C(C=C1)C(=O)O",  # アミノ安息香酸
    "化合物E": "CC1=C(C=CC=C1)C(=O)O",  # メチル安息香酸
    "化合物F": "C1=CC=C2C(=C1)C=CC=C2C(=O)O",  # ナフトエ酸
    "化合物G": "CC(=O)NC1=CC=C(C=C1)C(=O)O",  # アセトアミド安息香酸
    "化合物H": "CC1=CC=C(C=C1)C(C)C(=O)O",  # プロピル安息香酸
}

def screen_compounds(screening_compounds, reference_pharmacophore, threshold=0.6):
    """ファルマコフォアベースの化合物スクリーニング"""
    screening_results = []
    
    for comp_name, smiles in screening_compounds.items():
        mol = Chem.MolFromSmiles(smiles)
        if mol is None:
            continue
            
        # 化合物の特徴点抽出
        features, mol_3d = extract_features(mol, feature_factory)
        
        # ファルマコフォアマッチングスコアの計算
        score = calculate_pharmacophore_score(features, reference_pharmacophore)
        
        screening_results.append({
            'name': comp_name,
            'smiles': smiles,
            'score': score,
            'features': features,
            'mol_3d': mol_3d
        })
    
    # スコア順にソート
    screening_results.sort(key=lambda x: x['score'], reverse=True)
    
    return screening_results

def calculate_pharmacophore_score(compound_features, reference_patterns):
    """化合物とファルマコフォアパターンのマッチングスコア計算"""
    if not reference_patterns or not compound_features:
        return 0.0
    
    matches = 0
    total_patterns = len(reference_patterns)
    
    # 化合物の特徴点間距離を計算
    compound_distances = calculate_feature_distances(compound_features)
    
    for ref_pattern in reference_patterns:
        ref_type_pair = ref_pattern['type_pair']
        ref_distance = ref_pattern['distance']
        
        # 同様のパターンが化合物にあるかチェック
        for comp_dist in compound_distances:
            comp_type_pair = comp_dist['type_pair']
            comp_distance = comp_dist['distance']
            
            # タイプペアの一致(順序は問わない)
            if (comp_type_pair == ref_type_pair or 
                comp_type_pair == (ref_type_pair[1], ref_type_pair[0])):
                # 距離の類似性(許容範囲2.0Å)
                if abs(comp_distance - ref_distance) <= 2.0:
                    matches += 1
                    break
    
    # マッチング率をスコアとして返す
    score = matches / total_patterns if total_patterns > 0 else 0.0
    return score

# 仮想スクリーニングの実行
print("\nファルマコフォアベース仮想スクリーニング:")
print("=" * 60)

if common_pharmacophore:
    screening_results = screen_compounds(screening_database, common_pharmacophore)
    
    print(f"スクリーニング化合物数: {len(screening_database)}")
    print(f"参照ファルマコフォアパターン数: {len(common_pharmacophore)}")
    print("\nスクリーニング結果(スコア順):")
    print("-" * 40)
    
    for i, result in enumerate(screening_results, 1):
        print(f"{i:2d}. {result['name']:12}: スコア {result['score']:.3f}")
        print(f"     SMILES: {result['smiles']}")
        print(f"     特徴点数: {len(result['features'])}")
        print()
    
    # 高スコア化合物の詳細分析
    top_compounds = [r for r in screening_results if r['score'] > 0.5]
    print(f"\n高スコア化合物(スコア > 0.5): {len(top_compounds)} 化合物")
    
    if top_compounds:
        for compound in top_compounds:
            print(f"- {compound['name']}: {compound['score']:.3f}")
            
else:
    print("参照ファルマコフォアが見つからないため、スクリーニングをスキップします")
ファルマコフォアベース仮想スクリーニング:
============================================================
スクリーニング化合物数: 8
参照ファルマコフォアパターン数: 190

スクリーニング結果(スコア順):
----------------------------------------
 1. 化合物C        : スコア 1.000
     SMILES: CC(C)C1=CC=C(C=C1)C(=O)O
     特徴点数: 25

 2. 化合物F        : スコア 1.000
     SMILES: C1=CC=C2C(=C1)C=CC=C2C(=O)O
     特徴点数: 23

 3. 化合物G        : スコア 1.000
     SMILES: CC(=O)NC1=CC=C(C=C1)C(=O)O
     特徴点数: 22

 4. 化合物H        : スコア 1.000
     SMILES: CC1=CC=C(C=C1)C(C)C(=O)O
     特徴点数: 25

 5. 化合物A        : スコア 0.989
     SMILES: CC1=CC=C(C=C1)C(=O)O
     特徴点数: 19

 6. 化合物E        : スコア 0.989
     SMILES: CC1=C(C=CC=C1)C(=O)O
     特徴点数: 19

 7. 化合物B        : スコア 0.974
     SMILES: COC1=CC=C(C=C1)C(=O)O
     特徴点数: 18

 8. 化合物D        : スコア 0.974
     SMILES: NC1=CC=C(C=C1)C(=O)O
     特徴点数: 18


高スコア化合物(スコア > 0.5): 8 化合物
- 化合物C: 1.000
- 化合物F: 1.000
- 化合物G: 1.000
- 化合物H: 1.000
- 化合物A: 0.989
- 化合物E: 0.989
- 化合物B: 0.974
- 化合物D: 0.974

7. ファルマコフォアマップの作成

活性化合物の構造活性相関を理解するために、ファルマコフォアマップを作成し、重要な相互作用部位を特定します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
def create_pharmacophore_map(molecule_features_dict, common_patterns):
    """ファルマコフォアマップの作成"""
    pharmacophore_map = {
        'essential_features': [],  # 必須特徴点
        'optional_features': [],   # 任意特徴点
        'excluded_volumes': [],    # 排除体積
        'constraints': []          # 制約条件
    }
    
    # 必須特徴点の特定(高頻度で出現する特徴)
    feature_occurrence = {}
    
    for mol_name, mol_data in molecule_features_dict.items():
        for feature in mol_data['features']:
            ftype = feature['family']
            if ftype not in feature_occurrence:
                feature_occurrence[ftype] = 0
            feature_occurrence[ftype] += 1
    
    total_molecules = len(molecule_features_dict)
    
    # 必須特徴点(80%以上の分子に存在)
    for ftype, count in feature_occurrence.items():
        frequency = count / total_molecules
        if frequency >= 0.8:
            pharmacophore_map['essential_features'].append({
                'type': ftype,
                'frequency': frequency,
                'description': PharmacophoreFeatures.FEATURE_TYPES.get(ftype, ftype)
            })
        elif frequency >= 0.5:
            pharmacophore_map['optional_features'].append({
                'type': ftype,
                'frequency': frequency,
                'description': PharmacophoreFeatures.FEATURE_TYPES.get(ftype, ftype)
            })
    
    # 距離制約の追加
    for pattern in common_patterns:
        constraint = {
            'feature1': pattern['type_pair'][0],
            'feature2': pattern['type_pair'][1],
            'distance': pattern['distance'],
            'tolerance': 2.0,
            'occurrence': pattern['occurrence']
        }
        pharmacophore_map['constraints'].append(constraint)
    
    return pharmacophore_map

# ファルマコフォアマップの作成
pharmacophore_map = create_pharmacophore_map(molecule_features, common_pharmacophore)

print("\nファルマコフォアマップ:")
print("=" * 50)

print("\n【必須特徴点】(80%以上の分子に存在):")
if pharmacophore_map['essential_features']:
    for feature in pharmacophore_map['essential_features']:
        print(f"  - {feature['type']} ({feature['description']}): {feature['frequency']:.1%}")
else:
    print("  なし")

print("\n【任意特徴点】(50-80%の分子に存在):")
if pharmacophore_map['optional_features']:
    for feature in pharmacophore_map['optional_features']:
        print(f"  - {feature['type']} ({feature['description']}): {feature['frequency']:.1%}")
else:
    print("  なし")

print("\n【距離制約】:")
if pharmacophore_map['constraints']:
    for i, constraint in enumerate(pharmacophore_map['constraints'], 1):
        desc1 = PharmacophoreFeatures.FEATURE_TYPES.get(constraint['feature1'], constraint['feature1'])
        desc2 = PharmacophoreFeatures.FEATURE_TYPES.get(constraint['feature2'], constraint['feature2'])
        print(f"  {i}. {constraint['feature1']} - {constraint['feature2']}")
        print(f"     ({desc1} - {desc2})")
        print(f"     距離: {constraint['distance']:.2f} ± {constraint['tolerance']:.1f} Å")
        print(f"     出現: {constraint['occurrence']}/{len(molecule_features)} 分子")
        print()
else:
    print("  なし")
ファルマコフォアマップ:
==================================================

【必須特徴点】(80%以上の分子に存在):
  - Donor (水素結合供与体): 100.0%
  - Acceptor (水素結合受容体): 1650.0%
  - Aromatic (芳香環): 175.0%
  - Hydrophobic (疎水性領域): 1075.0%

【任意特徴点】(50-80%の分子に存在):
  なし

【距離制約】:
  1. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 6.22 ± 2.0 Å
     出現: 4/4 分子

  2. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 4.29 ± 2.0 Å
     出現: 4/4 分子

  3. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 2.29 ± 2.0 Å
     出現: 4/4 分子

  4. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 0.00 ± 2.0 Å
     出現: 4/4 分子

  5. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 7.50 ± 2.0 Å
     出現: 4/4 分子

  6. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 6.33 ± 2.0 Å
     出現: 4/4 分子

  7. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 6.51 ± 2.0 Å
     出現: 4/4 分子

  8. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 5.91 ± 2.0 Å
     出現: 4/4 分子

  9. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 6.17 ± 2.0 Å
     出現: 4/4 分子

  10. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 4.88 ± 2.0 Å
     出現: 4/4 分子

  11. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 2.51 ± 2.0 Å
     出現: 4/4 分子

  12. Donor - Acceptor
     (水素結合供与体 - 水素結合受容体)
     距離: 1.01 ± 2.0 Å
     出現: 4/4 分子

  13. Donor - Aromatic
     (水素結合供与体 - 芳香環)
     距離: 3.78 ± 2.0 Å
     出現: 4/4 分子

  14. Donor - Hydrophobic
     (水素結合供与体 - 疎水性領域)
     距離: 6.47 ± 2.0 Å
     出現: 4/4 分子

  15. Donor - Hydrophobic
     (水素結合供与体 - 疎水性領域)
     距離: 4.93 ± 2.0 Å
     出現: 4/4 分子

  16. Donor - Hydrophobic
     (水素結合供与体 - 疎水性領域)
     距離: 5.12 ± 2.0 Å
     出現: 4/4 分子

  17. Donor - Hydrophobic
     (水素結合供与体 - 疎水性領域)
     距離: 4.26 ± 2.0 Å
     出現: 4/4 分子

  18. Donor - Hydrophobic
     (水素結合供与体 - 疎水性領域)
     距離: 2.87 ± 2.0 Å
     出現: 4/4 分子

  19. Donor - Hydrophobic
     (水素結合供与体 - 疎水性領域)
     距離: 2.49 ± 2.0 Å
     出現: 4/4 分子

  20. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.32 ± 2.0 Å
     出現: 4/4 分子

  21. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.63 ± 2.0 Å
     出現: 4/4 分子

  22. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.22 ± 2.0 Å
     出現: 4/4 分子

  23. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.58 ± 2.0 Å
     出現: 4/4 分子

  24. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 3.25 ± 2.0 Å
     出現: 4/4 分子

  25. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.87 ± 2.0 Å
     出現: 4/4 分子

  26. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.50 ± 2.0 Å
     出現: 4/4 分子

  27. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.68 ± 2.0 Å
     出現: 4/4 分子

  28. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.10 ± 2.0 Å
     出現: 4/4 分子

  29. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.09 ± 2.0 Å
     出現: 4/4 分子

  30. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.88 ± 2.0 Å
     出現: 4/4 分子

  31. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 3.92 ± 2.0 Å
     出現: 4/4 分子

  32. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.38 ± 2.0 Å
     出現: 4/4 分子

  33. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.93 ± 2.0 Å
     出現: 4/4 分子

  34. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.18 ± 2.0 Å
     出現: 4/4 分子

  35. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.12 ± 2.0 Å
     出現: 4/4 分子

  36. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.10 ± 2.0 Å
     出現: 4/4 分子

  37. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.15 ± 2.0 Å
     出現: 4/4 分子

  38. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.61 ± 2.0 Å
     出現: 4/4 分子

  39. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.29 ± 2.0 Å
     出現: 4/4 分子

  40. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 3.36 ± 2.0 Å
     出現: 4/4 分子

  41. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.62 ± 2.0 Å
     出現: 4/4 分子

  42. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 3.02 ± 2.0 Å
     出現: 4/4 分子

  43. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.70 ± 2.0 Å
     出現: 4/4 分子

  44. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.59 ± 2.0 Å
     出現: 4/4 分子

  45. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 5.30 ± 2.0 Å
     出現: 4/4 分子

  46. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.61 ± 2.0 Å
     出現: 4/4 分子

  47. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.92 ± 2.0 Å
     出現: 4/4 分子

  48. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 2.82 ± 2.0 Å
     出現: 4/4 分子

  49. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.49 ± 2.0 Å
     出現: 4/4 分子

  50. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.45 ± 2.0 Å
     出現: 4/4 分子

  51. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.72 ± 2.0 Å
     出現: 4/4 分子

  52. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.22 ± 2.0 Å
     出現: 4/4 分子

  53. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.72 ± 2.0 Å
     出現: 4/4 分子

  54. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.44 ± 2.0 Å
     出現: 4/4 分子

  55. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.29 ± 2.0 Å
     出現: 4/4 分子

  56. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 5.43 ± 2.0 Å
     出現: 4/4 分子

  57. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.18 ± 2.0 Å
     出現: 4/4 分子

  58. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.31 ± 2.0 Å
     出現: 4/4 分子

  59. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.98 ± 2.0 Å
     出現: 4/4 分子

  60. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.15 ± 2.0 Å
     出現: 4/4 分子

  61. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 5.77 ± 2.0 Å
     出現: 4/4 分子

  62. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 3.96 ± 2.0 Å
     出現: 4/4 分子

  63. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.53 ± 2.0 Å
     出現: 4/4 分子

  64. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 3.72 ± 2.0 Å
     出現: 4/4 分子

  65. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.34 ± 2.0 Å
     出現: 4/4 分子

  66. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.29 ± 2.0 Å
     出現: 4/4 分子

  67. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.09 ± 2.0 Å
     出現: 4/4 分子

  68. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.83 ± 2.0 Å
     出現: 4/4 分子

  69. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.64 ± 2.0 Å
     出現: 4/4 分子

  70. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.39 ± 2.0 Å
     出現: 4/4 分子

  71. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 7.50 ± 2.0 Å
     出現: 4/4 分子

  72. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.33 ± 2.0 Å
     出現: 4/4 分子

  73. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.51 ± 2.0 Å
     出現: 4/4 分子

  74. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 5.91 ± 2.0 Å
     出現: 4/4 分子

  75. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.17 ± 2.0 Å
     出現: 4/4 分子

  76. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.88 ± 2.0 Å
     出現: 4/4 分子

  77. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.51 ± 2.0 Å
     出現: 4/4 分子

  78. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 1.01 ± 2.0 Å
     出現: 4/4 分子

  79. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 3.78 ± 2.0 Å
     出現: 4/4 分子

  80. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.47 ± 2.0 Å
     出現: 4/4 分子

  81. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.93 ± 2.0 Å
     出現: 4/4 分子

  82. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.12 ± 2.0 Å
     出現: 4/4 分子

  83. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.26 ± 2.0 Å
     出現: 4/4 分子

  84. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.87 ± 2.0 Å
     出現: 4/4 分子

  85. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.49 ± 2.0 Å
     出現: 4/4 分子

  86. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 1.81 ± 2.0 Å
     出現: 4/4 分子

  87. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 1.81 ± 2.0 Å
     出現: 4/4 分子

  88. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.29 ± 2.0 Å
     出現: 4/4 分子

  89. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.73 ± 2.0 Å
     出現: 4/4 分子

  90. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 8.22 ± 2.0 Å
     出現: 4/4 分子

  91. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 7.93 ± 2.0 Å
     出現: 4/4 分子

  92. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 7.95 ± 2.0 Å
     出現: 4/4 分子

  93. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 5.85 ± 2.0 Å
     出現: 4/4 分子

  94. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 1.11 ± 2.0 Å
     出現: 4/4 分子

  95. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.87 ± 2.0 Å
     出現: 4/4 分子

  96. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.24 ± 2.0 Å
     出現: 4/4 分子

  97. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 7.18 ± 2.0 Å
     出現: 4/4 分子

  98. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.98 ± 2.0 Å
     出現: 4/4 分子

  99. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.79 ± 2.0 Å
     出現: 4/4 分子

  100. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 1.81 ± 2.0 Å
     出現: 4/4 分子

  101. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.41 ± 2.0 Å
     出現: 4/4 分子

  102. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.73 ± 2.0 Å
     出現: 4/4 分子

  103. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 7.80 ± 2.0 Å
     出現: 4/4 分子

  104. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 7.11 ± 2.0 Å
     出現: 4/4 分子

  105. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.68 ± 2.0 Å
     出現: 4/4 分子

  106. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 5.34 ± 2.0 Å
     出現: 4/4 分子

  107. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 1.11 ± 2.0 Å
     出現: 4/4 分子

  108. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.67 ± 2.0 Å
     出現: 4/4 分子

  109. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.04 ± 2.0 Å
     出現: 4/4 分子

  110. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.72 ± 2.0 Å
     出現: 4/4 分子

  111. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.27 ± 2.0 Å
     出現: 4/4 分子

  112. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.96 ± 2.0 Å
     出現: 4/4 分子

  113. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.89 ± 2.0 Å
     出現: 4/4 分子

  114. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 7.18 ± 2.0 Å
     出現: 4/4 分子

  115. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 8.19 ± 2.0 Å
     出現: 4/4 分子

  116. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 7.41 ± 2.0 Å
     出現: 4/4 分子

  117. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.80 ± 2.0 Å
     出現: 4/4 分子

  118. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 5.74 ± 2.0 Å
     出現: 4/4 分子

  119. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 1.11 ± 2.0 Å
     出現: 4/4 分子

  120. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.12 ± 2.0 Å
     出現: 4/4 分子

  121. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.47 ± 2.0 Å
     出現: 4/4 分子

  122. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 7.12 ± 2.0 Å
     出現: 4/4 分子

  123. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.61 ± 2.0 Å
     出現: 4/4 分子

  124. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.28 ± 2.0 Å
     出現: 4/4 分子

  125. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.45 ± 2.0 Å
     出現: 4/4 分子

  126. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.27 ± 2.0 Å
     出現: 4/4 分子

  127. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.95 ± 2.0 Å
     出現: 4/4 分子

  128. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 6.79 ± 2.0 Å
     出現: 4/4 分子

  129. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 2.48 ± 2.0 Å
     出現: 4/4 分子

  130. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 4.07 ± 2.0 Å
     出現: 4/4 分子

  131. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 1.08 ± 2.0 Å
     出現: 4/4 分子

  132. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.13 ± 2.0 Å
     出現: 4/4 分子

  133. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.38 ± 2.0 Å
     出現: 4/4 分子

  134. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.87 ± 2.0 Å
     出現: 4/4 分子

  135. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.43 ± 2.0 Å
     出現: 4/4 分子

  136. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.47 ± 2.0 Å
     出現: 4/4 分子

  137. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 4.27 ± 2.0 Å
     出現: 4/4 分子

  138. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 7.18 ± 2.0 Å
     出現: 4/4 分子

  139. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 2.48 ± 2.0 Å
     出現: 4/4 分子

  140. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.45 ± 2.0 Å
     出現: 4/4 分子

  141. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.15 ± 2.0 Å
     出現: 4/4 分子

  142. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 1.08 ± 2.0 Å
     出現: 4/4 分子

  143. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.15 ± 2.0 Å
     出現: 4/4 分子

  144. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.40 ± 2.0 Å
     出現: 4/4 分子

  145. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.90 ± 2.0 Å
     出現: 4/4 分子

  146. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 2.45 ± 2.0 Å
     出現: 4/4 分子

  147. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 5.87 ± 2.0 Å
     出現: 4/4 分子

  148. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 2.48 ± 2.0 Å
     出現: 4/4 分子

  149. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 7.64 ± 2.0 Å
     出現: 4/4 分子

  150. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.40 ± 2.0 Å
     出現: 4/4 分子

  151. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.15 ± 2.0 Å
     出現: 4/4 分子

  152. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 1.08 ± 2.0 Å
     出現: 4/4 分子

  153. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.15 ± 2.0 Å
     出現: 4/4 分子

  154. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.42 ± 2.0 Å
     出現: 4/4 分子

  155. Acceptor - Acceptor
     (水素結合受容体 - 水素結合受容体)
     距離: 3.47 ± 2.0 Å
     出現: 4/4 分子

  156. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 2.48 ± 2.0 Å
     出現: 4/4 分子

  157. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 7.09 ± 2.0 Å
     出現: 4/4 分子

  158. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.87 ± 2.0 Å
     出現: 4/4 分子

  159. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.39 ± 2.0 Å
     出現: 4/4 分子

  160. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.13 ± 2.0 Å
     出現: 4/4 分子

  161. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 1.08 ± 2.0 Å
     出現: 4/4 分子

  162. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 2.17 ± 2.0 Å
     出現: 4/4 分子

  163. Acceptor - Aromatic
     (水素結合受容体 - 芳香環)
     距離: 4.76 ± 2.0 Å
     出現: 4/4 分子

  164. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.87 ± 2.0 Å
     出現: 4/4 分子

  165. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.85 ± 2.0 Å
     出現: 4/4 分子

  166. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 6.12 ± 2.0 Å
     出現: 4/4 分子

  167. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 5.27 ± 2.0 Å
     出現: 4/4 分子

  168. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.88 ± 2.0 Å
     出現: 4/4 分子

  169. Acceptor - Hydrophobic
     (水素結合受容体 - 疎水性領域)
     距離: 3.42 ± 2.0 Å
     出現: 4/4 分子

  170. Aromatic - Hydrophobic
     (芳香環 - 疎水性領域)
     距離: 5.19 ± 2.0 Å
     出現: 4/4 分子

  171. Aromatic - Hydrophobic
     (芳香環 - 疎水性領域)
     距離: 1.40 ± 2.0 Å
     出現: 4/4 分子

  172. Aromatic - Hydrophobic
     (芳香環 - 疎水性領域)
     距離: 1.40 ± 2.0 Å
     出現: 4/4 分子

  173. Aromatic - Hydrophobic
     (芳香環 - 疎水性領域)
     距離: 1.40 ± 2.0 Å
     出現: 4/4 分子

  174. Aromatic - Hydrophobic
     (芳香環 - 疎水性領域)
     距離: 1.40 ± 2.0 Å
     出現: 4/4 分子

  175. Aromatic - Hydrophobic
     (芳香環 - 疎水性領域)
     距離: 1.41 ± 2.0 Å
     出現: 4/4 分子

  176. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 4.41 ± 2.0 Å
     出現: 4/4 分子

  177. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 5.80 ± 2.0 Å
     出現: 4/4 分子

  178. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 6.57 ± 2.0 Å
     出現: 4/4 分子

  179. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 6.20 ± 2.0 Å
     出現: 4/4 分子

  180. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 4.92 ± 2.0 Å
     出現: 4/4 分子

  181. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 1.39 ± 2.0 Å
     出現: 4/4 分子

  182. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 2.42 ± 2.0 Å
     出現: 4/4 分子

  183. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 2.79 ± 2.0 Å
     出現: 4/4 分子

  184. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 2.44 ± 2.0 Å
     出現: 4/4 分子

  185. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 1.39 ± 2.0 Å
     出現: 4/4 分子

  186. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 2.42 ± 2.0 Å
     出現: 4/4 分子

  187. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 2.82 ± 2.0 Å
     出現: 4/4 分子

  188. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 1.40 ± 2.0 Å
     出現: 4/4 分子

  189. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 2.44 ± 2.0 Å
     出現: 4/4 分子

  190. Hydrophobic - Hydrophobic
     (疎水性領域 - 疎水性領域)
     距離: 1.41 ± 2.0 Å
     出現: 4/4 分子

8. 創薬への応用と展望

ファルマコフォアモデリングは現代の創薬研究において重要な役割を果たしています。本セクションでは、実際の創薬プロセスでの応用例と今後の展望について解説します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# 創薬応用のシミュレーション:リード最適化
def optimize_lead_compound(lead_smiles, pharmacophore_map, modifications):
    """リード化合物の最適化シミュレーション"""
    optimization_results = []
    
    base_mol = Chem.MolFromSmiles(lead_smiles)
    if base_mol is None:
        return optimization_results
    
    # ベース化合物の評価
    base_features, base_mol_3d = extract_features(base_mol, feature_factory)
    base_score = calculate_pharmacophore_score(base_features, common_pharmacophore)
    
    optimization_results.append({
        'name': 'ベース化合物',
        'smiles': lead_smiles,
        'score': base_score,
        'modification': 'なし'
    })
    
    # 修飾化合物の評価
    for mod_name, mod_smiles in modifications.items():
        mod_mol = Chem.MolFromSmiles(mod_smiles)
        if mod_mol is not None:
            mod_features, mod_mol_3d = extract_features(mod_mol, feature_factory)
            mod_score = calculate_pharmacophore_score(mod_features, common_pharmacophore)
            
            optimization_results.append({
                'name': mod_name,
                'smiles': mod_smiles,
                'score': mod_score,
                'modification': 'あり'
            })
    
    return optimization_results

# リード最適化の例
lead_compound = "CC1=CC=C(C=C1)C(=O)O"  # メチル安息香酸

# 様々な修飾パターン
modifications = {
    "ヒドロキシル置換": "CC1=CC=C(C=C1)C(=O)O",
    "メトキシ置換": "COC1=CC=C(C=C1)C(=O)O", 
    "アミノ置換": "NC1=CC=C(C=C1)C(=O)O",
    "フッ素置換": "FC1=CC=C(C=C1)C(=O)O",
    "塩素置換": "ClC1=CC=C(C=C1)C(=O)O",
    "ニトロ置換": "[O-][N+](=O)C1=CC=C(C=C1)C(=O)O"
}

print("\nリード化合物最適化シミュレーション:")
print("=" * 60)

if common_pharmacophore:
    optimization_results = optimize_lead_compound(lead_compound, pharmacophore_map, modifications)
    
    print(f"ベース化合物: {lead_compound}")
    print("\n最適化結果(スコア順):")
    print("-" * 40)
    
    # スコア順にソート
    optimization_results.sort(key=lambda x: x['score'], reverse=True)
    
    for i, result in enumerate(optimization_results, 1):
        print(f"{i:2d}. {result['name']:15}: スコア {result['score']:.3f}")
        print(f"     SMILES: {result['smiles']}")
        print(f"     修飾: {result['modification']}")
        print()
    
    # 改善された化合物の特定
    base_score = optimization_results[0]['score'] if optimization_results[0]['name'] == 'ベース化合物' else 0
    improved_compounds = [r for r in optimization_results if r['score'] > base_score and r['name'] != 'ベース化合物']
    
    print(f"\n改善された化合物: {len(improved_compounds)} 個")
    for compound in improved_compounds:
        improvement = compound['score'] - base_score
        print(f"- {compound['name']}: +{improvement:.3f} 改善")
リード化合物最適化シミュレーション:
============================================================
ベース化合物: CC1=CC=C(C=C1)C(=O)O

最適化結果(スコア順):
----------------------------------------
 1. ベース化合物         : スコア 0.989
     SMILES: CC1=CC=C(C=C1)C(=O)O
     修飾: なし

 2. ヒドロキシル置換       : スコア 0.989
     SMILES: CC1=CC=C(C=C1)C(=O)O
     修飾: あり

 3. メトキシ置換         : スコア 0.974
     SMILES: COC1=CC=C(C=C1)C(=O)O
     修飾: あり

 4. アミノ置換          : スコア 0.974
     SMILES: NC1=CC=C(C=C1)C(=O)O
     修飾: あり

 5. フッ素置換          : スコア 0.974
     SMILES: FC1=CC=C(C=C1)C(=O)O
     修飾: あり

 6. 塩素置換           : スコア 0.974
     SMILES: ClC1=CC=C(C=C1)C(=O)O
     修飾: あり

 7. ニトロ置換          : スコア 0.974
     SMILES: [O-][N+](=O)C1=CC=C(C=C1)C(=O)O
     修飾: あり


改善された化合物: 0 個

9. まとめと今後の展望

本ノートブックで学んだ内容

  1. ファルマコフォアの基本概念: 生物学的活性に必要な3D配置された化学的特徴
  2. 特徴点の抽出: RDKitを用いた自動特徴点抽出
  3. 共通パターンの特定: 複数活性化合物からの共通構造モチーフ抽出
  4. 仮想スクリーニング: ファルマコフォアベースの化合物探索
  5. リード最適化: 構造活性相関に基づく化合物最適化

創薬における重要性

  • 活性部位の理解: 標的タンパク質との相互作用様式の解明
  • 効率的な探索: 膨大な化学空間からの効果的な化合物選択
  • 最適化指針: 構造活性相関に基づく合理的な分子設計
  • 予測精度向上: 機械学習との組み合わせによる活性予測

今後の展望

  • 動的ファルマコフォア: 分子動力学シミュレーションとの統合
  • AI支援設計: 深層学習による自動ファルマコフォア生成
  • 多標的設計: 複数標的に対する最適化
  • 副作用予測: 安全性を考慮したファルマコフォアモデリング
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 最終的な解析結果のサマリー
print("ファルマコフォア解析サマリー:")
print("=" * 50)

# 解析対象分子のサマリー
print(f"解析分子数: {len(molecule_features)}")
print("解析分子:")
for name in molecule_features.keys():
    print(f"  - {name}")

# 特徴点のサマリー
total_features = sum(len(data['features']) for data in molecule_features.values())
print(f"\n総特徴点数: {total_features}")
print(f"平均特徴点数/分子: {total_features/len(molecule_features):.1f}")

# 共通パターンのサマリー
print(f"\n発見された共通パターン: {len(common_pharmacophore)}")
if common_pharmacophore:
    high_freq_patterns = [p for p in common_pharmacophore if p['occurrence'] >= len(molecule_features) * 0.75]
    print(f"高頻度パターン(75%以上): {len(high_freq_patterns)}")

# ファルマコフォアマップのサマリー
print(f"\n必須特徴点: {len(pharmacophore_map['essential_features'])}")
print(f"任意特徴点: {len(pharmacophore_map['optional_features'])}")
print(f"距離制約: {len(pharmacophore_map['constraints'])}")

print("\n解析完了!")
print("ファルマコフォアモデリングによる創薬研究の基礎を習得しました。")
ファルマコフォア解析サマリー:
==================================================
解析分子数: 4
解析分子:
  - アスピリン
  - イブプロフェン
  - ナプロキセン
  - インドメタシン

総特徴点数: 120
平均特徴点数/分子: 30.0

発見された共通パターン: 190
高頻度パターン(75%以上): 190

必須特徴点: 4
任意特徴点: 0
距離制約: 190

解析完了!
ファルマコフォアモデリングによる創薬研究の基礎を習得しました。
Generated with Claude Code
アプリ開発 Hugo / テーマ Stack, Jimmy