我如何看待用1公斤DNA存儲全球信息這個事情
最近發現關於DNA存儲的文章刷屏了,源自於今年2月19號華盛頓大學和微軟研究院合作在《Nature biotechnology》上發表的一篇有關DNA存儲的研究成果。對此我想發表一點自己的觀點,受限於我的認知,觀點不一定正確。
誠然,進入21世紀之後,這個世界的數據增長速度太快了,數據量級越來越大,按照現有發展速度傳統硅基存儲介質是否還能撐住,就成為了許多人關心的一個問題,大家都在探討是否會有枯竭的那一天,如果枯竭了我們還能用什麼東西來存儲我們的數據。於是存儲生命遺傳密碼的介質——DNA就成了一個非常有希望的選項。
在談論我們的話題之前,先來了解一下DNA是如何存儲數據的
原理本身並不複雜。
我們知道,電腦上存儲的數據都是依據電壓的高和低代表0和1來表示的,每一個數字、字元和標點符號都由唯一的一串01組合來構成。比如小寫字母「e」的代碼是:01100101,因此,任何數字化的內容(視頻,圖片,文字)本質上都只是一串串的0和1而已。
DNA存儲的原理示意圖,首先把英文字母轉變成對應的01串,然後把這個0和1的數據串轉變成由鹼基A、C、G、T表示的DNA序列;編碼的時候就是合成這個序列,解碼的時候測序解讀(圖片來自Science)
那麼,DNA的存儲原理實際上就是把原本這些用0和1來表示的內容,換成用鹼基:A,C,G,T來表示,這是一個從數字信號到化學信號的過程。而且由於鹼基有四個,相比起原本的0和1,我們可以用來多表示兩個狀態,比如,我們可以假設用A代表00,C代表01,G代表10,T代表11。一個本來要用8bit代表的字元用DNA編碼的話,只需要用4個化學鹼基,比如上面的小寫字元「e」編碼成為DNA序列就是:CGCC。
下圖是哈佛大學醫學院兩年前做的一個事情,他們第一次利用這樣的技術把這一張「奔跑的駿馬」的Gif放進了活大腸桿菌的DNA里,而且還能重新測序並解碼出來。
原始影像(左)和從DNA中提取還原的gif(右),除了部分稍有模糊,準確度達90%左右。
2016年的時候,華盛頓大學和微軟研究院的團隊(本次NBT的成果的團隊),他們更進了一步,把莎士比亞的十四行詩、馬丁?路德金的演講原聲、醫學論文等資料共計739KB的數據編碼成了DNA序列,並存儲起來,這個技術以此為標記取得了巨大的進步。
DNA存儲結構和磁碟不同,它存儲的密度極高,1克的DNA就能夠存下天量的信息,如果要存下當前全世界的所有數據,更是只需要1千克左右的DNA就足夠了!不需要成千上萬個阿里巴巴或者AWS的數據中心,看起來還更加經濟實惠,貌似一切都很美好,但是,凡事都會有一個但是。
目前DNA存儲要發展成為真正具有實際應用價值的東西,至少還需要解決以下幾個問題:
合成成本高
DNA要存儲信息,首先要做的就是依據信息合成DNA序列。那麼現在的合成成本是多少呢?大約0.5-1.0美元一個鹼基!也就是說存儲2bit(一個鹼基)的數據需要花費大約5-10塊錢人民幣。按照目前的信息存儲技術,一般是8bit為一個位元組(Byte),2個位元組(Byte)才代表一個字元——也就是說8個鹼基可以編碼一個字元,那麼你看看,要存儲200MB的數據需要花費100百萬-200百萬美刀的巨資!而200MB的大小的文件還不夠一個長一點的短視頻大啊!更何況現在動不動就幾個GB的電影呢。因此,鹼基合成的成本是第一個需要解決的難題,如果成本無法降低一百萬倍,那麼無法進入實用環節,而如果不能降低幾億倍甚至幾十億倍,那麼我認為這個技術將很難被大規模使用。
合成速度慢
這個問題可能更要命。我們現在磁碟的存儲速度是多快呢?磁碟的讀寫畢竟是電磁信號,信息狀態的改變是以光的速度在發生的——當然磁碟在讀寫數據的時候需要進行非常多的定位、查詢、比較、校驗等一系列複雜的操作,因此遠低於光速。然而即便如此,目前普通的SSD硬碟讀寫速度也有300MB/s-500MB/s,差一些的高速硬碟也在100MB/s左右!而DNA的合成速度有多快呢?DNA的合成依賴於一系列的化學反應,大腸桿菌的DNA(合成)複製速度大約是1000鹼基/秒,看起來很快了,但它的速度在電磁面前根本不值一提,我們可以算一下合成200MB的數據需要多久呢?200 * 1024 * 1024 * 8 / 1000 /86400 = 19 天!也就是說現在磁碟1秒鐘寫入的數據,我們大約需要花差不多三周的時間才能完成!
這是什麼概念?據統計截至2017年全球數據大約有16 ZB(僅指數字化的數據),那麼假設我們要把這個量級的數據存到DNA中,大概要花多長時間?我斗膽計算了一下,發現竟然需要40億年!40億年啊,同志們,地球才多老啊?這還是在不考慮數據校驗的狀態下。
更有甚者,據說到了2020年,全球數據更是要達到驚人的44ZB的量級!當然,上面的結果是在單個反應下的合成速度,事實上,我們可以讓全世界成千上萬的實驗室或者機構一起來做,同時隨著技術的發展可以設計出DNA大規模並行合成技術,就如同大規模並行測序一般,通過工程上的規模化彌補先天的缺陷,將速度提高几百萬到幾億倍,但這對合成的技術就提出了更高的要求,因為這個過程不可避免的會導致我們放棄數據原有的連續性,那麼該如何把這些打散的數據在讀取的時候重新正確地組合到一起也將成一個重要的問題。除此之外,還有實時合成呢?
數據讀取無法實時
DNA存儲的數據要讀取出來目前是通過測序這條路。雖然相比於DNA合成,測序的問題小了很多。按照當前最新的測序技術,一台NovaSeq測序儀基本上能夠在兩天的時間內完成3Tb-6Tb數據的解碼。成本相比於DNA合成也基本低了一百萬倍左右。即便如此,真要實用,依然有許多問題必須解決。比如我們在看電影的時候,你不會真的希望對著一台測序儀看吧,另外刷微信、微博、頭條、知乎等的操作是多麼頻繁和快速,DNA解碼要如何做到實時並且保障信息的可逆回滾,挑戰不小啊(中間通過磁碟來緩存嗎?)。
數據隨機讀取仍需進一步解決
所謂隨機讀取數據的意思就是我想打開哪一份文件就打開哪一份,並且我想讀取其中的哪一段就讀取哪一段,而且這個操作必須要在很短的時間內實現。這對於存儲在DNA中的數據文件來說要如何才能夠做到?
2月19日,華盛頓大學和微軟研究院合作發表在《Nature biotechnology》上的這篇文章《Random access in large-scale DNA data storage》,就是為了解決這一個問題。它最大的突破是設計了一種辦法來解決這個隨機讀取的問題——文章的名字也能夠看出來。他們把35份相互獨立的數據文件(大小約200MB)合成為DNA序列存儲起來,並且精心設計特定的引物,標記每一個文件在DNA序列上的地址(如同硬碟的存儲路徑一樣)。這個時候,當我們要重新讀取這些數據的時候能夠按照需要快速跳到特定某份文件的位置上進行測讀。比如我們想要獲取第10份文件上的內容,如果放在從前,我們只能全部測序了才能得到,但是藉助這個技術,我們可以直接跳到這份文件所在的位置上,把它測讀出來。
雖然這個技術已經做到了這一步,應該說取得了不小的進步,但也應該清晰地認識到它距離真正應用還有不小的距離。另外,依我愚見,這個方案也還有不完美的地方:
- 第一,定位精細度不夠,雖然可以定位到特定的文件,但還不能夠實現在文件內部的隨意跳轉,更加不能檢索;
- 第二,效率還是太低了,而且為了保證信息的準確,還得進行較高深度的測序,並需要進行序列組裝。雖然說測序速度在提高,但若做不到實時,應用價值依然是大打折扣;
- 第三,靈活性有待商酌,引物需要精心設計,這次是35份,如果是350份或者更多呢?當我們合成了很多份這樣的序列之後,如何保存才能保證測讀的時候,不會因為相同引物的問題而導致測讀不準確?
DNA存儲技術會顛覆現有的計算機存儲技術嗎?
我認為不會,即便DNA存儲技術成熟了,兩者也將共存很長時間。DNA存和讀的效率遠不及磁碟的速度,這是自然原理所決定的,不是一時半會能夠解決的,但它對數據保存的耐久性卻很好。因此,DNA存儲更可能的是替代磁帶存儲,把不需要經常使用的「冷」數據歸檔保存,把重要的數據進行冷存備份,而且鑒於DNA本身體積小、幾乎不耗電的特點、保存也方便,確實可以節省很多的社會資源。
小結
當然,我不是DNA合成領域的專家,對該領域的了解也不深入,寫這一篇文章更加不是為了抨擊DNA存儲的成果,相反,我非常認同DNA存儲技術的發展,更希望看到它在未來的應用。但我也很謹慎,我會想這是否真的是最好的方法。我們說DNA對數據存儲的密度遠高於現在的磁碟,但是回頭想想,如果我們能夠操縱原子的量子狀態,利用原子的量子狀態(比如:自旋)存儲數據那樣密度豈不是更加高,而且還不會有速度限制上的問題?另外,我也看不慣有些媒體的盲目誇大,甚至罔顧事實,一旦發現一個新東西就總覺得它是萬能的,總認為它將如何「顛覆」一切等諸如此類的言論。過分的誇大甚至曲解對於科學技術的發展不是好事,也不能引導公眾對其做出客觀的判斷。技術的發展有其自身的規律性,該到它顛覆一切的時候,不用說也會自然發生,現在就耐心看它長大。
我的微信公眾號:解螺旋的礦工 歡迎關注更及時了解更多信息。
推薦閱讀: