Yulong Niu

个人博客

通过RNA-Seq评估基因表达量的模型

Posted at — Feb 17, 2018

$$ \newcommand{\tildel}{\widetilde{l_t}} $$

$$ \newcommand{\P}{\mathrm{P}} $$

$$ \DeclareMathOperator*{\argmax}{arg,max} $$

本文基于参考资料1,展示RNA-Seq在评估基因表达量模型的细节。

1. 符号表示

$K$个长度为$l_i$的转录序列$t_i$,构成转录本的集合$T=\{t_1, t_2, \dots, t_K\}$。单个转录组中,每个转录序列$t_i$有$c_i$个拷贝数,全部转录序列的总拷贝数为$M$。单个转录序列的相对丰度为$\rho_k=\frac{c_k}{\sum\limits_{t \in T} c_t} = \frac{c_k}{M}$,易得$\sum\limits_{k=1}^K \rho_k=1$。

单个转录组中,全部转录片段构成集合$F=\{f_1, f_2, \dots, f_N\}$,总转录片段数目为$N=|F|$。比对到的转录序列$t_i$上的转录片段,构成集合$F_t \in F$,对应的转录片段数目为$X_t=|F_t|$。

2. 简单模型

简单模型为:单端RNA-Seq,每一个read只比对到一个转录序列上,且每个read的长度都为定值$m$。对于转录序列$t_i$,从5'3'一共可能比对上的read数目为$\tildel = l_i - m + 1$。建立模型的思路是:当给定一个read,它会被比对到某个转录序列的某个位置是一个随机事件。通过实际观测(即将read比对到转录序列),进而估计未知参数$\rho = \{\rho_1, \rho_2, \dots, \rho_K\}$。

通过read序列比对,可得观测数据类似如下矩阵。每一行表示某个read是否比对到某个转录序列的某个位置,行和为1。$1$表示read比对到对应转录序列上,$0$表示没有比对到对应转录序列。

$$ \left[ \begin{matrix} 0 & 0 & \cdots & 1 \newline 0 & 0 & \cdots & 0 \newline \vdots & \vdots & \ddots & \vdots \newline 0 & 0 & \cdots & 1 \newline \end{matrix} \right] $$

对于某个read $f$,来自于转录序列$t$的概率为:

$$ \begin{align} \begin{split} \P(f \in t) &= \frac{\rho_t M \tildel}{\sum\limits_{k=1}^{K} \rho_k M \widetilde{l_k}} \newline &= \frac{\rho_t \tildel}{\sum\limits_{k=1}^{K} \rho_k \widetilde{l_k}} \newline &= \alpha_t \end{split} \label{eq:1} \end{align} $$

当$f$来自于转录序列$t$时,$f$比对该转录序列某个位置的概率为:

$$ \begin{align} \begin{split} \P(\mathrm{pos}|f \in t) = \frac{1}{\tildel} \end{split} \label{eq:2} \end{align} $$

联合$\eqref{eq:1}$和$\eqref{eq:2}$,对于$f$来自于转录序列$t$的某个位置概率为:

$$ \begin{align} \begin{split} \P(\mathrm{pos}, f \in t) = \frac{\alpha_t}{\tildel} \end{split} \label{eq:3} \end{align} $$

因此,极大似然函数为:

$$ \begin{align} \begin{split} L &= \prod_{f \in F_t} \prod_{t \in T} \frac{\alpha_t}{\tildel} \newline &= \prod_{t \in T} \left( \frac{\alpha_t}{\tildel} \right)^{X_t} \newline &\propto \prod_{t \in T} \alpha_t^{X_t} \end{split} \label{eq:4} \end{align} $$

在约束条件$\sum\limits_{t \in T} \alpha_t= 1$,求得极大似然估计为$\alpha_t = \frac{X_t}{N}$。有趣的是,在简单模型条件下,该极大似然估计可以来源于multinoulli分布

2. 异构体模型

在异构体模型中,某一个read可以比对到多个转录序列上,但每一个read的长度为定值$m$。因此,可得观测数据类似如下矩阵:

$$ \left[ \begin{matrix} 1 & 0 & \cdots & 1 \newline 1 & 1 & \cdots & 1 \newline \vdots & \vdots & \ddots & \vdots \newline 0 & 1 & \cdots & 1 \newline \end{matrix} \right] $$

因此,对一个每一个read,可观测数值为是否比对到多个转录序列的某个位置,不可观测数据为该read真实来源于哪个转录序列$T=\{t_1, t_2, \dots, t_K\}$,要估计的未知参数为$\alpha=\{\alpha_1, \alpha_2, \dots, \alpha_K\}$。EM算法可以解决类似有隐变量问题。

首先,异构体模型为:

$$ \begin{align} \begin{split} \P(\mathrm{pos}|\alpha) &= \sum_{k=1}^{K} \P(\mathrm{pos}, f \in t_k|\alpha) \newline &= \sum_{k = 1}^{K} y_k \frac{\alpha_k}{\widetilde{l_k}} \newline \end{split} \label{eq:5} \end{align} $$

其中$y_k$是read在观测矩阵行中的第$k$个元素($0$或$1$)。

对于第$n$次迭代,观察$\P(f \in t_1|\mathrm{pos}, \alpha^{(n)})$:

$$ \begin{align} \begin{split} \P(f \in t_1|\mathrm{pos}, \alpha^{(n)}) &= \frac{\P(f \in t_1, \mathrm{pos}|\alpha^{(n)})}{\sum\limits_{k=1}^{K} \P(f \in t_k, \mathrm{pos}|\alpha^{(n)})} \newline &= \frac{\alpha_1^{(n)} \frac{y_1}{\widetilde{l_1}}}{\sum\limits_{k=1}^{K} \alpha_k^{(n)} \frac{y_k}{\widetilde{l_k}}} \newline &= \lambda_1 \end{split} \label{eq:6} \end{align} $$

根据$\eqref{eq:6}$易得,$\sum\limits_{k=1}^{K} \lambda_k = 1$。

$$ \begin{align} \begin{split} \alpha^{(n+1)} &= \argmax_\alpha \left( \sum_{f \in F} \sum_{k=1}^{K} \lambda_k \log\left( \alpha_k \frac{y_k}{\widetilde{l_k}} \right) \right) \newline &= \argmax_\alpha \left( \sum_{f \in F} \sum_{k=1}^{K} \lambda_k \log\left( \alpha_k \right) \right) \end{split} \label{eq:7} \end{align} $$

对$\alpha_k$求偏导取极限,第$n+1$次参数估计为:

$$ \begin{align*} \begin{split} \alpha_k^{(n+1)} &= \frac{\sum_\limits{f \in F} \lambda_k}{\sum\limits_{i=1}^{K} \sum\limits_{f \in F} \lambda_i} \newline &= \frac{\sum\limits_{f \in F} \lambda_k}{N} ,\ k=1, 2, \dots, K \end{split} \end{align*} $$

根据转换公式$\rho_t = \frac{\frac{\alpha_t}{\tildel}}{\sum\limits_{k=1}^{K} \frac{\alpha_k}{\widetilde{l_k}}}$,以上EM递推式可以转换为:

$$ \begin{align*} \begin{split} \lambda_k^{(n+1)} &= \frac{y_k \rho_k^{(n)}}{\sum\limits_{i=1}^{K} y_i \rho_i^{(n)}} ,\ k=1, 2, \dots, K \newline \rho_k^{(n+1)} &= \frac{\frac{\sum_\limits{f \in F} \lambda_k^{(n+1)}}{\widetilde{l_k}}}{\sum\limits_{i=1}^{K} \frac{\sum_\limits{f \in F} \lambda_i^{(n+1)}}{\widetilde{l_i}}} ,\ k=1, 2, \dots, K \end{split} \end{align*} $$

参考资料

更新记录

2019年04月19日