16分钟优化mRNA疫苗稳定性! 百度AI算法LinearDesign问世
新冠病毒全球累计确诊已超过400万人,疫苗是终结疫情的关键胜负手。在所有正在研发的疫苗路径中,研发速度更快、更具潜力的mRNA疫苗作为一种新兴技术受到了国内外的重点关注。但同时,mRNA疫苗由于稳定性不足容易在保存、运输中降解,也成为制约疫苗大规模推广和使用最亟待解决的问题。
现在,这个困扰世界顶级疫苗公司和学界的生物学难题有望通过AI解决!5月13日,百度研究院重磅推出全球首个mRNA疫苗基因序列设计算法LinearDesign。该算法能够在理论上设计出结构最稳定、蛋白质表达效率最高的mRNA序列,而这只需要90分钟。如果进一步应用线性时间近似算法,时间更可以缩短到16分钟!
美国罗彻斯特大学生物化学与生理系教授Dr. David H. Mathews 表示:“LinearDesign的优势在于速度!它能够快速提供一系列的优良序列,研究者可以进一步通过实验来测试其稳定性是否足以充当疫苗。”
事实上,从能够转译同一种蛋白质的众多同源序列中找到二级结构足够稳定、密码子足够优化的mRNA序列挑战难度是相当巨大的。以新冠病毒为例,它的刺突蛋白(抗原)共有1273氨基酸,能翻译成刺突蛋白的mRNA序列有10的632次方之多!
遍历所有可能?这显然难以完成。
假设一台超级计算机能做到一秒钟计算一个mRNA结构,那么从宇宙形成开始计算到现在,计算140亿年,连mRNA序列所有可能的亿万分之一都无法算完!
要找出最优的mRNA,科学家们的传统做法是随机改变序列,再看看是否有益。当前,科学界也在寻找解决问题的不同策略,比如,卡耐基梅隆大学和斯坦福大学联合百度合作开发的平台Eterna,就旨在在通过解谜的方式吸引全球玩家共同设计安全稳定的mRNA。Eterna平台所使用的,正是今年1月底百度开放的LinearFold算法作为其结构分析引擎。
LinearFold是十分成功的实验性项目,它将生物学上的难题成功转化为形式语言理论和计算机语言学上的经典问题。在LinearFold的启发之下,百度研究院的研究团队想到了不只是结构分析,而可以进一步运用计算机科学来设计出更稳定、蛋白质表达水平更高的mRNA序列。由此,LinearDesign应运而生。
针对多达10的632次方mRNA序列,LinearDesign采用了动态规划算法来缩小搜索空间。我们知道直到AlphaGo出来之前,AI一直都无法战胜人类棋手,主要原因就是围棋的搜索空间太大了, 有3的19x19次方个状态,约合10的172次方。可以看到,mRNA序列设计问题的搜索空间远远大于下围棋的搜索空间。
而LinearDesign的动态规划算法首先用确定有限状态自动机(DFA)来表达氨基酸和蛋白质,这样不同位置上密码子的选择就可以抽象为计算理论中常用的DFA图。如下图,分别把三种氨基酸(A: methionine, B: valine, C: serine)以及终止密码子(D)抽象为DFA图。
在此基础上,将氨基酸的DFA串联起来,即可得到一段蛋白质序列的DFA图。如下图是示例序列“methionineleucine stop” 的DFA图。
接下来,我们需要通过DFA来找出二级结构最稳定的mRNA序列。在这里,百度研究院借用了通常用于计算机语言学的常见工具,也就是随机上下文无关文法(SCFG),用于指代RNA折叠。RNA二级结构可以通过SCFG构建语法树来表示。
mRNA疫苗序列设计优化问题实际上是将单个RNA序列的二级结构计算(RNAfolding)推广到多个RNA序列。在用DFA抽象表示多个RNA序列后,研究人员通过取DFA与SCFG的交集,来从多个mRNA序列中找到具有最稳定二级结构的序列。
从上图的新冠病毒突刺蛋白实验结果可以看出,对比最左侧图A自然界存在抗体所对应的mRNA序列,右边人工智能设计的二级结构非常紧密。其中的全局最优序列图C,设计时间只需要1.6小时!而如果进一步应用线性时间近似算法,如图B其设计时间将缩短到16分钟。这项技术同样适用于所有mRNA疫苗设计。
疫苗研发是一项耗时耗力的全世界性难题,运用人工智能,计算机科学技术疫苗研发正在不断加速。目前,百度研究院已将LinearDesign网站免费开放,同时相关论文已发布于arXiv,全球研究机构及疫苗研发企业均可使用。百度已与中国疾病预防控制中心病毒病预防控制所签署战略合作协议,后续也将使用百度LinearDesign算法设计的mRNA疫苗序列进行体外实验,验证疫苗的稳定性和蛋白质表达效率。相信在全球研究者的共同努力下,疫苗研发进度将不断提速!
相关文章:

控制台打印汉字的方法
wstring gL"自动定理证明"; wstring sL"自动定理证明器"; EditDistance editdistance(g,s); //int distanceleneditdistance.CalEditDistance(); wcout.imbue(locale("chs")); set<string>words; editdistance.GetDictionary(words); O…
模态对话框的父窗口设置
我的毕业设计基本是搞完了,那么最近几天在做一些测试和修改。其中就有一个问题折腾了我好久,今天才发现,原来是这么回事。 我创建了一个非模态的子对话框,然后在这个子对话框中又创建了一个模态对话框,结果意外的是点…

XSD标准架构-----xsd:element 元素详解
声明一个元素。 <elementabstract Boolean : falseblock (#all | List of (extension | restriction | substitution))default stringfinal (#all | List of (extension | restriction))fixed stringform (qualified | unqualified)id IDmaxOccurs (nonNegativeInte…
VS2010使用Skin++
转载自http://blog.sina.com.cn/s/blog_5d23890b0100icjj.html。 Skin的使用 一.使用皮肤 将SkinPPWTL.lib 、skinppwtl.dll 、SkinPPWTL.h三个文件及相应皮肤(**.ssk)拷贝至工程文件夹下;一般还要将这些文件放在Debug文件夹下。 1.在(VC…
美翻朋友圈:用Python生成蒙太奇马赛克图片
题图 | 视觉中国来源 | ZackSock(ID:ZackSock)我们有时候会听到这么一个词--“蒙太奇”,但却不知道这个词是什么意思。蒙太奇原为建筑学术语,意为构成、装配。而后又延伸为一种剪辑理论:当不同镜头拼接在一起时&#x…

在SQL Server 2008中配置文件流(FILESTREAM)
SQL Server 2008推出了一个新的特性叫做文件流(FILESTREAM),它使得基于SQL Server的应用程序可以在文件系统中存储非结构化的数据,例如文档、图片、音频、视频等等。文件流主要将SQL Server数据库引擎和新技术文件系统(NTFS)集成在一起;它主要以varbinar…

mysql limit offset
Java代码 SELECT keyword FROM keyword_rank WHERE advertiserid59 order by keyword LIMIT 2 OFFSET 1; 比如这个SQL ,limit后面跟的是2条数据,offset后面是从第1条开始读取 Java代码 SELECT keyword FROM keyword_rank WHERE advertiserid59 order …
获取磁盘符信息
项目中有个子模块是ftp客户端,需要罗列本地各个磁盘符,比如C盘、D盘、E盘、F盘。然后进行一些相关的上传下载就比较方便,具体样子如下所示: 需要利用一个Combox控件实现。 废话不多说,先上代码: void …
成为计算机视觉工程师的第一个月,我都学会了什么?
作者 | Richmond Alake译者 | 弯月题图 | 自视觉中国出品 | AI科技大本营(ID:rgznai100)我写这篇文章的目的是为了向那些没有接触过机器学习行业的人们介绍一下我作为计算机视觉工程师第一个月以来的体验,希望这些内部信息能够让你…

天然良方对付小病
打嗝、口臭、消化不良……我们的身体时常会受到一些小毛病的困扰。20位来自美国各大医院的权威医生在美国《预防》杂志网站上发表文章,向读者介绍了一些纯天然的便捷方法,来快速应对这些小病。 生姜止吐。先用热水冲泡生姜片,过滤后把姜汤倒在…

Spring中使用Schedule调度
在spring中两种办法使用调度,以下使用是在spring4.0中。 一、基于application配置文件,配置入下: 1 <bean id"jobDetail" class"org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">…

DNS域名解析优化之tinydns/djbdns篇——测试篇
要开始还债了。 今天整理了一下一套bind9的配置,把记录都清理了一番。想了想,顺带安装了个geoipdns来做性能测试。整理记录的时候用bind-to-tinydns转换了一下记录格式。这些过程以后再说。 NS服务器是同一台Dell PowerEdge 2950。先启动的geoipdns&…
使用Combox控件的一个问题
Combox控件是MFC里边一个比较常用的控件,基本可以看成是一个文本框和一个下拉列表组合而成。但是我在用的时候碰到了一个问题,当我用AddString()函数加了4,5个字符串后,运行之后点击下拉箭头并没有下拉框的显示,或者说显示不出来。…
深度学习基础总结,无一句废话(附完整思维导图)
作者 | Python与算法社区责编 | Carol封图 | CSDN 付费下载于自视觉中国线型回归预测气温、预测销售额、预测商品价格等模型:权重,偏差模型训练:feed 数据学习模型参数值,使得误差尽可能小训练集、测试集、验证集、样本、标签、特…

unity, monoDevelop ide 代码提示不起作用的解决方法
monoDevelop ide 代码提示不起作用,可能是因为ide里索引了一些不存在的文件,检查一下solution窗口里是否有文件变红,如下图中springControlEx.cs。将变红的文件remove掉,然后去unity菜单中点File->Save Project。
DeeCamp 2020 赛题大公开!快来看你想选哪个
DeeCamp 2020 开放性竞赛赛题来啦,快来看看有没有你感兴趣的题目!加入DeeCamp2020,你将和来自全球的优秀小伙伴组队挑战真实世界的难题,还能冲刺大奖。五大赛道,14个新颖赛题,总有一款适合你!De…
Combox控件下拉选择不同值触发的动作响应
项目中需要根据combox控件下拉列表选择不同的值,然后能触发相应的动作。比如我的项目中,通过combox空间的下拉列表选择不同的C盘,D盘,E盘,F盘,然后能在list控件中把各个盘符的文件目录列出来。 那么触发…

不用se11创建表结构,作smartforms
Call form时不用传内表,切记。 1。在Global Definitions->types页面里输: types:begin of wa_test, matnr like mara-marnt, maktx like makt-maktx, end of wa_test. types:it_test type wa_test occurs 1. 2. 在Global Definitions->Global Data…

linux入门(三)常见Linux指令及其用法
一、上回说到说到Linux的shell指令运行的原理,这回我们来看看Linux中shell的权限管理,所谓的“权限”是指某一类人做某一件事的权利。在shell中这一类人被分为了三种:(1)文件拥有者user(2)文件拥…

设置Enter键为默认键
进行MFC编程中,很多时候需要设置快捷键,比如我的项目中,播放器的实现,需要快进、快退、播放、暂停等,除了具体的按钮操作外应该还能通过键盘的快捷键来进行操作。 关于如何设置一个菜单的快捷键或是一个按钮的快捷键&…
MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
来源 | 微软研究院AI头条(ID: MSRAsia)编者按:目标检测与目标跟踪这两个任务有着密切的联系。针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁、统一而高效的“目标检测小样本学习…

从哲学角度分析,框架的[无用之用]效果
小树的用途少,人们不理睬它、不砍伐它、才有机会长成有用之巨木,此为「无用」之用﹗老子说过:「人皆知有用之用,而莫知无用之用」,这与框架观念是一致的。 数千年前,老子提出了这「有、无」哲理,…

xtrabackup2.4 备份Precona5.6数据库,做增量备份与还原
1、Full backuop,一定要先做: innobackupex --defaults-file/etc/my.cnf --userroot --passwordevlink /home/mysql/backup/2、Incremental backup,可以每隔一小时或者三小时做一次: innobackupex --defaults-file/etc/my.cnf --userroot --passw…

MFC按钮添加提示文字
转载自: http://blog.163.com/guo_linda/blog/static/12377305720101122105030162/ MFC里这个类叫做CToolTipCtrl,具体用法很简单。 1、在类头文件中声明CToolTipCtrl的类对象m_ctrlTT。 2、在初始化函数OnInitDialog()中设置m_ctrlTT。 EnableTool…
Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相
作者 | 唐小引题图 | HackerEarth 报告出品 | AI科技大本营(ID:rgznai100)Go 正变得越来越受开发者欢迎。几年前,滴滴的工程师曾告诉我,在滴滴 Go 已经得到了非常广泛的应用,去年,在腾讯内部使用…

WinCE中命令行工具Viewbin简介(查看nk.bin中包含的文件)
Viewbin是微软提供的一个命令行工具,在WinCE5.0和WinCE6.0中,可以在"/WINCE600/PUBLIC/COMMON/OAK/BIN/I386"找到他。Viewbin工具可以用来查看NK.bin文件。它可以从NK.bin中获得这个NK image的大小,运行的起始地址等。还能查看到里…

元素多层嵌套,JS获取问题
如果一段html嵌套过多,在js中获取还是比较麻烦的,我写了几套方案,大家可以参考参考,如果你有好的方法,也分享出来,让我们瞧瞧。 HTML: <!DOCTYPE html> <html lang"en"> …
MFC静态文本控件设置超链接
有时我们需要在窗口上设置一个超链接,比如在Aboutdlg上设置“我的博客”这样的超链接.具体的设置方法如下。 1、首先我们在窗体上添加一个Static文本控件,修改Caption属性,设置成你想要的超链接标题,比如“更多内容欢迎访问小梦的…
百度云「升级战」:王海峰站台,新架构全面AI化,AI和知识中台登场
5月18日,"ABC SUMMIT 2020百度夏季云智峰会"在线上召开。刚刚经历了人事变动的百度云迎来重磅升级,大会以"百度智能云加速产业智能化"为主题,百度智能云全新战略、新架构首次亮相,AI中台、知识中台两大创新平…

Mysql实现非程序控制读写分离
五一假期,有个博友给我发邮件,说我的这篇blog:http://bobwu.blog.51cto.com/2918362/537077 只能通过程序员在程序中实现读写分离,咨询能否实现程序员无察觉的读写分析,呵呵,我明白意思。回答是肯定的&…