本文由中国科学院上海生命科学信息中心 战略情报团队供稿

基于DNA的分子数字数据存储:现状与挑战

编者按:美国华盛顿大学和微软研究院的研究人员2019年8月在Nature杂志发文,对基于DNA的分子数字数据存储进行总结,梳理了该领域的研究发展历史、DNA数据存储的主要过程、DNA合成和测序过程中的纠错、用于数据存储的DNA合成等,以及该领域应用面临的挑战。

01

DNA数据存储简史

利用DNA进行数据存储的基本概念可以追溯到20世纪60年代中期,当时Norbert Wiener和Mikhail Neiman探讨了“基因记忆(genetic memory)”的概念。然而,当时DNA测序和合成技术还处于萌芽期。直到20年后(Dawkins在其1986年出版的《盲眼钟表匠》一书中讨论了这个想法),Joe Davis首次使用生物艺术片“微核”试验证实了DNA数据存储的概念。

20世纪20年代初,该领域出现了重大突破,Church和Goldman等重新审视了DNA数据的概念,分别将成百上千字节的数据进行存储并观察到有可能在可预见的时间范围内实现读写过程中的DNA数据存储。图1展示了该领域研发过程的时间轴、数据量以及使用的主要技术。尤其值得注意的是,在容量方面呈现明显的指数增长率,仅仅6年的时间就实现了大约3个数量级的进展。大多数研究是基于磷酰胺的DNA合成法,该方法已经经历了几十年的摸索和完善。酶促DNA合成仍然是新兴的研究领域,但也已经用于数据存储。对于数据读取来说,大多数研究是通过合成的测序法,这是Illumina公司推出的一种商用测序方法。最近,多个团队利用牛津纳米孔技术微型平台,通过纳米孔测序法成功实现了数据解码,尽管数据量仍然有限,人们期待通过不断的研究这些通量将有所增加。

综上所述,DNA数据存储的大多数早期工作都涉及体内克隆和存储组件,称为“水印或隐写术”。最近,体内DNA数据存储的一个新兴分支是利用合成生物学研究进展来记录生物体基因组的新信息。尽管细胞相对大小导致了整体数据存储密度较低,体内DNA数据存储不太可能成为一般主流数字数据存储的可行替代方案,除了活细胞中天然DNA的修饰和额外的复杂性之外,体内DNA数据的记录和存储可以实现新型应用,例如,记录有关细胞历史和环境信息。这样的系统被视为是按照细胞内的时间顺序记录动态分子事件并保存数据以便之后读取的分子磁带。

图1 DNA数字数据存储相关主要成果的时间线

02

过程概述

DNA数据存储主要包括四个步骤,如图2所示。

图2DNA数字数据存储的主要步骤

编写。DNA中数据的编写从编码开始:采用计算机算法将一系列字节转换为DNA序列,然后合成得到DNA序列,产生每个序列的多个物理拷贝。DNA序列是任意的,但长度有限,就像字节串被分成小片段,在后续过程中重新组合成原始数据。为了实现重新组装,必须对每个片段进行索引或者在不同DNA片段中包含重叠序列。Heckel等从理论上确定了索引方法的存储容量并证明基于索引方法的编码方案是最优的。对于任何有趣的信息量,都需要合成大量不同的DNA序列,因此基于阵列的合成方法很有潜力,该方法可以并行合成许多独特的序列。

存储。一旦DNA合成,就需要进行存储。Organick等估计分离的DNA池可以存储在1012个字节中。因此需要这样的池库来扩大存储系统规模。

检索。如果需要提取数据项,就要对相应的DNA池进行物理检索和取样。为了避免读取池中的全部数据,需要类似计算机那样的随机访问或者从更大集合中选择性读取特定数据项的能力。这个功能在主流数字存储介质中已经得到实现,但由于相同的分子池中缺乏数据项的物理组织,因此分子存储在这方面具有更大的挑战。可以通过选择性过程,例如,对应数据的磁珠探针分离方法或是在编码过程中使用数据存储相关引物,采用PCR的方式来实现DNA数据存储中的随机存取。

读取。选定DNA样本后,下一步是测序,产生一组与测序仪检测到的分子相对应的数据,然后以很大的概率将这些读数解码,恢复为初始的数字数据。操作的成功取决于测序的覆盖率和整个过程的错误率。

03

编解码过程中错误的处理

DNA合成和测序过程中容易出错。有关DNA数据存储的报告称,每个碱基在每个位置的错误率约为1%。更准确地说,对于DNA链中的一个特定位置,当合成和测序时,大约1%的概率在读取时将会在该位置出现错误。这些适用于Caruthers化学方法的阵列DNA合成,以及Illumina仪器进行的合成测序。有趣的是,Yazdi和Bornholt等发现,大多数错误是由测序引起的。Organick等指出,纳米孔测序的误差约为10%。Heckel等的研究进一步表明误差主要来自合成和测序,DNA操作、PCR和存储也可能导致擦除,即某些序列在混合物中的数量不成比例的偏低。

对存储应用程序中的最终用户来说,暴露出来的这种程度的错误将是灾难性的。因此,将纠错码覆盖在原始存储介质上至关重要。有趣的是,现代磁性介质的原始错误率约为1%。简言之,可靠的数据存储和检索需要适用于所有类型介质(和通讯渠道,例如无线电)的校正方法。事实上,被称为信息理论或编码理论的计算机科学领域,正在致力于开发可以在噪声介质和通讯渠道中可靠传送数字数据的编码方案。与DNA相关的有趣的点在于:与其他只能替换错误的存储通道不同,DNA通道还可以进行基本插入和删除,这使得编码更具挑战性。

表1 体外DNA数据存储的演示举例

表注:表中包括所使用的合成和测序方法、编码和解码方案,以及每种方法的随机访问属性。关于不同计算机代码的研究揭示了编码和解码的过程。

04

用于数据存储的DNA合成

目前,大多数DNA数据存储实验采用的是磷酰胺寡核苷酸合成法进行DNA编写。表1显示最近已经实现大量数据存储的工作。这种方法以每次添加一个核苷酸、循环进行的方式延长DNA链,可逆地“阻断”单核苷酸从而防止产生不需要的均聚物。使用酸溶液或利用光不稳定基团的光诱导反应来清除阻碍基团。每个合成循环将所选单体整合进入现有的聚合体,通过氧化增强结合;使用溶剂洗去多余的单体,清除最后添加单体上的阻断基团并且调用下一个合成周期或结束合成过程。最常见的合成错误出现在清除最后添加单体上的阻断基团,因此合成过程中最常见的错误类型为插入和删除。

通过调控机制并选择性地将特定碱基添加到特定链上,DNA合成可以平行进行。这使得能够在固体基质中的不同点合成不同序列,通常称为阵列合成:序列被定植在一个表面上,试剂连续流动以循环方式增加碱基。已经实现的技术,常用的有三种:基于光的阵列(光激活的pH变化或光不稳定化学)、选择性地解块序列(deblock sequences)并同时向所有已解块序列和基于沉积的阵列添加相同碱基的电子阵列,还有在所需位置选择性增加碱基的沉积碱基阵列

05

面临的挑战

在短期和中期内,访问延迟[1](读取时间)可能会继续比较高(分钟到小时),但随着带宽(数据读写通量)的提高,体外DNA数据存储能够共存或有望取代商业介质来进行数据存档存储的应用。原因在于档案存储可以容忍更高的延迟并从较小的印记和较低的静态数据能量成本中获益。

当前DNA数据存储的总编写通量可能是每秒千字节水平。预计在未来十年,能够与主流云档案存储系统竞争的系统,需要提供每秒千兆字节的读写通量。这与合成能力相差6个数量级,与测序能力差2-3个数量级。就成本而言,磁带存储成本约为每万亿字节16美元(2016年),并且逐年下降10%。DNA合成成本通常是保密的,但业内领先的分析师估计阵列合成的成本约为每个碱基0.0001美元,相当于每万亿字节8亿美元或者说比磁带高7-8个数量级。尽管通量和成本差距令人望而生畏,但DNA数据存储不同于生命科学中的存储方式:由于纠错码的应用,可以为了速度牺牲精度,也可以显著降低物理冗余。这样可以进一步推动合成和测序性能的改进。同时,更大的合成介质和更大的DNA量将会分摊成本,这也有利于成本的降低。与生命科学相比,数据存储中每个序列所需拷贝数的量级要低,更多的平行合成可以改善通量,更小的斑点也将按比例地节约试剂用量。

最终,重要的考虑因素之一是DNA分子的物理存储和保存。尽管有人证实可以读取几千年(有时几十万年)前的DNA,但是DNA的降解速度可能快得多,这取决于DNA所暴露的条件(例如高温、高湿度和紫外线照射可能导致其降解)。为了解决这个问题,不同的团队提出了各种为DNA提供适宜保存条件的方法。化学解决方案包括脱水和/或冻干、添加剂(可生物降解的DNA稳定剂或海藻糖)或使用保护材料,例如,用二氧化硅进行化学封装。化学解决方案和添加剂的制备更迅速,不过封装能够在湿度较高(50%)的环境中提供更长的保质期和更好的保护。DNA存储容器具有多种材料和形式,例如滤纸(Whatman)、不透气的不锈钢微胶囊(Imagene)、塑料孔板(Biomtrica)。这些是为生物样品量身定制的并能优化纯度,因此密度和成本都会受到影响。DNA数据存储物理文库需要在不显著降低密度的情况下提供完整的自动化和可扩展路径,是很大程度上的开放研究课题。这些系统的自动化面临着多重挑战,自动化系统使其能够用于大规模存档存储。这样的环境通常要以最小的人为干扰运行。大多数合成和测序之外的DNA操作都是由实验室环境中的人员进行的。最近,Takahashi等首次公开了自动化DNA数据存储系统,微流体领域的最新进展或许能够用于DNA数据存储的自动化。

06

结论

将体内和体外DNA数据存储进行比较可以明显发现,考虑到成本、可扩展性和稳定性等因素,体外存储是更实际的方式。不过,体内存储系统可以作为收集新数据而不是保存现有数字数据的生物记录设备。也就是说,体内数据存储的额外优势还尚未体现。最近的研究表明,在大肠杆菌体内存储数据可能是一种实用的微尺度随机数据访问方法。随着合成生物学领域的不断成熟,体内数据存储还可以解决体外存储无法避免的缺点。

数字革命改变了人类与数据的关系,使社会进入信息时代。现在正在产生的的数据类型和绝对数量都超过了现有技术的存储能力。新形式的数字数据存储需要跟上时代步伐。磁带和光盘这些主流存储形式正在接近密度极限,DNA数据存储是一种很有前途的可替代方式。DNA的持久性和永恒相关性经受过时间考验,这些特性使其成为长期数据存档的自然选择。同时,最初为生命科学应用开发的DNA合成、测序和检索技术可以在数据存储系统中重新调整。随着DNA数据存储研究的进展和进步,预计为DNA数据存储量身定制的技术创新有望逐渐改善目前应用的主要障碍。


[1]访问延迟(Access latency):检索数据所需的时间。

numpy序列预处理dna序列_合成生物学快讯2019年第12期:基于DNA的分子数字数据存储...相关推荐

  1. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储-阿里云开发者社区...

    前言 现在越来越多的人都开始关心自己的运动数据,比如每日的计步.跑步里程.骑行里程等.运动APP与运动类的穿戴设备借助传感器.地图.GPS定位等技术,收集好运动数据以后,通过与互联网社交功能结合,产生 ...

  2. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储

    前言 现在越来越多的人都开始关心自己的运动数据,比如每日的计步.跑步里程.骑行里程等.运动APP与运动类的穿戴设备借助传感器.地图.GPS定位等技术,收集好运动数据以后,通过与互联网社交功能结合,产生 ...

  3. 全站最详细的Python numpy 搭建全连接神经网络模型教程(理论计算+代码实现)(不止能预测手写数字数据,准确率93.21%)

    1.引言 本文构建的全连接神经网络模型结构图如上.其中中间隐藏层的数量以及各层(输入层.隐藏层.输出层)的神经单元数量均可 自由设置,本文构造的神经网络并不是专门为识别手写数字而写死的,而是可以根据 ...

  4. 用Python将文本转换为DNA序列

    用Python将文本转换为DNA序列 脱氧核糖核酸(DNA)是一种有前途的存储介质,能够存储和存档我们大量的数据. 当比特被转换为碱基时,数据可以在DNA中进行编码. 编码数据就是将其从一种形式转换为 ...

  5. 《保护我们的数字遗产:DNA数据存储》白皮书发布

    编者按: 2020年10月,Twist Bioscience.Illumina.Western Digital(西部数据).微软研究院等公司和机构联合成立DNA数据存储联盟(DNA data stor ...

  6. python数据存储和查询代码_【Python分享】如何便捷地存储、查询数据

    前言在之前的文章(如下)中,分享了爬取天天基金.中债指数的代码.爬取的数据很多,如何方便地存储.查询,也是一个麻烦的问题.本文分享一下我实现的基于 lsm-db 的本地文件数据存储.查询模块. 分享天 ...

  7. numpy序列预处理dna序列_使用机器学习和Python揭开DNA测序神秘面纱

    "脱氧核糖核酸(DNA)是一种分子,其中包含每个物种独特的生物学指令.DNA及其包含的说明在繁殖过程中从成年生物传给其后代." 简介 基因组是生物体中DNA的完整集合.所有生物物种 ...

  8. numpy序列预处理dna序列_个人隐私DNA亲子鉴定序列

    个人隐私DNA亲子鉴定序列 DNA亲子鉴定是基于医学,法律或个人原因解决亲子关系的最先进,最准确的方法. 周转时间:凭借先进的DNA技术,亲子鉴定准确,快速且价格合理.现在可以在样品到达实验室后的3至 ...

  9. numpy序列预处理dna序列_【陪你学生信】七、在数据库中检索相似的序列

    一.相似度Similarity 序列的分析离不开相似度这个指标,相似度比较高的序列往往具有相似的结构.执行相似的功能.所以用未知序列blast得到的结果可以对未知序列进行推测. 当两个序列非常相似时, ...

最新文章

  1. phpcms_v9修改文章会提示 [hash]数据验证失败
  2. PHP CURL方法,GETPOST请求。
  3. nginx服务器安装及配置文件详解
  4. 数据挖掘十大经典算法之——PageRank 算法
  5. 洛谷——P2118 比例简化
  6. Divan and Kostomuksha (H version) dp,gcd(2300)
  7. api 请求 fail_谈一谈定位api的使用
  8. 石头剪刀布php源码,php实现的网页版剪刀石头布游戏示例
  9. 为什么嵌入式工程师会对8位MCU有误解?
  10. Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
  11. Unity的Json解析二–写Json文件
  12. SQL Server中的部分存储过程
  13. C# 读书笔记之访问虚方法、重写方法和隐藏方法
  14. 电压比较器之LM393工作原理
  15. Java多线程+线程池
  16. windows 7 远程桌面连接图文教程
  17. 含有使字的诗句_带有一字的诗句
  18. centos 7 JDK 环境部署
  19. mysql 基础 打油诗
  20. Anaconda从C盘移动到D盘

热门文章

  1. 能力不够,你就态度好点
  2. 如何使用java解析json文件并将其写入数据库
  3. 苹果耳机airpods2需要激活?_苹果耳机三兄弟,谁才是安卓手机的绝配?
  4. 俺的作品也开始有盗版了... hiahia... 奇怪, 为什么我反而很得意涅...
  5. 开源分布式存储系统的对比
  6. 学习前端常用到的网站
  7. 天龙八部TLBB从0到1搭建教程-中
  8. 配置PyCharm(背景色+字体大小+解释器选择)
  9. java基于ssm框架的企业人事管理系统企业工资考勤系统
  10. 北京大学,南下布局!