資安

解密阿里雲高效病原體基因檢測工具

1.背景介紹

病原體基因檢測,為各種嚴重感染的診斷提供了基礎。病原體檢測流程分成五個步驟:(1)採集病人的樣本,比方說靜脈血,痰液,肺泡灌洗液,或者腦脊髓液等。(2)對樣本進行培養,提取樣本中的核酸組織。(3)通過高通量基因測序儀,對核酸序列進行測序。高通量測序為了保證精度,會將很長的核苷酸序列,切成小的分片,分別進行測序,在讀取基因序列上,一般是50pb到200bp不等。(4)高通量測序之後,需要查詢相關的病原體標準序列,找到匹配的基因序列。(5)通過將這些小的片段進行分析,得到全部基因片段的組成成分(即檢測結果),從而為病人的疾病確診以及精準治療提供有力的支持。

image.png

圖1. 病原體基因檢測流程

對於生物分析檢測來說,通常情況下,一次病原體檢測,大約會生成5億左右的75bp的基因片段。過濾掉一些人的基因組織序列之後,還需要查詢1億左右的基因片段。通常情況下,會使用nBlast [1]工具來進行基因匹配,這部分在整個病原體檢測過程中,也是非常耗時的部分,大約需要2-3個小時。阿里雲AnalyticDB向量版提供了一個高效的基因檢索工具,大大提升了基因分析的性能,能夠在幾十分鐘內完成整個病原體的查詢檢測過程。

2.基因檢索應用

2.1 基因檢索功能

圖1展示了病原體基因檢索的界面。當前演示包含了12182個病毒的鹼基序列,我們將病毒切分成150bp的小片段(總共1590804個片段),轉化成向量之後,存儲到AnalyticDB中。在檢索框中,用戶可以輸入一段基因序列,到我們當前的系統中進行檢索。為了方便大家使用,我們挑了新冠病毒,艾滋病毒,埃博拉病毒和中東呼吸綜合症的基因序列來進行演示,用戶可以拷貝相關的序列,來檢測查詢的性能。

image.png

圖2. 核酸查詢演示

圖3用戶輸入了一段新型冠狀病毒的基因序列,可以看到排到前面的序列片段就是我們要找的新冠的病毒的序列。因為當前AnalyticDB提供高效的向量索引,系統會在毫秒級的時間內,返回相關的基因片段。

image.png

圖3.基因檢索結果

2.2 端到端的基因分析

我們模擬了人體的基因採樣,將新型冠病毒基因(塞爾維亞MT450872 [2],美國MT450873 [3])和中東呼吸症MERS基因(NC_019843.3 [10]),三株病毒混合在一起,打散成75bp的序列,當做測試集合。我們希望,通過當前病毒庫的檢索分析,能夠識別出當前測試集合中包含新型冠狀病毒和MERS病毒。當前系統通過匹配檢測,我們生成圖4。

image.png

圖4. 基因匹配結果

可以看到經過檢測,病毒庫檢索系統返回了三個基因組(NC_045512.2,NC_019843.3和NC_038294.1)。NC_045512.2(65%)是武漢海鮮市場的新型冠狀病毒的基因;NC_019843.3(20%)是MERS病毒的基因;而NC_038294.1(13%)是beta型英國冠狀病毒,經過查詢這個是MERS病毒的另外一個名字 [8],也屬於MERS病毒。因此,通過分析,當前混合測試集合中包含了新型冠狀病毒和MERS病毒。

2.3 應用架構總體設計

阿里雲基因檢索系統的總體架構如圖5所示,AnalyticDB負責整個應用的全部的結構化數據(比方說,基因序列的長度,基因的名稱,基因的種類,以及基因的詳細介紹,DNA或者RNA等)和基因序列產生的特徵向量的存儲和查詢。在查詢的時候,我們使用基因向量抽取模型,將基因轉化成向量,在AnalyticDB庫中進行粗排檢索。在向量匹配的結果集中,我們使用經典的Needleman-Wunsch [4]算法進行精排,返回最相似的基因序列。

image.png

圖5.基因檢索系統框架

3.基因訓練和查詢模型

3.1 基因查詢過程

基因模型的訓練已經在上一篇文章中 [5],進行了詳細的講解。通過訓練好的DNA K-Mer模型,我們可以得到每個k-mer的向量。給定一段12bp的基因序列(如圖6),我們在這段基因序列中抽取出5個8-mers。我們將這5個8-mers轉成對應的向量,求和歸一化之後,就是這段12bp的基因序列的最終的向量。當然,為了提升精度,我們也可以使用doc2vec [6]等學習模型來對整段基因片段進行轉化。

image.png

圖6.DNA序列轉向量

3.2 基因精度分析

我們訓練了兩個模型,全部病毒模型和21個病原體細菌模型(痤瘡丙酸桿菌,金黃色葡萄球菌,表皮葡萄球菌,溶血葡萄球菌,大腸埃希氏菌,鮑曼不動桿菌,結核分枝桿菌,肺炎鏈球菌,肺炎克雷伯氏菌,流感嗜血桿菌,副流感嗜血桿菌,嗜麥芽窄食單胞菌,銅綠假單胞菌,屎腸球菌,紋帶棒狀桿菌,人皰疹病毒4型(EB病毒),細環病毒,人腺病毒B組,黃麴黴,白色假絲酵母,耶氏肺孢子菌)。我們將一個基因,每隔150個bp,做一下切分。然後將150bp的小的分段,轉化成向量存在庫裡面,進行檢索。因此病毒數據集包括12182個病毒, 1590804個分段;21個細菌共275個基因,1521807個分段。

實驗1(見表1)系統隨機的在當前的基因庫裡面,取出75bp的小的片段。我們知道這75bp的基因片段是在哪個基因的哪個片段中提取的。我們將這75bp的基因段到庫裡面進行檢索,查找返回前N個結果集中,查看是否包含這75bp的基因段對應的基因片段。Top-n的精度(Precision(n)),用公式(1)進行計算。

image.png

其中,n表示查詢返回的列表的長度。u表示查詢的次數,在實驗中u取的是1000次。22222.png表示在第i次查詢中,序列si是否出現在Top-n的列表中,出現為1,不出現為0。如果n越小,精度越高,說明我們的方法在實際中非常有效。我們可以看到,針對兩個模型來說,top20的精度,都在99%以上。精度在0.99以上,對於實際檢驗基因片段包含物種基因是足夠了的。

表1.基因查詢精度檢測

3333.png

實驗2(見表2)系統隨機的在當前的基因庫裡面,取出75bp的小的片段。我們將這75bp的基因段進行了2%的隨機的突變(自然界中的基因突變的概率會更低,比方說人的30億個鹼基,新生兒會有30個基因發生突變。病毒RNA的突變概率會高一些,一般也都小於1%),然後到庫裡面進行檢索,查找返回前N個結果集中,查看是否包含這75bp的基因段對應的基因片段。基因突變之後,雖然查詢的精度有所下降,但是top20的精度也都達到了0.99。

表2.基因突變查詢精度檢測

313213123.png

實驗3(見表3)對基因檢索的速度進行了比較。我們下載了病毒序列,菌類的基因序列,以及部分植物基因序列 [7],總共9.7G。我們分別將相關數據,導入到AnalyticDB數據庫中和Blast庫中。我們跑了100次不同的查詢,對實驗結果取了平均。Blast需要3.22秒才能返回結果,我們算法精度在top30的情況下,保證精度在0.95的準確性下,測試端到端的查詢(包括查詢基因轉向量,向量粗排和Needleman-Wunsch算法的精排)只需要0.257s(提升了12.5倍)。

表3.檢索時間

44123.png

4.結尾

詳細的基因模型以及相關係統信息請加入我們的釘釘群,歡迎大家討論和使用。
image.png

[1] blast+ https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/
[2] https://www.ncbi.nlm.nih.gov/nuccore/MT450872
[3] https://www.ncbi.nlm.nih.gov/nuccore/MT450873
[4] Needleman, Saul B. & Wunsch, Christian D. (1970). "A general method applicable to the search for similarities in the amino acid sequence of two proteins". Journal of Molecular Biology. 48 (3): 443–53. doi:10.1016/0022-2836(70)90057-4. PMID 5420325.
[5][漢朝. "阿里雲提供高效基因序列檢索功能,助力冠狀病毒序列快速分析", https://developer.aliyun.com/article/753097?utm_content=g_1000111278

[6] Mikolov Tomas; et al. (2013). "Efficient Estimation of Word Representations in Vector Space". arXiv:1301.3781
[7] 基因數據集 https://www.ncbi.nlm.nih.gov/genome/viruses/variation/help/flu-help-center/ftp/
[8] de Groot RJ Baker SC Baric RS et al. Middle East respiratory syndrome coronavirus (MERS-CoV): announcement of the Coronavirus Study Group. J Virol. 2013; 87: 7790-7792
[9] https://www.ncbi.nlm.nih.gov/nuccore/NC_045512.2
[10] https://www.ncbi.nlm.nih.gov/nuccore/NC_019843.3
[11] https://www.ncbi.nlm.nih.gov/nuccore/NC_038294.1

往期文獻:

[1] 戴口罩也能刷門禁?疫情下AnalyticDB亮出社區管理的寶藏神器!https://developer.aliyun.com/article/745160
[2] 阿里雲提供高效基因序列檢索功能,助力冠狀病毒序列快速分析https://developer.aliyun.com/article/753097

圖片.gif

Leave a Reply

Your email address will not be published. Required fields are marked *