AI醫療高精尖!基於AI的新葯研發!

語言: CN / TW / HK

本站內容均來自興趣收集,如不慎侵害的您的相關權益,請留言告知,我們將盡快刪除.謝謝.

我報名參加金石計劃1期挑戰——瓜分10萬獎池,這是我的第6篇文章,點選檢視活動詳情

:bulb: 作者: 韓信子 @ ShowMeAI

:blue_book:機器學習實戰系列: www.showmeai.tech/tutorials/4…

:blue_book:深度學習實戰系列: www.showmeai.tech/tutorials/4…

:blue_book:本文地址: www.showmeai.tech/article-det…

:loudspeaker: 宣告:版權所有,轉載請聯絡平臺與作者並註明出處

:loudspeaker: 收藏ShowMeAI檢視更多精彩內容

:bulb: 引言&背景

:sweat_drops: AI + 新葯研發

人工智慧作為一種新興技術,是新葯研發實現降本增效的重要方式之一,『 人工智慧+新葯研發 』成為國內外醫藥企業加速創新轉型的重要驅動力,一個更快、更便宜、更有效的新葯物研發時代已經到來。

一款新葯從確認研發目標到完成臨床試驗,往往需要耗費數年時間和數十億美元,並伴隨著超過 90% 的失敗概率。高昂的研發成本、漫長的研發週期、高風險低迴報率的特性,籠罩在藥物研發領域。而正在探索的各種 AI 應用,可以幫助解決這些挑戰。

:blue_book: 最近發表的一項分析表明 ,150 多種小分子藥物處於研發階段,超過 15 種藥物已經在臨床試驗中,這條 AI 生物技術賽道以每年近 40% 的速度急速擴張種。為追趕這波浪潮,製藥公司正在建立自己的內部人工智慧團隊,或與 IT 公司、AI新葯研發創新公司進行投資和合作。

:sweat_drops: AI 藥物分子結構分析/檢索

利用 AI 進行藥物化合物分子結構分析和檢索等,是一個助力新葯研發的可行思路。Zilliz 公司與全球頂尖製藥研發企業共同開發的『 MolSearch』化合物分子結構分析軟體 是一個典型的例子。本篇咱們就一起來了解下這個過程是如何完成的。

:bulb: 向量搜尋 & 醫療研發領域的應用

在萬物皆可 embedding 的深度學習時代,『 特徵向量表徵+向量檢索 』有巨大作用,在很多資料和業務領域都發揮了巨大作用,例如機器視覺(圖片視訊檢索)、自然語言處理(文字檢索、問答)、語音識別等。同樣的思路也可以用在醫療醫藥領域。

:sweat_drops: 藥物晶型預測

比如新葯研發過程 藥物晶型預測 ,可以結合影象識別和檢索的思路,有效地預測出合適的藥物晶型。

:sweat_drops: 靶點篩選與患者招募

比如 靶點篩選 和 患者招募 過程,可以抽象為對文字語義分析問題,可以結合 NLP 表徵與檢索方法,快速分析有關藥物研發的文字資料等。

:bulb: 虛擬藥物篩選

AI 可以在新葯研發過程中發揮巨大作用的另一個步驟是『 虛擬藥物篩選 』,通過模擬藥物篩選的過程,預測化合物可能的活性,對比較有可能成為藥物的化合物進行鍼對性的實體篩選,這個過程可以大大降低藥物研發的時間和經濟成本。

有不少傳統方法方案在嘗試,但受限於演算法和算力,對千萬級別的化合物分子進行相似性、子結構、超結構等分析時,耗時較長(分鐘級別),而在AI向量檢索技術優化後,能大大加速這個過程(對十億級的化學式資料極速分析,僅秒級別)。

:sweat_drops: MolSearch 新葯結構篩選

Zilliz 公司基於 Milvus 向量相似度檢索引擎,研發了化合物分析軟體 :blue_book: MolSearch ,大家可以在 :blue_book: 這裡 檢視中文說明。

藥物化學專家通常根據骨架躍遷對分子模組進行優化,並基於它設計出新葯結構並做後續篩選。針對海量化合物的虛擬篩選是非常核心關鍵的一部,其效果很大程度決定了後期小白鼠實驗以及臨床試驗能否成功,候選底庫量級越大,篩選準確率越高,新葯研發成功的概率也相應越高。

MolSearch 系統整合向量相似度檢索引擎 Milvus ,構建分子檢索功能,可以實現十億級的化學分子結構秒級檢索分析能力。

:sweat_drops: MolSearch 效果&效能

目前 MolSearch 中集成了 8.2 億 zinc 開放化學式分子式資料集,這些化學式被轉換為 2048 位的化學指紋(特徵向量),在有表徵特徵向量之後,藉助於高效向量檢索引擎,可以實現對分子結構的相似性、子結構和超結構檢索。

MolSearch 端到端的檢索效能資料如圖所示(圖中『響應時間(p99)』表示 99% 的檢索能在多少時間完成)。

:bulb: AI 新葯研發輔助系統

:sweat_drops: 篩選流程 & 核心步驟

詳細展開 MolSearch 的虛擬化合物篩選技術如下圖所示,包含以下步驟:

① 通過 :blue_book: RDKit 工具將化合物分子的化學式轉換為化學式指紋/Chemical Fingerprint(也即表徵特徵向量)。

② 通過向量檢索引擎,對化合物分子之間關係分析:子結構檢索、相似性檢索、重複結構檢索。

:sweat_drops: 化學指紋生成

化學指紋通常用來做結構檢索和相似度檢索,如下圖所示,最終的指紋向量表徵為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)

:sweat_drops: 化合物檢索

我們將生成的指紋向量匯入 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={})

相似度檢索 。用於尋找與輸入的參考分子比較相似的分子。

子結構檢索 。檢測一個分子結構是否為另一個分子的子結構。

超結構檢索 。檢測一個分子結構是否為另一個分子的超結構。

:sweat_drops: 指紋距離度量與相似度計算

Milvus工具本身支援各種常用相似度計算指標,包括『歐氏距離』、『內積』、『漢明距離』和『Jaccard距離』等。因為指紋是二值型資料向量,我們可以選擇 Jaccard/Substructure(子結構)/Superstructure(超結構) 距離計算相似度。我們定義以下表示:

根據以上定義,化學式指紋之間的距離和相似度度量計算,可以如下表中描述來計算:

參考資料

:blue_book: AI in small-molecule drug discovery: a coming wave? : (http://www.nature.com/articles/d41573-022-00025-1

:blue_book: MolSearch 官方 GitHub : github.com/zilliztech/…

:blue_book: MolSearch 中文說明 : github.com/zilliztech/…

:blue_book: RDKit : www.rdkit.org/