题图:华盛顿大学副教授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访问Amazon官网异常

    使用Python访问亚马逊(Amazon)官网,如果没有将headers更改为浏览器的信息, 有几率会触发:检测到当前可能是自动程序,需要输入验证码: 将header修改成浏览器后,需要等一段时间或者 ...

  2. 大数据学习——MapReduce学习——字符统计WordCount

    操作背景 jdk的版本为1.8以上 ubuntu12 hadoop2.5伪分布 安装 Hadoop-Eclipse-Plugin 要在 Eclipse 上编译和运行 MapReduce 程序,需要安装 ...

  3. 用户界面编程模式 MVC MVP MVVM

    用户界面编程模式 MVC MVP MVVM 程序 = 数据 + 算法 数据:就是待处理的东西 算法:就是代码 涉及到人机交互的程序,不可避免涉及到界面和界面上显示的数据原始方式是界面代码和逻辑代码糅合 ...

  4. 【二进制枚举+LCS】Card Hand Sorting

    [二进制枚举+LCS]Card Hand Sorting 题目描述 When dealt cards in the card game Plump it is a good idea to start ...

  5. vue项目打包部署elementUI的字体图标丢失问题

    自己搭建的Vue项目,没有使用vue-cli,引入elementUI时,使用的是webpack直接打包工具,发现字体图标丢失你 记录一下解决办法: webpack module配置:(build目录下 ...

  6. AJAX数据传输(原生js)

    原生ajax写法 <!DOCTYPE html> <html lang=""> <head> <meta charset="UT ...

  7. linux下常用命令查看端口占用

    在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询netstat命令各个参数说明如下: -t : 指明显示TCP端口 ...

  8. QuickSort(快速排序)原理及C++代码实现

    快速排序可以说是最重要的排序,其中延伸的思想和技巧非常值得我们学习. 快速排序也使用了分治的思想,原理如下: 分解:数组A[p..r]被划分为两个(可能为空)子数组A[p..q-1]和A[q+1..r ...

  9. centos xshell wireshark

    centos安装wireshark yum install wireshark yum install wireshark-gnome 本地windows安装Xming Xming X Server ...

  10. 信贷建模little tricks

    一.逻辑回归 概率分类模型 选取样本:对逻辑回归这种概率分类模型来说维持原来样本真实的分布还是有必要的,但是对一些树模型来说可以通过采样来平衡样本. 原来评分卡建模还有个拒绝推断,就是为了还原人群真实 ...