文章目录

    • 对个体和SNP的检测和筛选
    • 哈代平衡
    • 次等位基因频率
    • 性别检测

在做和基因相关的分析时,拿到基因型数据,首先要进行质量控制。

在使用Plink进行质量控制时,一般包含以下几步:

  1. individual and SNP missingness,(筛选个体和SNP)
  2. inconsistencies in assigned and genetic sex of subjects (see sex discrepancy),(性别是否出错)
  3. minor allele frequency (MAF),(次等位基因频率筛选)
  4. deviations from Hardy–Weinberg equilibrium (HWE),(哈代平衡检测)
  5. heterozygosity rate,(杂合率)
  6. relatedness,(相关性)
  7. ethnic outliers (see population stratification).(人口分层)

当然一般也要根据数据进行步骤的选择,因为我们处理数据是为了后续的相关性分析,所以这里没有使用Plink做相关分析,同时因为人口分层暂时没有特别了解,所以只记录使用Plink进行上述前五步的工作。

在Plink中做这几步的质量控制,可以直接使用命令+参数完成筛选,也可以使用Plink生成检测结果来手动筛选。当然,一般对数据要求严格的实验都是先生成结果,经过查看以后确定参数再使用Plink进行筛选。

具体来讲,根据我的习惯一般先进行个体和SNP的筛选,次等位基因频率、哈代平衡的检测,之后做性别的检测,剔除性别出错的样本,再做一遍上述的筛选。

对个体和SNP的检测和筛选

根据个体和SNP的缺失率进行挑选。

–missing 生成个体和SNP缺失的检测结果。

个体缺失位点结果文件为plink.imiss:
第一列为家系ID,第二列为个体ID,第三列是否表型缺失,第四列缺失的SNP个数,第五列总SNP个数,第六列缺失率。

单个SNP缺失的结果文件为plink.lmiss:
第一列为染色体,第二列为SNP名称,第三列为缺失个数,第四列为总个数,第五列为缺失率


(这里有一点更正,之前SNP和个体写反了,感谢评论区提醒。 2020/08/06)
–geno 筛选SNP
–mind 筛选个体

–mind 0.05:如果一个SNP5%的个体中都是缺失的,那么就删掉该个体。
–geno 0.05:如果一个个体有5%的SNP都是缺失的,那么就删掉该SNP。

哈代平衡

根据基因型频率进行筛选。对于哈代平衡可以自行查找资料理解。

–hardy 计算所有位点的哈温检测结果

结果文件为plink.hwe:

第一列为染色体,第二列为SNP的ID,第三列为TEST类型,第四列A1为 minor 位点,第五列A2为 major 位点,第六列为基因型分布,对应A1A1, A1A2, A2A2的个数,第六列为观测杂合度频率,第七列为期望杂合度频率,第八列为哈温平衡的卡方检验P-value值。

–hwe 直接过滤

次等位基因频率

根据基因频率进行挑选。

这里谈一点个人对次等位基因的理解,某一位点可能为AA,AT,TT,甚至出现更大的变异导致CC,CG,所以才有次等位基因频率,而不是最小,很多人将minor allele frequency(MAF)解释为最小等位基因频率,感觉是不够准确的。

某一位点可能有A,T,C,G四种基因情况,四种情况的频率和应该为1,第二常见的基因型为次等位基因,次等位基因出现的基因频率就称为次等位基因频率。

而使用MAF进行过滤,是因为一般在人群中肯定是少数患病,那么导致少数人患病的就可能是这个次等位基因,而当MAF小于一定值时,意味着大部分位点都是相同的基因型,这些SNP位点贡献的信息很少(和所研究关系很小),会增加假阳性。极端情况MAF为0,该位点只有一种基因型,那么致病基因肯定和这个位点无关,故而过滤掉。

–freq 计算每个SNP位点的次基因频率

结果文件为plink.frq:
第一列为染色体号,第二列为SNP ID,第三列为 minor 位点,第四列为 major 位点,第五列为次等位基因频率,第六列为等位基因观察数。

–maf 直接过滤

性别检测

–check-sex 可以生成性别检测的结果,然后根据结果构造removesample.txt(名称自由),再使用 --remove removesamp.txt 将性别出错的样本剔除。
removesample 文本第一列为FID,第二列为IID。

结果文件为plink.sexcheck:
第一列为家系ID,第二列为个体ID,第三列为原始数据中所给性别,第四列为根据SNP推断的性别,第五列是否正常,第六列为F值。

女性受试者的F值必须小于0.2,男性受试者的F值必须大于0.8。这个F值是基于X染色体近交(纯合子)估计。不符合这些要求的受试者第五列为“PROBLEM”,符合则为“OK”。


将上述质量控制的完整流程总结成可用命令如下:

plink --bfile inputname --geno 0.05 --mind 0.1 --maf 0.05  --hwe 0.000001 --make-bed --out outputname1
plink --bfile outputname1 --check-sex
plink --bfile outputname1 --remove removesamp.txt --make-bed --out outputname2
plink --bfile outputname2 --geno 0.05 --mind 0.1 --maf 0.05  --hwe 0.000001 --make-bed --out outputname3

上述inputname、outputname均为文件名称。


上图是某次质量控制Plink日志文件的说明。

其实除了上述质量控制,根据实验有时也需要做亲缘关系的排查,结果如下。
还有–het,杂合率的检测,因为本人实验并不需要这些,有时间再写。

上述均根据Plink1.90完成。Plink基本操作可参考PLink常用命令总结,更多有关Plink命令的使用可以在参考中去查找。

参考:
http://www.cog-genomics.org/plink2/

使用Plink对SNP数据进行质量控制相关推荐

  1. GWAS处理流程(全基因组关联分析)——对从ADNI数据库下载的SNP数据及进行质控(QC)

    对从ADNI数据库下载的SNP数据及进行质控(QC) 简介 一.先查看数据中的个体和SNP缺失情况 1.查看 2.生成绘图以可视化缺失结果. 二.QC第一步:删除缺失度大于某个数值的SNP和个体 1. ...

  2. linux中主成分分析软件,基于全基因组snp数据进行主成分分析(PCA)

    现将如何基于全基因组的SNP数据进行PCA分析流程记录下来: 1)全基因组snp数据格式为 .vcf 2)利用vcftools软件进行格式转换(Linux系统下:进入 /vcftools_0.1.13 ...

  3. QIIME2进阶三_用QIIME2实现对数据的质量控制

    本文主要介绍了使用生物信息软件QIIME2中的DADA2与Deblur插件对扩增子基因序列进行质量控制. 本教程将使用来自人源化(humanized)小鼠的一组粪便样品,展示16S rRNA基因扩增子 ...

  4. 使用SNP数据计算IBD、PCA、系统树鉴别亲缘关系

    分析步骤,有可能有错误,希望指正 小故事 数据预处理 计算IBD 计算pca 系统发育树 计算SNP分布情况. 后记 小故事 接到的小任务,对于大佬们来说可能不难,对于新手,却是要抓破脑袋. 两个养殖 ...

  5. RNA-seq流程学习笔记(4)-使用FastQC软件对fastq格式的数据进行质量控制

    今天开始学习使用FastQC软件对范例SRA测序文件的质量进行分析. 主要参考文章: RNA-seq(3):sra到fastq格式转换并进行质量控制 转录组入门(3):了解fastq测序数据 用Fas ...

  6. plink做SNP筛选和GWAS

    1.vcf转ped/map: plink --vcf spirits.recode.vcf --recode --out test 2.统计每个snp的MAF,并将maf < 0.05; mis ...

  7. gatk BQSR中gtak BaseRecalibrator 出现基因组染色体号与SNP数据染色体号对应不上错误

    出现以下报错: A USER ERROR has occurred: Input files reference and features have incompatible contigs: No ...

  8. Plink常用命令总结

    文章目录 一.基本操作 二.质量控制 三.编码 附 一.基本操作 2020/05/06 更新 补充一下Plink相关的几种数据格式,见下图(图片来源忘记了,在整理文档时看到就插了进来). 1.–bfi ...

  9. 计算机接口控制采集时序图,自动站实时数据质量控制

    自动站实时数据质量控制 利用极值法.比较法.综合 (本文共2页) 阅读全文>> 通过2次自动站实时数据质量控制失败的案例,分析总结了自动气象站实时数据质量控制的经验教训.结果表明:(1)值 ...

最新文章

  1. TensorFlow学习笔记(二十三)四种Cross Entropy交叉熵算法实现和应用
  2. 用Python制作一个简易的抽奖程序
  3. Spring JdbcTemplate batchUpdate() 实例
  4. [vue] 分别说说vue能监听到数组或对象变化的场景,还有哪些场景是监听不到的?无法监听时有什么解决方案?
  5. 从蜜罐新技术看欺骗防御发展走向
  6. oracle asm 分布式存储,分布式数据中心数据库和存储部署解决方案
  7. 常用Oracle分析函数详解
  8. 腾讯QQ看点信息流推荐业务:内容分发场景的多目标架构实践
  9. python用什么软件编程-python开发用什么编辑器
  10. 攻防世界-Misc-gif
  11. Mongodb 学习
  12. php 上标,PHP数组上标类型陷阱
  13. iconv linux 开源代码,每天一个 Linux 命令(123):iconv 命令
  14. 关于数据库表的规范设计
  15. Android studio点击按钮闪退问题
  16. ajax 返回html不返回json,jQuery ajax调用返回HTML而不是JSON的Ajax响应
  17. 【论文阅读】Masked Autoencoders Are Scalable Vision Learners(MAE)
  18. STM32CubeIDE 遇到的问题
  19. 厕所地图,玩出新花样!
  20. java信用卡卡号算法,java实现主要信息的加密解密(模拟信用卡号的保存)

热门文章

  1. 【python量化】python通过新浪财经获取金融衍生品历史数据
  2. 【英语词组】恋恋不忘Day5-1
  3. 敢问路在何方 路在脚下
  4. 路就在脚下,请勇敢的迈步。-----(对未来职业期望)
  5. UnityShader快速上手指南(四)
  6. iOS KeyChain使用
  7. 光纤收发器的原理及应用_浅析光纤收发器的原理与分类
  8. android 自定义view仿通讯录
  9. 超级计算机欧冠军尤文,超级计算机预测欧冠结局:尤文决赛2-1巴萨 C罗赢梅西捧第6冠...
  10. 51单片机:设计电子密码锁