vlambda博客
学习文章列表

每日学习:贪心算法(SNP聚集的补充阅读)

贪心算法(SNP聚集的补充阅读) From Omics 05:59 收录于话题 #跟爱学妹学GWAS 21个


---以下内容仅为录音的提纲,详细讲解,请听录音---
---更多GWAS相关内容讲解,请点击进入话题---

---昨日内容---
(点击链接进入)
基因水平结果解读:
  • 最显著SNP法寻找独立基因位点

  • 如何对自己计算获得的GWAS的summary statistics,或者公开数据库中的GWAS结果寻找独立基因位点,用于论文结果展示。

付费内容:

  • Plink-clump(聚集)代码及解释、原理解析、结果分析、数据下载链接、常用参数设置等及录音。


---今日内容---

---以下内容一部分摘自知乎“小白算法”---

---PLINK相关部分为爱学妹自我领悟、举一反三,暂无参考文献支持---


贪心算法(Greedy Algorithm) ,又名贪婪法,是寻找最优解问题的常用方法,这种方法模式一般将求解过程分成若干个步骤,但每个步骤都应用贪心原则,选取当前状态下最好/最优的选择(局部最有利的选择),并以此希望最后堆叠出的结果也是最好/最优的解。

贪婪法的基本步骤:

步骤1:从某个初始解出发;
步骤2:采用迭代的过程,当可以向目标前进一步时,就根据局部最优策略,得到一部分解,缩小问题规模;
步骤3:将所有解综合起来。

  • 事例:找零钱问题

  • 假设你开了间小店,不能电子支付,钱柜里的货币只有 25 分、10 分、5 分和 1 分四种硬币,如果你是售货员且要找给客户 41 分钱的硬币,如何安排才能找给客人的钱既正确且硬币的个数又最少

  • 这里需要明确的几个点:
    1.货币只有 25 分、10 分、5 分和 1 分四种硬币;
    2.找给客户 41 分钱的硬币;
    3.硬币最少化

用贪婪算法的做法

  • 找给顾客sum_money=41分钱,可选择的是25 分、10 分、5 分和 1 分四种硬币。能找25分的,不找10分的原则,初次先找给顾客25分;

  • 还差顾客sum_money=41-25=16。然后从25 分、10 分、5 分和 1 分四种硬币选取局部最优的给顾客,也就是选10分的,此时sum_money=16-10=6。

  • 重复迭代过程,还需要sum_money=6-5=1,sum_money=1-1=0。至此,顾客收到零钱,交易结束;

  • 此时41分,分成了1个25,1个10,1个5,1个1,共四枚硬币。

总结:贪心算法的优缺点

优点:简单,高效,省去了为了找最优解可能需要穷举操作,通常作为其它算法的辅助算法来使用;

缺点:不从总体上考虑其它可能情况,每次选取局部最优解,不再进行回溯处理,所以很少情况下得到最优解。

PLINK-clump过程

(爱学妹自我领悟,无参考文献。如有错误,欢迎后台沟通)

PLINK相关代码及默认参数设置请至链接:



1. 找到索引SNP(P-value < 0.0001),及+/-250kb的所有SNP

2. 计算索引SNP与相邻SNP的LD

(点击超链接进入)
3. 如果LD值大于0.5,从列表中剔除P-value较大的SNP

4. 再对第三步中留下的SNP,与下一个SNP计算LD

5. 重复步骤3和4,直到以一个索引SNP为起头的所有的SNP都进行了LD计算

6. 将最终剩下的局部最优SNP留下

7. 重复步骤2-6,直到所有的索引SNP都计算完毕

8. 如果某一个索引SNP在另一个索引SNP的+/-250kb范围以内,则跳过该SNP(即该SNP不会再次成为索引SNP,即不会触发步骤2-6)。




参考内容:
https://zhuanlan.zhihu.com/p/53334049

-----------------  往期回顾  ------------------
















Omics