天天看點

WeGene:存儲、傳輸、計算巧實作,基因資料上雲不再難

wegene(微基因)是一家主打個人基因測序服務的公司,主要緻力于幫助使用者解讀基因的奧秘,遇見未知的自己。

我們現在主要的服務内容包括基于基因組資料的祖源分析、個性化的運動和減肥建議、營養基因組學、基因組醫學等方面的内容。未來,我們會跟合作夥伴一起把基因組資料推向每一個被基因所影響的角落。

解讀基因的秘密,讓自己更加了解自己,這是我們的初衷,也是我們的夢想!

先來簡單介紹一下個人基因組的知識。除了細胞核有基因組之外,線粒體上也會存在基因組,線粒體是為細胞提供能量的,每個人的線粒體都來自母系,y染色體會全部來自父系。這些基因資料全部測試的資料量大約為100g。但是我們通常會認為人與人之間的基因組差異會很小,如果隻把人與人之間具有差異的部分挑選出來進行檢測,我們的計算成本就會變得小很多。

WeGene:存儲、傳輸、計算巧實作,基因資料上雲不再難

通過基因組資料,我們可以做很多有趣的事情。比如,在東非把所有人的基因組進行計算,加上化石和遺迹的考察,我們可以知道我們的祖先最早出現的地點和時間,以及如何一步一步走到這片土地上的。下圖展示了人類的遷移路線。

WeGene:存儲、傳輸、計算巧實作,基因資料上雲不再難

除了上述祖源的檢測,我們還可以根據每個使用者的基因組并且基于現在的文獻和成果做更多的解讀。通過很多的檢測,我們發現很多與基因組有關的疾病并不單單是基因組可以決定的,基因組能決定的事情很少,但是幾乎所有的所謂疾病的風險除了遺傳病以外,基因都隻是其中的一個影響因素。

基因組資料不僅僅能夠為個人提供好處,很多基因組研究在中國人身上做的不夠好,最主要的原因是資料不夠。是以,我們希望通過網際網路的技術和手段來推動這方面的研究,比如尼古丁的研究、基因組和睡眠關系的研究。

下面是我們用到的阿裡雲服務,其中包括雲伺服器ecs、雲存儲oss、雲資料庫rds、api應用網關、批量計算等等。阿裡雲的“三大件”(ecs、oss、oss、rds)結合負載均衡、彈性伸縮以及其他的nosql資料庫等功能,讓我們能夠為使用者提供健壯的網站服務——無論是在通路量低峰期,還是在批量傳遞檢測報告給使用者或市場活動推廣時流量較高的情況下。

WeGene:存儲、傳輸、計算巧實作,基因資料上雲不再難

除了最基本的網站服務以外,由于基因分析需要海量的計算資源,wegene還與阿裡雲平台上提供生物資訊paas服務的北京聚道有限公司(genedock)進行了合作,在他們提供的計算平台上運作使用者基因資料的分析。

WeGene:存儲、傳輸、計算巧實作,基因資料上雲不再難

具體來講,使用者的生物樣本在實驗室進行實驗以後,所産生的實驗資料會直接被上傳進入oss中,并根據不同的計算任務需求被配置設定到wegene在ecs上自建的計算伺服器、genedock、批量計算等在内的計算環境中去進行分析。分析的結果會通過統一管理的api網關服務錄入資料庫,并最終在阿裡雲上呈現給全球的使用者。在這一過程中,阿裡雲實際幫助我們簡化了資料存儲、傳輸、計算方面的問題,具體情況如下:

rds:主要用于存儲預處理後的基因組資料、表型資料、網站資料,以存儲計算完成的結果資料為主

oss:用于存儲基因組原始資料和大型的計算結果(比如全基因組測序資料,每位使用者會産生約200gb了;晶片測序資料,每位使用者會産生約 200 mb 資料)

 genedock:存儲正在進行中的全基因組資料和晶片資料

阿裡雲mongodb:用于存儲一些資料格式多變的第三方表型資料等

本地存儲及oas:資料冷備

生命科學所有的資料都是在測序中心、實驗室中産生的,怎麼把這些資料傳輸到雲上是一個比較麻煩的事情。在上雲的過程中,我們主要會使用三種方式:

晶片資料:資料量比較小,實驗室用oss用戶端上傳oss

全基因組資料:資料量比較大,需通過genedock的專線上傳genedock的系統(位于oss上)。也有一些專門的壓縮和傳輸算法,盡可能利用資料的帶寬,同時實時壓縮和解壓

海外使用者基因組資料: 通過其他廠商提供的api直接擷取并存儲到rds中

ecs:在ecs上,我們利用一些計算資源排程自建了一些計算節點,用于處理正常的、計算資源相對較小但數量較多的分析任務,并會提供一些小規模實時計算服務,通過api網關進行管理和調用

genedock:用于并行處理計算資源要求較高的batch任務以及全基因組資料分析

批量計算:類似genedock的使用

盡管雲計算為基因分析工作提供了諸多便利,但是未來還将面臨下面這幾項大的挑戰。

當我們為每一個人提供基因組資料分析的時候,我們隻是根據已有的科研結果去一個一個的分析基因組資料。當積累了足夠多的資料之後,希望能夠從資料中發現新的東西。這一過程同樣需要海量的計算資源作為支撐——最終我們希望每擷取一份新的基因組資料時,我們都能夠更新現有的知識庫——這對流式計算、機器學習的要求非常之高。

為了能夠更好的查詢、分析和可視化基因組資料資料,我們需要一個高效的資料存儲和查詢系統。“genomics api”設想對全基因組資料實時查詢提供統一的接口服務,但大規模的基因組資料暫時還不能存儲在關系型(甚至是非關系型)資料庫中

——在這樣的情況下,如何能夠快速查詢某個基因組上的一小個片段便是一個重大挑戰。

在基因組測序的過程中,每一份基因組首先都會被斷裂成數十萬個片段并檢測,再被拼接起來成為完整的基因組資料。由于這一過程是np問題,我們無法直接通過算法進行拼接,而需要根據參考基因組資料進行比對拼接。是以,我們希望在整個過程中,引入更好的算法(如基于fpga的算法)、或使用更多的參考資料進行比對(會帶來更高的計算資源要求),這都對在雲上進行大規模資料的生産提出了問題。

希望随着雲計算與大資料技術的發展,這些問題都不将再是問題。