本文主要是介绍投身AI战疫前你需要知道的前置知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点击左上方蓝字关注我们
近期,百度飞桨上线了10万奖池生物计算大赛:螺旋桨RNA结构预测竞赛:Unpaired Probability Prediction。比赛不仅聚焦AI战疫的真实技术难点,更得到了世界知名计算生物学专家David H. Mathews和北京大学生命科学学院教授刘君的大力支持与指导。
该赛题旨在解决RNA结构预测问题,要求参赛选手基于百度发布的2个世界上最快的算法:RNA二级结构预测算法LinearFold和RNA配分方程算法LinearPartition,预测给定RNA序列在每个位点上保持不成对的概率。
然鹅,我听到的却是这样的声音:
A同学:RNA啊,我似乎好像大概在多年前的中学生物课堂上听到过。
B同学:作为一个术业有专攻的IT人才,我的全部精力只奉献给了计算机科学……
C同学:结构预测听起来太高大上,你们玩,我先撤了!
英雄请留步!
百度飞桨开发者技术专家、百度大脑智能对话训练师郑博培从孟德尔的豌豆到LinearFold和LinearPartition算法的使用为大家总结了超详细的参赛知识点,理解赛题so easy!
扫描二维码报名比赛
get更多学习资料
化学与遗传学
从孟德尔的豌豆说起
1. 显性基因与隐性基因
孟德尔从豌豆杂交实验结果中,得出了相对性状中存在着显性基因和隐性基因的原理。基因概念由孟德尔在推想中提出,虽然当时他并没有提出“基因”这个科学名词。孟德尔认为遗传单位(基因)具有高度的稳定性,一个显性基因和它相对的隐性基因在一起的时候,彼此都具有稳定性,不会改变性质。
2. 弱化学键
弱化学键对生物体至关重要,部分原因是因为弱化学键能在细胞的生理条件下形成和断裂,一个最简单的例子就是DNA的复制。DNA在复制过程中,其两条链要先分开,再分别作为模板进行DNA复制。DNA两条链分开的过程其实就是弱化学键氢键的断裂过程,在子代DNA合成过程中,氢键又形成。
3. 弱键和强键决定大分子结构
关键知识点总结如下:
(1)分子间和分子内的相互作用决定大分子高级结构;
(2)氢键的排列方式决定蛋白质的特定构象;
(3)大多数蛋白质由两个或三个结构域装配而成(不同的组合方式对应不同的功能);
(4)弱化学键把蛋白质放在DNA和RNA的正确位置(序列或构象特异性);
(5)变构:通过改变蛋白质的形状调控其功能(通过结合配体或相互作用);
(6)不是所有蛋白质功能的调控都是通过变构进行的(募集作用)。
4. 核酸承载遗传信息
20世纪30年代,遗传学家就开始推测什么样的分子可能具有基因所需要的稳定性,同时又能为进化提供基础长久的突变形式。该实验证明了S型细菌中含有一种转化因子,将R型细菌转化成了S型细菌,当时得出的实验结论是DNA可能是关键的遗传物质。实际上,转化因子就是DNA,但是当时并没有提出DNA这个名词。
RNA初识核糖核酸
1. RNA的结构特征
RNA和DNA一样,也是由各种核苷酸通过3′、5′-磷酸二酯键连接构成的多核苷酸链,但与DNA有一些差异。
2. RNA与DNA的不同之处
RNA | DNA | |
---|---|---|
核糖 | 核糖 | 2'脱氧核糖 |
碱基 | 尿嘧啶 | 胸腺嘧啶 |
结构 | 多聚核苷酸单链 | 多聚核苷酸双链 |
3.RNA的生物学功能
RNA是某些病毒的遗传物质
RNA是从基因到蛋白质合成的媒介(mRNA)
RNA是mRNA上密码子与氨基酸的接头分子(tRNA)
RNA是一种调节分子(regulatory RNA )
RNA有结构功能,rRNA是核糖体的组成成分
RNA可在细胞中催化重要反应-酶(RNase P ribozyme, large rRNA, self-splicing introns)
4. RNA的结构基础——碱基
RNA的碱基主要有4种,即A(腺嘌呤)、G(鸟嘌呤)、C(胞嘧啶)、U(尿嘧啶),其中,U(尿嘧啶)取代了DNA中的T(胸腺嘧啶)。
5. 碱基的配对
一个碱基只能与另一个碱基配对,典型碱基对有:A-U,G-C和G-U。
6.RNA的表示结构
RNA的结构可分为一级结构、二级结构和三级结构。一级结构可以理解为遗传碱基对编码;二级结构是RNA的平面表示;三级结构即RNA的立体结构。
RNA的二级结构——RNA链自身折叠形成类似A-DNA的局部双螺旋
RNA通常是单链的,除了双链外,它还具有多种形式的二级结构。
上面列举的是一些比较常见的二级结构,下面是由上面这三种二级结构衍生出来的二级结构。
假结:由不相邻的RNA片段碱基配对而形成的复杂结构
Stem Loops (Hairpins):茎环一般至少有4个碱基
Bulge Loops:当结构一侧的基无法形成碱基对时会形成凸环
Interior Loops:当结构两侧的碱基无法形成碱基对时会生成内环
Junctions (Multiloops):两个或两个以上的双绞合区绞合形成闭合结构
Kissing Hairpins:两个独立的茎环相互组合
RNA二级结构的表示方法
1. 平面图形表示法
平面图形表示法可以直观地看出RNA的结构。
2. 圆点图表示法
由圆表示二级结构的碱基对,为结构中每个碱基对绘制弧,通过索引对(i,j)描述碱基对,表示碱基顶点之间的链接,如果有任何弧交叉,则存在假结。
3. RNA二级结构平面图
RNA二级结构平面图是另外一种比较常见的RNA二级结构表示方法,在这种表示方法中,RNA 序列中碱基间的配对信息一目了然,各个基本组成构件也表现的十分清楚,常常作为效果图输出。
4. 螺旋区点阵图
螺旋区点阵图,是指以数学坐标图的方式显示RNA二级结构的一种方法。设立一个数学坐标图后,首先按照 RNA 的序列情况在坐标图中分别标记出横、纵坐标值;然后通过查找构成碱基配对的序列的坐标,把该 RNA 结构的碱基对在坐标图上施划出来;再通过一线与横、纵坐标各成 45°角的斜线,串过全部碱基对,就可标出该 RNA 结构的茎区结构。
5. 点括号法
点括号表示法就是用点和成对的括号来表示RNA的二级结构信息。RNA序列中的未产生碱基互补配对的自由碱基用“.”表示,而形成互补碱基对的两个碱基分别用一对“(”和“)”表示。
碱基对中相对靠近5’端的碱基用“("进行表示,碱基对中相对靠近3'端的碱基用“)”进行表示。
6. CT 文件表示法
CT文件格式初步由ZuKerl提出,用于定义RNA二级结构和核苷酸序列,包含多个序列的多个子结构信息。在CT文件中,首行中整数N表示核苷酸序列的总长度,N在后面是预测二级结构得到的自由能和RNA分子的描述信息。CT文件中包含6列数据,分别为:索引信息、RNA二级结构中从5 '端开始到3 '端结束的标题(A, U, G和C) 、与之相邻的前一个栅极的编号、与之相邻的后1个串联的编号、是否存在与该字符串配对的串行(' 0 '表示无配对字符串,非' 0 '表示存在配对字符串,并用数字n表示配对的串联编号);第6列同第1列。CT文件可以由RNA二级结构预测软件得到,用于计算RNA之间的相似性。
使用PaddleHelix螺旋桨
生物计算平台完成
RNA二级结构预测
螺旋桨PaddleHelix,是基于百度飞桨深度学习框架开发的生物计算工具和平台。螺旋桨针对生信&计算机交叉学科的学习者、研究者和合作伙伴,提供一整套开源工具集和计算平台,支持构建针对新药研发、疫苗设计、精准医疗场景的技术方案。
RNA二级结构预测包括线性时间RNA二级结构分析算法: LinearFold和LinearPartition。
1. LinearFold
LinearFold能够在线性时间内预测RNA二级结构,在长序列RNA上的预测速度远远大于传统算法。其中,LinearFold能够将新冠病毒全基因组序列(约30,000 nt)二级结构预测时间从55分钟降低到27秒,速度提升120倍。
同时LinearFold在预测精度上相比传统算法也有提升。尤其对于长序列RNA二级结构(如16S和23S rRNA二级结构)和长碱基对(相距500+ nt)预测上,LinearFold预测精度有显著地提升。
2. LinearPartition
2020年,百度再次发表世界最快RNA配分方程和碱基对概率预测算法LinearPartition。
该算法功能更加强大,可以模拟RNA序列在平衡态时成千上万种不同结构的分布,并预测碱基对概率矩阵。LinearPartition算法同样被ISMB顶会接收并在Bioinformatics杂志上发表:LinearPartition: linear-time approximation of RNA folding partition function and base-pairing probabilities。
论文链接请见:
https://academic.oup.com/bioinformatics/article/36/Supplement_1/i258/5870487
在使用上述两种算法之前,我们需要安装PaddleHelix:
pip install paddlehelix
1. LinearFold调用
机器学习模型
linear_fold_c(rna_sequence, beam_size = 100, use_constraints = False, constraint = "", no_sharp_turn = True)
热力学模型
linear_fold_v(rna_sequence, beam_size = 100, use_constraints = False, constraint = "", no_sharp_turn = True)
参数说明
rna_sequence: string, 需要预测结构的RNA sequence
beam_size: int (optional), 控制beam pruning size的参数,默认值为100。该参数越大,则预测速度越慢,而与精确搜索相比近似效果越好;
use_constraints: bool (optional), 在预测二级结构时增加约束条件, 默认值时False。为True时, constraint参数需要提供约束序列;
constraint: string (optional), 二级结构预测约束条件, 默认为空。当提供约束序列时, use_constraints参数需要设置为True。该约束须与输入的RNA序列长度相同,每个点位可以指定“? . ( )”四种符号中的一种,其中“?”表示该点位无限制,“.”表示该点位必须是unpaired,“(”与“)”表示该点位必须是paired。注意“(”与“)”必须数量相等,即相互匹配。具体操作请参考运行实例。
no_sharp_turn: bool (optional), 不允许在预测的hairpin结构中出现sharp turn, 默认为True。
返回值
tuple(string, double): 返回一个二元组, 第一个位置是结构序列, 第二个位置是结构的folding free energy
# 二级结构预测(无约束条件)import pahelix.toolkit.linear_rna as linear_rnainput_sequence = "AACUCCGCCAGGCCUGGAAGGGAGCAACGGUAGUGACACUCUCUGUGUGCGUAGGUUGCCUAGCUACCAUUU"linear_rna.linear_fold_c(input_sequence)('..((((.(((....)))...))))....((((((............................))))))....',0.4548597317188978)# 二级结构预测(有约束条件)constraint = "??(???(??????)?(????????)???(??????(???????)?)???????????)??.???????????"linear_rna.linear_fold_c(input_sequence, use_constraints = True, constraint = constraint)('..(.(((......)((........))(((......(.......).))).....))..)..............',-27.328358240425587)
2. LinearPartition调用
机器学习模型
linear_partition_c(rna_sequence, beam_size = 100, bp_cutoff = 0.0, no_sharpe_turn = True)
热力学模型
linear_partition_v(rna_sequence, beam_size = 100, bp_cutoff = 0.0, no_sharpe_turn = True)
参数说明
rna_sequence: string, 需要计算配分函数和碱基对概率的RNA sequence
beam_size: int (optional), 控制beam pruning size的参数,默认值为100。该参数越大,则预测速度越慢,而与精确搜索相比近似效果越好;
bp_cutoff: double (optinal), 只输出概率大于等于bp_cutoff的碱基对及其概率, 0 <= pf_cutoff <= 1, 默认为0.0;
no_sharp_turn: bool (optional), 不允许在预测的hairpin结构中出现sharp turn, 默认为True。
返回值
tuple(string, list): 返回一个二元组, 第一个位置是配分函数值, 第二个位置是存有碱基对及其概率的列表
import pahelix.toolkit.linear_rna as linear_rnainput_sequence = "UGAGUUCUCGAUCUCUAAAAUCG"linear_rna.linear_partition_c(input_sequence, bp_cutoff = 0.2)(0.6399235725402832,[(4, 13, 0.2007114291191101),(10, 22, 0.24662047624588013),(11, 21, 0.24573349952697754),(12, 20, 0.2092728614807129)])
本次比赛百度研究院也为大家总结了大量干货资料。报名比赛即可get资料链接。
https://aistudio.baidu.com/aistudio/competition/detail/61
百度飞桨官方提供的RNA二级结构讲义:
RNA secondary structure prediction and analysis
RNA Secondary Structure Prediction
中国大学MOOC上武汉大学的分子生物学课程:
Molecular Biology
知网学术论文:
RNA二级结构点括号图与CT文件表示法的相互转换算法研究
基于卷积神经网络的RNA二级结构预测方法研究
抗议征程还未到终点,生命科学探索和医药技术创新仍旧任重道远。作为新时代的接触AI技术人才,我们诚邀您为计算生物学研究的应用实践贡献力量!
点击"阅读原文",立即报名参加比赛
↓↓↓
这篇关于投身AI战疫前你需要知道的前置知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!