人生物信息学中的机器学习

  • SVM, Artificial neural networks, Hidden Markov Model…
VM, Artificial neural networks, Hidden Markov Model
VM, Artificial neural networks, Hidden Markov Model
VM, Artificial neural networks, Hidden Markov Model

中国早期机器学习在生物学中的应用

  • 清华大学孙之荣教授:
    • 1997年,将人工神经网络引入生物信息学领域;
    • 1999年,利用支持向量机预测可变剪接位点;
    • 2001年,构建蛋白质细胞亚定位预测工具SubLoc,以及蛋白质二级结构预测算法。

生物医学中的六种数据类型

  • 序列数据:DNA、RNA、蛋白质序列
  • 结构数据:NMR、X-ray、Cryo-EM/Cryo-ET
  • 遗传/进化距离数据
  • 谱数据:基因芯片、蛋白质-蛋白质相互作用
  • 影像数据: 图像、视频(CT、MRI、超声)
  • 文本数据:科学文献、电子病历
  • 混合数据:二代测序数据(序列、谱)

模型评估与选择

  • 样本/检验数据:阳性数据 (P),阴性数据 (N)
    • 阳性数据 (P):真实的,被实验所证实的数据
    • 阴性数据 (N):被实验所证明为无功能的数据
  • 对于预测结果的评估,定义:
    • 真阳性 (TP): 阳性数据中被预测为阳性的数据
    • 假阳性 (FP): 阴性数据中被预测为阳性的数据
    • 真阴性 (TN): 阴性数据中被预测为阴性的数据
    • 假阴性 (FN): 阳性数据中被预测为阴性的数据

常用的评估指标

  • 灵敏度 (Sensitivity, Sn): 对于真实的数据,能够测成“真”的比例是多少 - (Type II error)
  • 特异性 (Specificity, Sp): 对于阴性的数据,能够预测成“假”的比例是多少 - (Type I error)
  • 准确性 (Accuracy, Ac): 对于整个数据集(包括阳性和阴性数据),预测总共的准确比例是多少
  • 马修相关系数(Mathew correlation coefficient, MCC): 当阳性数据的数量与阴性数据的数量差别较大时,能够更为公平的反映预测能力,值域[-1,1]
常用评估指标
常用评估指标
常用评估指标

ROC curve

  • X轴:1-Sp
  • Y轴:Sn
  • AUC(area under the curve)
    • 值:ROC的面积越大,预测能力越强
ROC curve
ROC curve
ROC curve

预测性能的评估

自检法 (Self-consistency validation)

  • 训练数据当成测试数据
  • 训练数据中所有的阳性数据为测试数据中的阳性数据
  • 训练数据中所有的阴性数据为测试数据中的阴性数据
  • 反映当前预测工具对目前已知的数据的预测能力
  • 假设:根据目前已知的数据所构建的计算模型能够反映未知的数据的模式
  • 缺点:不能反映计算模型的稳定性

除一法 (Leave-one-out validation)

  • 每次从数据集中去掉一个,包括阳性数据和阴性数据
  • 利用剩下的数据重新训练,并构建新的计算模型
  • 对去掉的这一个数据进行打分
  • 保证每个数据去掉一次,从而得到所有数据的分值
  • 计算各个阈值的Ac, Sn, Sp和MCC
  • 计算AUC值,作为准确性的评价指标

N折交叉法 (N-fold cross-validation)

  • 将数据集分成n组,并保证阳性数据与阴性数据的比例与原数据相同
  • 将n-1组作为训练数据,重新训练并构建计算模型;1组不用于训练
  • 将n-1组的数据重新分为n组,其中n-1组用来构建模型,1组用于调参
  • 对不用训练的1组进行打分,计算性能
  • 重复n次,使每组数据都用于独立测试集1次
  • 选取AUC最高模型

预测性能及稳定性

  • 自检法: 反映预测性能
  • 留一法 & N折交叉法: 反映预测系统的稳定 性
  • 预测性能 vs. 检验性能
    • 差距较小:系统稳定
    • 差距过大:系统不稳定,数据过训练

阈值的确定

  • Threshold 或 Cut-off:
    • 人为设定,主要依据经验
    • 给定阈值以上或以下预测为阳性
    • 即利用阈值进行“一刀切”
    • 确定阈值的一般方法
  • 传统策略:平衡Sn和Sp,使两者大致相当
    • 实际应用:高Sp低Sn保证预测结果的可靠性
    • MCC最大值,保证综合预测性能最高
    • ……

过训练 (Overfitting/Overtraining)

  • 根据已知数据构建的模型只能很好的适用于训练数据
  • 不适合用来预测
  • 对训练数据的微小改变对于预测性能影响过大
  • 预测工具过训练:只能很好的符合训练数据,而对新数据则性能很差

如何评估算法的准确性?

Example
Example
Example

线性模型 & 决策树

  • 线性回归 (Linear Regression)
    • $f(x)=ax+b$
  • 对数几率回归/逻辑回归(Logistic regression)
    • $f(x)=\frac{1}{1+e^{-ax-b}}$
  • 信息熵
    • $ Ent(D)=-\sum_{k=1}^{ \mid y \mid } D\ log_{2} {p_k}$
  • 信息增益
    • $ Gain(D,a) = Ent(D) - \sum_{v=1} ^ {V} \frac{ D^v \mid }{\mid D \mid}Ent(D^v)$

神经网络 & 支持向量机

  • 单层 & 多层神经网络
  • 误差逆传播 (Back propagation, BP)
误差逆传播1
误差逆传播1
误差逆传播1
误差逆传播2
误差逆传播2
误差逆传播2
  • 划分超平面
    • $f(x)=w^{T}x+b$
  • 核函数
    • 将线性不可分样本映射到更高维空间,从而线性可分
核函数
核函数
核函数

贝叶斯分类器 & 集成学习

  • 贝叶斯最优分类器
    • $h^{*} = arg \max_{c \in Y}P(C\mid x)$
    • $P(C\mid x) = \frac{P(x\mid C)P(C)}{P(x)}$
  • 集成学习的错误率:
    • $e \leq \exp { -\frac{1}{2} T \cdot {1 - 2\epsilon}^2 }$

神经元、卷积层、池化层和输出层

  • 神经元激活函数
    • $RELU(x)=\begin{cases} x, & \text{if } x>0 \ 0, & \text{if } x\leq 0 \end{cases}$
  • 最大池化(Max pooling)
  • 卷积层
  • 输出
    • $sigmoid(x)=\frac{1}{1+e^{-x}}$

Large Language Models

Reinforcement Learning from Human Feedback (RLHF)

  • 四代语言模型的演化过程
演化过程
演化过程
演化过程
  • 大型语言模型研发的时间线
时间线
时间线
时间线
  • 人类反馈的强化学习算法
算法
算法
算法

AGI and its developments

Generative adversarial network, GAN

生成对抗网络

GAN
GAN
GAN

Variational Autoencoder, VAE

变分自编码器

VAE
VAE
VAE

Stable Diffusion, SD

稳定扩散

SD
SD
SD

Text Encoder, TE

文本编码器

TE
TE
TE

And more…

深度学习常用软件包

  • Keras

Click to visit it’s Official Website.

生物序列的概率模型

概率模型

一个能够通过不同的概率产生不同结果的模型。概率模型可以模拟或者仿真某一类型的所有事件,并且对每个事件赋予一个概率。

色子模型

一个色子存在6个概率值:$p_1, p_2, …, p_6$,其中掷出i的概率为$p_i (i=1, 2, …, 6)$。因此:

$p_i \geq 0, \sum_{i=1}^{6} p_i = 1$

考虑三次连续的掷色子,结果为 $[1,6,3]$,则总概率为:$p_1 \cdot p_6 \cdot p_3$

二项分布

  • 二项分布是n次独立的伯努利试验的和
  • 伯努利试验:只有两种结果的随机试验
  • 二项分布的概率质量函数:
    • $P(X=k) = C_n^k p^k (1-p)^{n-k}$
    • $C_n^k = \frac{n!}{k!(n-k)!}$
  • 二项分布的期望值:$E(X) = np$
  • 二项分布的方差:$Var(X) = np(1-p)$

e.g. 一枚硬币掷10次,正面朝上的次数为$X$,硬币正面朝上的概率为$p=0.5$,则$X$服从二项分布$B(10, 0.5)$,有$k$次正面朝上的概率为:$P(X=k) = C_{10}^k 0.5^k 0.5^{10-k}$。

酵母的全基因组复制

See the original article at this link.

DOI: 10.1038/nature02424

泊松分布

稀有事件发生的概率:在一个连续的时间或空间中,稀有离散变量出现的概率

$P(X=k) = \frac{\lambda^k e^{-\lambda}}{k!}$

  • $\lambda$:事件发生的平均次数
  • $k$:事件发生的次数

泊松分布的均值和方差都是$\lambda$。

细菌 vs. 噬菌体

细菌对噬菌体的应答
  • 数十亿细菌与噬菌体混合后,几乎所有的细菌将被杀死
  • 仅有很少的细菌能够存活,生长成克隆,并且对噬菌体具有特异性抵抗能力
  • 进化:细菌是否有基因?受到噬菌体攻击如何生存?
    • 拉马克机制:获得性遗传免疫 假说 细菌在接触到噬菌体后,小概率产生抵抗,不需要基因或遗传物质
    • 孟德尔机制:突变假说 细菌在接触到噬菌体后,产生突变,产生抵抗,需要基因或遗传物质
细菌生存的潜在机制
  • 孟德尔 – 遗传变异
    • 细菌在噬菌体攻击之前已经具有抵抗能力,不需要与病毒相互作用,受到攻击时也不产生新的突变
    • 具有抵抗能力的细菌随时间比例增加
    • 非泊松分布:抵抗性细菌由紧密相关的个体构成群落
Mondel
Mondel
Mondel
  • 拉马克 – 获得性遗传
    • 细菌在受到攻击的时候才产生免疫能力
    • 具有抵抗能力的细菌在受到攻击时的比例恒定
    • 泊松分布:每一个抵抗是一个独立的事件
Lamarck
Lamarck
Lamarck
结果:方差分析

泊松分布的方差等于均值,而非泊松分布的方差大于均值

The result
The result
The result

结论:细菌的抵抗性是由基因决定的,而非获得性遗传。

例:鸟枪法的覆盖率

Lander-Waterman Model

假设:需要测序的BAC长度200 kbp

  • 测序深度:10x
  • 测序长度:500 bp
  • 总共测序的序列数量:N
  • 总覆盖率 $C=Np$(每个点平均覆盖到的次数)

$N = \frac{200000 \times 10}{500} = 4000$

点X被覆盖k次的概率:二项分布~泊松分布

$P(X=k) = C_n^k p^k (1-p)^{n-k} \approx \frac{C^k e^{-C}}{k!}$

当点X一次都不被覆盖时,$k=0$; 此时的概率为:$P(X=0) = e^{-C}$。

超几何分布

一种不放回抽样的概率分布

  • 从有限个物件中抽出$n$个物件,其中包含$m$个特定种类的物件的概率分布
  • 超几何分布的概率质量函数:
    • $P(X=k) = \frac{C_M^k C_{N-M}^{n-k}}{C_N^n}$
    • $E(X) = n \frac{M}{N}$
    • $Var(X) = n \frac{M}{N} \frac{N-M}{N} \frac{N-n}{N-1}$

e.g. 从一副52张的扑克牌中抽取5张,其中有2张黑桃的概率是多少?

  • $N=52, M=13, n=5, k=2$
  • $P(X=2) = \frac{C_{13}^2 C_{39}^3}{C_{52}^5}$
  • $E(X) = 5 \frac{13}{52}$
  • $Var(X) = 5 \frac{13}{52} \frac{39}{52} \frac{47}{51}$
  • $P(X=2) = 0.4115$

e.g. 有N个球,其中红球M个,白球N-M个,每次拿出一个球不放回,总共n次,其中有至少有m个球是红球的概率为多少?

  • $P(X \geq m) = 1 - P(X < m-1)$
  • $P(X < m-1) = \sum_{k=0}^{m-1} \frac{C_M^k C_{N-M}^{n-k}}{C_N^n}$

例:基因组中的SNP

  • 人类基因组中的SNP(单核苷酸多态性)的分布
  • 人类基因组中的SNP的分布是超几何分布

研究者从26873个人类蛋白质中预测了2264个具有某种特定功能的底物,并进行进一步的分析。其中,有421个人类蛋白质具有某种功能结构域D,而在预测的2264个底物中,有94个蛋白质具有结构域D

问:结构域D在2264个底物中是显著出现,显著不出现,还是随机出现?

  • $N=26873, M=421, n=2264, k=94$
  • $P(X=94) = \frac{C_{421}^{94} C_{26452}^{2170}}{C_{26873}^{2264}}$
  • $P(X=94) = 0.0001$
  • $\dfrac{ \dfrac{m}{n} }{ \dfrac{M}{N} } = 2.65$

因此,问题转化:在26873个人的蛋白质中,抓出2264个蛋白质,其中至少有94个蛋白质具有功能结构域的概率是多少?

$p-value = P(m\slash \geq m) = 1 - P(m\slash < m-1) = 1 - \sum_{k=0}^{m-1} \frac{C_M^k C_{N-M}^{n-k}}{C_N^n}$

统计显著性

  • 考虑两个假设$H_0$(空假设)和$H_1$(备择假设)
    • H0代表随机情况下事件出现的概率
    • H1代表当前出现事件的概率
  • 如果$H_0 << H_1$,则拒绝$H_0$,接受$H_1$
  • 统计显著:$H_0$被拒绝,接受$H_1$
  • 超几何分布的$p-value$u
    • “完全随机状态下”事件出现的概率,即p-value=H0
    • H1=1

随机序列模型

  • 随机序列模型:描述序列的生成过程
  • 假设一个残基$a$随机出现的概率为$q_a$,并且该概率独立于其它残基而存在,则序列$S$的概率为:
    • $P(S) = \prod_{i=1}^{L} q_{S_i}$
    • $L$:序列的长度
    • $S_i$:序列中的第$i$个残基
    • $q_{S_i}$:残基$S_i$出现的概率

条件、连接、边际的概率

  • 考虑两个骰子,$X$和$Y$,$X$的概率分布为$p(x)$,$Y$的概率分布为$p(y)$
  • 条件概率:用骰子$X$的结果来预测骰子$Y$的结果
    • $p(y\mid x) = \frac{p(x,y)}{p(x)}$
  • 连接概率:两个骰子同时出现的概率
    • $p(x,y) = p(x)p(y)$
  • 边际概率:单个骰子的概率
    • $p(x) = \sum_{y} p(x,y)$