题图:华盛顿大学副教授Luis Henrique Ceze(照片中的男士)和研究科学家Lee
Organick正将数字数据保存进DNA测序,以供“读取”并追溯原始文件。

来自微软和华盛顿大学的研究人员已在DNA储存技术上取得了初期突破性进展 ——
在分子链上存储了破纪录的200MB数据。

然而,这项技术最令人惊叹的并非是能将数据编入合成DNA并可实现解码,而是它可实现的存储容量。

“一旦编入DNA,数据在试管中所占空间甚至小于铅笔笔尖。”该项目的微软合伙人级架构师Douglas Carmean说。

让我们来试想一下,将一个大型数据中心的数据压缩进几块方糖大小的空间。或是因特网上所有公开数据的存储只需一个鞋盒大小的空间。这就是DNA存储技术的前景
—— 只等科学家们攻克一系列技术难关并实现大规模应用。

微软-华盛顿大学研究小组在DNA链中储存了多件艺术作品的电子版(包括了OK
Go!乐队的高清视频)、《世界人权宣言》的上百个语言版本、古登堡计划前100本图书以及非营利机构全球农作物多样性信托基金(Crop
Trust)的种子数据库。

今天,数据存储需求呈指数级增长,但现有存储媒介的容量却未能与之匹配。这让有大量数据存储需求的组织、机构非常困扰,例如那些需要保存病患资料的医院和需要保存视频文件的公司。这意味着信息将会丢失,而且如果没有新的解决方案,这一问题将日益严重。

DNA也许就是上述问题的答案。

作为储存媒介,DNA具备多个优势。例如体积微小、耐用 ——
妥善保管的话,能保存很长时间(比如,猛犸象虽然在几千年前已灭绝,我们依旧能通过DNA追溯到它们),而且研究人员相信DNA永不“过时”。

微软研究员Karin
Strauss说:“只要地球上有基于DNA的生命存在,我们就有兴趣研究。所以我认为DNA永远和我们息息相关。”

这也解释了为什么微软-华盛顿大学研究小组只是全球众多致力于研究DNA这座数字象牙塔的团队之一。

研究员们认识到这一研究还有很多工作要做。

华盛顿大学计算机科学与工程副教授、研究小组成员之一Luis Henrique
Ceze说,近几年生物科技产业在DNA合成(编码)与测序(解码)技术上有了长足的进步。尽管如此,要让DNA存储成为一项稳定可行的技术,团队还有很多工作要做。

但是,研究员们都很乐观。

去年,这个由计算机科学家、计算机架构师以及分子生物学家组成的研究小组已将DNA存储能力提升了上千倍。他们相信如果在整个过程中运用“纠错”等计算机科学原理可以加速完善DNA存储技术。

为了解微软-华盛顿大学小组的研究工作,让我们回忆一下高中生物课上的DNA知识 ——
DNA又被称为脱氧核糖核酸,是一种携带所有已知生命体生长、发育、运行和繁殖等生物指令的分子。

Ceze做研究的分子信息系统实验室(Molecular Information System
Lab)坐落在华盛顿大学的某个地下室,“DNA是一个非常棒的信息存储分子,可以对一个生命系统运行模式的数据进行编码。我们正对这一特性进行微调,以保存包括图片、视频和文件在内的数字数据。这也是借鉴物体本质、打造更好的计算机系统一个范例。”

在DNA中保持数字数据的流程基本如下:

首先,需要将数据从1和0转译成DNA分子中的四种核苷酸碱基,即腺嘌呤(A
或Adenine)、胞嘧啶(C或Cytosine)、鸟嘌呤(G或Guanine)、胸腺嘧啶(T或Thymine)。

DNA合成公司Twist
Bioscience会“将还处于电子形式的核苷酸碱基合成为DNA分子,并发还研究员。”Strauss说,“其实就是一支试管,你几乎看不到里面有什么。看上去就好像底部有一些已干燥的盐。”

利用生物技术微调随机存取内存
(RAM)以读取数据,是又一个从计算机科学借鉴的概念。研究小组通过一种分子生物学家经常用来控制DNA的技术——聚合酶链式反应(PCR)——对所需回收的分子链进行复制或者“放大”。一旦所需信息密度大幅增加,研究员将开始采样,测序或解码DNA,然后进行错误校正计算。

关于科研的介绍就到此为止了,最后一个问题:为什么要选了OK Go!的音乐视频?
“我们非常喜欢这个视频,因为它和我们的工作有许多相似之处。”Strauss笑着说,“他们非常有创意,把形形色色的东西融入自己的音乐里,我们的工作也正是如此。”

这有一管信息量很大的DNA的更多相关文章

  1. PHP读写大“二进制”文件,不必申请很大内存(fopen、fread、fwrite、fclose)

    <?php /** * 读写大二进制文件,不必申请很大内存 * 只有读取到内容才创建文件 * 保证目录可写 * * @param string $srcPath 源文件路径 * @param s ...

  2. 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性

    2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...

  3. 【knowledgebase】不要在一个很大的RDD上调用collect

    如果一个RDD很大以至于它的所有元素并不能在driver端机器的内存中存放下,请不要进行如下调用: val values = myVeryLargeRDD.collect()   collect将尝试 ...

  4. MySQL数据很大的时候

    众所周知,mysql在数据量很大的时候查询的效率是很低的,因为假如你需要 OFFSET 100000 LIMIT 5 这样的数据,数据库就需要跳过前100000条数据,才能返回给你你需要的5条数据.由 ...

  5. mysql5.6启动占用内存很大的解决方法

    vps的内存为512M,安装好nginx,php等启动起来,mysql死活启动不起来看了日志只看到对应pid被结束了,后跟踪看发现是内存不足被killed; 调整my.cnf 参数,重新配置(系统默认 ...

  6. Slave延迟很大的优化方法总结(MySQL优化)

    [http://www.cstor.cn/textdetail_9146.html] 一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发.简单说,在m ...

  7. [MySQL优化案例]系列 — slave延迟很大优化方法

    备注:插图来自网络搜索,如果觉得不当还请及时告知 :) 一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发.简单说,在master上是并发模式(以In ...

  8. 有一个很大的整数list,需要求这个list中所有整数的和,写一个可以充分利用多核CPU的代码,来计算结果(转)

    引用 前几天在网上看到一个淘宝的面试题:有一个很大的整数list,需要求这个list中所有整数的和,写一个可以充分利用多核CPU的代码,来计算结果.一:分析题目 从题中可以看到“很大的List”以及“ ...

  9. string::npos,一个很大的数

    string::npos,这是一个很大的数 npos 是这样定义的: static const size_type npos = -1; 因为 string::size_type (由字符串配置器 a ...

随机推荐

  1. python机器学习(2:KNN算法)

    1.KNN 简介:knn算法是监督学习中分类方法的一种.它又被叫k近邻算法,是一个概念极其简单而分类效果又很优秀的分类算法. 核心思想:在训练集中选出离输入的数据最近的k个数据,根据这k个数据的类别判 ...

  2. js几个常用的弹层

    js弹层技术很常见,自己每次用上网找,一找一大堆. 对比了几种,考虑通用性和易用性,这里记录两个. jQueryUI的http://jqueryui.com/dialog/#modal-form ar ...

  3. SAP PM:参考维护工单创建测量凭证

    (1)使用FM:CO_BC_ORDER_POST获取工单资料(Aufnr, aufpo and materials etc): (2)使用FM:MEASUREM_DOCUM_RFC_SINGLE_00 ...

  4. EMD——EEMD——CEEMD语音增强算法基础

    首先,HHT中用到的EMD详细介绍:https://wenku.baidu.com/view/3bba7029b4daa58da0114a9a.html 本文具体参考 https://zhuanlan ...

  5. mysql不常用查询

    --查看数据库版本 SELECT VERSION(); --查看字符编码与安装路径 SHOW VARIABLES LIKE '%char%';

  6. day48-线程-信号量

    #1.信号量,用来保证多个线程不会互相冲突. #2.迷你唱吧:每次只能有两人在里面唱k: from threading import Thread from threading import Sema ...

  7. linux特殊权限(acl)

    建立用户目录       创建目录/oldboy/tech./oldboy/edu,分别用于不同项目组添加组账号       添加组账号tech.edu,GID分别设置为1001.1002      ...

  8. 5-7 学生cpp成绩统计

    完成“学生cpp成绩计算”之后,修改Person和Student类,各自增加两个无参构造函数. 仍以Person类为基础,建立一个派生类Teacher,增加以下成员数据: int ID;//教师工号 ...

  9. linux误删除恢复(未验证)

    extundelete 大家基本都知道,在linux上误删除了东西后果是很严重的,尤其是在服务器上误删除了东西,对于字符终端,想要实现恢复删除的数据更是难上加难,对于Linux误删除了重要的东西,虽然 ...

  10. iOS 开发中有关pch文件,以及pch常用的内容

    一.创建pch文件.点击command+N.如下图操作 命名规则一般都是:项目名称-Prefix 第二步 OK,到这里已经把pch文件制作完毕.接下来就可以用了. pch文件一般书写的是全局都可以用到 ...