这篇“r语言性别质控的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“r语言性别质控的方法”文章吧。
创新互联建站总部坐落于成都市区,致力网站建设服务有网站设计、成都做网站、网络营销策划、网页设计、网站维护、公众号搭建、微信小程序定制开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
「原理:」检查性别差异。先验信息,女性的受试者的F值必须小于0.2,男性的受试者的F值必须大于0.8。这个F值是基于X染色体近交(纯合子)估计。不符合这些要求的受试者被PLINK标记为“PROBLEM”。
「上一步,去掉缺失信息后,现在有文件是过滤缺失后的文件:」
HapMap_3_r3_5.bed HapMap_3_r3_5.fam HapMap_3_r3_5.irem
HapMap_3_r3_5.bim HapMap_3_r3_5.hh HapMap_3_r3_5.log
plink --bfile HapMap_3_r3_5 --check-sex
结果文件:plink.sexcheck
第一列为家系ID,第二列为个体ID,第三列为系谱中的性别,第四列为SNP推断的性别,第五列是否正常,第六列为F值。
「使用R语言作图:」
gender <- read.table("plink.sexcheck", header=T,as.is=T)
pdf("Gender_check.pdf")
hist(gender[,6],main="Gender", xlab="F")
dev.off()
pdf("Men_check.pdf")
male=subset(gender, gender$PEDSEX==1)
hist(male[,6],main="Men",xlab="F")
dev.off()
pdf("Women_check.pdf")
female=subset(gender, gender$PEDSEX==2)
hist(female[,6],main="Women",xlab="F")
dev.off()
图中可以看出,woman中,大部分都是小于0.2,有一个为1,应该是错误的ID。
我们使用grep过滤一下:根据STATUS列,如果有问题的话,为“PROBLEM”,我们可以根据这个关键词将有问题的行打印出来。
grep "PROBLEM" plink.sexcheck
1349 NA10854 2 1 PROBLEM 0.99
可以看出,个体NA10854是有问题的。
将相关错误的ID提取出来(家系ID,个体ID),之所以提取家系ID和个体ID,因为plink有参数remove
可以根据ID进行筛选。
grep 'PROBLEM' plink.sexcheck | awk '{print $1,$2}' >sex_discrepancy.txt
我们将结果保存在sex_discrepancy.txt
。
remove
去掉个体plink --bfile HapMap_3_r3_5 --remove sex_discrepancy.txt --make-bed --out HapMap_3_r3_6
当然,你也可以对个体进行判定填充,这是用--impute-sex
就可以实现,这样的话那个错误的个体会根据统计量更改性别信息。这里我们选择的是删掉这个个体。
去掉个体或者SNP,关键词不一样,容易混淆,这里总结一下。
「保留或去掉个体:」
--keep
--remove
--keep-fam
--remove-fam
「保留或去掉SNP:」
--extract ['range']
--exclude ['range']
以上就是关于“r语言性别质控的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。