專利名稱:一種短序列映射方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于基因工程技術(shù)領(lǐng)域,尤其涉及一種短序列映射方法及系統(tǒng)。
背景技術(shù):
對(duì)大基因組的短序列進(jìn)行組裝面臨內(nèi)存的挑戰(zhàn),為了降低構(gòu)建de Bmijn圖 的內(nèi)存使用,組裝軟件可以不在內(nèi)存中記錄測(cè)序序列和序列片段重疊群(contig ) 之間的對(duì)應(yīng)關(guān)系,而只在contig組裝完畢后,將正確的測(cè)序序列映射到contig 上?,F(xiàn)有的短序列比對(duì)軟件分兩類, 一類使用了固定短串的組合索引結(jié)構(gòu),另 一類使用的是后綴樹類樣的索引結(jié)構(gòu)?,F(xiàn)有短序列對(duì)比軟件可以在兩個(gè)錯(cuò)配之 內(nèi)將短序列映射到contig上,但是由于這些比對(duì)軟件的出發(fā)點(diǎn)不是contig和參 與拼接的序列之間的比對(duì),特別是沒(méi)有考慮使用deBruijn圖組裝出的contig的 特點(diǎn),在這種情況下,其處理時(shí)間長(zhǎng)、效率低。
綜上所述,現(xiàn)有短序列對(duì)比軟件在處理contig和短序列之間的比對(duì)時(shí),處 理時(shí)間長(zhǎng)、效率4氐,不能4艮好地滿足短序列組裝中的需求。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種短序列映射方法,旨在解決現(xiàn)有短序列 對(duì)比軟件在處理contig和短序列之間的比對(duì)時(shí),處理時(shí)間長(zhǎng)、效率低,不能很 好地滿足短序列組裝中需求的問(wèn)題。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的, 一種短序列映射方法,所述方法包括下述步
驟
將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序;
將序列片段重疊群逐個(gè)堿基切割成所述預(yù)設(shè)長(zhǎng)度的短串;依次根據(jù)所述序列片段重疊群中所切割成的短串的堿基值在排序后的測(cè)序 序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
本發(fā)明實(shí)施例的另一目的在于提供短序列映射系統(tǒng),所述系統(tǒng)包括
排序單元,用于將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序;
切割單元,用于將序列片段重疊群逐個(gè)堿基切割成所述預(yù)設(shè)長(zhǎng)度的短串;
以及
映射單元,用于依次根據(jù)所述序列片段重疊群中所切割成的短串的堿基值 在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
在本發(fā)明實(shí)施例中,通過(guò)將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序, 并將contig逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng)度的短串,依次根據(jù)contig中所切割成的短 串的石威基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系,實(shí)現(xiàn) 了用于短序列組裝中的一種短序列映射方法,處理時(shí)間短、效率高。
圖1是本發(fā)明實(shí)施例提供的短序列映射方法的實(shí)現(xiàn)流程圖2是本發(fā)明實(shí)施例提供的短序列映射系統(tǒng)的結(jié)構(gòu)圖3是本發(fā)明另一實(shí)施例提供的短序列映射系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
在本發(fā)明實(shí)施例中,通過(guò)將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序, 并將contig逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng)度的短串,依次根據(jù)contig中所切割成的短 串的堿基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
圖1示出了本發(fā)明實(shí)施例提供的短序列映射方法的實(shí)現(xiàn)流程,詳述如下在步驟S101中,將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序; 在步驟S102中,將contig逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng)度的短串; 在步驟S103中,依次根據(jù)contig中所切割成的短串的堿基值在排序后的測(cè) 序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
在本發(fā)明實(shí)施例中,短串長(zhǎng)度的選取嚴(yán)格等于在構(gòu)建de Bruijn圖時(shí)短串的 長(zhǎng)度,即上述預(yù)設(shè)長(zhǎng)度為構(gòu)建de Bruijn圖時(shí)短串的長(zhǎng)度。將測(cè)序序列按前綴短 串的堿基值排序,可以降低排序的復(fù)雜性。按預(yù)設(shè)長(zhǎng)度切割各測(cè)序序列的前綴 短串,并從小到大按短串的堿基值排序,生成一個(gè)短串?dāng)?shù)組,這個(gè)短串?dāng)?shù)組和 各測(cè)序序列是——對(duì)應(yīng)的。建立一個(gè)索引數(shù)組用于記錄短串?dāng)?shù)組中短串與測(cè)序 序列的對(duì)應(yīng)關(guān)系。在對(duì)短串進(jìn)^f排序時(shí),可以4吏用桶排序?qū)Χ檀氖苫颠M(jìn)行 排序。其中,每個(gè)桶子存放短串上的4個(gè)堿基,這樣按4個(gè)堿基逐步完成排序。 另外,在排序中使用另一個(gè)前綴數(shù)組記錄相鄰短串間共同的前綴堿基個(gè)數(shù),對(duì) 前綴堿基個(gè)數(shù)的記錄可以在桶排序內(nèi)部完成。當(dāng)然,也可以采用其他方法對(duì)短
串的堿基值進(jìn)行排序。
然后,由于構(gòu)建de Bmijn圖時(shí)短串是唯一的,所以4姿照構(gòu)建de Bruijn圖時(shí) 短串的長(zhǎng)度將contig逐個(gè)堿基切割成的各個(gè)短串是唯一的。
接著,依次根據(jù)contig中切割成的短串的堿基值建立contig與測(cè)序序列的 映射關(guān)系,上述步驟S103具體為
步驟l.依次取contig切割得到的短串;
步驟2.在排序后的測(cè)序序列中查找前綴短串的堿基值與contig中所取短串 的堿基值相等的所有測(cè)序序列;
步驟3,在查找到的測(cè)序序列與contig間建立映射關(guān)系。
在本發(fā)明實(shí)施例中,步驟2中采用二分法在短串?dāng)?shù)組中查找與contig中所 取短串的堿基值相等的短串,實(shí)現(xiàn)短串間的比較,算法詳述如下
初始化將起始位置L置為O、結(jié)束位置R設(shè)為N-1,最小共有前綴數(shù)l、 最大共有前綴數(shù)r都置為0;步驟l.判斷contig中所取短串W是否小于短串?dāng)?shù)組的前綴短串A[O],如 果是返回不匹配;
步驟2.判斷contig中所取短串W是否大于短串?dāng)?shù)組的第N個(gè)短串A[N-l], 如果是則返回不匹配;
步驟3.判斷起始位置L+1是否小于結(jié)束位置R,如果是則進(jìn)入,否則進(jìn)入 步驟8;
步驟4.查找中間位置M取為,堿基判斷位置m取最小共有前綴數(shù)1
和最大共有前綴數(shù)r的最小值;
步驟5.判斷短串W的第m個(gè)堿基值Wm是否小于或等于查找中間位置短序 的第m個(gè)i威基值A(chǔ)[M]m,如果是則進(jìn)入步驟6,否則進(jìn)入步驟7;
步驟6.結(jié)束位置R向前移動(dòng)到查找中間位置M,用短串W與短序A[M] 的共有前綴數(shù)更新最大共有前綴數(shù)r,進(jìn)入步驟3;
步驟7.起始位置L向后移動(dòng)到查找中間位置M,用短串W與短序A[M]的 共有前綴數(shù)更新最大共有前綴數(shù)r,進(jìn)入步驟3;
步驟8.將起始位置L賦值為結(jié)束位置R。
A[R]即為查找到的短串,結(jié)合已經(jīng)建立的前綴數(shù)組,找出A[R]前后堿基值 均與其相等的短串。再根據(jù)索引數(shù)組即可以得到這些短串對(duì)應(yīng)的測(cè)序序列,進(jìn) 一步建立得到的這些測(cè)序序列與contig的映射。當(dāng)然,也可以根據(jù)其他查詢方 法在短串?dāng)?shù)組中查找與contig中所取短串的堿基值相等的短串。
由于在生物學(xué)上,互補(bǔ)序列上的映射關(guān)系也是構(gòu)成該contig的序列的正確 關(guān)系,為了同時(shí)得到contig的互補(bǔ)序列與測(cè)序序列的映射,作為本發(fā)明的 一個(gè) 優(yōu)選實(shí)施例,在步驟S101前,根據(jù)測(cè)序序列得到其互補(bǔ)測(cè)序序列。
此時(shí),步驟S101為將測(cè)序序列和得到的互補(bǔ)測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串 的堿基值排序,步驟S103為依次根據(jù)contig中所切割成的短串的堿基值在排序 后的測(cè)序序列及其互補(bǔ)測(cè)序序列中查找相應(yīng)的測(cè)序序列和/或互補(bǔ)測(cè)序序列,建 立映射關(guān)系。將測(cè)序序列及其互補(bǔ)測(cè)序序列按前綴短串的堿基值排序,實(shí)現(xiàn)contig與測(cè)序序列間的正、反相映射,減少了比較搜索的次數(shù),處理速度加快。 為了同時(shí)得到互補(bǔ)contig與測(cè)序序列的映射,作為本發(fā)明的另 一個(gè)優(yōu)選實(shí) 施例,在上述步驟S102之前,根據(jù)contig得到其互補(bǔ)contig。此時(shí),步驟S102 為將contig和得到的互補(bǔ)contig逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng)度的短串,步驟S103 為依次根據(jù)contig和得到的互補(bǔ)contig中所切割成的短串的堿基值在排序后的 測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
對(duì)比上述通過(guò)對(duì)contig逐個(gè)堿基在排序后的測(cè)序序列及其互補(bǔ)測(cè)序序列中 查找,實(shí)現(xiàn)contig與測(cè)序序列的正、反相映射的方式,這里通過(guò)對(duì)contig及其 互補(bǔ)contig逐個(gè)堿基執(zhí)行兩次切割、查找操作實(shí)現(xiàn),所需占用內(nèi)存相對(duì)較小, 但處理速度慢。
本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟 是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以在存儲(chǔ)于一計(jì)算機(jī) 可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如ROM/RAM、磁盤、光盤等,該程序 用來(lái)執(zhí)行如下步驟
1潛測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序;
2. 將contig逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng)度的短串;
3. 依次根據(jù)contig中所切割成的短串的堿基值在排序后的測(cè)序序列中查找 相應(yīng)的測(cè)序序列,建立映射關(guān)系。
圖2示出了本發(fā)明實(shí)施例提供的短序列映射系統(tǒng)的結(jié)構(gòu),為了便于說(shuō)明僅 示出了與本發(fā)明實(shí)施例相關(guān)的部分,該系統(tǒng)可以用于短序列組裝中,其中
排序單元201,將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序,其實(shí)現(xiàn)方 式如上所述,不再贅述。
切割單元202,將contig逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng)度的短串,其實(shí)現(xiàn)方式如 上所述,不再贅述。
映射單元203,依次根據(jù)contig中所切割成的短串的堿基值在排序后的測(cè) 序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。其中,映射單元203包括
短串獲取^^莫塊2031,依次取contig切割得到的短串。
查找模塊2032,在排序后的測(cè)序序列中查找前綴短串的堿基值與短串獲取 模塊2031所取短串的義威基值相等的所有測(cè)序序列,其實(shí)現(xiàn)方式如上所述,不再 贅述。
關(guān)聯(lián)模塊2033,在查找到的測(cè)序序列與contig間建立映射關(guān)系,其實(shí)現(xiàn)方 式如上所述,不再贅述。
為了同時(shí)得到contig與測(cè)序序列的反相映射,作為本發(fā)明的一個(gè)優(yōu)選實(shí)施 例,短序列映射系統(tǒng)還包括
第一互補(bǔ)計(jì)算單元204,根據(jù)測(cè)序序列得到其互補(bǔ)測(cè)序序列。
此時(shí),排序單元201將測(cè)序序列和得到的互補(bǔ)測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短 串的堿基值排序,映射單元203依次根據(jù)contig中所切割成的短串的堿基值在 排序后的測(cè)序序列及其互補(bǔ)測(cè)序序列中查找相應(yīng)的測(cè)序序列和/或互補(bǔ)測(cè)序序 列,建立映射關(guān)系。
為了同時(shí)得到互補(bǔ)contig與測(cè)序序列的映射,作為本發(fā)明的另 一個(gè)優(yōu)選實(shí) 施例,如圖3所示,短序列映射系統(tǒng)還包括
第二互補(bǔ)計(jì)算單元205,根據(jù)contig得到其互補(bǔ)contig。
此時(shí),切割單元202將contig和得到的互補(bǔ)contig逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng) 度的短串,映射單元203依次根據(jù)contig和得到的互補(bǔ)contig中所切割成的短 串的堿基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
在本發(fā)明實(shí)施例中,通過(guò)將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序, 并將contig逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng)度的短串,依次根據(jù)contig中所切割成的短 串的堿基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系,實(shí)現(xiàn) 了用于短序組裝中的一種短序列映射方法,處理時(shí)間短、效率高。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種短序列映射方法,其特征在于,所述方法包括下述步驟將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序;將序列片段重疊群逐個(gè)堿基切割成所述預(yù)設(shè)長(zhǎng)度的短串;依次根據(jù)所述序列片段重疊群中所切割成的短串的堿基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
2、 如權(quán)利要求l所述的方法,其特征在于,所述預(yù)設(shè)長(zhǎng)度為構(gòu)建deBruijn 圖時(shí)短串的長(zhǎng)度。
3、 如權(quán)利要求2所述的方法,其特征在于,所述依次根據(jù)所述序列片段重 疊群中所切割成的短串的堿基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列, 建立映射關(guān)系的步驟具體為依次取所述序列片段重疊群切割得到的短串;在排序后的測(cè)序序列中查找前綴短串的堿基值與序列片段重疊群中所取短 串的堿基值相等的所有測(cè)序序列;在查找到的測(cè)序序列與所述序列片段重疊群間建立映射關(guān)系。
4、 如權(quán)利要求3所述的方法,其特征在于,采用二分法在所述排序后的測(cè) 序序列中查找前綴短串的堿基值與所述序列片段重疊群中所取短串的堿基值相 等的測(cè)序序列。
5、 如權(quán)利要求l所述的方法,其特征在于,在所述將測(cè)序序列按預(yù)設(shè)長(zhǎng)度 前綴短串的-威基值排序的步驟前,所述方法還包括才艮據(jù)所述測(cè)序序列得到其互補(bǔ)測(cè)序序列;所述將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序的步驟為將測(cè)序序列和得到的互補(bǔ)測(cè)序序列按所述預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序;所述依次根據(jù)所述序列片段重疊群中所切割成的短串的堿基值在排序后的 測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系的步驟為依次根據(jù)所述序列片段重疊群中所切割成的短串的堿基值在排序后的測(cè)序 序列及其互補(bǔ)測(cè)序序列中查找相應(yīng)的測(cè)序序列和/或互補(bǔ)測(cè)序序列,建立映射關(guān) 系。
6、 如權(quán)利要求l所述的方法,其特征在于,在所述將序列片段重疊群逐個(gè) 堿基切割成所述預(yù)設(shè)長(zhǎng)度的短串的步驟前,所述方法還包括根據(jù)所述序列片段重疊群得到其互補(bǔ)序列片段重疊群; 所述將序列片段重疊群逐個(gè)堿基切割成所述預(yù)設(shè)長(zhǎng)度的短串的步驟為 將序列片段重疊群和得到的互補(bǔ)序列片段重疊群逐個(gè)堿基切割成所述預(yù)設(shè) 長(zhǎng)度的短串;所述依次根據(jù)所述序列片段重疊群中所切割成的短串的堿基值在排序后的 測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系的步驟為依次根據(jù)所述序列片段重疊群和得到的互補(bǔ)序列片段重疊群中所切割成的 短串的石咸基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
7、 一種短序列映射系統(tǒng),其特征在于,所述系統(tǒng)包括 排序單元,用于將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的石威基值排序;切割單元,用于將序列片段重疊群逐個(gè)堿基切割成所述預(yù)設(shè)長(zhǎng)度的短串;以及映射單元,用于依次根據(jù)所述序列片段重疊群中所切割成的短串的堿基值 在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
8、 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述映射單元包括 短串獲取模塊,用于依次取所述序列片段重疊群切割得到的短串; 查找才莫塊,用于在排序后的測(cè)序序列中查找前綴短串的石威基值與所述短串獲^Mt塊所取短串的堿基值相等的所有測(cè)序序列;以及關(guān)聯(lián)模塊,用于在查找到的測(cè)序序列與所述序列片段重疊群間建立映射關(guān)系。
9、 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述短序列映射系統(tǒng)還包括第一互補(bǔ)計(jì)算單元,用于根據(jù)所述測(cè)序序列得到其互補(bǔ)測(cè)序序列;所述排序單元具體是用于將測(cè)序序列和得到的互補(bǔ)測(cè)序序列按所述預(yù)設(shè)長(zhǎng) 度前綴短串的堿基值排序,所述映射單元具體是用于依次根據(jù)所述序列片段重相應(yīng)的測(cè)序序列和/或互補(bǔ)測(cè)序序列,建立映射關(guān)系。
10、如權(quán)利要求7所述的系統(tǒng),其特征在于,所述短序列映射系統(tǒng)還包括 第二互補(bǔ)計(jì)算單元,用于根據(jù)所述序列片段重疊群得到其互補(bǔ)序列片段重 疊群;所述切割單元具體是用于將序列片段重疊群和得到的互補(bǔ)序列片段重疊群 逐個(gè)堿基切割成所述預(yù)設(shè)長(zhǎng)度的短串,所述映射單元具體是用于依次根據(jù)所述 序列片段重疊群和得到的互補(bǔ)序列片段重疊群中所切割成的短串的堿基值在排 序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。
全文摘要
本發(fā)明適用于基因工程技術(shù)領(lǐng)域,提供了一種短序列映射方法及系統(tǒng),所述方法包括下述步驟將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序;將序列片段重疊群逐個(gè)堿基切割成所述預(yù)設(shè)長(zhǎng)度的短串;依次根據(jù)所述序列片段重疊群中所切割成的短串的堿基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系。在本發(fā)明中,通過(guò)將測(cè)序序列按預(yù)設(shè)長(zhǎng)度前綴短串的堿基值排序,并將序列片段重疊群逐個(gè)堿基切割成預(yù)設(shè)長(zhǎng)度的短串,依次根據(jù)序列片段重疊群中所切割成的短串的堿基值在排序后的測(cè)序序列中查找相應(yīng)的測(cè)序序列,建立映射關(guān)系,實(shí)現(xiàn)了用于短序組裝中的一種短序列映射方法,處理時(shí)間短、效率高。
文檔編號(hào)G06F19/00GK101430741SQ20081021833
公開日2009年5月13日 申請(qǐng)日期2008年12月12日 優(yōu)先權(quán)日2008年12月12日
發(fā)明者朱紅梅, 李瑞強(qiáng), 楊煥明, 建 汪, 俊 王, 玨 阮 申請(qǐng)人:深圳華大基因研究院