使用螺旋桨PaddleHelix完成RNA结构预测竞赛的前置基础知识整理

在解决RNA结构预测这个世界级难题之前,首先要做的是搞懂分子生物学相关知识以及RNA的二级结构

本文内容基于官方提供的RNA二级结构讲义:

中国大学MOOC上武汉大学的分子生物学课程Molecular Biology:

以及知网查阅的论文:

我在以上四篇文献以及中国大学MOOC的课程基础上结合自己的理解对RNA的基础知识做了整理,欢迎各位读者一起交流讨论~

一、化学与遗传学——从孟德尔的豌豆说起

显性基因与隐性基因

孟德尔从豌豆杂交实验结果,得出了相对性状中存在着显性基因和隐性基因的原理。

基因概念是孟德尔在推想中提出来的,虽然当时他并没有提出“基因”这个科学名词。孟德尔认为遗传单位(基因)具有高度的稳定性,一个显性基因和它相对的隐性基因在一起的时候,彼此都具有稳定性,不会改变性质。

弱化学键

弱化学键对生物体至关重要,部分原因是因为弱化学键能在细胞的生理条件下形成和断裂,一个最简单的例子是DNA的复制,DNA的复制过程中,其两条链是要分开的,分开以后才能作为模板进行DNA复制,分开过程其实就是弱化学键氢键的断裂过程,在子代DNA合成过程中,氢键又会形成。

弱键和强键决定大分子的结构

  • 分子间和分子内相互作用决定大分子高级结构
  • 氢键的排列方式决定蛋白质的特定构象
  • 大多数蛋白质由两个或三个结构域装配而成(不同的组合方式一不同的功能)
  • 弱化学键把蛋白质放在DNA和RNA的正确位置(序列或构象特异性)
  • 变构:通过改变蛋白质的形状调控其功能(通过结合配体或相互作用)
  • 不是所有蛋白质功能的调控都是通过变构进行的(募集作用)

核酸承载遗传信息——肺炎双球菌的转化实验

20世纪30年代,遗传学家就开始推测什么样的分子可能具有基因所需要的稳定性,同时又有为进化提供基础的长久的、突发的突变形式

该实验证明了S型细菌中含有一种转化因子,将R型细菌转化成了S型细菌,当时得出的实验结论是DNA可能是关键的遗传物质。实际上,转化因子就是DNA,但是当时并没有提出DNA这个名词

二、RNA——初识核糖核酸

RNA的结构特征

RNA和DNA一样,也是由各种核苷酸通过3′,5′-磷酸二酯键连接构成的多核苷酸链,但与DNA有一些差异。

RNA与DNA的不同之处

RNADNA
核糖核糖2’脱氧核糖
碱基尿嘧啶胸腺嘧啶
结构多聚核苷酸单链多聚核苷酸双链

RNA的生物学功能

  • RNA是某些病毒的遗传物质
  • RNA是从基因到蛋白质合成的媒介(mRNA)
  • RNA是mRNA上密码子与氨基酸的接头分子(tRNA)
  • RNA是一种调节分子(regulatory RNA )
  • RNA有结构功能,rRNA是核糖体的组成成分
  • 一些RNA在细胞中催化重要反应-(RNase P ribozyme, large rRNA, self-splicing introns)

RNA的结构基础——碱基

RNA的碱基主要有4种,即A(腺嘌呤)、G(鸟嘌呤)、C(胞嘧啶)、U(尿嘧啶),其中,U(尿嘧啶)取代了DNA中的T(胸腺嘧啶)。

碱基的配对——一个碱基只能与另一个碱基配对

典型碱基对有:

  • A-U
  • G-C
  • G-U



RNA的表示结构

RNA的结构可分为一级结构、二级结构和三级结构:

  • 一级结构:可以理解为遗传碱基对编码
  • 二级结构:RNA的平面表示
  • 三级结构:RNA的立体结构

三、RNA的二级结构——RNA链自身折叠形成类似A-DNA的局部双螺旋

RNA通常是单链的,除了双链外,它还具有多种形式的二级结构


上面列举的是一些比较常见的二级结构,下面是由上面这三种二级结构衍生出来的二级结构

假结

假结是由不相邻的RNA片段碱基配对而形成的复杂结构


Stem Loops (Hairpins)

茎环一般至少有4个碱基

Bulge Loops

当结构一侧的基无法形成碱基对时会形成凸环

Interior Loops

当结构两侧的碱基无法形成碱基对时会生成内环

Junctions (Multiloops)

两个或两个以上的双绞合区绞合形成闭合结构

Kissing Hairpins

两个独立的茎环相互组合

四、RNA二级结构的表示方法

平面图形表示法

平面图形表示法可以直观地看出RNA的结构

[1]吴建英,王淑琴.RNA二级结构点括号图与CT文件表示法的相互转换算法研究[J].天津师范大学学报(自然科学版),2012,32(04):32-36.

圆点图表示法

由圆表示的二级结构的碱基对,为结构中每个碱基对绘制弧,通过索引对(i,j)描述碱基对,表示碱基顶点之间的链接,如果有任何弧交叉,则存在假结


RNA二级结构平面图

RNA二级结构平面图是另外一种比较常见的RNA二级结构表示方法,在这种表示方法中RNA 序列中碱基间的配对信息一目了然,各个基本组成构件也表现的十分清楚,常常作为效果图输出。

螺旋区点阵图

螺旋区点阵图,是指以数学坐标图的方式显示RNA二级结构的一种方法,设立一个数学坐标图,首先按照 RNA 的序列情况在坐标图中分别标记出横、纵坐标值,然后通过查找构成碱基配对的序列的坐标,就能把该 RNA 结构的碱基对在坐标图上施划出来;再通过一线与横、纵坐标各成 45°角的斜线,串过的全部碱基对,就可标出该 RNA 结构的茎区结构。

点括号法

点括号表示法就是用点和成对的括号来表示RNA的二级结构信息:

  • RNA序列中的未产生碱基互补配对的自由碱基用“.”表示
  • 而形成互补碱基对的两个碱基分别用一对“(”和“)”表示
  • 碱基对中相对靠近5’端的碱基用“("进行表示
  • 碱基对中相对靠近3’端的碱基用“)”进行表示

[1]吴建英,王淑琴.RNA二级结构点括号图与CT文件表示法的相互转换算法研究[J].天津师范大学学报(自然科学版),2012,32(04):32-36.

CT 文件表示法

CT文件格式初步由ZuKerl提出,用于定义RNA二级结构和核苷酸序列,包含多个序列的多个子结构信息。在CT文件中,首行中整数N表示核苷酸序列的总长度,N在后面是预测二级结构得到的自由能和RNA分子的描述信息。
CT文件中包含6列数据:

  • 第1列为索引信息;
  • 第2列表示RNA二级结构中从5 '端开始到3 '端结束的标题(A, U, G和C) ;
  • 第3列是与之相邻的前一个栅极的编号;
  • 第4列是与之相邻的后1个串联的编号;
  • 第5列表示是否存在与该字符串配对的串行,’ 0 ‘表示无配对字符串,非’ 0 '表示存在配对字符串,并且用数字n表示与配对的串联编号;
  • 第6列同第1列。

[1]吴建英,王淑琴.RNA二级结构点括号图与CT文件表示法的相互转换算法研究[J].天津师范大学学报(自然科学版),2012,32(04):32-36.

CT文件可以由RNA二级结构预测软件得到,被用于计算RNA之间的相似性及预测其类别

五、RNA二级结构预测的主要方法

Energy minimization

  • dynamic programming approach
  • does not require prior sequence alignment
  • require estimation of energy terms contributing to secondary structure

Comparative sequence analysis

  • Using sequence alignment to find conserved residues and covariant base pairs. and covariant base pairs.
  • most trusted

六、使用PaddleHelix-螺旋桨生物计算平台完成RNA二级结构预测

螺旋桨PaddleHelix,是基于百度飞桨深度学习框架开发的生物计算工具和平台。 螺旋桨针对生信&计算机交叉学科的学习者、研究者和合作伙伴,提供一整套开源工具集和计算平台,支持构建针对新药研发、疫苗设计、精准医疗场景的技术方案。

RNA二级结构预测包括一系列的线性时间RNA二级结构分析算法: LinearFold和LinearPartition

LinearFold

LinearFold能够在线性时间内预测RNA二级结构,在长序列RNA上的预测速度远远大于传统算法。其中,LinearFold能够将新冠病毒全基因组序列(约30,000 nt)二级结构预测时间从55分钟降低到27秒,速度提升120倍。

同时LinearFold在预测精度上相比传统算法也有提升。尤其对于长序列RNA二级结构(如16S和23S rRNA二级结构)和长碱基对(相距500+ nt)预测上,LinearFold预测精度有显著地提升。

LinearPartition

2020年,百度再次发表世界最快RNA配分方程和碱基对概率预测算法LinearPartition。

该算法功能更加强大,可以模拟RNA序列在平衡态时成千上万种不同结构的分布,并预测碱基对概率矩阵。LinearPartition算法同样被ISMB顶会接收并在Bioinformatics杂志上发表,论文链接请见:LinearPartition: linear-time approximation of RNA folding partition function and base-pairing probabilities

在使用上述两种算法之前,我们需要安装PaddleHelix:

 !pip install paddlehelix
 from IPython.display import clear_output
 clear_output()
 print("安装成功")
    安装成功

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_rna
input_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)

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_rna
input_sequence = "UGAGUUCUCGAUCUCUAAAAUCG"
UAAAAUCG"
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)])

如需运行代码,请前往AI Studio:

七、螺旋桨RNA结构预测竞赛:Unpaired Probability Prediction

核糖核酸(Ribonucleic Acid),简称RNA,在遗传编码、翻译、调控、基因表达等过程中发挥作用。RNA的核心功能可以分为两类:

  1. 传递遗传信息: 大多数生命体的遗传信息存在于DNA中,DNA通过转录生成RNA,同时也将遗传信息传递给RNA;RNA进一步翻译产生蛋白质,而蛋白质是遗传信息的终极载体。另有一类生命体,如新冠病毒这样的RNA病毒,它们没有DNA,RNA中直接存储了所有的遗传信息。
  2. 调控基因表达: 得益于非编码RNA(non-coding RNA)多种多样的作用,RNA的结构在基因表达的实现过程中发挥着至关重要的作用。

在这里插入图片描述
RNA序列由四种碱基组成,分别是腺嘌呤,胞嘧啶,鸟嘌呤和尿嘧啶。这四种碱基组成的序列就是RNA序列,也叫做RNA的一级结构。RNA序列在空间上会折叠、扭曲、形成特定的结构。我们把2D平面上由碱基配对形成的结构称之为RNA的二级结构,而将3D空间上形成的立体结构称之为RNA的三级结构。

在这里插入图片描述
2019年7月,百度研究院发表了第一个重磅成果:世界上最快的RNA二级结构预测算法LinearFold,相关论文被领域顶会ISMB 接收,并发表在权威杂志Bioinformatics上。LinearFold算法可将新冠病毒全基因组序列结构预测时间从55分钟缩短到27秒,分析速度提升近120倍。2020年1月31日,百度对外免费开放LinearFold算法平台,助力全球抗疫。

2020年4月,百度研究院又发布了第二个重磅成果:世界上最快的RNA配分方程算法LinearPartition。相比于LinearFold,LinearPartition功能更强大,可用于更准确的描述RNA结构分布,因而在RNA基础研究和药物设计方面有更广泛的应用。以上两个算法在极大提高结构预测速度的同时,也提高了预测精度。如何在LinearFold和LinearPartition的基础上进一步提高结构预测精度,最终彻底解决RNA结构预测这个世界级难题,是一个值得探索的课题。

本次竞赛旨在借助百度在RNA生物计算方向上的算法优势,通过百度大脑AI Studio平台,诚邀全球范围内计算生物、人工智能等领域从业者、爱好者和高等院校老师学生报名参赛,推动人工智能技术在生物计算上的技术应用。

更多比赛说明请前往AI Studio查看:

个人介绍

北京联合大学 机器人学院 自动化专业 2018级 本科生 郑博培

百度飞桨开发者技术专家 PPDE

百度飞桨官方帮帮团、答疑团成员

深圳柴火创客空间 认证会员

百度大脑 智能对话训练师

来AI Studio互粉吧~ 等你哦~ https://aistudio.baidu.com/aistudio/personalcenter/thirdview/147378

欢迎大家fork喜欢评论三连,感兴趣的朋友也可互相关注一下啊~

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页