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

原创
2020/12/26 10:51
阅读数 1.1K

基于PaddleHelix完成RNA结构预测竞赛的前置基础知识

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

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

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

以及知网查阅的论文:

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

下载安装命令

## CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

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

显性基因与隐性基因

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

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

弱化学键

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

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

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

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

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

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

二、RNA——初识核糖核酸

RNA的结构特征

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

RNA与DNA的不同之处

  RNA DNA
核糖 核糖 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)])

个人介绍

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

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

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

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

百度大脑 智能对话训练师

下载安装命令

## CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

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

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

 

本文同步分享在 博客“Mr.郑先生_”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部