本發(fā)明涉及dna存儲,具體涉及基于dna-base128的dna圖像存儲方法及系統(tǒng)。
背景技術:
1、國際數(shù)據(jù)公司報告稱,數(shù)據(jù)將在2025年達到175pb,到2040年達到1.9×109pb,提供一種新的存儲介質顯得尤為緊迫。dna作為大多數(shù)生物體遺傳信息的載體,與傳統(tǒng)的存儲介質相比,它具有存儲密度高、存儲壽命長等優(yōu)點,因此dna成為了未來最有潛力的存儲介質。dna存儲主要涉及五個主要過程:編碼,合成,保存,測序和解碼。編碼是dna存儲的最重要步驟,合理有效的編碼可以提高編碼密度,降低測序錯誤的概率。2017年,erlich等人將噴泉碼應用于dna編碼。通過排除或操作,種子之間的編碼序列滿足gc含量和均聚物限制,凈編碼密度達到了1.57bits/nt。另外,除了使用噴泉碼減少錯誤外,zhang等人通過引入平衡碼,滿足了gc含量和均聚物限制并提供了一定的內部檢錯功能。當前的存儲方案提高了存儲的密度和質量,但沒有考慮圖像數(shù)據(jù)的特點,在處理圖像數(shù)據(jù)時存在序列穩(wěn)定性和圖像重建效果不足等問題。
技術實現(xiàn)思路
1、本發(fā)明的目的在于,提出基于dna-base128的dna圖像存儲方法及系統(tǒng),其編碼序列滿足常見生化約束和局部gc含量,降低了易錯相鄰堿基含量,實現(xiàn)了圖像的高質量重建。
2、根據(jù)本公開實施例的第一個方面,提供了基于dna-base128的dna圖像存儲方法,包括以下步驟:
3、采用無損方式存儲圖像數(shù)據(jù),且將圖像數(shù)據(jù)轉為像素值形式,在將其轉為二進制數(shù)據(jù);
4、將所述二進制數(shù)據(jù)17位為一組進行分割,每組的前10位為奇數(shù)據(jù)塊,后7位為偶數(shù)據(jù)塊,統(tǒng)計偶數(shù)據(jù)塊出現(xiàn)的頻率;
5、構建dna-base128編碼表;
6、根據(jù)偶數(shù)據(jù)塊出現(xiàn)的次數(shù)與dna-base128編碼表進行動態(tài)映射,將映射后的均衡碼與奇數(shù)據(jù)塊交叉組合,根據(jù)堿基映射規(guī)則進行編碼;
7、在解碼時將十位堿基化為一組,根據(jù)堿基映射規(guī)則進行解碼,解碼后的數(shù)據(jù)根據(jù)奇偶位置劃分為奇數(shù)據(jù)塊和偶數(shù)據(jù)塊,然后判斷偶數(shù)據(jù)塊是否發(fā)生錯誤及錯誤類型,其錯誤類型包括替換錯誤和移位錯誤,所述移位錯誤分為插入錯誤類型和刪除錯誤類型;
8、當偶數(shù)據(jù)塊發(fā)生替換錯誤時,利用偶數(shù)據(jù)塊為均衡數(shù)據(jù)塊,得到替換的具體類型b,即發(fā)生0-1或者1-0的替換,針對偶數(shù)據(jù)塊的不同特征進行糾錯;
9、當偶數(shù)據(jù)塊發(fā)生移位錯誤時,偶數(shù)據(jù)塊針對移位錯誤的具體錯誤類型和數(shù)據(jù)塊特征進行矯正,奇數(shù)據(jù)根據(jù)偶數(shù)據(jù)發(fā)生錯誤的位置進行插入或者刪除操作;
10、對所有偶數(shù)據(jù)塊進行判斷和矯正,完成圖像數(shù)據(jù)解碼。
11、進一步地,構建dna-base128編碼表方式為:首先通過貪心算法篩選出所有滿足生化約束的10位平衡碼,然后根據(jù)易錯相鄰堿基出現(xiàn)的概率篩選并排序在前127位的均衡碼,如下所示:
12、 1 1001100101 33 11001101 65 1001010110 97 1100011010 2 1001100110 34 11001011 66 111010010 98 1000100111 3 110011001 35 10011011 67 110101001 99 110101100 4 1100110010 36 1110010010 68 110010101 100 11101100 5 1100100110 37 1101001100 69 101110010 101 11011100 6 110010011 38 1001101010 70 101010011 102 11010110 7 100110011 39 111001100 71 100110101 103 1011000110 8 1101001001 40 101011001 72 100101110 104 1010011100 9 1011001001 41 100100111 73 11101001 105 1010010110 10 1010011001 42 1110100100 74 10111001 106 1000110110 11 1001101001 43 1101010010 75 10011101 107 110001110 12 1001011001 44 1100110100 76 1110010001 108 110001101 13 1001001110 45 1100101100 77 1110001001 109 110001011 14 1001001101 46 1100101010 78 1011001010 110 101100011 15 1001001011 47 1100100011 79 1010011010 111 101011100 16 111001001 48 1100010011 80 1010010101 112 100101101 17 1101100100 49 110110010 81 1001110001 113 100011011 18 1100110001 50 110100110 82 1001011010 114 11101010 19 1001101100 51 110011100 83 1001000111 115 11100101 20 1100101001 52 110010110 84 1000111001 116 11011010 21 1100100101 53 100111010 85 101101001 117 11000111 22 1100011001 54 100110110 86 101100101 118 10110101 23 1011001100 55 100101011 87 101001110 119 1101100010 24 1010010011 56 11100110 88 101001101 120 1101010001 25 1001110010 57 11010011 89 101001011 121 111000110 26 1001100011 58 10110011 90 11110010 122 10101110 27 1001010011 59 10011110 91 10010111 123 10100111 28 1000110011 60 1011100100 92 111001010 124 1110011 29 110011010 61 1010110010 93 100111100 125 1100111 30 100111001 62 1010100110 94 1101001010 126 1100011100 31 11011001 63 1001110100 95 1101000110 127 11100011 32 11001110 64 1001011100 96 1100111000 ?
13、進一步地,所述堿基映射規(guī)則為00-a,01-t,10-c,11-g。
14、進一步地,判斷偶數(shù)據(jù)塊是否發(fā)生錯誤及錯誤類型的具體方式為:如果當前偶數(shù)據(jù)塊不存在均衡碼表中或在編碼時沒有出現(xiàn),則判斷偶數(shù)據(jù)塊發(fā)生替換錯誤,否則偶數(shù)據(jù)塊未發(fā)生錯誤;向下遍歷偶數(shù)據(jù)塊的個數(shù)滿足設置閾值時,則判斷偶數(shù)據(jù)塊發(fā)生替換錯誤,否則為移位錯誤;當判斷為移位錯誤后,如果偶數(shù)據(jù)塊向左漂移且向下遍歷偶數(shù)據(jù)塊的個數(shù)滿足設置閾值時,則發(fā)生了插入錯誤,否則為刪除錯誤。
15、進一步地,偶數(shù)據(jù)塊的不同特征使用下式(1)-(4)表示:
16、a.當偶數(shù)據(jù)塊出現(xiàn)連續(xù)6個及以上相同的數(shù)據(jù),則
17、d=gro_p(s,h+2,h+3)??????????????????(1)
18、b.當偶數(shù)據(jù)塊出現(xiàn)連續(xù)5個相同的數(shù)據(jù),則
19、d=gro_p(s,h+2,h+3,h+4)????????????????(2)
20、c.當偶數(shù)據(jù)塊出現(xiàn)連續(xù)4個相同的數(shù)據(jù),則
21、d=gro_p(s,h,h+1,h+2,h+3)????????????????(3)
22、d.當偶數(shù)據(jù)塊出現(xiàn)小于連續(xù)四個相同的數(shù)據(jù),則
23、d=gro_p(gro_p(s,loc(0),gro_p(s,i)),gro_p(s,i))???????(4)
24、其中s是當前偶數(shù)據(jù)塊,d是矯正后的偶數(shù)據(jù)塊;gro_p(s,i,j)表示s的第i次和第j次替換,根據(jù)gc含量平衡、均聚物約束和數(shù)據(jù)概率篩選,得到正確率最大的偶數(shù)據(jù)塊;h表示相同堿基在s中的索引位置,loc(b)表示“b”出現(xiàn)的位置。
25、進一步地,偶數(shù)據(jù)塊針對移位錯誤的具體錯誤類型和數(shù)據(jù)塊特征進行矯正,具體為:
26、a.當偶數(shù)據(jù)塊發(fā)生插入錯誤且出現(xiàn)連續(xù)4個相同的數(shù)據(jù),則
27、d=delete_p(s,h)??????????????????(5)
28、b.當偶數(shù)據(jù)塊發(fā)生插入錯誤且出現(xiàn)連續(xù)3個相同的數(shù)據(jù),則
29、d=del_p(s,h,h+1,h+2,h+3)??????????(6)
30、c.當偶數(shù)據(jù)塊發(fā)生插入錯誤且出現(xiàn)連續(xù)小于3個相同的數(shù)據(jù),則
31、d=del_p(del_p(s,loc(0),del_p(s,i)),del_p(s,i))?(7)
32、d.當偶數(shù)據(jù)塊發(fā)生刪除錯誤且出現(xiàn)連續(xù)5個相同的數(shù)據(jù),則
33、d=ins_p(s,h+2,h+3)?????????????????(8)
34、e.當偶數(shù)據(jù)塊發(fā)生刪除錯誤且出現(xiàn)連續(xù)4個相同的數(shù)據(jù),則
35、d=ins_p(s,h+2,h+3,h+4)????????????????(9)
36、f.當偶數(shù)據(jù)塊發(fā)生刪除錯誤且出現(xiàn)連續(xù)小于4個相同的數(shù)據(jù),則
37、ins_p(ins_p(s,loc(b),ins_p(s,i)),ins_p(s,i))????(10)
38、其中,del_p(s,h1,h2)表示s分別刪除第h+1和第h+2位數(shù)據(jù);ins_p(s,h+1,h+2)是指s分別在第h+1和第h+2位插入數(shù)據(jù)。
39、更進一步地,所述生化約束為gc含量限制在40%到60%之間,均聚物不大于4。
40、更進一步地,易錯相鄰堿基指的是組合在一起容易發(fā)生錯誤的三堿基,包括“gac,”“cac,”“gtc,”“gtg,”“gcg,”“cgc,”“tct,”“act,”“aga,”“ata,”“tat,”和“tgc”。
41、根據(jù)本公開實施例的第二個方面,提供了基于dna-base128的dna圖像存儲系統(tǒng),包括:
42、構建模塊,構建dna-base128編碼表;
43、映射模塊,根據(jù)偶數(shù)據(jù)塊出現(xiàn)的次數(shù)與dna-base128編碼表進行動態(tài)映射,將映射后的均衡碼與奇數(shù)據(jù)塊交叉組合,根據(jù)堿基映射規(guī)則進行編碼;
44、判斷模塊,在解碼時將十位堿基化為一組,根據(jù)堿基映射規(guī)則進行解碼,解碼后的數(shù)據(jù)根據(jù)奇偶位置劃分為奇數(shù)據(jù)塊和偶數(shù)據(jù)塊,然后判斷偶數(shù)據(jù)塊是否發(fā)生錯誤及錯誤類型,其錯誤類型包括替換錯誤和移位錯誤,所述移位錯誤分為插入錯誤類型和刪除錯誤類型;
45、糾錯模塊,當偶數(shù)據(jù)塊發(fā)生替換錯誤時,利用偶數(shù)據(jù)塊為均衡數(shù)據(jù)塊,得到替換的具體類型b,即發(fā)生0-1或者1-0的替換,針對偶數(shù)據(jù)塊的不同特征進行糾錯;
46、矯正模塊,當偶數(shù)據(jù)塊發(fā)生移位錯誤時,偶數(shù)據(jù)塊針對移位錯誤的具體錯誤類型和數(shù)據(jù)塊特征進行矯正,奇數(shù)據(jù)根據(jù)偶數(shù)據(jù)發(fā)生錯誤的位置進行插入或者刪除操作;
47、重建模塊,對所有偶數(shù)據(jù)塊進行判斷和矯正,完成圖像數(shù)據(jù)解碼。
48、根據(jù)本公開實施例的第三個方面,提供了一種電子設備,包括存儲器、處理器及存儲在存儲器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)所述的基于dna-base128的dna圖像存儲方法。
49、根據(jù)本公開實施例的第四個方面,提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)所述的基于dna-base128的dna圖像存儲方法。
50、本發(fā)明采用的以上技術方案,與現(xiàn)有技術相比,具有的優(yōu)點是:
51、1、在編碼之前本發(fā)明對二進制數(shù)據(jù)進行數(shù)據(jù)分割和概率統(tǒng)計,提高了dna編碼的堿基利用率。
52、2、在構建dna-base128編碼表時,在滿足常見生化約束的基礎上,實現(xiàn)了局部gc含量約束并降低了易錯堿基含量。
53、3、利用dna-base128編碼表的限制、漂移比對和閾值,能實現(xiàn)錯誤類型的判斷以及概率矯正。