dna在计算机领域的应用,DNA也可以构成计算机?可在分子层面“编程”?

2023-11-02 15:10

本文主要是介绍dna在计算机领域的应用,DNA也可以构成计算机?可在分子层面“编程”?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们千篇一律地想象电子设备是用硅芯片制造的,其中计算机存储和处理用微小电荷表示的二进制零一数码信息。但是它并不一定要是这种方式:在硅的替代品中,有像DNA这样的有机介质。

Leonard Adleman在1994首先演示了DNA计算,他完全用DNA编码和求解了旅行推销员问题,这是一个寻找推销员在假想城市之间旅行的最有效路径的数学问题。

pg

脱氧核糖核酸DNA,能以分子编码序列存储大量信息,这些编码被称为核苷酸,包括胞嘧啶(C)、鸟嘌呤(G),腺嘌呤(A)、胸腺嘧啶(T)。不同物种遗传密码的复杂性和的巨大差异显示出用CGAT编码能在DNA中存储多少信息,而这种能力可以被用于计算。利用称为核酸分子杂交的结合工艺,DNA分子可以用来处理信息。它使用一条DNA链作为输入,通过转换产生后续DNA链作为输出。

自Adleman实验以来,已经提出许多基于DNA的“电路”来实现如布尔逻辑、算术公式、和神经网络计算等计算方法。这种称为分子编程的方法,把计算上的惯用概念和设计应用到适合于处理DNA的纳米尺度方法。

在这个意义上的“编程” 真正是生物化学过程。所创建的“程序”实际上是选择分子相互作用的方式,以DNA自组装过程实现特定结果,无序的分子集合自发地相互作用,形成所需排列的DNA链。

DNA“机器人”

DNA也能用于控制运动,可以有基于DNA的纳米机械装置。这由Bernard Yurke和同事们在2000年首先实现,他们用DNA链创造了能开合的镊子。后来的实验如2011年Shelley Wickham和同事们和牛津Andrew Turberfield实验室演示了可以遍历给定路线的纳米尺度行走机器,完全由DNA制成。

一个可能的应用是,这样的纳米机器人DNA行走器可以沿着轨道边步进边做出决策,并在到达终点时发出信号,表示计算已经完成。正如电子电路是印刷在电路板上的,DNA分子可以用来打印类似的轨道,在DNA砖上排列成逻辑决策树,沿途用酶控制决策分支,导致行走器走上这个或那个轨道。

DNA行走器也可以携带分子货物,因此可以用来在体内运送药物。

为什么要用DNA进行计算?

DNA分子有许多吸引人的特性,包括它们的尺寸(2纳米宽度),可编程性和高存储容量——远远大于它们的硅片同行。DNA同时也是多用途、廉价和容易合成的,而且用DNA计算所需的能耗比电力驱动的硅处理器少得多。

它的缺点是速度:它目前需要几个小时来计算四位数字的平方根,传统计算机可以在百分之一秒内完成。另一个缺点是DNA电路是一次性使用的,需要重新建造才能再次运行相同计算。

DNA对于电子电路最大的优点可能是它可以与其生物化学环境相互作用。分子计算涉及识别某些分子的存在或缺失,因此DNA计算的一个自然应用就是把这种可编程性带入环境生物传感领域,或在生物体内递送药物和疗法。

DNA程序已经被投入医学使用,如诊断结核。另一个提议中的应用是以色列魏茨曼科学研究所的Ehud Shapiro编写的针对肿瘤分子的纳米生物学“程序”,被称为“细胞中的医生”。其它的DNA医用程序能针对淋巴细胞(一种白细胞),它是以特定细胞标记物的存在或缺失而定义的,自然可以用真/假布尔逻辑来检测。然而,我们还需要更多努力,才能将智能药物直接注入生物体内。

yh0k1vj4Uo8XLnRQ

DNA计算的未来

从广义上说,DNA计算具有巨大的未来潜力。它的巨大存储容量、低能耗成本、利用自组装能力的易于制造性、以及它与自然世界的易亲和力,都是进入纳米尺度计算的入口,可能的设计将集成分子和电子元件两者。自诞生以来,该技术已取得飞速进展,已经交付了现场即时诊断和概念验证智能药物——能就治疗类型作出诊断决定。

当然,也有许多挑战需要加以解决,才能使该技术从概念验证前进到真正的智能药物:DNA行走器的可靠性、DNA自组装的鲁棒性、以及改进药物输送。但一个世纪的传统计算机科学研究会有助于通过新的编程语言、抽象、和形式化验证技术来研发DNA计算,这些技术已经革命了硅电路设计,同样能助力有机计算沿着相同路径起飞。

这篇关于dna在计算机领域的应用,DNA也可以构成计算机?可在分子层面“编程”?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/331464

相关文章

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit