本發(fā)明涉及生物和計算機(jī)領(lǐng)域,特別涉及通過大數(shù)據(jù)技術(shù)對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的方法和裝置。
背景技術(shù):
基于高通量測序數(shù)據(jù)尋找和致病基因、癌癥治療、個性化用藥相關(guān)的染色體突變位點為臨床應(yīng)用提供了不可估量的前景。由于測序技術(shù)的不斷進(jìn)步,獲取到的數(shù)據(jù)越來越多,如何快速地處理不斷增加的高通量測序數(shù)據(jù)已成為亟待解決的問題。
在獲取到高通量測序數(shù)據(jù)后,需要對原始數(shù)據(jù)進(jìn)行過濾,將低質(zhì)量的數(shù)據(jù)過濾掉,保留高質(zhì)量的數(shù)據(jù)進(jìn)行下一步處理。目前常用的過濾軟件Trime對1.1G X 2的高通量測序數(shù)據(jù)進(jìn)行雙端過濾需要九分鐘以上,隨著數(shù)據(jù)的不斷增大,質(zhì)量過濾需要的時間也越來越長。如何縮短質(zhì)量過濾消耗的時間,讓高質(zhì)量的數(shù)據(jù)盡快地進(jìn)入下游的分析環(huán)節(jié),從而縮短科研人員、患者等待分析結(jié)果的時間,已成為亟待解決的問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明基于分布式計算框架提供了一種對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的方法和裝置,能夠?qū)⒌唾|(zhì)量的數(shù)據(jù)過濾掉,與以往的過濾方法相比,大大提升了處理速度。
本發(fā)明的實施例提供了一種對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的方法,所述方法包括:
根據(jù)所述高通量測序數(shù)據(jù)為并行計算做準(zhǔn)備;
通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
優(yōu)選地,所述根據(jù)所述高通量測序數(shù)據(jù)為并行計算做準(zhǔn)備包括:
根據(jù)所述高通量測序數(shù)據(jù)中的質(zhì)量數(shù)據(jù)確定質(zhì)量轉(zhuǎn)換方式;
對已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)進(jìn)行切分;
生成對切分后的數(shù)據(jù)進(jìn)行并行計算的執(zhí)行實體。
優(yōu)選地,所述對已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)進(jìn)行切分包括:
將包含已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)的第一文件和第二文件分別轉(zhuǎn)換為各自對應(yīng)的第一RDD和第二RDD;
將第一RDD和第二RDD分別切分為各自對應(yīng)的第一partition組和第二partition組;
根據(jù)第一文件和第二文件中對應(yīng)的數(shù)據(jù)將第一RDD和第二RDD合并為第三RDD;
將第三RDD切分為第三partition組。
優(yōu)選地,所述生成對切分后的數(shù)據(jù)進(jìn)行并行計算的執(zhí)行實體為:生成對第三partition組進(jìn)行并行計算的執(zhí)行實體task。
優(yōu)選地,其特征在于,所述通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)包括:
根據(jù)預(yù)定質(zhì)量值閾值和質(zhì)量值轉(zhuǎn)換方式通過執(zhí)行實體對所述高通量測序數(shù)據(jù)并行地進(jìn)行過濾;
根據(jù)預(yù)定序列長度閾值通過執(zhí)行實體對保留下來的高通量測序數(shù)據(jù)并行地進(jìn)行過濾。
優(yōu)選地,所述根據(jù)預(yù)定質(zhì)量值閾值、所述質(zhì)量值轉(zhuǎn)換方式對所述高通量測序數(shù)據(jù)進(jìn)行過濾包括:
如果所述高通量測序數(shù)據(jù)某一記錄中的質(zhì)量行中的某一位置上的質(zhì)量值小于預(yù)定質(zhì)量值閾值,則通過執(zhí)行實體并行地過濾掉所述質(zhì)量行該位置及以后的數(shù)據(jù),以及同一記錄中的序列行中的對應(yīng)位置及以后的數(shù)據(jù)。
優(yōu)選地,所述根據(jù)預(yù)定序列長度閾值對保留下來的高通量測序數(shù)據(jù)進(jìn)行過濾包括:
在保留下來的高通量測序數(shù)據(jù)中,如果第一文件和第二文件相對應(yīng)的兩個記錄中有任意一個記錄中的序列行長度小于預(yù)定長度閾值,則通過執(zhí)行實體并行地過濾掉第一文件和第二文件中相對應(yīng)的這兩個記錄。
另一方面,本發(fā)明的實施例還提供了一種對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的裝置,所述裝置包括:
并行準(zhǔn)備模塊,用于根據(jù)所述高通量測序數(shù)據(jù)為并行計算做準(zhǔn)備;
質(zhì)量過濾模塊,用于通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
優(yōu)選地,所述并行準(zhǔn)備模塊包括:
質(zhì)量轉(zhuǎn)換方式確定單元:用于根據(jù)所述高通量測序數(shù)據(jù)中的質(zhì)量數(shù)據(jù)確定質(zhì)量轉(zhuǎn)換方式;
數(shù)據(jù)切分單元:用于對已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)進(jìn)行切分;
執(zhí)行實體生成單元:用于生成對切分后的數(shù)據(jù)進(jìn)行并行計算的執(zhí)行實體。
優(yōu)選地,所述數(shù)據(jù)切分單元具體用于:
將包含已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)的第一文件和第二文件分別轉(zhuǎn)換為各自對應(yīng)的第一RDD和第二RDD;
將第一RDD和第二RDD分別切分為各自對應(yīng)的第一partition組和第二partition組;
根據(jù)第一文件和第二文件中對應(yīng)的數(shù)據(jù)將第一RDD和第二RDD合并為第三RDD;
將第三RDD切分為第三partition組。
優(yōu)選地,所述執(zhí)行實體生成單元具體用于:生成對第三partition組進(jìn)行并行計算的執(zhí)行實體task。
優(yōu)選地,所述質(zhì)量過濾模塊具體用于:
根據(jù)預(yù)定質(zhì)量值閾值和質(zhì)量值轉(zhuǎn)換方式通過執(zhí)行實體對所述高通量測序數(shù)據(jù)并行地進(jìn)行過濾;
根據(jù)預(yù)定序列長度閾值通過執(zhí)行實體對保留下來的高通量測序數(shù)據(jù)并行地進(jìn)行過濾。
優(yōu)選地,所述質(zhì)量過濾模塊用于根據(jù)預(yù)定質(zhì)量值閾值和質(zhì)量值轉(zhuǎn)換方式通過執(zhí)行實體對所述高通量測序數(shù)據(jù)并行地進(jìn)行過濾包括:
如果所述高通量測序數(shù)據(jù)某一記錄中的質(zhì)量行中的某一位置上的質(zhì)量值小于預(yù)定質(zhì)量值閾值,則通過執(zhí)行實體并行地過濾掉所述質(zhì)量行該位置及以后的數(shù)據(jù),以及同一記錄中的序列行中的對應(yīng)位置及以后的數(shù)據(jù)。
優(yōu)選地,所述質(zhì)量過濾模塊用于根據(jù)預(yù)定質(zhì)量值閾值和質(zhì)量值轉(zhuǎn)換方式通過執(zhí)行實體對所述高通量測序數(shù)據(jù)并行地進(jìn)行過濾包括:
在保留下來的高通量測序數(shù)據(jù)中,如果第一文件和第二文件相對應(yīng)的兩個記錄中有任意一個記錄中的序列行長度小于預(yù)定長度閾值,則通過執(zhí)行實體并行地過濾掉第一文件和第二文件中相對應(yīng)的這兩個記錄。
本發(fā)明提供的技術(shù)方案采用大數(shù)據(jù)處理技術(shù)Spark集群開發(fā)了用于對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的軟件工具Sfastq_filter,極大地提高了對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的速度:Sfastq_filter在12核18G的配置環(huán)境下雙端過濾1.1GX2的數(shù)據(jù),只需要三分鐘,與傳統(tǒng)的Trime軟件相比處理速度快兩倍以上。如果機(jī)器配置更高,數(shù)據(jù)量更大,那么對比效果也會更加明顯。
附圖說明
圖1為本發(fā)明實施例一提供的對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的方法的示意圖;
圖2為本發(fā)明實施例二提供的對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的方法的示意圖;
圖3為本發(fā)明實施例三提供的對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的方法的示意圖;
圖4為本發(fā)明實施例四至六提供的對高通量測序數(shù)據(jù)進(jìn)行質(zhì)量過濾的裝置的示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,以下將參照本發(fā)明實施例中的附圖,通過實施方式清楚、完整地描述本發(fā)明的技術(shù)方案,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。
在本發(fā)明的實施例中,相關(guān)名詞解釋如下:
高通量測序數(shù)據(jù):用高通量測序方法獲得的數(shù)據(jù);
高通量測序:能夠一次并行對幾十萬到幾百萬條DNA片段進(jìn)行序列測定的測序方法;
第一閾值:在本發(fā)明的實施例中為58,在實際應(yīng)用中可以根據(jù)具體情況取適當(dāng)?shù)闹担?/p>
第二閾值:在本發(fā)明的實施例中為76,在實際應(yīng)用中可以根據(jù)具體情況取適當(dāng)?shù)闹担?/p>
第一堿基質(zhì)量值轉(zhuǎn)換方式:將質(zhì)量行中每一位置上的質(zhì)量數(shù)據(jù)(即ASCII碼字符的ASCII碼值)減去第一閾值,得到對應(yīng)堿基的質(zhì)量值;
第二堿基質(zhì)量值轉(zhuǎn)換方式:將質(zhì)量行中每一位置上的質(zhì)量數(shù)據(jù)(即ASCII碼字符的ASCII碼值)減去第二閾值,得到對應(yīng)堿基的質(zhì)量值。
第一文件、第二文件:作為Sfastq_filter軟件的輸入文件成對出現(xiàn)的高通量測序數(shù)據(jù)文件;其中第一文件和第二文件中的記錄是一一對應(yīng)的。
質(zhì)量達(dá)標(biāo):如果第一文件和第二文件中一一對應(yīng)的兩個記錄中的質(zhì)量行某一位置及該位置以前的質(zhì)量數(shù)據(jù)的質(zhì)量值均大于等于預(yù)定質(zhì)量值閾值,且這兩個一一對應(yīng)的記錄中的序列行的堿基數(shù)均大于等于預(yù)定序列長度閾值,那么滿足上述條件的高通量測序數(shù)據(jù)的記錄稱為質(zhì)量達(dá)標(biāo)。
實施例一
請參閱圖1,在本發(fā)明的第一個實施例中,在根據(jù)測序后得到的高通量測序數(shù)據(jù)為并行計算做好準(zhǔn)備后,對數(shù)據(jù)進(jìn)行并行計算,過濾掉其中低質(zhì)量的數(shù)據(jù)。
S101、根據(jù)高通量測序數(shù)據(jù)為并行計算做準(zhǔn)備。
在包含高通量測序數(shù)據(jù)的FastQ文件中,每一個記錄包括四行,分別為:
以“@”開頭后面附加測序介紹信息的標(biāo)識行;
由A、T、G、C四種堿基組成的序列行(測序儀無法識別的堿基用N表示);
“+”行(或者“+”后面附帶標(biāo)識行中@后面的內(nèi)容,但該內(nèi)容一般被省略);
由ASCII碼字符組成的質(zhì)量行(質(zhì)量行和序列行長度相等且質(zhì)量行中的ASCII碼字符與序列行中的堿基一一對應(yīng),質(zhì)量行中每一位置的質(zhì)量數(shù)據(jù)為該位置堿基質(zhì)量值的ASCII碼字符表示方式)。
用于Sfastq_filter軟件的輸入文件是成對出現(xiàn)的,包括第一文件和第二文件兩個FastQ文件,其中第一文件和第二文件中的記錄是一一對應(yīng)的。將包含原始高通量測序數(shù)據(jù)的第一文件和第二文件切分為多個數(shù)據(jù)塊,為并行計算做準(zhǔn)備。
S102、通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
根據(jù)預(yù)定閾值對準(zhǔn)備好的數(shù)據(jù)進(jìn)行過濾,去掉其中低質(zhì)量的數(shù)據(jù)。預(yù)定閾值包括預(yù)定質(zhì)量值閾值和預(yù)定序列長度閾值。
根據(jù)預(yù)定質(zhì)量值閾值同時過濾第一文件和第二文件中一一對應(yīng)的兩個記錄。
在經(jīng)過預(yù)定質(zhì)量值閾值過濾后保留下來的數(shù)據(jù)中,根據(jù)預(yù)定序列長度閾值同時過濾第一文件和第二文件中一一對應(yīng)的兩個記錄。
將經(jīng)過預(yù)定質(zhì)量值閾值和預(yù)定序列長度閾值過濾后保留下來的數(shù)據(jù)根據(jù)其原始數(shù)據(jù)來源分別輸出到第一文件和第二文件各自對應(yīng)的過濾結(jié)果文件中。
實施例二
請參閱圖2,在本發(fā)明的第二個實施例中,使用Hadoop并行計算框架對高通量測序數(shù)據(jù)進(jìn)行并行計算,從而過濾掉低質(zhì)量的數(shù)據(jù)。
在本實施例中,相關(guān)名詞解釋如下:
Hadoop:由Apache基金會所開發(fā)的分布式并行計算框架。
HDFS(Hadoop Distributed File System):由Hadoop實現(xiàn)的一個分布式文件系統(tǒng)。
S201、根據(jù)所述高通量測序數(shù)據(jù)中的堿基質(zhì)量數(shù)據(jù)確定堿基質(zhì)量值轉(zhuǎn)換方式。
輸入包含原始高通量測序數(shù)據(jù)的FastQ文件。用于Sfastq_filter軟件的輸入文件是成對出現(xiàn)的,包括第一文件和第二文件兩個FastQ文件,其中第一文件和第二文件中的記錄是一一對應(yīng)的。根據(jù)讀入的FastQ文件質(zhì)量行中的堿基質(zhì)量數(shù)據(jù)(即該位置堿基質(zhì)量值的ASCII碼字符表示方式)確定本文件對應(yīng)的堿基質(zhì)量值轉(zhuǎn)換方式:
如果讀取到大于第一閾值且小于等于第二閾值的堿基質(zhì)量數(shù)據(jù),則忽略此值,繼續(xù)讀入下一位置的堿基質(zhì)量值;
如果讀取到小于等于第一閾值的堿基質(zhì)量數(shù)據(jù),則確定本文件對應(yīng)第一堿基質(zhì)量值轉(zhuǎn)換方式,選擇堿基質(zhì)量值轉(zhuǎn)換方式的過程結(jié)束;
如果讀取到大于第二閾值的堿基質(zhì)量數(shù)據(jù),則確定本文件對應(yīng)第二堿基質(zhì)量值轉(zhuǎn)換方式,選擇堿基質(zhì)量值轉(zhuǎn)換方式的過程結(jié)束。
S202、對已確定堿基質(zhì)量值轉(zhuǎn)換方式的高通量測序數(shù)據(jù)進(jìn)行切分。
HDFS將輸入的FastQ文件根據(jù)一定的規(guī)則切分成小數(shù)據(jù)塊并保存。切分規(guī)則如下:例如輸入文件為3G,在Hadoop中將一個數(shù)據(jù)塊的大小設(shè)置為128M,那么輸入文件總共將被切分為3*1024/128=24塊。
S203、生成包含切分后的數(shù)據(jù)的執(zhí)行實體。
在hadoop集群中,參與并行計算的多臺計算機(jī)并行地讀取HDFS中的小數(shù)據(jù)塊,并啟動map job和reduce job,job為每一個小數(shù)據(jù)塊生成一個map task。Map task的計算結(jié)果存儲在中間結(jié)果文件中,中間結(jié)果文件保存在HDFS中。Reduce job 從HDFS中讀取中間結(jié)果文件,并根據(jù)用戶指定的數(shù)量生成多個reduce task。Map task和reduce task是并行計算的執(zhí)行實體。
S204、通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
Hadoop在參與并行計算的多臺計算機(jī)上并行地運(yùn)行map task和reduce task,先運(yùn)行map task,然后運(yùn)行reduce task。
在hadoop集群中,通過多個map task進(jìn)行并行計算:
首先根據(jù)第一文件和第二文件已確定的質(zhì)量值轉(zhuǎn)換方式對每個記錄的質(zhì)量行中的每一個位置上的堿基計算其堿基質(zhì)量值。
然后根據(jù)預(yù)定質(zhì)量值閾值和預(yù)定序列長度閾值對準(zhǔn)備好的數(shù)據(jù)進(jìn)行過濾,去掉其中的低質(zhì)量數(shù)據(jù),過濾過程如下:
同時遍歷第一文件和第二文件中一一對應(yīng)的兩個記錄中的質(zhì)量行,如果質(zhì)量行中某一位置上堿基的質(zhì)量值小于預(yù)定質(zhì)量值閾值時,則過濾掉該位置及其以后的所有數(shù)據(jù);同時過濾掉相應(yīng)記錄的序列行在對應(yīng)位置及其以后的所有數(shù)據(jù);將標(biāo)識行和“+”行原樣輸出。
在經(jīng)過預(yù)定質(zhì)量值閾值過濾之后保留的數(shù)據(jù)中,同時獲取第一文件和第二文件中一一對應(yīng)的兩個記錄中的序列行中的堿基數(shù),如果這一對記錄中的任何一個記錄的堿基數(shù)小于預(yù)定序列長度閾值時,則將這一對記錄全部過濾掉。
Map task的中間計算結(jié)果存儲在HDFS上的中間結(jié)果文件中,reduce job讀取到中間結(jié)果文件后,根據(jù)用戶指定的數(shù)量生成多個reduce task。
在hadoop集群中,多個reduce task將經(jīng)過預(yù)定質(zhì)量值閾值和預(yù)定序列長度閾值過濾后保留下來的數(shù)據(jù)根據(jù)其原始數(shù)據(jù)來源分別輸出到第一文件和第二文件各自對應(yīng)的最終結(jié)果文件中。
實施例三
請參閱圖3,在本發(fā)明的第三個實施例中,使用spark并行計算框架通過并行計算過濾掉高通量測序數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
S301、根據(jù)所述高通量測序數(shù)據(jù)中的堿基質(zhì)量數(shù)據(jù)確定堿基質(zhì)量值轉(zhuǎn)換方式。
輸入包含原始高通量測序數(shù)據(jù)的FastQ文件。用于Sfastq_filter軟件的輸入文件是成對出現(xiàn)的,包括第一文件和第二文件兩個FastQ文件,其中第一文件和第二文件中的記錄是一一對應(yīng)的。在FastQ文件中,每一個記錄包括四行,其中序列行由A、T、G、C四種堿基組成(測序儀無法識別的堿基用N表示);質(zhì)量行中每一位置上的質(zhì)量數(shù)據(jù)為該位置的堿基質(zhì)量值的ASCII碼表示方式,質(zhì)量行和序列行長度相等。
根據(jù)讀入的FastQ文件質(zhì)量行中的堿基質(zhì)量值確定本文件對應(yīng)的堿基質(zhì)量值轉(zhuǎn)換方式:
如果讀取到大于第一閾值且小于等于第二閾值的堿基質(zhì)量數(shù)據(jù),則忽略此值,繼續(xù)讀入下一位置的堿基質(zhì)量值;
如果讀取到小于等于第一閾值的堿基質(zhì)量數(shù)據(jù),則確定本文件對應(yīng)第一堿基質(zhì)量值轉(zhuǎn)換方式,選擇堿基質(zhì)量值轉(zhuǎn)換方式的過程結(jié)束;
如果讀取到大于第二閾值的堿基質(zhì)量數(shù)據(jù),則確定本文件對應(yīng)第二堿基質(zhì)量值轉(zhuǎn)換方式,選擇堿基質(zhì)量值轉(zhuǎn)換方式的過程結(jié)束。
S302、將包含已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)的第一文件和第二文件分別轉(zhuǎn)換為各自對應(yīng)的第一RDD和第二RDD。
在本實施例中:
Spark:是UC Berkeley AMPLab開發(fā)的一種計算框架。
RDD是指彈性分布式數(shù)據(jù)集(Resilient Distributed Datasets),它是可容錯的并行數(shù)據(jù)結(jié)構(gòu),使用戶能夠顯式地在內(nèi)存中保存中間的運(yùn)算結(jié)果,通過控制RDD的分區(qū)來優(yōu)化數(shù)據(jù)的布局,并使用豐富的轉(zhuǎn)換算子進(jìn)行操作。
在讀取輸入的FastQ文件時,spark將第一文件轉(zhuǎn)換為第一RDD,將第二文件轉(zhuǎn)換為第二RDD。
S303、將第一RDD和第二RDD分別切分為各自對應(yīng)的第一partition組和第二partition組。
在本實施例中,partition是指spark在計算過程中,生成的數(shù)據(jù)在計算空間內(nèi)的最小單元。
在生成RDD時,用戶可以根據(jù)實際需要指定將RDD切分為partition的數(shù)量。例如輸入文件為3G,設(shè)置將RDD切分為24個partition,那么每一個partition所占存儲空間為3*1024/24=128M。實際生成的partition的數(shù)量最少為(該文件所占存儲空間/128M),如果指定的partition數(shù)量少于(該文件所占存儲空間/128M),則實際將生成(該文件所占存儲空間/128M)個partition。Spark根據(jù)用戶指定的partition數(shù)量將RDD切分成partition,每個RDD對應(yīng)的所有partition即為一個partition組。
在本實施例中,spark將第一RDD和第二RDD分別切分為各自對應(yīng)的第一partition組和第二partition組。
S304、根據(jù)第一文件和第二文件中對應(yīng)的數(shù)據(jù)將第一RDD和第二RDD合并為第三RDD。
由于第一文件和第二文件中的記錄是一一對應(yīng)的,在將此二者轉(zhuǎn)換為第一RDD和第二RDD后,第一RDD和第二RDD中的記錄也是一一對應(yīng)的。而在通過并行計算對數(shù)據(jù)進(jìn)行質(zhì)量過濾時,需要同時遍歷第一RDD和第二RDD中對應(yīng)的記錄,所以為了提高并行計算的速度,在進(jìn)行并行計算以前,根據(jù)其中一一對應(yīng)的記錄,將第一RDD和第二RDD合并為第三RDD,用于后續(xù)的并行計算。
S305、將第三RDD切分為第三partition組。
在生成第三RDD時,可以根據(jù)實際需要指定將第三RDD切分為partition的數(shù)量,該數(shù)值獨立于第一RDD和第二RDD分別對應(yīng)的partition組中包含的partition數(shù)量。例如,原來第一RDD對應(yīng)的第一partition組中有四個partition,第二RDD對應(yīng)的第二partition組中有六個partition,那么在將第一RDD和第二RDD合并生成第三RDD后,可以將第三RDD切分為五個partition,即第三partition組中有五個partition。
S306、生成對第三partition組進(jìn)行并行計算的執(zhí)行實體task。
在本實施例中:
Job是指包在spark中由多個stage組成的并行計算,對RDD執(zhí)行action操作后會生成job;
Stage是指在spark中,一個job會根據(jù)處理過程需要而分成不同的階段即stage,stage由多個task組成;
Task是指被送到為某個應(yīng)用啟動的executor進(jìn)程的工作單元。
在spark中對RDD進(jìn)行action操作時生成DAG Scheduler(有向無環(huán)圖調(diào)度器),從而啟動一個job。對一個job內(nèi)的操作,根據(jù)處理過程需要分成不同的stage,并在每一個stage內(nèi)產(chǎn)生一系列的task。通常一個RDD內(nèi)的task數(shù)量與partition的數(shù)量相同。后續(xù)多個執(zhí)行實體task將在多臺計算機(jī)上對不同的partition執(zhí)行并行計算過程。
在本實施例中,spark首先生成與第三RDD對應(yīng)的job,再根據(jù)job的處理需要生成stage,并在每個stage中生成對第三partition組進(jìn)行并行計算的多個執(zhí)行實體task。后面將在spark集群的多臺計算機(jī)上通過多個執(zhí)行實體task并行地對每個partition進(jìn)行后續(xù)計算。
S307、根據(jù)預(yù)定質(zhì)量值閾值和質(zhì)量值轉(zhuǎn)換方式通過執(zhí)行實體對所述高通量測序數(shù)據(jù)并行地進(jìn)行過濾。
首先,計算數(shù)據(jù)的質(zhì)量行中每一位置的堿基質(zhì)量值:
如果本次并行計算數(shù)據(jù)對應(yīng)的是第一堿基質(zhì)量值轉(zhuǎn)換方式,則將質(zhì)量行中每一位置上的ASCII碼字符的ASCII碼值減去第一閾值即為對應(yīng)的堿基質(zhì)量值;
如果本次并行計算數(shù)據(jù)對應(yīng)的是第二堿基質(zhì)量值轉(zhuǎn)換方式,則將質(zhì)量行中每一位置上的ASCII碼字符的ASCII碼值減去第二閾值,即為對應(yīng)的堿基質(zhì)量值。
然后,同時遍歷第一文件和第二文件中一一對應(yīng)的兩個記錄中的質(zhì)量行,如果質(zhì)量行中某一位置上堿基的質(zhì)量值小于預(yù)定質(zhì)量值閾值時,則過濾掉該位置及其以后的所有數(shù)據(jù);同時過濾掉相應(yīng)記錄的序列行在對應(yīng)位置及其以后的所有數(shù)據(jù);將標(biāo)識行和“+”行原樣輸出。
S308、根據(jù)預(yù)定序列長度閾值對保留下來的高通量測序數(shù)據(jù)并行地進(jìn)行過濾。
在經(jīng)過預(yù)定質(zhì)量值閾值過濾之后保留的數(shù)據(jù)中,同時獲取第一文件和第二文件中一一對應(yīng)的兩個記錄中的序列行中的堿基數(shù),如果這一對記錄中的任何一個記錄的堿基數(shù)小于預(yù)定序列長度閾值時,則將這一對記錄全部過濾掉。
將經(jīng)過預(yù)定質(zhì)量值閾值過濾和預(yù)定序列長度閾值過濾后保留下來的數(shù)據(jù)根據(jù)其原始數(shù)據(jù)來源分別輸出到第一文件和第二文件各自對應(yīng)的過濾結(jié)果文件中。
實施例四
如圖4所示,本發(fā)明的第四個實施例提供了一種高通量測序數(shù)據(jù)的質(zhì)量過濾裝置,所述裝置包括:
并行準(zhǔn)備模塊410,用于根據(jù)高通量測序數(shù)據(jù)為并行計算做準(zhǔn)備;
并行計算模塊420,用于通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
在本實施例中,并行準(zhǔn)備模塊410根據(jù)高通量測序數(shù)據(jù)為并行計算做準(zhǔn)備,并行計算模塊420根據(jù)預(yù)定質(zhì)量值閾值和預(yù)定序列長度閾值通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
實施例五
如圖4所示,本發(fā)明的第五個實施例提供了一種高通量測序數(shù)據(jù)的質(zhì)量過濾裝置,所述裝置包括:
并行準(zhǔn)備模塊410,用于根據(jù)高通量測序數(shù)據(jù)為并行計算做準(zhǔn)備;
質(zhì)量過濾模塊420,用于通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
所述并行準(zhǔn)備模塊包括:
質(zhì)量轉(zhuǎn)換方式確定單元4101:用于根據(jù)所述高通量測序數(shù)據(jù)中的質(zhì)量值確定質(zhì)量轉(zhuǎn)換方式;
數(shù)據(jù)切分單元4102:用于對已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)進(jìn)行切分;
執(zhí)行實體生成單元4103:用于生成對切分后的數(shù)據(jù)進(jìn)行并行計算的執(zhí)行實體。
在本實施例中,并行準(zhǔn)備模塊410中的質(zhì)量轉(zhuǎn)換方式確定單元4101根據(jù)所述高通量測序數(shù)據(jù)中的堿基質(zhì)量值確定堿基質(zhì)量值轉(zhuǎn)換方式。并行準(zhǔn)備模塊410中的數(shù)據(jù)切分單元4102將已確定堿基質(zhì)量值轉(zhuǎn)換方式的高通量測序數(shù)據(jù)進(jìn)行切分。并行準(zhǔn)備模塊410中的執(zhí)行實體生成單元4103生成包含切分后的數(shù)據(jù)的執(zhí)行實體map task和reduce task。質(zhì)量過濾模塊420通過并行計算過濾掉準(zhǔn)備好的數(shù)據(jù)中質(zhì)量不達(dá)標(biāo)的數(shù)據(jù)。
實施例六
如圖4所示,本發(fā)明的第六個實施例提供了一種高通量測序數(shù)據(jù)的質(zhì)量過濾裝置,所述裝置包括:
并行準(zhǔn)備模塊410,用于根據(jù)高通量測序數(shù)據(jù)為并行計算做準(zhǔn)備;
質(zhì)量過濾模塊420,具體用于:
如果所述高通量測序數(shù)據(jù)某一記錄中的質(zhì)量行中的某一位置上的質(zhì)量值小于預(yù)定質(zhì)量值閾值,則通過執(zhí)行實體并行地過濾掉所述質(zhì)量行該位置及以后的數(shù)據(jù),以及同一記錄中的序列行中的對應(yīng)位置及以后的數(shù)據(jù);
在保留下來的高通量測序數(shù)據(jù)中,如果第一文件和第二文件相對應(yīng)的兩個記錄中有任意一個記錄中的序列行長度小于預(yù)定長度閾值,則通過執(zhí)行實體并行地過濾掉第一文件和第二文件中相對應(yīng)的這兩個記錄。
所述并行準(zhǔn)備模塊包括:
質(zhì)量轉(zhuǎn)換方式確定單元4101:用于根據(jù)所述高通量測序數(shù)據(jù)中的質(zhì)量值確定質(zhì)量轉(zhuǎn)換方式;
數(shù)據(jù)切分單元4102:具體用于:
將包含已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)的第一文件和第二文件分別轉(zhuǎn)換為各自對應(yīng)的第一RDD和第二RDD;
將第一RDD和第二RDD分別切分為各自對應(yīng)的第一partition組和第二partition組;
根據(jù)第一文件和第二文件中對應(yīng)的數(shù)據(jù)將第一RDD和第二RDD合并為第三RDD;
將第三RDD切分為第三partition組。
執(zhí)行實體生成單元4103:生成對第三partition組進(jìn)行并行計算的執(zhí)行實體task。
在本實施例中,并行準(zhǔn)備模塊410中的質(zhì)量轉(zhuǎn)換方式確定單元4101根據(jù)所述高通量測序數(shù)據(jù)中的堿基質(zhì)量值確定堿基質(zhì)量值轉(zhuǎn)換方式。并行準(zhǔn)備模塊410中的數(shù)據(jù)切分單元4102將包含已確定質(zhì)量轉(zhuǎn)換方式的高通量測序數(shù)據(jù)的第一文件和第二文件分別轉(zhuǎn)換為各自對應(yīng)的第一RDD和第二RDD,將第一RDD和第二RDD分別切分為各自對應(yīng)的第一partition組和第二partition組,根據(jù)第一文件和第二文件中對應(yīng)的數(shù)據(jù)將第一RDD和第二RDD合并為第三RDD,將第三RDD切分為第三partition組。并行準(zhǔn)備模塊410中的執(zhí)行實體生成單元4103生成對第三partition組進(jìn)行并行計算的執(zhí)行實體task。如果所述高通量測序數(shù)據(jù)某一記錄中的質(zhì)量行中的某一位置上的質(zhì)量值小于預(yù)定質(zhì)量值閾值,則質(zhì)量過濾模塊420通過執(zhí)行實體并行地過濾掉所述質(zhì)量行該位置及以后的數(shù)據(jù)以及同一記錄的序列行中的對應(yīng)位置及以后的數(shù)據(jù);在保留下來的高通量測序數(shù)據(jù)中,如果第一文件和第二文件相對應(yīng)的兩個記錄中有任意一個記錄中的序列行長度小于預(yù)定長度閾值,則質(zhì)量過濾模塊420通過執(zhí)行實體并行地過濾掉第一文件和第二文件中相對應(yīng)的這兩個記錄。
本領(lǐng)域普通技術(shù)人員可以理解,實現(xiàn)上述本發(fā)明實施例中的高通量測序數(shù)據(jù)統(tǒng)計方法和統(tǒng)計裝置可以通過程序指令相關(guān)的硬件來完成,所述的程序可以存儲于可讀取存儲介質(zhì)中,該程序在執(zhí)行時執(zhí)行上述方法中的對應(yīng)步驟。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原來的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。