Rosetta项目最新进展 2020 06 26

Rosetta@home项目计算生成了SARS-COV-2的免疫蛋白,并用于动物实验,可以起到保护动物免受致命性新型冠状病毒的感染,目前该药物还在实验阶段,正在优化中。 从四月初到现在,我自己运行了35台Raspberry Pi 4G(140核心 总功耗280W)加入到了Rosetta@home项目中,希望接下来的半年会有更多关于该研究项目的新成果,那样自己付出的电费和硬件成本也值得了。 目前自己贡献的算力在团队里的排名为第六:

June 26, 2020

Blender创建蛋白质三维结构艺术1

Blender 是什么 Blender 是一套开源的三维建模程序,因为之前为了在创作短片时使用数字绘景MattePainting技术,比如场景扩宽中的资产创建和2.5D合成,所以一直在学习这款程式,与之对应的商业建模程式有Maya,3DCoat,3dsMax,SideFx Houdini。比起商业的建模程式,Blender的优势是,第一,它是开源程式,第二,整套建模系统有自成体系的工作流,从建模,贴图,骨骼绑定,动画,合成,渲染输出,都可以在Blendr里面完成。学习的难度系数略高于Maya。目前Blender的版本一直在持续迭代中,整套系统开始使用越来越先进的技术,比如使用了EEVEE实时渲染引擎,在制作和渲染动画时,降低了制作成本。 在这篇文章中,我将介绍如何使用Blender 2.8 和 PyMol 制作蛋白质的三维结构图像艺术,上图为自己创作DNA螺旋三维结构的Blender截图。 创作过程解析 因为SARS-COV-2全球大流行,所以之前有一段时间研究过蛋白质的三维结构折叠。今天就拿SARS-COV-2的刺突蛋白(Spike Protein)来进行创作,其中的蛋白质编号为6M0J Crystal structure of SARS-CoV-2 spike receptor-binding domain bound with ACE2,与人类ACE2受体结合的的蛋白质。病毒是直接通过与ACE2结合这把钥匙,进入到人类细胞中,然后释放RNA从而合成和制造病毒自身的蛋白质。 首先我们下载蛋白质三维结构PDB文件,6M0J PDB,然后导入到PyMol分子三维结构预览程式中,如下图所示: 图中分别展示了6M0J蛋白质的卡通结构和表面结构。该蛋白质由两条肽链组成。 然后我们在Pymol中导出VRML2文件图像,路径为File->Export Image As->VRML 2。 接下来我们把VRML2依次导入到Blender程式中,导入完成之后,我们就可以对模型进行修饰,添加材质,打灯光,最后渲染输出。(注意需要对导入的模型执行一次 Mesh->Merge By Distance 将重复的顶点去掉,然后执行Mesh->Shade Smooth 使得模型表面被光滑处理) 下图是最终修饰处理完之后的截图,右下窗口就是导入的蛋白质三维结构模型。 关于Blender的材质构建,我后面会写一篇文章,详细介绍Blender的材质系统。 最后渲染输出的结构图如下: 原图🔗 原图🔗 原图🔗 原图🔗 表面+内部结构 总结 这是一次尝试在Blender结合Pymol来构建蛋白质三维结构图像艺术的尝试,蛋白质与我们人类息息相关,我们身体上的所有器官都是由蛋白质构成的,每当在科技杂志上看到精美的蛋白质三维结构图,都能让我们遐想在如此浩瀚的宇宙中,居然还有一个被巧妙设计好的微观世界在运行着,他的每一个零件运行都是那么的精准,如果稍有偏差,就会给生命体带来各种疾病。 目标 之前谈到过蛋白质的结构预测项目Rosetta@home,rosetta是一款开源程式,可以从头预测蛋白质的三维结构,接下来我就是学习rosetta的使用,自己已经在树莓派上编译了支持MPICH的Rosetta程式,然后我准备自己去设计蛋白质。用Rosetta来预测出给定蛋白质序列下的三维结构,最后在Blender中对该蛋白质进行修饰和图像合成,创作蛋白质的三维结构艺术。

June 21, 2020

关于建立个人知识库的思考

建立个人知识库的思考

June 9, 2020

对抗 CoVid-2019

一段简短的视频请点击这里 关于分布式计算项目 第一次接触分布式计算项目是在高中毕业的那段时间,用自己的笔记本跑过Boinc分布式计算平台,其中最著名的是seti@home, Boinc平台就是为这个项目而开发的。 分布式计算的思想就是主服务器将一个任务拆分成若干个小任务,将这些小任务分派给客户端进行运算,客户端运算完成之后将小任务结果发送给主服务器,主服务器将这些计算结果汇总而得到该任务的执行结果。 由于采用超级计算机进行计算的成本相当昂贵,并且在一些预测计算领域,可能最终的计算结果是以失败告终,所以有人发明出了利用个人闲置的计算机的计算资源,将这些资源连接成一个分布式的网格系统,计算资源的获取全部在这个网格系统中进行,由此演变出了很多的分布式计算项目。 关于 Rosetta 项目 rosetta@home这个项目主要是用来预测蛋白质的三维折叠结构。根据官网所说,Rosetta在预测特定蛋白质的形状时,其实就是在寻找具有最低能量的折叠,这一点很有意思,因为可以和数学物理学中关于能量的计算拉上关系,似乎自然界本身都是在以一种最基本的能量守恒和以最低的能量代价来稳定生命和物种的繁衍。因为对这种蛋白质折叠计算突然有了好奇心,并且也关注到DeepMind研发的AlphaFold采用人工智能的方式预测蛋白质的三维结构,所以买了两本生命科学的书来进行研究,后续出稍微偏专业向的文章。 引用一句英文原文的话 proteins are truly amazing machines: before they do their work, they assemble themselves. 蛋白质是一部非常让人感到惊讶的机器,他们在有效工作之前必须先自我装配成一种特定的形状. 重新回到Rosetta的计算方式上,预测蛋白质的折叠结构的计算方式: 程序会从没有任何折叠的链开始 移动链的一部分,产生新的新的形状,计算该形状下的能量 根据能量上的变化是否接受这次移动 重复2-3的过程直到链中的每一部分都移动了足够多的次数 最后程序会得到一个结构,该结构是目前该链序列下预测出来的最低能量形状,由于预测过程中采用的是随机移动链的部分,所以计算量是相当大的。在分布式计算过程中,客户端计算完每条链的最低能量状态,然后将其结果发送给服务端,然后科研人员对所有从客户端收集到该链的最低能量状态结构进行对比,得到最低的能量状态,这样也就完成了对该蛋白质折叠的预测。 第一本书是 《结构生物学 从原子到生命》 原书名称: 《Textbook of Structural Biology》 第二本书 《蛋白质物理》 其中与Rosetta类似的蛋白质折叠项目Folding@home也是一个分布式计算项目,两者的区别就是在于 Rosetta的目的的是预测出蛋白质的最终结构,Folding@home是计算蛋白质如何折叠的过程。两者的区别我还需要阅读生物学领域的相关专业书籍之后在做出具体的分析,后续会出相关的文章。 搭建 Raspberry Pi 分布式计算集群 Raspberry Pi 目前总共由12台ARM开发板加入到了Rosetta计算中,其中有两台是Jetson Nano,因为目前的专注领域在人工智能,所以想多理解些生物领域方面的知识,因为最初的人工神经网络ANN就是从大脑的神经元计算模式抽象出来的。 目前集群的管理和应用编排采用的是kubernetes工具,操作系统安装的是Ubuntu Server Raspberry Pi, k8s的实现方案采用的是MicroK8s, 后续会考虑采用k3s的实现方案来管理更多的节点,比如节点扩展到20台Raspberry Pi。 目前已经更新到20个RPI节点,集群管理系统采用k3s,这些小机器在结束Rosetta项目之后会用于Tensorflow,MXNet的分布式学习项目中。 目前集群的架构如下图,3 * (ETCD + Master) + HAProxy + 17 * Worker ...

April 24, 2020

Epidemic Modeling

SIR Modeling SIR 经典模型主要是在传染病领域用来预测感染人数的未来趋势。 S[t] 表示susceptible易感人群 I[t] 表示infected已经感染的人群 R[t] 表示recovered已经康复人群 参考: MathWorld: SIR Model Kermack-McKendrick Model Kermack-McKendrick Model Kermack-McKendrick 最初的模型是为了解释像在1665-1666年发生的鼠疫,1865年发生的霍乱,感染人群的数量随着时间的变化。 该模型假定总人口是是固定的,传染病的潜伏期是瞬间的,传染持续时间与疾病的周期相同,并且假定人群都是无差异的,无性别及种族差异。 该模型使用了三个非线性常微分方程: beta 表示 infection rate 感染率 gamma 表示 recovery rate 恢复率 i 表示已感染人群 r 表示已恢复健康的人群 s 表示易感染人群 预设值: beta = 20%, gamma = 15%, i(0) = 0.1, r(0) = 0, s[0] = 10 Modelica 源码 model SIRModel parameter Real beta = 0.2; parameter Real gamma = 0.15; Real i; Real r; Real s; initial equation s = 10; i = 0.1; r = 0; equation der(s) = (-1) * beta * i * s; der(i) = (-1) * gamma * i + beta * i * s; der(r) = gamma * i; end SIRModel; 模型预测图: ...

April 6, 2020

Talk-About-SARS-Cov-2(1)

目标 这一期主要涉及的内容包括引发疾病的病毒及其感染过程,最后讲述如何帮助全世界的科学家加速疫苗的研发。 关于这次疾病 引发这次疾病的病毒为SARS-Cov-2, 属于冠状病毒CoronaVirus家族. 该病毒属于Positive ssRNA Virus 正向单链RNA病毒。 分类图谱: 感染过程 Doing.. 如何帮助科研人员 Folding@home 是一个研究蛋白质折叠,误拆,聚合及由此引发的相关疾病的分布式计算平台,就是将世界上成千上万台个人计算机连接在一个网格系统中,中央服务器将需要计算任务打包成WU work unit, 然后发送给远程客户端,客户端完成计算以后将结果提交给服务端,服务端会给用户累加所得积分。 目前 SARS-Cov-2 全球大流行时期,Folding@home组织加入了对2019-nCov的程序支持Folding@home takes up the fight against COVID-19 / 2019-nCoV 如何加入 Folding@home安装 在控制面板当中将Cause Preference设置成Any,SARS-Cov-2的计算目前的计算优先级是最高的,有新任务都会提前分发处理。 我目前的贡献量: 相关截图信息: Rosetta@Home 另一个运行在Boinc分布式平台上的项目,关于Boinc Fold It 项目 Fold It

April 2, 2020