PLINK-GWAS学习3------数据质控之性别质控

前言 性别质控就是根据测得的SNP信息进行性别检查,判断是否有出现性别记录错误的个体。 这个文章是学习与踩坑记录,包括一些处理流程以及遇到的坑的解决方法。 先验确定为女性的受试者F值必须为<0.2,先验确定为男性的受试者F值必须为>0.8。这个F值是基于X染色体的近交(纯合子性)估计。

plink --bfile HapMap_3_r3_5 --check-sex
wc -l plink.*
less plink.sexcheck

第三列表示记录性别,第四列表示基于SNP判断的性别,第五列表示记录性别与判断性别是否一致(如果不一致会显示PROBLEM),第六列为F值。 由于受试个体数较少,查看一下文件发现有一个个体的性别判断有问题。

我们使用R语言进行可视化(下载的数据中心有代码) 图片统计的是记录中男女分别的F值分布,根据性别检查的判断条件,女性的F值必须小于0.2,男性的F值必须大于0.8。所以女性中存在异常个体,也符合我们之前发现的那个异常个体。

在大规模数据分析中,这样一个一个的看肯定不行,需要批量操作将所有有问题的个体找出来,然后利用plink自带的remove命令去除所有的有问题个体。

使用grep语法抓取所有STATUS列标记为“PROBLEM”的文本行。

grep "PROBLEM" plink.sexcheck

我们可以使用awk语法将有问题个体的FID和个体ID提取出来,方便后续plink根据这些信息剔除不合格个体。

grep "PROBLEM" plink.sexcheck| awk {print$1,$2}> sex_discrepancy.txt
less sex_discrepancy.txt
plink --bfile HapMap_3_r3_5 --remove sex_discrepancy.txt --make-bed --out HapMap_3_r3_6
wc -l plink.*

对比去除之前的数据

可以看到那个有问题的个体缺失被删除了。

也可以根据F值的判断使用plink的–impute-sex将性别信息修正过来。

plink --bfile 03.missing_QC/plink_miss002QC --impute-sex --make-bed --recode --out 06.impute_sex/pinlk_inputesex

使用awk将.ped文件的前六列提取出来方便查看

awk {print $1,$2,$3,$4,$5,$6} pinlk_inputesex.ped > pinlk_inputesex1-6.txt

可以看到这里的性别已经被修改过来了 plink提供以下这些命令,支持提取或保留个体以及SNP这些操作

#保留或去掉个体
--keep <filename>
--remove <filename>

--keep-fam <filename>
--remove-fam <filename>
保留或去掉SNP
--extract [range] <filename>
--exclude [range] <filename>
经验分享 程序员 微信小程序 职场和发展