这有一管信息量很大的DNA
题图:华盛顿大学副教授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的更多相关文章
- PHP读写大“二进制”文件,不必申请很大内存(fopen、fread、fwrite、fclose)
<?php /** * 读写大二进制文件,不必申请很大内存 * 只有读取到内容才创建文件 * 保证目录可写 * * @param string $srcPath 源文件路径 * @param s ...
- 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性
2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...
- 【knowledgebase】不要在一个很大的RDD上调用collect
如果一个RDD很大以至于它的所有元素并不能在driver端机器的内存中存放下,请不要进行如下调用: val values = myVeryLargeRDD.collect() collect将尝试 ...
- MySQL数据很大的时候
众所周知,mysql在数据量很大的时候查询的效率是很低的,因为假如你需要 OFFSET 100000 LIMIT 5 这样的数据,数据库就需要跳过前100000条数据,才能返回给你你需要的5条数据.由 ...
- mysql5.6启动占用内存很大的解决方法
vps的内存为512M,安装好nginx,php等启动起来,mysql死活启动不起来看了日志只看到对应pid被结束了,后跟踪看发现是内存不足被killed; 调整my.cnf 参数,重新配置(系统默认 ...
- Slave延迟很大的优化方法总结(MySQL优化)
[http://www.cstor.cn/textdetail_9146.html] 一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发.简单说,在m ...
- [MySQL优化案例]系列 — slave延迟很大优化方法
备注:插图来自网络搜索,如果觉得不当还请及时告知 :) 一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发.简单说,在master上是并发模式(以In ...
- 有一个很大的整数list,需要求这个list中所有整数的和,写一个可以充分利用多核CPU的代码,来计算结果(转)
引用 前几天在网上看到一个淘宝的面试题:有一个很大的整数list,需要求这个list中所有整数的和,写一个可以充分利用多核CPU的代码,来计算结果.一:分析题目 从题中可以看到“很大的List”以及“ ...
- string::npos,一个很大的数
string::npos,这是一个很大的数 npos 是这样定义的: static const size_type npos = -1; 因为 string::size_type (由字符串配置器 a ...
随机推荐
- macOS更新失败解决
下载离线更新包解决. https://support.apple.com/downloads/combo
- HTTP编码
HTTP编码 不仅仅URL需要编码,HTTP header也需要编码,HTTP body 无特殊要求 一般采用百分号编码:比如一个字节的ascii码值是 0x89 那使用百分号编码之后 输出是 %89 ...
- java.lang.IllegalArgumentException: Cannot format given Object as a Date
在进行日期转换的时候遇到了这个问题, 非常的恼火 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" ...
- lnmp环境搭建:Centos7 + Nginx1.12.2 + Mysql-5.6.38 + PHP7.2.0
https://blog.csdn.net/ty_hf/article/details/50622888
- 工作常见的git命令
Git创建项目仓库: 1.git init 初始化 2.git remote add origin url 关联远程仓库 3.git pull 拉取远程仓库到本地 相当于(git fet ...
- 吴裕雄--天生自然python学习笔记:python 用 Tesseract 识别验证码
用 Selenium 包实现网页自动化操作的案例中,发现很多网页都因 需输入图形验证码而导致实验无法进行 . 解决的办法就是对验证码进行识别 . 识 别的方法之 一 是通过图形处理包将验证码的大部分背 ...
- 关于Java集合框架总结
Java集合专门用来存放多个对象,方便程序处理数据.Java提供了多种集合类,以便满足不同的应用需求,这些集合类分为两大系列:Collection和Map List List的通用方法 boolean ...
- BZOJ 2318: Spoj4060 game with probability Problem (概率dp)(博弈论)
2318: Spoj4060 game with probability Problem Description Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬币,如果 ...
- 磁盘处于脱机状态"解决办法
由于管理员设置的策略,该磁盘处于脱机状态"解决办法 1.运行:cmd 2.输入:DISKPART.exe 3.DISKPART> san 4.DISKPART> san poli ...
- 文件加密,密码加密,os模块
序列化模块 (非常非常重要) 序列化:将一个数据结构(list,dict....)转化成一个特殊的序列(特殊的字符串)的过程. # l1 = [1, 2, 3] # ret = str(l1) # p ...