GWAS群体分层 (Population stratification):利用plink对基因型进行PCA
2024-09-29 08:07:48
一、为什么要做祖先成分的PCA?
GWAS研究时经常碰到群体分层的现象,即该群体的祖先来源多样性,我们知道的,不同群体SNP频率不一样,导致后面做关联分析的时候可能出现假阳性位点(不一定是显著信号位点与该表型有关,可能是与群体SNP频率差异有关),因此我们需要在关联分析前对该群体做PCA分析,随后将PCA结果作为协变量加入关联分析中。
二、怎么做PCA?
首先prune一下
plink --bfile file --indep-pairwise 50 5 0.2 --out file
生成file.prune.in文件之后,再简单加一个“--pca”参数即可
plink --bfile file --extract file.prune.in --pca 10 --out myfile_pca #这里只取前10个PCA结果,如果想取其他数值,请自行设置
跑完以后,会生成三个文件,分别是myfile_pca.eigenval,myfile_pca.eigenvec,myfile_pca.log。
其中,myfile_pca.eigenvec即为我们所需的PCA文件,大概长得如下:
FID_1 IID_1 0.00126761 0.00331304 -0.0105174 0.000679466 -0.0179362 0.00672081 0.000979499 -0.00752795 0.00626333 -0.00849531
FID_1 IID_2 -0.000272769 -0.00328075 -0.00380584 -0.00787082 0.00896386 -0.00325664 0.00241414 0.00612508 -0.000788917 -0.00188887
三、生成的PCA结果怎么用?
这个相当简单,直接把这堆数值加入covar文件中,只有控制了这些祖先成分的变量,才能最大限度的找到真实的信号。
感谢杜思源师弟提醒pca之前prune一下。
最新文章
- 表格搞定 Asp.net Web 状态管理
- HDU 3667 费用流(拆边)
- Linux下如何搭建VPN服务器(转)
- 别去研究C++
- Scala模式匹配和类型系统
- [MarsZ]程序猿谈大学之大学应该学好哪些课程
- node.js中文资料导航
- Pick-up sticks(判断两直线相交)
- python dataframe 针对多列执行map操作
- python+selenium自动化软件测试(第1章):环境搭建,你也可以直接用Anaconda!
- [android游戏开发初学]SurfaceView初探之缓冲区测试
- php 判断客户端是否为手机端访问
- 理解运用JS的闭包、高阶函数、柯里化
- 分布式 NewSQL 对比
- Zabbix-2.4-安装-4
- Java相关文章
- PI3HDX1204B
- Maven为不同环境配置打包
- 洛谷 P1457 城堡 The Castle 解题报告
- Zabbix触发器支持的函数说明