经过去掉缺失,去掉错误的性别信息,得到的文件为:

HapMap_3_r3_6.bed  HapMap_3_r3_6.fam  HapMap_3_r3_6.log
HapMap_3_r3_6.bim  HapMap_3_r3_6.hh

这里,我们根据最小等位基因频率(MAF)去筛选。

「为什么要根据MAF去筛选?」

最小等位基因频率怎么计算?比如一个位点有AA或者AT或者TT,那么就可以计算A的基因频率和T的基因频率,qA + qT = 1,这里谁比较小,谁就是最小等位基因频率,比如qA = 0.3, qT = 0.7, 那么这个位点的MAF为0.3. 之所以用这个过滤标准,是因为MAF如果非常小,比如低于0.02,那么意味着大部分位点都是相同的基因型,这些位点贡献的信息非常少,增加假阳性。更有甚者MAF为0,那就是所有位点只有一种基因型,这些位点没有贡献信息,放在计算中增加计算量,没有意义,所以要根据MAF进行过滤。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓

1. 去掉性染色体上的位点

「思路:」

  • 在map文件中选择常染色体,提取snp信息
  • 根据snp信息进行提取

「提取常染色体上的位点名称:」

因为这里是人的数据,所以染色体只需要去1~22的常染色体,提取它的家系ID和个体ID,后面用于提取。

awk '{ if($1 >=1 && $1 <= 22) print $2}' HapMap_3_r3_6.bim > snp_1_22.txt
wc -l snp_1_22.txt
1399306 snp_1_22.txt 

常染色体上共有1399306位点。

2. 提取常染色体上的位点

这里,用到了位点提取参数--extract

plink --bfile HapMap_3_r3_6 --extract snp_1_22.txt --make-bed --out HapMap_3_r3_7

「查看日志:」

PLINK v1.90b6.5 64-bit (13 Sep 2018)           www.cog-genomics.org/plink/1.9/
(C) 2005-2018 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to HapMap_3_r3_7.log.
Options in effect:--bfile HapMap_3_r3_6--extract snp_1_22.txt--make-bed--out HapMap_3_r3_7515185 MB RAM detected; reserving 257592 MB for main workspace.
1431211 variants loaded from .bim file.
163 people (79 males, 84 females) loaded from .fam.
112 phenotype values loaded from .fam.
--extract: 1399306 variants remaining.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 112 founders and 51 nonfounders present.
Calculating allele frequencies... done.
Total genotyping rate is 0.998153.
1399306 variants and 163 people pass filters and QC.
Among remaining phenotypes, 56 are cases and 56 are controls.  (51 phenotypes
are missing.)
--make-bed to HapMap_3_r3_7.bed + HapMap_3_r3_7.bim + HapMap_3_r3_7.fam ...
done.

可以看到,共有163个基因型,共有1399306个SNP

3. 计算每个SNP位点的基因频率

首先,通过参数--freq,计算每个SNP的MAF频率,通过直方图查看整体分布。可视化会更加直接。

plink --bfile HapMap_3_r3_7 --freq --out MAF_check

结果文件:MAF_check.frq预览:

4. 对基因频率作图

「R代码:」

maf_freq <- read.table("MAF_check.frq", header =TRUE, as.is=T)
pdf("MAF_distribution.pdf")
hist(maf_freq[,5],main = "MAF distribution", xlab = "MAF")
dev.off() 

可以看出,很多基因频率为0,说明没有分型,这些位点需要删掉。

4. 去掉MAF小于0.05的位点

plink --bfile HapMap_3_r3_7 --maf 0.05 --make-bed --out HapMap_3_r3_8 

日志:

PLINK v1.90b6.5 64-bit (13 Sep 2018)           www.cog-genomics.org/plink/1.9/
(C) 2005-2018 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to HapMap_3_r3_8.log.
Options in effect:--bfile HapMap_3_r3_7--maf 0.05--make-bed--out HapMap_3_r3_8515185 MB RAM detected; reserving 257592 MB for main workspace.
1399306 variants loaded from .bim file.
163 people (79 males, 84 females) loaded from .fam.
112 phenotype values loaded from .fam.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 112 founders and 51 nonfounders present.
Calculating allele frequencies... done.
Total genotyping rate is 0.998153.
325518 variants removed due to minor allele threshold(s)
(--maf/--max-maf/--mac/--max-mac).
1073788 variants and 163 people pass filters and QC.
Among remaining phenotypes, 56 are cases and 56 are controls.  (51 phenotypes
are missing.)
--make-bed to HapMap_3_r3_8.bed + HapMap_3_r3_8.bim + HapMap_3_r3_8.fam ...
done.

可以看到,325518个位点被删掉了,剩余1073788 个位点。

「结果文件:」

HapMap_3_r3_8.bed  HapMap_3_r3_8.bim  HapMap_3_r3_8.fam  HapMap_3_r3_8.log

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓

Qt MAF过滤的方法相关推荐

  1. Qt Creator用户互动方法

    Qt Creator用户互动方法 用户互动方法 基本互动方法 鼠标区域 重点范围 可轻弹 常规控制属性 按钮控制 按钮 延迟按钮 复选框 单选按钮 转变 圆形按钮 显示文字和图标 检查按钮 按钮信号 ...

  2. Qt程序打包发布方法(使用官方提供的windeployqt工具)

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  3. 数组过滤filter()方法

    数组过滤filter()方法 // 数组.filter(function(形参1, 形参2, 形参3){})// 形参1: 必须.当前元素的值(可以理解为是过滤的数组的每一项item)// 形参2: ...

  4. 垃圾邮件过滤优化方法

    垃圾邮件过滤优化方法 通过honeypot project 搜集大量垃圾邮件数据 通过解析邮件header 获取垃圾邮件发送路径和服务器相关信息 对编写错误的单词的修正 比如:w4tch 对相同含义的 ...

  5. Qt | QTableView的使用方法

    Qt | QTableView的使用方法 QTableView的数据是基于model显示的,需要先建一个model,然后tableView通过setModel进行模型绑定,后续操作model就可以实现 ...

  6. python列表过滤的方法

    在python中,对列表这样的数据结构进行过滤,提取自己需要的元素,组成新的列表,是很常见的操作,这就要自然而然的用到列表过滤了,而常用的过滤当然就是循环后通过if进行,但是这样子,显然就是代码的开支 ...

  7. Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  8. java8新特性-stream对map集合进行过滤的方法

    java8新特性-stream对map集合进行过滤的方法 stream对map集合进行过滤的方法

  9. Qt控件使用方法技巧合集

    Qt控件使用方法技巧合集 ~~~~~~~~        本篇博客代码示例包含C++版本和Python版本,不管是哪个版本,Qt的API都是一样的,使用方式大同小异. 文章目录 Qt控件使用方法技巧合 ...

最新文章

  1. 从0到1,了解NLP中的文本相似度
  2. 语义分割--FCN 算法中的一些细节--特征怎么融合
  3. 为什么我从Python转战到Node.js
  4. 自定义工具类:导入工具类测试
  5. HashMap 1.7 死循环过程
  6. Windows Phone 8本地化多语言支持
  7. 4 [面向对象]-三大特性:多态
  8. 使用maven导入任意jar包
  9. java批量执行多条Sql语句
  10. 设计灵感|如何在海报设计中正确使用双色调风格?
  11. aix系统输入oracle命令,aix 简单的系统命令
  12. 华胜天成以精益服务为中国联通构建电子渠道容灾系统
  13. Vue使用iconfont图标
  14. AWS Landing Zone Solution
  15. 【洛谷P2000】拯救世界
  16. iptables 一些命令
  17. 加密狗在虚拟服务器上怎么注册,您好 我想问下 在虚拟机里面安装软件 装好后要进行加密狗注册 加密狗插进去显示安装成功 可是点击注册就提示检测不到加密锁 是什么原因呢?急急急...
  18. 喝杯水都能泄露指纹?屏下指纹识别设备被攻破
  19. 二十七、74LS148芯片解析
  20. 邻接矩阵的定义和例子

热门文章

  1. 菲亚特动力科技在上海宝马展推出适用于非道路的高性能产品
  2. python中文语义分析_Python中好用的中文语义分析系统——bosonnlp
  3. Unity改变图片文本颜色
  4. cordova 安卓文件多选_安卓手机清理大师官方版下载-安卓手机清理大师下载安装v1.0.0...
  5. 是谁剥夺了我们的智慧与能力(发泄一下)
  6. android oppo定位不到,Android 集成OPPO离线推送 8.0以上手机收不到的问题
  7. 【Vue】filter 过滤器用法
  8. NameNode管理元数据的机制
  9. FLUKE DSX-602 CH设置参照的方法及注意事项
  10. jQuery 兄弟元素选择器