RNA Folding Algorithms

RNA折叠预测算法

Posted by Wenlong Shen on December 25, 2016

DNA靠序列传递信息,Protein靠结构发挥功能,RNA却序列、结构两手抓…

互补回文

对于RNA二级结构最基本的假设就是碱基的互补配对(在一级序列上的表现就是互补碱基的回文串儿),传统的算法实际就是在各种潜在的茎环结构中搜索最符合生物学真实特征的情况(如最低自由能)。另外一种算法思想基于生物同源分子保守性的特点,一般地,生物分子的结构保守性大于序列保守性,因而可通过同源序列的比较对二级结构进行预测,个人认为这种方法更适合tRNA等结构决定功能的RNA分子,一些对蛋白质结构进行预测的算法也是基于这种思想。

后面主要说下基于最低自由能的算法。

动态规划

既然是以碱基配对为基础,那么类似于序列比对,动态规划算法在这里就可以很好地派上用场:

\[S(i,j)=max \begin{cases} &S(i+1,j-1)+\sigma&[i,j\ base\ pair]\\\ &S(i+1,j)+\gamma&[i\ unpair]\\\ &S(i,j-1)+\gamma&[j\ unpair]\\\ &max_{i<k<j}S(i,k)+S(k+1,j)&[bifurcation] \end{cases}\]

序列比对本身的时间复杂度在\(N^2\),但由于RNA折叠可能存在大量的内部嵌套分支(bifurcation)等,故其实际时间复杂度达到\(N^3\)。

考虑到真实的稳定存在的RNA往往倾向于形成具有最低自由能的二级结构,故在实际打分时,可根据配对与否、茎区、环区等给予不同的打分值,另外,自由能的大小也并不是简单的线性关系,故实际算法有的以碱基为单元,有的以区段或茎环结构motif为单元。

在这里要特别注意假结这种结构,对于四个位点a,b,c,d(a<b<c<d),若a和c配对且b和d配对,那么这就形成了假结。标准的动态规划算法无法处理像假结这种重叠配对的情况,一些改进算法试图解决这一矛盾,但会导致计算复杂度的极度增加,同时假结由于其动态性,对环境及其敏感,可以形成更为复杂的高级结构而发挥功能,也成为很多学者的研究重点。

步步逼近

结构预测一直是生物信息领域的大难题,准确性很低,RNA二级结构预测尤为如此,最低自由能的假设本身就太过单纯,因为在生物体内实际存在的、发挥功能的RNA并不是孤立单元,并不一定追求稳定的结构,其稳定的结构也并不一定就拥有最低自由能。另外对于碱基和茎环结构等,其自由能不是简单的线性关系,序列上下文等都会带来巨大影响,但具体量化标准并不确定。

蛋白质号称大分子,尚可以通过X射线或者核磁共振等方法来测定其结构,而大部分RNA分子都太小,目前还无法直接观测得到。庄小威等大神虽然已经可以利用显微镜观测到单个RNA分子的细胞定位,但是二级结构这种细节依然无法得到,分析预测RNA结构依然任重道远。不过最近几年发展出来的如SPLASH、MARIO、PARIS等方法,可以捕获RNA分子间或分子内的相互作用,为解析RNA二级结构提供了新方法新数据,相信更为准确的数学模型的出现指日可待。