本文摘自文章 RAiSD detects positive selection based on multiple signatures of a selective sweep and SNP vectors,communications biology,27 June 2018,被引用量 23
RAiSD:Raised Accuracy in Sweep Detection
RAiSD 特点
- 通过滑窗依次读取所有 SNP 信息,窗口大小为 SNP 数量,而非区间 bp 长度。
- 计算每个窗口内 核酸多样性 θ w θ_w θw 、等位基因频谱(Allele Frequency Spectrum,也称 Site Frequency Spectrum,SFS)、连锁不平衡(LD),3 个群体遗传统计参数作为输入特征,检索选择清扫区间。
- 通过简便算法,大幅减少检索选择清扫区间所需的时间。
RAiSD 算法
μ t = μ t V A R × μ t S F S × μ t L D μ_t=μ_t^{VAR} × μ_t^{SFS} × μ_t^{LD} μt=μtVAR×μtSFS×μtLD
μ t V A R = ( l t + W s z − 1 − l t ) / W s z μ_t^{VAR}=(l_{t+W_{sz}-1}-l_t)/W_{sz} μtVAR=(lt+Wsz−1−lt)/Wsz,表示以第 t t t 个 SNP 为起点的窗口内 SNP 的密度,用 SNP 密度代表核酸多样性 θ w θ_w θw 。
- W s z W_{sz} Wsz 表示窗口大小,即窗口内 SNP 数量。
- l t + W s z − 1 l_{t+W_{sz}-1} lt+Wsz−1 表示第 t + W s z − 1 t+W_{sz}-1 t+Wsz−1 个 SNP 在染色体上的位置信息,同理 l t l_t lt 表示第 t t t 个 SNP 在染色体上的位置信息。 l t + W s z − 1 − l t l_{t+W_{sz}-1}-l_t lt+Wsz−1−lt 表示第 t t t 个窗口在染色体上的长度(bp)。
μ t S F S = ∑ [ M ( s i ) = 1 ] + ∑ [ M ( s i ) = S − 1 ] W s z μ_t^{SFS}=\dfrac{\sum[M(s_i)=1]+\sum[M(s_i)=S-1]}{W_{sz}} μtSFS=Wsz∑[M(si)=1]+∑[M(si)=S−1],表示第 t t t 个窗口内次等位基因型数量为 1 1 1 的 SNP 的密度。用极低频 SNP 代表等位基因频谱 SFS,大幅降低的计算资源消耗。
- S S S 表示群体数量, s i s_i si 表示第 i i i 个 SNP。
- M ( s i ) M(s_i) M(si) 表示第 i i i 个 SNP 中编号为 1 的等位基因型的数量。PS:RAiSD 将 SNP 的等位基因型分别编号为 0 0 0、 1 1 1,编码不以等位基因型频率作为指导,是固定指定(如 SNP 的碱基对为 AT,A 为 0,T 为 1)。
- [ M ( s i ) = 1 ] [M(s_i)=1] [M(si)=1] 表示条件判断,符合 M ( s i ) = 1 M(s_i)=1 M(si)=1 则返回 1 1 1,否则返回 0 0 0。即当第 i i i 个 SNP 在群体中编号为 1 1 1 的等位基因型数量为 1 1 1 时,返回 1 1 1,否则返回 0 0 0 。同理, [ M ( s i ) = S − 1 ] [M(s_i)=S-1] [M(si)=S−1] 表示第 i i i 个 SNP 在群体中编号为 1 1 1 的等位基因型数量为 S − 1 S-1 S−1 时,返回 1 1 1,否则返回 0 0 0 。
- ∑ [ M ( s i ) = 1 ] + ∑ [ M ( s i ) = S − 1 ] \sum[M(s_i)=1]+\sum[M(s_i)=S-1] ∑[M(si)=1]+∑[M(si)=S−1] 表示统计窗口内次等位基因型数量为 1 1 1 的 SNP 数量。
μ t L D = ∑ s i ∈ W L [ s i ∉ P R ] ∗ ∑ p j ∈ P L [ p j ∉ P R ] + ∑ s i ∈ W R [ s i ∉ P L ] ∗ ∑ p j ∈ P R [ p j ∉ P L ] P L S Z ∗ P R S Z μ_t^{LD}=\dfrac{\sum_{s_i\in W_L}[s_i\notin P_R]*\sum_{p_j\in P_L}[p_j \notin P_R] + \sum_{s_i\in W_R}[s_i\notin P_L]*\sum_{p_j\in P_R}[p_j \notin P_L]}{P_{L_{SZ}}*P_{R_{SZ}}} μtLD=PLSZ∗PRSZ∑si∈WL[si∈/PR]∗∑pj∈PL[pj∈/PR]+∑si∈WR[si∈/PL]∗∑pj∈PR[pj∈/PL] ,表示窗口的连锁不平衡程度。通过计算窗口左右两半的 SNP 图谱差异情况来代表区间的 LD,相比计算每对 SNP 之间的 LD,计算时间大幅降低。
- 作者将窗口分为左右(L、R)两个子窗口, P P P 为 pattern 表示 SNP 在群体中的图谱, P R P_R PR 表示窗口中的右子窗口包含的所有图谱类型, P R S Z P_{R_{SZ}} PRSZ 表示右窗口中存在的图谱类型数量,如下图中 P R S Z = 2 P_{R_{SZ}}=2 PRSZ=2。
- p j ∈ P R p_j\in P_R pj∈PR 表示右子窗口中存在的图谱类型。
- s i ∈ W R s_i\in W_R si∈WR 表示右子窗口中存在的 SNP。
- ∑ s i ∈ W L [ s i ∉ P R ] \sum_{s_i\in W_L}[s_i\notin P_R] ∑si∈WL[si∈/PR] 表示符合 左子窗口中的 SNP 所拥有的 pattern 类型不存在于 P R P_R PR 中的 SNP 数量,下图中 ∑ s i ∈ W L [ s i ∉ P R ] = 3 \sum_{s_i\in W_L}[s_i\notin P_R]=3 ∑si∈WL[si∈/PR]=3 。
- ∑ p j ∈ P L [ p j ∉ P R ] \sum_{p_j\in P_L}[p_j \notin P_R] ∑pj∈PL[pj∈/PR] 表示属于 P L P_L PL 但不属于 P R P_R PR 的 pattern 数量,下图中 ∑ p j ∈ P L [ p j ∉ P R ] = 2 \sum_{p_j\in P_L}[p_j \notin P_R]=2 ∑pj∈PL[pj∈/PR]=2 。
图 b 展示了 RAiSD 先将输入的 SNP 由 S S S 维转化为 3 维(r、s、d),图 a 展示了 RAiSD 根据 3 维数据计算 μ t V A R μ_t^{VAR} μtVAR 、 μ t S F S μ_t^{SFS} μtSFS 、 μ t L D μ_t^{LD} μtLD 和 μ t μ_t μt 。
RAiSD 缺点
RAiSD 减少了计算量,但同时也丢失了大量的信息,使其在分析复杂图谱(软清扫)时 μ t S F S μ_t^{SFS} μtSFS 、 μ t L D μ_t^{LD} μtLD 基本没有作用,导致预测准确性大幅降低。 RAiSD 仅适用于快速检索硬清扫区间。