跳转到内容

PWM 与 PSSM

快速概览

PWM(位置权重矩阵)和 PSSM(位置特异打分矩阵)是 motif 的核心表示方法:它们通过位置相关的统计权重,使得我们可以对任意候选片段计算'像不像这个 motif'的得分。

  • PWM 是基于对数比值的打分矩阵,PSSM 是其应用形式
  • 核心思想是用背景概率归一化,突出 motif 的统计特征
  • 它是 motif 扫描和序列 logo 可视化的基础
所属板块 核心方法

索引、比对、组装与概率模型构成的核心算法主轴。

阅读目标 帮助建立阅读上下文

先判断这页与你当前问题的关系,再决定是否深入展开。

建议前置 先建立相关基础对象与方法直觉

建议先建立相关基础对象与方法直觉,再进入本页。

PWM(Position Weight Matrix,位置权重矩阵)和 PSSM(Position-Specific Scoring Matrix,位置特异打分矩阵)是描述序列 motif 的经典表示方式。

它们的核心思想是:一个 motif 不是要求每个位置都完全一样,而是允许每个位置对不同字符有不同偏好。

很多真实序列模式并不是”固定字符串”,而是:

  • 某些位置非常保守;
  • 某些位置允许多种字符;
  • 整体上呈现统计偏好而不是绝对规则。

PWM / PSSM 让我们可以用矩阵形式刻画这种偏好,并用一个统一框架来”打分”候选序列片段。

给定位置频率矩阵 PFM,其中 fi,cf_{i,c} 表示位置 ii 上字符 cc 的频率,PWM 的定义为:

w{i,c}=log2({f{i,c}}{bc})w_\{i,c\} = \log_2\left(\frac\{f_\{i,c\}\}\{b_c\}\right)

其中:

  • wi,cw_{i,c} 是位置 ii 上字符 cc 的权重
  • fi,cf_{i,c} 是位置 ii 上字符 cc 的频率
  • bcb_c 是字符 cc 的背景频率

为了避免零概率,通常使用伪计数:

\tilde\{f\}_\{i,c\} = \frac\{\text\{count\}_\{i,c\} + \alpha\}\{N + 4\alpha\} w_\{i,c\} = \log_2\left(\frac\{\tilde\{f\}_\{i,c\}\}\{b_c\}\right)

对于候选序列片段 s=s1s2...sLs = s_1s_2...s_L,其 PSSM 得分为:

{score}(s)={i=1}{L}w{i,si}\text\{score\}(s) = \sum_\{i=1\}^\{L\} w_\{i,s_i\}

PSSM 得分可以理解为对数似然比:

{score}(s)=log2({P(s{motif})}{P(s{background})})\text\{score\}(s) = \log_2\left(\frac\{P(s|\text\{motif\})\}\{P(s|\text\{background\})\}\right)

其中:

  • P(smotif)=i=1Lfi,siP(s|\text{motif}) = \prod_{i=1}^{L} f_{i,s_i} 是 motif 模型下的序列概率
  • P(sbackground)=i=1LbsiP(s|\text{background}) = \prod_{i=1}^{L} b_{s_i} 是背景模型下的序列概率

得分越高,说明序列越像由 motif 生成,而非随机背景。

算法1:从 PFM 构建 PWM

输入:PFM(或原始计数),背景频率 b_c,伪计数 α
输出:PWM
1. for i = 1 to L:
for each character c ∈ \{A, C, G, T\}:
f_ic = (PFM[i][c] + α) / (N + 4α)
PWM[i][c] = log₂(f_ic / b_c)
2. return PWM

时间复杂度:O(L)

算法2:使用 PSSM 扫描序列

输入:PWM,序列 seq,motif 长度 L
输出:每个起始位置的得分
1. for pos = 1 to (|seq| - L + 1):
score = 0
for i = 1 to L:
c = seq[pos + i - 1]
score += PWM[i][c]
output score at position pos

时间复杂度:O(|seq| · L)

常用阈值选择方法:

  • 固定阈值:根据经验设定
  • 百分位数阈值:在随机序列上计算得分分布,选择 top p%
  • FDR 控制:根据假发现率调整阈值
  • 基于 p-value:计算每个得分的统计显著性

假设我们有以下 5 个 motif 实例:

TATAAA
TATGAA
TATAAT
TATCAA
TATAAA

统计每个位置上各碱基的出现次数:

位置ACGT总计
100055
250005
300055
441005
550005
640015

使用伪计数 α = 0.5,N = 5:

\tilde\{f\}_\{i,c\} = \frac\{\text\{count\}_\{i,c\} + 0.5\}\{5 + 4 \times 0.5\} = \frac\{\text\{count\}_\{i,c\} + 0.5\}\{7\}

对于位置 1,碱基 T:

{~f}{1,T}={5+0.5}{7}={5.5}{7}0.786\tilde\{f\}_\{1,T\} = \frac\{5 + 0.5\}\{7\} = \frac\{5.5\}\{7\} \approx 0.786

对于位置 1,碱基 A:

{~f}{1,A}={0+0.5}{7}={0.5}{7}0.071\tilde\{f\}_\{1,A\} = \frac\{0 + 0.5\}\{7\} = \frac\{0.5\}\{7\} \approx 0.071

假设背景频率 bA=bC=bG=bT=0.25b_A = b_C = b_G = b_T = 0.25

w_\{i,c\} = \log_2\left(\frac\{\tilde\{f\}_\{i,c\}\}\{0.25\}\right)

对于位置 1,碱基 T:

w{1,T}=log2({0.786}{0.25})=log2(3.144)1.65w_\{1,T\} = \log_2\left(\frac\{0.786\}\{0.25\}\right) = \log_2(3.144) \approx 1.65

对于位置 1,碱基 A:

w{1,A}=log2({0.071}{0.25})=log2(0.284)1.82w_\{1,A\} = \log_2\left(\frac\{0.071\}\{0.25\}\right) = \log_2(0.284) \approx -1.82

完整 PWM:

位置ACGT
1-1.82-1.82-1.821.65
21.65-1.82-1.82-1.82
3-1.82-1.82-1.821.65
40.85-1.82-1.82-1.82
51.65-1.82-1.82-1.82
60.85-1.82-1.82-1.82

候选序列 1:TATAAA

{score}=w{1,T}+w{2,A}+w{3,T}+w{4,A}+w{5,A}+w{6,A}\text\{score\} = w_\{1,T\} + w_\{2,A\} + w_\{3,T\} + w_\{4,A\} + w_\{5,A\} + w_\{6,A\} =1.65+1.65+1.65+0.85+1.65+0.85=8.30= 1.65 + 1.65 + 1.65 + 0.85 + 1.65 + 0.85 = 8.30

候选序列 2:CGCGCG

{score}=w{1,C}+w{2,G}+w{3,C}+w{4,G}+w{5,C}+w{6,G}\text\{score\} = w_\{1,C\} + w_\{2,G\} + w_\{3,C\} + w_\{4,G\} + w_\{5,C\} + w_\{6,G\} =(1.82)+(1.82)+(1.82)+(1.82)+(1.82)+(1.82)=10.92= (-1.82) + (-1.82) + (-1.82) + (-1.82) + (-1.82) + (-1.82) = -10.92

候选序列 3:TATGAA

{score}=1.65+1.65+1.65+(1.82)+1.65+0.85=6.63\text\{score\} = 1.65 + 1.65 + 1.65 + (-1.82) + 1.65 + 0.85 = 6.63

显然 TATAAA 得分最高,最像该 motif。

  • 构建 PWM:O(L),L 是 motif 长度
  • 扫描序列:O(M · L),M 是序列长度
  • 全基因组扫描:对于长度为 G 的基因组,复杂度为 O(G · L)
  • PWM 存储:O(L · 4) = O(L)
  • 扫描时临时空间:O(L)

这类表示广泛用于:

  • motif 扫描;
  • 转录因子结合位点分析;
  • profile-style 模式识别;
  • 作为更复杂概率模型(如 profile HMM)的基础直觉。

在实际流程中,你往往会看到:

  • 从 motif discovery 工具输出的 PFM/PWM;
  • 使用 PSSM 进行 genome-wide 扫描,给出高分候选位点;
  • 再结合进化保守性、表达数据和实验验证进行过滤。