新薬創製の加速
#はじめに
創薬は、医薬品イノベーションの源泉として、新薬研究開発の重要な部分を占めている。創薬はターゲットの選択と確認によって実施される。フラグメントやリード化合物が発見されると、構造活性相関(SAR)や化合物の利用可能性を発見するために、通常、社内または市販の化合物ライブラリーから類似化合物を検索し、リード化合物が候補化合物に最適化される可能性を評価する。
億単位の化合物ライブラリーからフラグメント空間内で利用可能な化合物を発見するためには、通常、化学的フィンガープリントを検索して部分構造検索と類似性検索を行う。しかし、10億スケールの高次元化学フィンガープリントを検索する場合、従来の方法では時間がかかり、エラーも発生しやすい。また、その過程で失われる可能性のある化合物もある。この記事では、大規模ベクトル用の類似検索エンジンであるMilvusとRDKitを使用して、高性能な化学構造類似検索のシステムを構築することについて説明します。
Milvusは従来の手法と比較して、検索速度が速く、対象範囲が広い。化学フィンガープリントを処理することにより、Milvusは、潜在的に利用可能な医薬品を発見するために、化学構造ライブラリの部分構造検索、類似性検索、厳密検索を実行することができる。
システム概要
本システムはRDKitを用いて化学フィンガープリントを生成し、Milvusを用いて化学構造の類似性検索を行います。システムの詳細については https://github.com/milvus-io/bootcamp/blob/master/EN_solutions/mols_search/README.md をご参照下さい。
システム概要](https://assets.zilliz.com/1_system_overview_4b7c2de377.png)
1.化学指紋の生成
化学フィンガープリントは通常、部分構造検索と類似性検索に使われる。以下の画像はビットで表現された連続リストを示しています。各桁は元素、原子ペア、または官能基を表す。化学構造は C1C(=O)NCO1 です。
分子パターンの識別](https://assets.zilliz.com/2_identifying_patterns_molecules_2aeef349c8.png)
RDKitを使ってモーガンフィンガープリントを生成することができます。これは特定の原子から半径を定義し、半径の範囲内にある化学構造の数を計算して化学フィンガープリントを生成します。異なる化学構造の化学指紋を取得するために、半径とビットに異なる値を指定します。化学構造はSMILES形式で表現されます。
from rdkit import Chem
mols = Chem.MolFromSmiles(smiles)
mbfp = AllChem.GetMorganFingerprintAsBitVect(mols, radius=2, bits=512)
mvec = DataStructs.BitVectToFPSText(mbfp)
2.化学構造の検索
次に化学構造データベースを構築するためにモーガンフィンガープリントをMilvusにインポートすることができます。異なる化学フィンガープリントで、Milvusは部分構造検索、類似性検索、厳密検索が可能です。
from milvus import Milvus
Milvus.add_vectors(table_name=MILVUS_TABLE, records=mvecs)
Milvus.search_vectors(table_name=MILVUS_TABLE, query_records=query_mvec, top_k=topk)
部分構造検索
化学構造に別の化学構造が含まれているかどうかを調べる.
類似性検索
類似した化学構造を検索します。デフォルトでは谷本距離が使用されます。
厳密検索
指定した化学構造が存在するかどうかを調べます。この種の検索には完全一致が必要です。
化学指紋の計算
谷本距離は化学指紋の指標としてよく使用されます。MilvusではJaccard距離が谷本距離に相当する。
化学フィンガープリントの計算表-1](https://assets.zilliz.com/3_computing_chem_fingerprings_table_1_3814744fce.png)
前述のパラメーターに基づき、化学指紋の計算は以下のように記述できます:
化学フィンガープリント表-2の計算](https://assets.zilliz.com/4_computing_chem_fingerprings_table_2_7d16075836.png)
1- Jaccard = Tanimoto であることがわかる。ここでは化学指紋を計算するためにMilvusのJaccardを使用するが、これは実際には谷本距離と一致する。
システムデモ
システムがどのように機能するかをより良く示すために、我々は9000万以上の化学フィンガープリントを検索するためにMilvusを使用するデモを作成しました。使用されたデータはftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF。初期インターフェースは以下のようになる:
システムデモ1](https://assets.zilliz.com/5_system_demo_1_46c6e6cd96.jpg)
指定した化学構造をシステムから検索し、類似の化学構造を返す:
システムデモ2](https://assets.zilliz.com/6_system_demo_2_19d6cd8f92.gif)
結論
類似性検索は、画像や映像など多くの分野で不可欠である。創薬においては、類似性検索を化学構造データベースに適用することで、潜在的に利用可能な化合物を発見することができる。Milvusは、大規模特徴ベクトルのためのオープンソースの類似性検索エンジンとして、最高のコスト効率を実現するためにヘテロジニアス・コンピューティング・アーキテクチャで構築されている。億スケールのベクトルに対する検索は、最小限の計算資源でわずか数ミリ秒しかかかりません。したがって、Milvusは生物学や化学などの分野で正確で高速な化学構造検索の実装を支援することができます。
デモは、http://40.117.75.127:8002/。また、GitHub https://github.com/milvus-io/milvus!
読み続けて

Context Engineering Strategies for AI Agents: A Developer’s Guide
Learn practical context engineering strategies for AI agents. Explore frameworks, tools, and techniques to improve reliability, efficiency, and cost.

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.

Milvus WebUI: A Visual Management Tool for Your Vector Database
Explore Milvus WebUI to monitor, manage, and optimize your vector database with real-time insights, performance tracking, and system health monitoring.
