热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

新编程语言CRN++诞生:用来编程化学反应

德克萨斯大学奥斯汀分校的研究人员创造了一种新的编程语言CRN,旨在设计合成分子并对其进行编程,通过编程分子定义它们之间的化学反应。研究人员还开源代码&#

德克萨斯大学奥斯汀分校的研究人员创造了一种新的编程语言CRN++,旨在设计合成分子并对其进行编程,通过编程分子定义它们之间的化学反应。研究人员还开源代码,包括CRN ++,以及模拟框架。

合成生物学是一个相对较新的研究领域,可能会对生物学、纳米制造、医学等许多领域产生重大影响。这个新兴领域的一个主要挑战是在无法插入电子微控制器的情况下,在分子环境中嵌入计算。要做到这一点,需要开发出可以使用分子成分有效表示计算的方法。

 

德克萨斯大学奥斯汀分校的一组研究人员创造了一种新的编程语言CRN++,这是一种在执行计算时编程确定性(质量作用)化学动力学的新语言。他们在arXiv预印版论文中描述了这种新语言,并构建了一个将CRN++程序翻译成化学反应的编译器。

 

论文地址:https://arxiv.org/pdf/1809.07430.pdf

 

“合成生物学的一个关键技术挑战就是设计一种在细胞环境中相互作用的化学控制器,以完成特定的任务,”这项研究的研究人员之一Marko Vasic说:“为了实现这一目标,有必要设计合成分子并对其进行编程。分子通过化学反应相互作用,而通过编程分子,我们可以定义它们之间的相互作用规则(化学反应)。”

 

Euclid算法以及如何用CRN++编写  图片来源:Vasic et al.

 

最近,DNA合成取得的进展为分子工程开辟了新的、令人兴奋的可能性。然而,合成生物学的研究人员首先需要找到设计相互作用规则(化学反应)的方法,以达到预期目标。这项研究的主要目的是设计一种能够以更直观的方式表达化学反应行为的高级语言。

 

Vasic解释说:“在软件工程中,程序员用一种易于理解的高级语言编写程序,这样的程序被编译成机器代码,这些代码人类难以理解,但机器可以理解。” “我们试图通过定义一种高级语言来建立分子编程中的类比,这种语言更容易理解,也更容易编译成‘复杂的’化学。”

 

编译器的输出以及CRN++程序的模拟结果。 图片来源:Vasic et al.

 

CRN++基于两个想法:模块化振荡器(oscillator)的使用。模块化意味着该语言包含一组称为模块(modules)的化学反应,这些化学反应可以在不同的反应集之间不受干扰地组成。为了实现这一点,研究人员将CRN++的基本操作映射到这些模块。他们还使用了一个化学振荡器(chemical oscillator)来进行时间排序,这样他们就能够将语言中的有序命令翻译成化学。

 

“据我们所知,我们是第一个提供符合化学反应网络的命令式编程语言的团队,”Vasic说。“我们开源了代码,包括CRN++,以及模拟框架,因为我们希望这将帮助研究人员更容易尝试新的方法,从而进一步推进该领域的研究。”

 

研究人员对CRN++进行了评估,并证明了其在一系列离散和实值计算算法上的可行性。新语言还可以轻松扩展,以支持新的命令或实现,使其成为开发更高级的分子程序的理想基础。

nainaitea.com

“从CRN++翻译成化学的程序包含一些错误,这些错误在某些类别的程序中可能非常低,但在其他程序中可能很高,或随着时间的推移错误会逐渐增加,”Vasic说:“因此,我们计划进一步调查错误来源并设计程序,以确保错误不会超过一定的界限。”

 

Vasic和他的同事们也希望通过包含新的模块来扩展他们的编程语言,这些模块被定义为可以执行基本操作的化学反应集。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 计算成像的原理与应用研究
    本文探讨了计算成像的原理与应用研究。首先介绍了小孔成像实验和软件方面的相关内容。随后从傅里叶光学的角度简单谈了成像的过程。成像是观测样品分布的一种方法,通过成像系统接收光的强度来呈现图像。视网膜作为接收端接收到的图像实际上是由像元组成的矩阵,每个元素代表相应位置像元接收光的强度。大脑通过对图像的分析,得出一系列信息,如识别物体、判断距离等。计算成像是一种采集记录系统,通过处理数据得到样品分布与像的对应关系,用于后续问题的分析。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
author-avatar
mgmonster
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有