天天看點

阿裡雲高效基因序列檢索助力新冠肺炎病毒序列快速分析

AnalyticDB for MySQL是雲端托管的PB級高并發低延時資料倉庫,通過AnalyticDB for MySQL向量檢索功能建構基因檢索系統,支援毫秒級針對10億級别的向量資料進行查詢分析,更加快速、高效地為新冠肺炎病毒防控、研發治療藥物以及相關疫苗提供幫助。

1.背景資訊

2019年年底,爆發了一種名為新型冠狀病毒肺炎(簡稱新冠肺炎)的疫情。在新冠肺炎流行的兩個多月中,中國造成了3300多人死亡,8萬2千多人感染。随着疫情的進一步蔓延,目前已經橫跨了109個國家,造成了80多萬人感染,4萬多人失去了生命。到目前為止,疫情使得50多個國家停擺,全世界範圍内造成了數千億美元的經濟損失。在疫情防治期間,阿裡雲提供了高效基因序列檢索技術,助力新冠肺炎病毒序列分析。

2.基因序列檢索技術應用範圍和現狀

對于當下疫情,基因序列檢索技術主要應用于以下場景:

  • 用于新冠肺炎的溯源和分析,幫助疫情防控找到病毒宿主,做好有效防範。

通過基因序列檢索技術,發現蝙蝠和穿山甲身上的冠狀病毒RNA序列比對度高達96%和99.7%,可以推斷蝙蝠和穿山甲很可能是新冠肺炎的宿主。

  • 用于分析新冠肺炎病毒的複制和傳播過程,為研發治療藥物和疫苗提供幫助。

通過基因序列檢索技術對基因序列按功能區域劃分,了解各個子產品的功能,進而更好地分析出病毒的複制和傳播過程,進而找到關鍵節點,為研發治療藥物和疫苗提供幫助。

  • 用于檢索到與冠狀病毒相似的病毒基因序列。

基因序列檢索技術也可以檢索與新冠肺炎病毒相似的病毒基因序列,例如SARS、MERS等病毒,進而借鑒相關藥物靶點設計機制,更快、更高效地研發檢測試劑盒、疫苗以及相關的治療藥物。

基于當下疫情的快速蔓延,目前的基因比對算法太慢,迫切需要高效比對算法進行基因序列檢索。阿裡雲AnalyticDB for MySQL團隊将基因序列片段轉化成對應的1024維特征向量,将兩個基因片段的比對問題,轉換成了兩個向量間的距離計算問題,進而大大降低了計算開銷,實作毫秒級傳回相關基因片段,完成基因片段的首次篩選。然後,使用基因相似計算BLAST算法,完成基因相似度的精确排查,進而高效率完成基因序列的比對計算。比對算法從原來O(M+N)的複雜度降低到O(1)。同時,阿裡雲AnalyticDB for MySQL提供強大的機器學習分析工具,通過基因轉向量技術,将局部的和疾病相關的關鍵靶點基因片段轉成特征向量,用于基因藥物的研發,大大加速了基因分析過程。

3. AnalyticDB for MySQL基因檢索系統

新冠肺炎病毒的RNA序列可以用一串核酸序列(又稱堿基序列)表示,RNA序列含有四種核苷酸,分别用A、C、G和T表示,分别代表腺嘌呤、胞嘧啶、鳥嘌呤、胸腺嘧啶。每個字母代表一種堿基,無間隔排列在一起。每一個物種的RNA序列均不相同但又有規律,基因檢索系統可以通過輸入一串病毒的基因片段,檢索相似的基因,用來對病毒的RNA序列進行分析。

為友善示範AnalyticDB for MySQL基因片段檢索方法,我們從GenBank下載下傳了大量病毒的RNA片段,并将GenBank内部關于病毒的論文以及Google Scholar中相關病毒的論文導入AnalyticDB for MySQL基因檢索資料庫中。

AnalyticDB for MySQL基因檢索的示範界面如下圖所示,将新冠肺炎病毒的序列(COVID-19)上傳到AnalyticDB for MySQL基因檢索系統中,AnalyticDB for MySQL基因檢索系統隻需幾毫秒即可檢索到相似的基因片段(目前示例系統隻傳回比對度超過0.8的基因片段)。從傳回的基因片段得出穿山甲攜帶的新冠肺炎病毒(GD/P1L)、蝙蝠攜帶的新冠肺炎病毒(RaTG13)以及SARS和MARS病毒,其中GD/P1L的序列比對度最高為0.974,由此推斷出新冠肺炎病毒很可能是通過穿山甲傳染到人的。

阿裡雲高效基因序列檢索助力新冠肺炎病毒序列快速分析

圖1:AnalyticDB for MySQL基因檢索示範界面

如果RNA片段非常相似,說明這兩個RNA可能有相似的蛋白質表達和結構。通過基因檢索工具,可以看到SARS和MARS與新冠肺炎病毒的比對度為0.8以上,說明可以将一些SARS或者MARS的研究成果應用到新冠肺炎病毒上。系統提取了每種病毒的論文,通過文本分類算法,将論文劃分為檢測類、疫苗類和藥物類,例如下圖為SARS的七種檢測方法、四種疫苗接種方法和10中治療藥物。其中,對SARS有效的熒光定量PCR檢測,目前正應用于新冠肺炎病毒的檢測;基因疫苗的方法以及誘導體内免疫疫苗的方法,也正在展開研究;治療藥物中瑞德西韋以及相關的幹擾素也都用于新冠肺炎病毒的治療上。

阿裡雲高效基因序列檢索助力新冠肺炎病毒序列快速分析

圖2:SARS病毒相關論文檢索分類結果

單擊上圖幹擾素連結可以檢視相關論文,目前系統調用了自動翻譯軟體,抽取中文版檔案名關鍵詞作為檔案名,友善使用者閱讀。

阿裡雲高效基因序列檢索助力新冠肺炎病毒序列快速分析

圖3:論文檢視效果

4.實作架構

阿裡雲高效基因序列檢索助力新冠肺炎病毒序列快速分析

圖4:基因檢索實作架構

AnalyticDB for MySQL基因檢索系統中,AnalyticDB for MySQL負責存儲和查詢所有結構化資料(例如基因序列的長度,長度包含基因的論文名稱、基因種類、DNA或者RNA等)和基因序列産生的特征向量。查詢資料時,通過基因向量抽取模型将基因轉化成向量,在AnalyticDB for MySQL向量資料庫中進行粗排檢索,然後在傳回的向量比對結果集中使用經典的BLAST算法進行精确檢索,傳回最相似的基因序列。

AnalyticDB for MySQL基因檢索系統的核心是基因向量抽取模型,該子產品可以将核苷酸序列轉化成向量。目前AnalyticDB for MySQL抽取了各種病毒的RNA全部序列樣本進行訓練,可以非常友善地對病毒的RNA進行相似度計算。同時,基因向量抽取模型也可以擴充應用于其他物種基因檢索。

5.基因向量抽取算法

目前詞向量技術已經非常成熟,被廣泛應用于機器翻譯、閱讀了解、語義分析等相關領域,并取得了巨大成功。詞向量化采用了分布式語義的方法表示一個詞的含義,一個詞的含義就是這個詞所處的上下文語境。例如高中英語中的完形填空題,一篇短文空出10個地方,學生根據空缺詞的上下文語境選擇合适的詞。也就是說上下文語境能夠準确地表達這個詞,如果某位同學選擇了正确的選詞,表示該同學了解了空缺詞的含義。是以,通過上下文詞的關系,采用詞向量算法,可以為每個詞生成一個向量,通過計算兩個詞向量之間的相似度,得到兩個詞的相似度。

同樣的道理,基因序列的排列具有一定的規律,并且每一部分基因序列所表達的功能和含義不同。可以将很長的基因序列劃分成小的單元片段(也就是詞)進行分析,并且這些詞也有上下文語境,這些詞互相連接配接、互相作用共同完成相對應的功能,形成合理的表達。是以,生物科學家們采用詞向量算法對基因序列單元進行向量化,兩個基因單元相似度很高,說明需要這兩個基因單元共同來表達和完成相應的功能。

總體而言,AnalyticDB for MySQL基因向量抽取算法分為三步:

(1)在氨基酸序列中定義詞。生物資訊學中用K-mers來分析氨基酸序列,K-mer是指将核酸序列分成包含K個堿基的字元串,即從一段連續的核酸序列中疊代選取長度為K個堿基的序列,若核酸序列長度為L,K-mer長度為K,那麼可以得到L-K+1個K-mers。例如下圖所示,假設某序列長度為12,設定選取的k-mer長度為8,則得到(12-8+1=5)5個5-mers。這些k-mer,就是氨基酸序列中的詞。

阿裡雲高效基因序列檢索助力新冠肺炎病毒序列快速分析

圖5:8-mers核酸序列示意圖

(2)找到氨基酸序列的上下文語境,将基因序列中的詞轉換成1024維向量。對于詞向量算法而言,另一個重要的問題就是上下文的語境。AnalyticDB for MySQL基因向量抽取算法在氨基酸片段中選擇一個長度為L的視窗,該視窗内的氨基酸片段可認定為在同一語境内。例如CTGGATGA是一段核酸序列,選取了長度為10的視窗,AnalyticDB for MySQL基因向量抽取算法将CTGGATGA轉換成5個5-mers即{AACTG, ACTGG, CTGGA, GGATG, GATGA}。對于其中一個5-mer{CTGGA}而言,另外四個{AACTG, ACTGG, GGATG, GATGA}5-mers就是目前5-mer {CTGGA}的上下文語境。AnalyticDB for MySQL基因向量抽取算法套用詞向量空間訓練模型,對已有生物基因的K-mers進行訓練,便可将一個K-mer(基因序列中的一個詞)轉換成1024維向量。

(3)類似于詞向量模型,K-mer向量模型也擁有和詞向量模型相似的數理計算性質。公式一說明核苷酸序列ACGAT的向量減去GAT序列的向量和AC序列的向量距離非常接近。公式二說明核苷酸序列AC的向量加上ATC序列的向量和ACATC序列的向量距離也很接近。是以,根據這些數理特征,計算一個長氨基酸序列向量時,可以将這個序列中每一段的K-mer序列進行累加,最後進行歸一化就能得到整個氨基酸序列的向量。同時,為提升精度,可以将基因片段看作一個文本,使用doc2vec4将整個序列轉換成向量進行計算。為進一步驗證算法性能,AnalyticDB for MySQL基因向量抽取算法計算了常用于基因檢索庫中的BLAST算法序列與基因轉向量l2距離序列的相似度,兩個序列的斯皮爾曼等級相關系數是0.839。以上得出結論,将DNA序列轉換成向量用于相似基因片段的初次篩選,是有效且可行的。

6.向量檢索功能概述

一般包含向量檢索的應用系統中,開發者通常會使用向量檢索引擎(例如Faiss)存儲向量資料,然後使用關系型資料庫存儲結構化資料。是以,查詢時也需要交替查詢兩個系統,明顯額外增加了開發人員的工作量,資料查詢性能也不是最優。

AnalyticDB for MySQL是雲端托管的PB級高并發低延時資料倉庫,可以毫秒級針對10億級别的向量資料進行查詢,100毫秒級别的響應時間。AnalyticDB for MySQL全面相容MySQL協定以及SQL:2003文法标準,其向量檢索功能支援對圖像、文本推薦、聲紋、核苷酸序列等相似性進行查詢和分析,目前在多個城市的安防項目中已大規模部署了AnalyticDB for MySQL。

AnalyticDB for MySQL支援結構化和非結構化資料的近似檢索和分析,通過SQL接口即可快速搭建基因檢索或者基因+結構化資料混合檢索等系統。在混合檢索場景中AnalyticDB for MySQL的優化器會根據資料的分布和查詢條件選擇最優執行計劃,在保證資料召回率的同時,得到最優的性能。例如,通過以下一條SQL即可檢索RNA核酸序列。

-- 查找RNA和送出的序列向量相近的基因序列。
select  title, # 文章名
        length, # 基因長度
        type, # mRNA或DNA等
        l2_distance(feature, array[-0.017,-0.032,...]::real[]) as distance # 向量距離 
from demo.paper a, demo.dna_feature b
where a.id = b.id
order by distance; # 用向量相似度排序
           

上述SQL中表demo.paper用于存儲上傳的每篇文章的基本資訊,demo.dna_feature存儲各個物種的基因序列對應的向量。通過基因轉向量模型,将要檢索的基因轉成向量[-0.017,-0.032,...],然後在AnalyticDB for MySQL資料庫中進行檢索。

目前系統也支援結構化資訊+非結構化資訊(核苷酸序列)的混合檢索,例如查找和冠狀病毒相關的類似基因片段時,隻需要在SQL中增加where title like'%COVID-19%'即可。

本文參考的相關文獻,感興趣的讀者可通路

這裡

或掃描下方二維碼了解詳情。

阿裡雲高效基因序列檢索助力新冠肺炎病毒序列快速分析

作者:李倩

阿裡雲雲原生資料倉庫AnalyticDB産品經理

阿裡雲雲原生資料倉庫AnalyticDB産品經理,見證了AnalyticDB從初創到至今的壯大發展,參與了所有重大功能設計。

我們是阿裡雲智能全球技術服務-SRE團隊,我們緻力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基于雲建構更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運作更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿裡雲SRE技術學院釘釘圈子,和更多雲上人交流關于雲平台的那些事。

阿裡雲高效基因序列檢索助力新冠肺炎病毒序列快速分析