天天看點

基于 MaxCompute 的極速的基因測序分析

當然,由于受目前測序技術的限制,我們并不能一次性測得一個完整的 3gb 字元串,而是無數個 150bp 左右長度的小碎片。把這無數個小碎片重新組合還原成 3gb 的長字元串的過程,叫全基因組組裝。人類基因組計劃幹的就是這個組裝拼圖的事情,到了 2003 年,基本上算是拼完了。于是就有了一個标準的 3gb 人類字元串,業界稱其為『人類基因組參考序列』,也常被簡稱為『參考序列』。

基因測序分析,就是檢測每個個體身上的這 3gb 字元串,然後再跟标準的字元串(參考序列)做比對,來看是不是哪裡發生了變異,是否有已知的遺傳疾病風險。

現在随着基因測序技術的成熟,成本在飛速下降,所謂『舊時王謝堂前燕,飛入尋常百姓家』簡直就是指日可待的事情。

基于 MaxCompute 的極速的基因測序分析

于是越來越多的基因資料需要計算分析。

測序出來的資料是一大堆長度 150bp 的小碎片,但由于已經有了完整的人類參考序列的拼圖,那麼在這個拼圖上尋找位置要比還原拼圖的過程容易很多。多年來,從輸入碎片資料比對到标準的 3gb 參考序列,再到變異的檢測,形成了如 bwa、samtools/picard、gatk 等為單機運作優化良好的業界公認軟體。

将這些軟體組合使用起來可以形成一個基因組資料分析的流程。華大基因基于阿裡雲 ecs 的 bgi online 平台、七橋在 amazon 和 google 雲上架構的 igor 分析平台,都有這樣的業界金标準流程(下圖為七橋,1.7g 左右的輸入資料跑了 1 小時 48 分)。

基于 MaxCompute 的極速的基因測序分析

但是上面的分析隻是外顯子測序分析(wes),所謂外顯子就是那些會直接影響我們外在性狀和健康與否的序列,它的長度隻占了全基因組總長的 1%。是以需要測序的資料量比全基因組測序分析(wgs)少得多。使用 wes 的原因和意義,一方面是因為我們對這 3gb 的人類基因組所蘊含的全面資訊所知甚少,這 1% 的序列是我們目前能夠很有效進行解讀的位點,同時,也是由于它直接影響着我們的性狀和健康,是以在很多疾病的研究中,通常隻檢測和分析這些位點和區域;另一方面也是因為全基因組測序目前成本相對較高,資料量巨大,單機計算時間基本要幾天。

來看基因資料的幾個重要表達。

測序出來的原始輸入資料 fastq 格式(截取了兩個 record),原本就是四行一個 record 的文本:

測序産生的中間及最終結果的 vcf 格式(截取兩個 record),也是一個多行表頭,然後每行一個資料 record 的形式。

用表來表達描述完全沒問題。當然,pairend 的 fastq 總是成對出現,那麼就編排成 8 列的表就好了。vcf 格式的多行表頭也要稍微處理一下,不過這都不是事兒。

這塊涉及到生物學的專業知識,要描述清楚比較困難。基本的想法,是将 3gb 标準資料切成若幹份,然後分布式執行每一份的計算。理論上,切割肯定會對計算的精度帶來影響。但是影響多大要試過才知道。實踐中,也有些辦法來彌補這些影響:比如适當擴大 reference 的 interval,或者通過資料重疊來緩解。

簡言之,跟單機計算結果對比,一緻率 98.8%,這個數字可以接受。

如果資料如何在分布式系統裡流動都想得很清楚的話,那麼最大的障礙其實已經不在,剩下的就都是工程問題。

maxcompute 支援 streaming 作業,允許使用者使用任何語言開發 mr 作業,開啟隔離環境之後甚至可以用在公共雲環境。用 streaming 作業,可以非常友善的将 bwa、samtools、gatk 內建在一個 mr 作業當中:

基于 MaxCompute 的極速的基因測序分析

這個作業,運作時間不到 3 個小時。

或許很快,癌症患者可以當天拿到靶向藥物是否有療效的根據;新生病兒的早期診斷當天就可以排除是否遺傳疾病;基因測序分析就像今天驗血一樣成為普通人司空見慣的體檢手段。

或許将來,maxcompute 可以更加發揮計算的能力,輔助挖掘 dna 上目前 99% 還未知的領域。

我們期待這一天早些到來。

歡迎加入“數加·maxcompute購買咨詢”釘釘群(群号: 11782920)進行咨詢,群二維碼如下:

基于 MaxCompute 的極速的基因測序分析

繼續閱讀