機器學習告訴你,新型冠狀病毒接下來將如何變異?

提起達爾文的生物進化論,在人們的普遍認知中,這是開創現代科學的重要理論之一。像地球上其他所有爲生存而掙扎的生物一樣,病毒也會進化或變異。
讓我們看看人類病毒的來源——蝙蝠病毒的RNA核苷酸序列片段:
AAAAT CAAA GCTT GTGTT GAA GAA GTTACAA CAACTCT GGAAG AAACTAAGTT
與一小段人類的新型冠狀病毒肺炎(Corona Virus Disease 2019,COVID-19)的RNA核苷酸序列:
AAAAT TAAG GCTT GCATT GAT GAG GTTACCA CAACACT GGAAG AAACTAAGTT
顯然,冠狀病毒已經改變了它的內部結構以適應新的宿主物種(更準確地說,大約20%的冠狀病毒內部結構都發生了突變),但仍然保持了足夠數量的一致,使它仍然忠於它的起源物種。
事實上,研究表明,COVID-19會不斷髮生變異,以提高其存活率。在與冠狀病毒的對抗中,我們不僅需要探究擊敗病毒的方法,更需要明白病毒是如何變異的,以及如何應對病毒變異。

這篇文章中將從以下幾個方面進行闡述:
①從表面上解釋RNA核苷酸序列是什麼
②使用K-Means創建基因組信息集羣
③使用PCA實現可視化集羣

什麼是基因組序列?
DNA是脫氧核酸的簡稱,其基本單位是脫氧核糖核苷酸(也叫脫氧核苷酸),是大多數生物的遺傳物質,在真核生物、原核生物、DNA病毒內都存在的一種核酸;RNA則是核糖核酸的簡稱,其基本單位是核糖核苷酸,是RNA病毒的遺傳物質。新型冠狀病毒的基因序列就是RNA.
基因組測序,通常被比作“解碼”,是分析取自樣本的脫氧核糖核酸(DNA)的過程。在每個正常細胞中有23對染色體,DNA的結構是這樣的:
DNA序列
DNA捲曲的雙螺旋結構可以使它展開成階梯狀,這個梯子是由成對的化學字母組成的,叫做鹼基。在DNA中有四種鹼基:腺嘌呤、胸腺嘧啶、鳥嘌呤和胞嘧啶。腺嘌呤只與胸腺嘧啶結合,鳥嘌呤只與胞嘧啶結合,這些鹼基分別用A、T、G和C表示。
這些鹼基形成了各種各樣的代碼,指導有機體如何構建蛋白質——這就是DNA如何控制病毒一舉一動的基礎。
DNA如何控制病毒
使用專門的設備,包括測序儀器和專門的標籤,可以顯示特定的DNA序列片段。由此獲得的信息將經過進一步的分析和比較,使研究人員能夠識別基因的變化,與疾病和表型的關係,並確定潛在的藥物靶標。
一長串的基因組序列A、T、G和C,代表了有機體對環境的反應,而生物體的突變又是通過改變DNA產生的,因此觀察基因組序列是分析冠狀病毒突變的有效手段,其中序列對齊法是常用的方法,主要通過將兩個或多個核酸序列或者蛋白質序列進行對比,並將其中相似的結構區域突出顯示。
序列對齊:
給定兩個DNA序列A和B,對齊的方式是將空格分別插入到A和B序列中,得到具有相同長度的對齊後的序列C和D;空格可以插入到任意的位置(包括兩端),但是相同位置不能同時爲空格,也即是不存在C[i]和D[i]同時爲空格的情況。然後爲對齊後的序列的每個位置打分,總分爲每個位置得分之和,具體的打分規則如下:
a、如果C[i] == D[i]且都不是空格,得3分;
b、如果C[i] != D[j]且都不是空格,得1分;
c、如果C[i] 或者D[i]是空格,得0分。
求給定原序列A和B的一個對齊方案,使得該對齊方案的總分最高。
例如,序列原序列A和B如下:
String strA = “GATC”;
String strB = “ATCG”;
則其中一個對齊方案如下:
GATC*
ATCG
該方案總得分score=2
0+3*3 = 9分。
因此,經常通過序列對齊方式來比較序列與已知(尤其是功能和結構已知的序列)之間的同源性,預測未知序列的功能。因此本文後續對於序列的分析主要是針對序列對齊後形成的指標特徵進行探索和分析。

數據的獲取

數據可以在Kaggle上找到,如下圖所示:
Kaggle
每一行代表蝙蝠病毒的一個突變。首先,花一分鐘來欣賞大自然是多麼不可思議——在幾周內,冠狀病毒已經產生了262個突變來增加存活率。

一些重要的列名解釋:

query acc.ver表示原始的病毒標識符。
subject acc.ver是病毒突變的標識符。
% identity表示序列中與原始病毒相同的百分比。
Alignment length表示序列中有多少項是相同的或對齊的。
mismatches表示突變項和原始項之間的不同項數。
bit score代表了一個衡量標準,衡量序列的對齊程度;分數越高,對齊程度越高。

每一列的統計度量如下所示(這些可以在Python中運用data.describe()語句被方便地調用):
統計度量
有趣的是,通過查看% identity列,我們可以看到一個突變與原始病毒的最小對齊比率約爲77.6%。然而巨大的標準偏差(7%的% identity)意味着原始病毒存在廣泛的變異範圍。在bit score中巨大標準偏差證實可以證實這一點——標準偏差大於平均值(即代表變異系統大於1,進一步說明了突變發生情況的多樣性)!
通過相關性熱力圖可以很好的呈現變量之間的相關性,圖形中每個單元表示一個特徵與另一個特徵的相關性。
相關熱力圖
我們不難發現,很多數據都是高度相關的,這是可以解釋的,因爲大多數的度量彼此存在一定的依賴性,因此導致變量之間存在高相關性,可以發現alignment length與bit score之間就具有高度相關性(0.94)。

使用K-Means來創建突變集羣

K-Means是一種聚類算法,是通過機器學習的方式在特徵空間中確定數據點相似羣組。我們運用K-Means的目標是找到突變的羣體,這樣我們就可以對突變的本質以及如何針對性的處理它們有深入的瞭解。
在此之前,我們首先需要確定集羣k的數量,雖然這就像在二維空間中繪製一個點一樣簡單,但在高維空間中是幾乎無法實現的(如果我們想要保留最多的信息)。若用“肘部法則”來選擇k會顯得過於主觀,且不準確,所以我們會用輪廓法來代替。
輪廓法是給不同取值k的集羣打分,來區分聚類的結果好壞程度(好的聚類:內密外疏,同一個聚類內部的樣本要足夠密集,不同聚類之間樣本要足夠疏遠)。Python中的sklearn庫將使K-Means和輪廓法的實現變得非常簡單。
輪廓法
輪廓法
通過對上圖進行分析,可以發現羣體數爲5時聚類效果最佳。現在,我們可以進一步確定羣體中心,這些點是每個羣體的中心,代表了不同羣體的突變樣本的共性特徵。
熱力圖
注:特徵已經被標準化,列與列之間無可比性
在此熱力圖中,行:代表不同的羣體,列:代表每個羣體的屬性。因爲在聚類之間需要對於特徵按比例進行縮放,以減少不同特徵尺度差異的影響,所以圖中的數值在數量(縮放值,非原始尺度下的值)上沒有任何意義,但是,我們可以通過比較每個列中的縮放值,這使得我們可以對每個突變羣體的特徵相對大小產生一個更直觀的感覺。通過對以上聚類結果的分析,可以讓科學家將更多精力聚焦在對不同突變羣體的特徵研究上,進而針對性的研究不同類型的疫苗,治療和預防也將變的更有目標性。
聚類的結果已經可以幫助我們解決很多方面的問題,但由於存在高維特徵及特徵之間相關性的存在,讓我們不能更好的去解讀聚類結果,因此,在下一節中,我們將使用PCA來實現聚類結果的可視化呈現。

利用PCA進行集羣可視化

主成分分析是一種降維方法。它選擇多維空間中的正交向量來表示座標軸,通過特徵的空間變換,可以有效降低特徵之間的相關性,進而通過貢獻度來保留最多的信息的特徵,實現降維目的。
同樣,我們可以通過Python的sklearn庫,PCA的執行可以被兩行代碼實現。首先,我們可以檢查被解釋的方差比(explained variance ratio),這是從原始數據集中保留的統計信息的百分比。在本例中,被解釋的方差比是0.9838548580740327,代表信息只有很少部分遺失!在此我們可以確信,無論我們從PCA得到什麼分析,數據都是具有很高的可信度。
每個新的特徵(主成分)都是其他幾個列的線性組合。通過熱力圖,我們可以直觀地瞭解每一特徵對於兩個成份(新的特徵)中的重要性。
熱力圖
通過以上圖中數值的分析,關鍵是要理解在成分1中出現高數值是什麼意思——在這種情況下,它的特點是有着更高的一致性,即更接近原始病毒;成分2的主要的特點是擁有更低的一致性,即突變遠離原始值,這也反映在bit score的較大差異上。
主成分分析
通過主成分將所有樣本映射到2維空間體系下,可以很明顯發現,病毒突變有5條主線,以下通過對這5條線的分析,可以讓我們獲取更多的信息。
可以發現,有四個病毒突變在第一主成分(X軸)的左邊,一個在右邊。第一主成分的特徵是alignment length具有很高的取值,這意味着第一個主成分的值越高,對應的alignment length就越長(越接近原始病毒)。因此,第一主成分的低值區與原始病毒的遺傳距離較遠,即大多數病毒集羣與原始病毒有很大不同。因此,試圖研製疫苗的科學家應該意識到,這種病毒會發生大量變異。第二主成分(Y軸)在同一羣體之間的差異性很小,在不同羣體之間明顯分爲3個區段,這就需要後續我們進一步分析,以便能夠更好的對於突變羣體進行深入瞭解。

結論

本文一方面通過使用K-Means聚類算法,能夠幫助我們從衆多突變樣本中快速識別冠狀病毒的五個主要典型突變羣體,另一方面用PCA分析方法在二維空間中實現這些羣體的可視化展現,通過展示結果可以很直觀的呈現冠狀病毒有很高的突變率(這可能就是它如此致命的原因),通過對於這些分析結果,對於研製冠狀病毒疫苗的科學家來說,可以利用羣體的共性特徵值結合領域專業知識來充分解讀每個羣體的特徵信息,以便有針性的、更好的指導疫苗的研製及預防工作。

(文章來源於:towards data science,作者:Andre Ye)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章