探索「老藥新用」最短路徑:亞馬遜AI Lab開源大規模藥物重定位知識圖譜DRKG

2021-01-14 DrugAI
最近,來自亞馬遜上海 AI 實驗室、亞馬遜 AI 北美、明尼蘇達大學、俄亥俄州立大學、湖南大學等機構的團隊,正式開源了大規模藥物重定位知識圖譜 DRKG和一套完整的用於進行藥物重定位研究的機器學習工具,助力新冠及其他疾病的藥物重定位研究。


自 2019 年 12 月至今,新型冠狀病毒在全球迅速擴散已導致近 760 萬人感染,40 餘萬人死亡。目前急需快速有效的新冠病毒有效藥物的發現路徑。藥物重定位是一種將現有藥物用於治療新的適應症的藥物發現方式。相比較傳統的新藥開發,它可以有效縮短藥物研發周期,降低成本,規避風險,是一種非常有前景的新冠肺炎治療策略。近日,亞馬遜上海 AI 實驗室聯合來自亞馬遜 AI 北美、明尼蘇達大學、俄亥俄州立大學、湖南大學的研究者,共同構建了大規模藥物重定位知識圖譜 DRKG(Drug Repurposing Knowledge Graph),以及一套完整的用於進行藥物重定位研究的機器學習工具,並將其在 github 上開源給全世界研究機構,幫助相關研究人員更有效地對新冠病毒及其它疾病(如阿爾茨海默病)進行藥物重定位研究。項目地址:https://github.com/gnn4dr/DRKG如下圖所示,DRKG 是一個綜合型生物醫藥知識圖譜,包含人類基因、化合物、生物過程、藥物副作用、疾病和症狀等六個主要方面的數據。DRKG 從六個公開的大型醫藥資料庫以及近期新冠病毒的相關醫學文獻中挖掘並數據,並進行整理和規範。DRKG 知識圖譜包含分屬於 13 種實體類型 97238 個實體,以及分屬於 107 種關係類型 5874261 個三元組數據。

Drug Repurposing Knowledge Graph

機器學習工具使用了先進的深度圖學習方法(DGL-KE)來學習 DRKG 中實體和關係的低維向量表示(embeddings), 並使用這些 embedding 來預測藥物治療疾病的可能性或藥物與疾病靶點結合的可能性。DGL-KE 是亞馬遜上海 AI 實驗室開源的一款專門針對大規模知識圖譜嵌入表示的訓練工具,同時支持單機多 GPU 和多機分布式訓練。在 AWS EC2 平臺上,一臺 p3.16xlarge(8 GPUs)可以在 100 分鐘內訓練完成 Freebase 數據集(8600 萬節點,3 億條邊)。4 臺 r5dn.24xlarge(4*48 CPUs) 可以在 30 分鐘內完成訓練。項目地址:https://github.com/awslabs/dgl-ke

DRKG 在其開原始碼倉庫中提供了使用 DGL-KE 來生成 DRKG 知識圖譜中實體和關係的低緯嵌入向量表示的案例以及基於預訓練的 DRKG 知識圖譜嵌入向量表示預測新冠病毒候選藥物的案例。初步的實驗結果表明:使用此類機器學習工具進行冠狀病毒的藥物發現,能以較高的分數識別出目前正在進行臨床試驗的多種冠狀病毒候選藥物。
使用 DGL-KE 生成 DRKG 知識圖譜的低緯嵌入向量表示DGL-KE 是一個基於 DGL 圖深度學習框架(https://github.com/dmlc/dgl),面向知識圖譜嵌入學習方法領域的高性能、高可擴展的開源軟體庫,DRKG 利用 DGL-KE 軟體包進行 DRKG 知識圖譜的低緯嵌入向量表示的生成。
import syssys.path.insert(1, '../utils')from utils import download_and_extractdownload_and_extract()drkg_file = '../data/drkg/drkg.tsv'


import pandas as pdimport numpy as np
df = pd.read_csv(drkg_file, sep="\t")triples = df.values.tolist()seed = np.arange(num_triples)np.random.shuffle(seed)
train_cnt = int(num_triples * 0.9)valid_cnt = int(num_triples * 0.05)train_set = seed[:train_cnt]train_set = train_set.tolist()valid_set = seed[train_cnt:train_cnt+valid_cnt].tolist()test_set = seed[train_cnt+valid_cnt:].tolist()
with open("train/drkg_train.tsv", 'w+') as f:  for idx in train_set:     f.writelines("{}\t{}\t{}\n".format(triples[idx][0], triples[idx][1], triples[idx][2]))
with open("train/drkg_valid.tsv", 'w+') as f:  for idx in valid_set:    f.writelines("{}\t{}\t{}\n".format(triples[idx][0], triples[idx][1], triples[idx][2]))    with open("train/drkg_test.tsv", 'w+') as f:   for idx in test_set:     f.writelines("{}\t{}\t{}\n".format(triples[idx][0], triples[idx][1], triples[idx][2]))

!DGLBACKEND=pytorch dglke_train --dataset DRKG --data_path ./train --data_files drkg_train.tsv drkg_valid.tsv drkg_test.tsv --format 'raw_udd_hrt' --model_name TransE_l2 --batch_size 2048 \--neg_sample_size 256 --hidden_dim 400 --gamma 12.0 --lr 0.1 --max_step 100000 --log_interval 1000 --batch_size_eval 16 -adv --regularization_coef 1.00E-07 --test --num_thread 1 --gpu 0 1 2 3 4 5 6 7 --num_proc 8 --neg_sample_size_eval 10000 --async_update

node_emb = np.load('./ckpts/TransE_l2_DRKG_0/DRKG_TransE_l2_entity.npy')relation_emb = np.load('./ckpts/TransE_l2_DRKG_0/DRKG_TransE_l2_relation.npy')

完整案例可以在此獲取:https://github.com/gnn4dr/DRKG/blob/master/embedding_analysis/Train_embeddings.ipynb 使用預訓練的 DRKG 知識圖譜的嵌入向量預測新冠病毒候選藥物在論文《Repurpose Open Data to Discover Therapeutics for COVID-19 using Deep Learning》中,亞馬遜 AI、湖南大學、克裡夫蘭診所勒納中心基因組醫學研究所、明尼蘇達大學的研究者提出了結合使用知識圖譜的嵌入和基因集富集分析的方法來進行新冠病毒老藥新用藥物的預測。DRKG 基於該論文的思路,提供了基於預訓練的 DRKG 知識圖譜嵌入向量表示進行新冠病毒候選藥物預測案例。論文地址:https://arxiv.org/abs/2005.10831首先我們將基於 DRKG 知識圖譜的新冠病毒的藥物預測問題定義為預測藥物和新冠病毒實體之間存在'Hetionet::CtD::Compound:Disease'『GNBR::T::Compound:Disease'關係(即治療 treatment 關係)的置信度評估問題。首先,我們選取 DRKG 中來自 Drugbank 的分子量 (molecule weight) 大於 250 的 FDA 獲準藥物實體作為可選藥物集,同時選取 DRKG 知識圖譜中存在的 34 個新冠病毒相關實體作為目標病毒集。然後,我們預測所有可能的(藥物,治療,病毒)三元組組合在 TrainsE_l2 算法下的分數(score),並最終對分數進行排序,並選取分數最高的 100 個藥物作為推薦藥物。具體方法實施如下:
# 目標新冠病毒相關實體COV_disease_list = ['Disease::SARS-CoV2 E','Disease::SARS-CoV2 M', ...]
# 藥物疾病治療相關關係treatment = ['Hetionet::CtD::Compound:Disease','GNBR::T::Compound:Disease']
# 獲取來自 Drugbank 的分子量 (molecule weight) 大於 250 的 FDA 獲準藥物實體(已在 infer_drug.tsv 中提供drug_list = []
with open("./infer_drug.tsv", newline='', encoding='utf-8') as csvfile: reader = csv.DictReader(csvfile, delimiter='\t', fieldnames=['drug','ids']) for row_val in reader:       drug_list.append(row_val['drug'])


# 讀取預訓練 embeddingentity_emb = np.load('../data/drkg/embed/DRKG_TransE_l2_entity.npy')rel_emb = np.load('../data/drkg/embed/DRKG_TransE_l2_relation.npy')
drug_ids = th.tensor(drug_ids).long()disease_ids = th.tensor(disease_ids).long()treatment_rid = th.tensor(treatment_rid)
drug_emb = th.tensor(entity_emb[drug_ids])treatment_embs = [th.tensor(rel_emb[rid]) for rid in treatment_rid]

其中,h  為 head 即藥物,r 為關係,t 為 tail 即病毒。gamma 為訓練中使用的常數。
import torch.nn.functional as fn
gamma=12.0def transE_l2(head, rel, tail):  score = head + rel - tail  return gamma - th.norm(score, p=2, dim=-1)  scores_per_disease = [] dids = [] # 針對兩種治療關係分別計算(藥物,治療,病毒)三元組的分數,並最終合併 for rid in range(len(treatment_embs)):    treatment_emb=treatment_embs[rid]    for disease_id in disease_ids:       disease_emb = entity_emb[disease_id]        score = fn.logsigmoid(transE_l2(drug_emb, treatment_emb, disease_emb))         scores_per_disease.append(score)         dids.append(drug_ids)scores = th.cat(scores_per_disease)

idx = th.flip(th.argsort(scores), dims=[0])scores = scores[idx].numpy()dids = dids[idx].numpy()

topk=100_, unique_indices = np.unique(dids, return_index=True)topk_indices = np.sort(unique_indices)[:topk]proposed_dids = dids[topk_indices]proposed_scores = scores[topk_indices]

[0]    Ribavirin          -0.21416784822940826[4]    Dexamethasone      -0.9984006881713867[8]    Colchicine         -1.080674648284912[16]   Methylprednisolone -1.1618402004241943[49]   Oseltamivir        -1.3885014057159424[87]   Deferoxamine       -1.513066053390503

完整案例可以在此處獲取:https://github.com/gnn4dr/DRKG/blob/master/drug_repurpose/COVID-19_drug_repurposing.ipynb


✄---


相關焦點

  • 騰訊AI Lab 2020 年度回顧
    因此,騰訊 AI Lab 在積極探索最前沿的 AI 技術的同時,也致力於將這樣的潛力轉化為切實可行的應用,以更好地服務用戶和造福社會。 AI+藥物:首個AI驅動的藥物發現平臺問世 2020 年 7 月,騰訊 AI Lab 重磅發布了首個 AI 驅動的藥物發現平臺「雲深智藥」。
  • 機器之心「AI00」十一月最新榜單:兩家國內公司新上榜
    -OpenAI「AI00 ,這是一個開源項目」這不僅是一份榜單,更是一個開源項目,主要基於以下幾點:人工智慧是一個複雜龐大的體系,涉及眾多學科,也關乎技術、產品、行業和資本等眾多要素,報告的寫作團隊只代表他們的專業觀點,有自己的局限性
  • AI 影響因子 8 月份回顧:騰訊 AI Lab 再佔榜首
    2018展會記:學術會議上的人才爭奪戰今年是騰訊 AI Lab 第二次參加 ECCV,共有 19 篇文章入選,位居國內企業前列,內容涵蓋行人重識別ECCV 2018 入選論文阿里巴巴在 KDD 上有四篇 oral 論文被錄用,內容包括:阿里巴巴在罕見的分類分析的進展、在社交媒體上
  • AI可以如何抗擊新冠?WHO論文告訴你這三大場景大有可為
    多項研究已經將診斷定為二元分類問題,即「健康」與「新冠病毒陽性」。Wang 等人使用改進過的 Inception 神經網絡架構,對醫生確定過的區域進行訓練,從而對健康患者和新冠患者進行二元分類。基於 259 位患者的約 1000 個圖像切片的數據集,研究者訓練出了能夠識別疑似 COVID- 19 的模型,然後將結果提供給醫生作進一步診斷。
  • AI碰撞短視頻,從推薦到直播,快手探索了這些ML新思路
    機器之心原創作者:思除了各種特效,想不到快手短視頻從推薦、直播視頻分發、視頻碼率調整等方面都在探索基於 ML 的新方法,他們希望用更強大與智能的深度模型優化傳統的視頻處理流。這三項研究都已 被 ACM MM 2019 所接收。本文將帶你一覽這三項前沿探索。在打開手機看短視頻的過程中,你知道中間會有多少機器學習模型在做優化嗎?
  • AI知識圖譜,讓我擼到了一隻「天山上的雪豹」
    火到有拿「雲吸貓」開始變現的,還有用「雲吸貓」來寫畢業論文的……喵星人可以說打出了一套「可愛組合拳」,攻佔了大片網際網路江山。最近,這種流行趨勢似乎有了升級——雲擼國家一級保護動物「雪豹」,你敢信?這是一款由騰訊聯合WWF打造、名為「神秘雪豹在哪裡」的微信小程序。而且上線2天,便有超過10萬人在使用。
  • AI產品經理的入門必修課(4)——知識圖譜
    如下圖即是一個簡單的知識圖譜,「張栢芝」、「謝霆鋒」、「王菲」是人物主體;「出生年月」、「性別」、「年齡」為主體屬性;「前妻」、「現任女友」、「情敵」為知識抽象出的關係。知識推理過程「前妻」知識:男女雙方在法律上曾經成立過婚姻,後通過協議或訴訟的方式解除了婚姻,終止了夫妻間權利和義務,對男方而言稱呼女方為前妻。
  • 藥物發展簡史:從柳樹皮到「上帝的手術刀」
    讓我們用交通工具來作類比,試著理解不同藥物的特點。小分子藥就像自行車,它的製造和生產是最容易的。短肽類和小核酸類藥物就像汽車,重量增加了不少,也複雜了不少。大分子藥(抗體)就像飛機,而基因療法使用的病毒載體就像火箭。一般來說,越小的東西,它本身的複雜程度越低,這個容易理解。但在作用機制上和功能上,卻會有不同的情況。
  • 老藥新用 罕見病用藥的新捷徑
    老藥新用在兩個階段可以實現:確定候選藥物和檢測療效。對老藥新用機會的確定是一個新興的創新領域,它可以跨越簡單的臨床偶然性、先進的樣本採集方法和基因表達模式的分析。通常,偶然性一直是老藥新用的主要驅動力。麻風病的治療是一個典型的例子。
  • YOCSEF「知識圖譜」專題探索班成功舉辦,五大高校、三大企業共話...
    「知識圖譜」專題探索班。我們需要將知識驅動和數據驅動相結合,進行多學科交叉研究。而我國目前的研究現狀如下,研究機器學習的人很多,但很少有人研究知識表示和推理。他表示,科學研究必須強調多樣化,我們應該重視知識表示和推理,這是人工智慧最核心的內容。隨後,他提到如何把知識圖譜嵌入向量空間,「現在的很多方法看起來都不太理想,問題是在投射的過程中要儘量少丟失語義。當數據很大的時候很難做到。」
  • 從ACM班、百度到亞馬遜,深度學習大牛李沐的開掛人生
    同授這門課程的還有李沐的亞馬遜同事 Alex Smola。課程內容大致是按照李沐老師的開源新書《動手學深度學習》來安排的。2017 年 10 月 7 日,亞馬遜和華盛頓大學合作發布了開源的端到端深度學習編譯器 NNVM compiler。
  • 清華大學人工智慧研究院知識中心成立儀式隆重舉行,發布知識計算...
    (以下簡稱「知識中心」)成立儀式暨知識平臺發布會在清華大學東南門內 FIT 樓隆重舉行。,是中英文知識規模較平衡的大規模多語言通用知識圖譜。,以「義原」為基本語義單位,以揭示概念與概念之間以及概念所具有的屬性之間的關係為基本內容的常識語言知識圖譜。
  • 知識圖譜從哪裡來:實體關係抽取的現狀與未來
    如果沒有先驗知識的支持,「中國的桌球誰都打不過」與「中國的足球誰都打不過」,在計算機看來語義上並沒有巨大差異,而實際上兩句中的「打不過」意思正好相反。因此,融入知識來進行知識指導的自然語言處理,是通向精細而深度的語言理解的必由之路。然而,這些知識又從哪裡來呢?這就涉及到人工智慧的一個關鍵研究問題——知識獲取。
  • 百度安全開源大規模圖資料庫HugeGraph
    圖資料庫在安全反欺詐、知識圖譜、機器學習等諸多領域有著重要的應用,但TitanDB團隊被DataStax收購之後,開源圖資料庫出現了斷層
  • 以史為鑑:從數字計算機到知識圖譜的這 60 多年
    引言「忘記過去的人註定要重蹈覆轍」—— George Santayana從某種程度上來說,我們可以認為知識圖譜實現了計算機科學早期的願景:創造智能化的系統,從而大規模集成知識和數據。本世紀初,研究者們提出了「知識圖譜」這一術語,谷歌自 2012 年起便大力推廣「知識圖譜」技術,讓它在學術界和工業界迅速流行了起來。
  • 騰訊AI 王者「絕悟」升級了
    但受到練習時間與精力限制,很少有人能精通所有英雄,但「絕悟」做到了。 那麼,王者再進化,將有多強? 但難點就在於,「絕悟」的不同英雄會共享一個模型參數,從零學會單個陣容易如反掌,但面對多英雄組合時就難如登天。對戰中,因為地圖龐大且信息不完備,不同的 10 個英雄組合有不同的策略規劃、技能應用、路徑探索及團隊協作方式,這將使決策難度幾何級增加。 同時不可忽略的是「災難性遺忘」問題,模型容易邊學邊忘,這也長期困擾著開發者。
  • Nature子刊重磅:騰訊 AI Lab 聯合研究成果 揭示男性脫髮的潛在...
    11月17日,騰訊公布了一項人工智慧助力藥物發現的新進展。通過騰訊自研的提升蛋白質結構預測精度的新方法,聯合研究團隊首次解析了II型5a還原酶(SRD5A2)的三維結構,揭示了治療脫髮和前列腺增生的藥物分子「非那雄胺」對於該酶的抑制機制,這將有助於深化研究相關疾病的病理學機制及藥物優化。
  • 解藥|多項新冠潛在藥物已啟動臨床試驗 老藥新用加速
    【財新網】(實習記者 張陽 記者 邸寧)新冠肺炎潛在藥物層出不窮,藥物選擇的科學思路是什麼?2月10日發表於Nature子刊的一篇論文探討了這一問題。作者盤點了其它抗病毒藥物治療新冠病毒「老藥新用」的可能性,提示了尋找新冠病毒潛在有效藥物的路徑。
  • 明略科技HAO圖譜Open API:開放企業級知識圖譜構建能力
    明略科技首席科學家、明略科學院院長吳信東在開發者日:開發 · 開源 · 社區主題論壇上正式宣布 HAO 圖譜依託國家新一代人工智慧開放創新平臺開放 Text2KG API 接口,賦能開發者和企業級用戶。負責 HAO 圖譜具體研發工作的是明略科學院知識工程實驗室,我們與實驗室主任張杰博士進行了交流,他向我們介紹了明略科技的 HAO 圖譜技術及應用落地。
  • 艾倫研究所艾倫·瓊斯將卸任,曾領導繪製最完整「人腦基因圖譜」
    艾倫研究所由微軟聯合創始人保羅·艾倫於2003年創立,艾倫·瓊斯自創立之初就加入並領導繪製出了迄今最完整的「人腦基因圖譜」,幫助科學家和醫學工作人員更好地理解各種精神疾病和大腦疾病,並研發出新的藥物和治療方法。近日,西雅圖艾倫研究所(Allen Institute)總裁兼CEO Allan Jones(艾倫·瓊斯)宣布他將於2021年卸任。