🚀 Zilliz Cloudを無料で試す、完全管理型のMilvus—10倍の高速パフォーマンスを体験しよう!今すぐ試す>>

milvus-logo
LFAI

はじめに

  • Scenarios
February 06, 2020
Shiyu Chen

はじめに

創薬は医薬品イノベーションの源泉として、新薬研究開発の重要な部分を占めている。創薬はターゲットの選択と確認によって実施される。フラグメントやリード化合物が発見された場合、構造活性相関(SAR)や化合物の利用可能性を発見するために、通常、社内または市販の化合物ライブラリーから類似化合物を検索し、リード化合物が候補化合物に最適化される可能性を評価する。

億単位の化合物ライブラリーからフラグメント空間内で利用可能な化合物を発見するためには、通常、化学的フィンガープリントを検索して部分構造検索と類似性検索を行う。しかし、10億スケールの高次元化学フィンガープリントを検索する場合、従来の方法では時間がかかり、エラーも発生しやすい。また、その過程で失われる可能性のある化合物もある。本稿では、Milvus(大規模ベクトル用類似性検索エンジン)をRDKitと組み合わせて使用し、高性能な化学構造類似性検索システムを構築する方法について述べる。

Milvusは従来の手法と比較して、検索速度が速く、対象範囲が広い。Milvusは化学フィンガープリントを処理することで、化学構造ライブラリの部分構造検索、類似性検索、完全検索を実行し、潜在的な医薬品を発見することができる。

システム概要

本システムでは、RDKitを用いて化学フィンガープリントを生成し、Milvusを用いて化学構造の類似性検索を行います。システムの詳細については https://github.com/milvus-io/bootcamp/tree/master/solutions/molecular_similarity_search を参照してください。

1-system-overview.png 1-システム概要.png

1.化学フィンガープリントの生成

化学フィンガープリントは通常、部分構造検索と類似性検索に使用される。以下の画像はビットで表現された連続リストを示している。各桁は元素、原子ペア、または官能基を表す。化学構造はC1C(=O)NCO1

2-identifying-patterns-molecules.png 2-識別パターン-分子.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距離が谷本距離に相当する。

3-computing-chem-fingerprings-table-1.png 3-化学フィンガープリントの計算-表-1.png

前述のパラメータに基づき、化学指紋の計算は次のように記述できる:

4-computing-chem-fingerprings-table-2.png 4-計算-化学指紋-表-2.png

1- Jaccard = Tanimoto であることがわかる。ここではmilvusのJaccardを使って化学指紋を計算しているが、実際には谷本距離と一致している。

システムのデモ

システムがどのように機能するかをよりよく示すために、我々はMilvusを使って9000万以上の化学フィンガープリントを検索するデモを作成しました。使用されたデータは ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/CURRENT-Full/SDF からのものです。初期インターフェースは以下のようになる:

5-system-demo-1.jpg 5-system-demo-1.jpg

システム内で指定した化学構造を検索し、類似した化学構造を返す:

6-system-demo-2.gif 6-system-demo-2.gif

結論

類似性検索は、画像や映像など様々な分野で必要不可欠である。創薬においては、類似性検索を化学構造データベースに適用することで、潜在的に利用可能な化合物を発見することができる。Milvusは、大規模特徴ベクトルのためのオープンソースの類似性検索エンジンとして、最高のコスト効率を実現するためにヘテロジニアスコンピューティングアーキテクチャで構築されている。億スケールのベクトルに対する検索は、最小限の計算資源でわずか数ミリ秒しかかかりません。このように、Milvusは生物学や化学などの分野で正確で高速な化学構造検索を実現するのに役立ちます。

Milvusのデモは、http://40.117.75.127:8002/。また、GitHub https://github.com/milvus-io/milvus!

Like the article? Spread the word

続けて読む