?? 作者:韓信子@ShowMeAI
?? 機器學習實戰系列:https://www.showmeai.tech/tutorials/41
?? 深度學習實戰系列:https://www.showmeai.tech/tutorials/42
?? 本文地址:https://www.showmeai.tech/article-detail/329
?? 宣告:著作權所有,轉載請聯系平臺與作者并注明出處
?? 收藏ShowMeAI查看更多精彩內容
?? 引言&背景
?? AI + 新藥研發
人工智能作為一種新興技術,是新藥研發實作降本增效的重要方式之一,『人工智能+新藥研發』成為國內外醫藥企業加速創新轉型的重要驅動力,一個更快、更便宜、更有效的新藥物研發時代已經到來,
一款新藥從確認研發目標到完成臨床試驗,往往需要耗費數年時間和數十億美元,并伴隨著超過 90% 的失敗概率,高昂的研發成本、漫長的研發周期、高風險低回報率的特性,籠罩在藥物研發領域,而正在探索的各種 AI 應用,可以幫助解決這些挑戰,
??最近發表的一項分析表明,150 多種小分子藥物處于研發階段,超過 15 種藥物已經在臨床試驗中,這條 AI 生物技術賽道以每年近 40% 的速度急速擴張種,為追趕這波浪潮,制藥公司正在建立自己的內部人工智能團隊,或與 IT 公司、AI新藥研發創新公司進行投資和合作,
?? AI 藥物分子結構分析/檢索
利用 AI 進行藥物化合物分子結構分析和檢索等,是一個助力新藥研發的可行思路,Zilliz 公司與全球頂尖制藥研發企業共同開發的『MolSearch』化合物分子結構分析軟體是一個典型的例子,本篇咱們就一起來了解下這個程序是如何完成的,
?? 向量搜索 & 醫療研發領域的應用
在萬物皆可 embedding 的深度學習時代,『特征向量表征+向量檢索』有巨大作用,在很多資料和業務領域都發揮了巨大作用,例如機器視覺(圖片視頻檢索)、自然語言處理(文本檢索、問答)、語音識別等,同樣的思路也可以用在醫療醫藥領域,
?? 藥物晶型預測
比如新藥研發程序藥物晶型預測,可以結合影像識別和檢索的思路,有效地預測出合適的藥物晶型,
?? 靶點篩選與患者招募
比如靶點篩選和患者招募程序,可以抽象為對文本語意分析問題,可以結合 NLP 表征與檢索方法,快速分析有關藥物研發的文本資料等,
?? 虛擬藥物篩選
AI 可以在新藥研發程序中發揮巨大作用的另一個步驟是『虛擬藥物篩選』,通過模擬藥物篩選的程序,預測化合物可能的活性,對比較有可能成為藥物的化合物進行針對性的物體篩選,這個程序可以大大降低藥物研發的時間和經濟成本,
有不少傳統方法方案在嘗試,但受限于演算法和算力,對千萬級別的化合物分子進行相似性、子結構、超結構等分析時,耗時較長(分鐘級別),而在AI向量檢索技術優化后,能大大加速這個程序(對十億級的化學式資料極速分析,僅秒級別),
?? MolSearch 新藥結構篩選
Zilliz 公司基于 Milvus 向量相似度檢索引擎,研發了化合物分析軟體 ??MolSearch,大家可以在 ??這里 查看中文說明,
藥物化學專家通常根據骨架躍遷對分子模塊進行優化,并基于它設計出新藥結構并做后續篩選,針對海量化合物的虛擬篩選是非常核心關鍵的一部,其效果很大程度決定了后期小白鼠實驗以及臨床試驗能否成功,候選底庫量級越大,篩選準確率越高,新藥研發成功的概率也相應越高,
MolSearch 系統集成向量相似度檢索引擎 Milvus ,構建分子檢索功能,可以實作十億級的化學分子結構秒級檢索分析能力,
?? MolSearch 效果&性能
目前 MolSearch 中集成了 8.2 億 zinc 開放化學式分子式資料集,這些化學式被轉換為 2048 位的化學指紋(特征向量),在有表征特征向量之后,借助于高效向量檢索引擎,可以實作對分子結構的相似性、子結構和超結構檢索,
MolSearch 端到端的檢索性能資料如圖所示(圖中『回應時間(p99)』表示 99% 的檢索能在多少時間完成),
?? AI 新藥研發輔助系統
?? 篩選流程 & 核心步驟
詳細展開 MolSearch 的虛擬化合物篩選技術如下圖所示,包含以下步驟:
- ① 通過 ??RDKit 工具將化合物分子的化學式轉換為化學式指紋/Chemical Fingerprint(也即表征特征向量),
- ② 通過向量檢索引擎,對化合物分子之間關系分析:子結構檢索、相似性檢索、重復結構檢索,
?? 化學指紋生成
化學指紋通常用來做結構檢索和相似度檢索,如下圖所示,最終的指紋向量表征為01串,每一位(0/1)代表化學結構中例如指定元素,分子片段等是否存在,
MolSearch 中這個環節使用了工具 RDKit ,它會生成 RDKit fingerprint,底層的演算法原始是:分析從一個原子開始直至到達指定數量鍵的路徑(path,通常為線性)上所有的分子片段,然后對每一個路徑進行哈希(hash)產生指紋(fingerprint),
上圖展示了從NH2(已圈出)開始一直到 6 個長度的所有路徑,然后將每個路徑 hash 映射為二進制位,
圖例是一個單個起始原子出發的片段和位元位,最終的完整指紋生成,是對分子中的每個原子進行這個操作后的結果,可以指定 fpSize 調整生成的向量維度,這個程序對于每個分子都適用,我們把最終生成的向量匯入 Milvus 以實作后續檢索,完整的指紋向量生成程序示例代碼如下:
from rdkit import Chem
mols=Chem.MolFromSmiles(smiles)
fp=Chem.RDKFingerprint(mols,fpSize=VECTOR_DIMENSION)
bit_fp=DataStructs.BitVectToFPSText(fp)
vectors=bytes.fromhex(hex_fp)
?? 化合物檢索
我們將生成的指紋向量匯入 Milvus,即可應用不同計算方式完成對化合物的『相似度檢索』、『子結構檢索』和『超結構檢索』,示例代碼如下:
from milvus import *
milvus = Milvus()
milvus.insert(collection_name=MILVUS_TABLE, records=vectors)
milvus.search(collection_name=MILVUS_TABLE, query_records=query_list, top_k=topk, params={})
- 相似度檢索,用于尋找與輸入的參考分子比較相似的分子,
- 子結構檢索,檢測一個分子結構是否為另一個分子的子結構,
- 超結構檢索,檢測一個分子結構是否為另一個分子的超結構,
?? 指紋距離度量與相似度計算
Milvus工具本身支持各種常用相似度計算指標,包括『歐氏距離』、『內積』、『漢明距離』和『Jaccard距離』等,因為指紋是二值型資料向量,我們可以選擇 Jaccard/Substructure(子結構)/Superstructure(超結構) 距離計算相似度,我們定義以下表示:
根據以上定義,化學式指紋之間的距離和相似度度量計算,可以如下表中描述來計算:
參考資料
- ?? AI in small-molecule drug discovery: a coming wave?:(https://www.nature.com/articles/d41573-022-00025-1
- ?? MolSearch 官方 GitHub:https://github.com/zilliztech/MolSearch
- ?? MolSearch 中文說明:https://github.com/zilliztech/MolSearch/blob/master/CN_README.md
- ?? RDKit:https://www.rdkit.org/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/534167.html
標籤:其他
