RNA(核糖核苷酸组成的长链状分子)是基因表达中不可或缺的一环。RNA的一级结构表现为核糖核苷酸的排列,其中包含4种碱基:A(腺嘌呤)G(鸟嘌呤)C(胞嘧啶)U(尿嘧啶)。RNA的二级结构则是在一级结构的基础上,通过碱基配对产生折叠,形成多种多样的二级结构,使得RNA实现多种多样的功能。本文重点关注RNA的二级结构,并以此为背景,引入几个组合计数的问题。
一、RNA二级结构的表示:
- 格路径表示(lattice path):
- 山形表示:(对应格路径表示)
- 简图表示(diagram):
- 圆圈表示:在简图表示的基础上,将首尾碱基对相连,形成一个圆圈。
- 文法表示(grammar):括弧表示碱基有配对。
- 树表示:多添加一条弧(0,32)作为根点,然后以弧作为内点,以未配对碱基作为叶子点。
二、RNA二级结构的数学定义:
(一)n长的RNA二级结构可表示为一个点的标号为[n]的简单图,并且边集满足:
-
若(i,j)∈E, 则∣i−j∣≥2;
-
若(i,j)∈E, 且(k,l)∈E, 其中i<j, k<l, [i,j]与[k,l]的交集非空, 则要么[i−j]⊂[k,l], 要么[k,l]⊂[i−j].
(二)By Waterman: [Secondary Structure of Single-Stranded Nucleic Acids] RNA的二级结构可表示为一个含n“带标签”点的图,其邻接矩阵满足:
- ai,i+1=1,1≤i≤n−1.
- 对任意i, 至多存在一个整数k=i−1,i+1, 使得aik=1;
- 若aij=akl=1,i<k<l, 则i<l<j.
称边(i,k), ∣i−k∣=1为一个基对。点 i 只与 i−1 和 i+1 相连的称为是“未配对的”。点 i 被“内含于”基对(k,l), 若k<i<l. 特别地,若不存在基对(p,q), 使得k<p<i<q, 则称i是唯一内含于基对(k,l)的。
(三)By Tinoco et.al: [RNA Secondary Structure: A Complete Mathematical Analysis] RNA的二级结构可以表示为一个配对矩阵P=(pij), 对于给定的核苷酸序列s=s1s2…sn, pij=1当且仅当si与sj配对,否则pij=0. 除此之外,需要满足的性质有:1. 配对矩阵的每一行每一列都至多有一个元素为1;2. 若si与sj配对,则sk(i<k<l)只能与i、j之间的点配对。
三、n长的RNA的二级结构的种类:
命题1. 令R(n)表示长为 n 的RNA的二级结构的数目,则:
R(n+1)=R(n)+j=1∑n−1R(j−1)R(n−j)=R(n)+j=0∑n−2R(j)R(n−j−1), 其中n≥2, R(0)=R(1)=R(2).
证明: 当n=1,2时,结果显然成立。假设对于R(k),1≤k≤n, 这一命题都成立,则对于新增的第n+1个碱基:
-
它不与前n个碱基中的任何一个配对:此时的方案数为R(n);
-
它与前面第j个碱基配对:首先按照定义,第j个碱基不能与其余的碱基再进行配对,由于不能交叉配对,第j+1个碱基只能与第j+3个到第n个碱基配对。这样一来,整个RNA链被分成了两个独立的部分:1到(j−1)和(j+1)到n. 根据乘法原理,此时的方案数为:j=1∑n−1R(j−1)R(n−j)⋅1.
再由加法原理,相加即证毕。
易得:R(n+1)≥R(n), 所以
R(n+1)≥R(n)+j=0∑n−2R(j)R(n−1−j)=R(n)+R(n−1)+j=1∑n−2R(j)R(n−1−j)=R(n)+R(n−1)+j=0∑n−3R(j+1)R(n−j−2)≥R(n)+R(n−1)+j=0∑n−3R(j)R(n−j−2)=2R(n)
R(n)≥2n−2.
更进一步地,定义生成函数:
ϕ(x)=∑n=0+∞R(n)xn=1+x+∑n=2+∞R(n)xn,
则由上面所求的递推关系:
x2ϕ2(x)+(x−1−x2)ϕ(x)+1=0.
命题 2. n长的,最小弧长为m的RNA二级结构的种类:
Rm(n)=∑i=1m+1Rm(n−i)+∑i=0n−2Rm(i)Rm(n−2−i),n>m
其中Rm(0)=Rm(1)=⋯=Rm(m−1)=0,Rm(m)=1.
证明: 当n=1,2,…,m−1时,易得Rm(n)=1; 假设对于Rm(k),1≤k≤n−1, 这一命题都成立,则对于新增的第n个碱基:
-
它不与前n−1个碱基中的任何一个配对:方案数为Rm(n−1);
-
它与前面第j个碱基配对:首先按照定义,第j个碱基不能与其余的碱基再进行配对,由于不能交叉配对,第j+1个碱基只能与第j+m+1个到第n−1个碱基配对。这样一来,整个RNA链被分成了两个独立的部分:1到(j−1)和(j+1)到n−1.
-
1≤j≤m: 只在[j+1,n−1]上形成了满足条件的二级结构,则此类二级结构数为Rm(n−j−1);
-
m+1≤j≤n−m: 在[j+1,n−1]和[1,j−1]上都能形成满足条件的二级结构,则此类二级结构数为Rm(n−j−1)Rm(j−1);
-
n−m+1≤j≤n−1: 只在[1,j−1]上形成了满足条件的二级结构,则此类二级结构数为Rm(j−1);
根据加法原理,总方案数为:
Rm(n)=∑i=1m+1Rm(n−i)+∑i=0n−2Rm(i)Rm(n−2−i),n>m
四、RNA二级结构的各类子结构的数学定义:
-
Helix(螺旋): RNA二级结构中的螺旋是相互嵌套的最大弧集,其左端和右端分别是连续的。这个弧集的大小称为螺旋的长度。例如(5,13)(6,12)就构成了一个螺旋。注意:螺旋可以只包含一条弧。
-
stack:包含基对(p−k,q+k),(p−k+1,q+k−1),…,(p,q), 使得(p−k−1,q+k+1),(p+1,q−1)中至少有一个未配对。称k+1为stack的长度,(p−k,q+k)是最终的基对。
-
external vertex:不属于任何loop的未配对的点。相邻的external vertex的集合称为是external element. 若其包含点1或n, 则其为自由端(free end),否则称为joint.
-
loop(在邻接矩阵的定义下): 若i+1,i+2,…,j−1都没被配对,而aij=1, 则称结构si+1si+2…sj−1为loop.
-
bulge(在邻接矩阵的定义下):若i+1,i+2,…,j−1都没被配对,而i,j均配对,但aij=1, 则称结构si+1si+2…sj−1为bulge.
-
interior loop:由两个bulge组成的结构si+1si+2…sj−1和sk+1sk+2…sl−1,i<j<k<l, 且ail=1,ajk=1.
-
join:特殊的bulgesisi+1…sj, 使得若akl=1,k<i, 则l≤i;若akl=1,k>j, 则l≥j.
-
tail:结构s1s2…sj, 其中1,2,…,j未配对,而j+1配对。
-
ladder:两个序列组成的结构:si+1si+2…si+j和sk+1sk+2…sk+j,i+j+1<k,ai+l,k+j−l+1=1, 对于任何一个1≤l≤j都成立,且ai,k+j+1=ai+j+1,k=0; 若i+j+3=k+1, 则最后一个约束可以忽略。
-
hairpin:最长的序列si+1si+2…sj−1恰好只含一个loop使得ai+1,j−1=1, 且ai,j=0