GWAS分析中显著性为点所在的单倍型显著性检验

大家好,我是邓飞,今天给大家分享一下GWAS分析后,显著性为点和表型数据的显著性分析。

主要目的:GWAS分析得到了显著性位点,通过LD block分析也得到所在的单倍型,现在想得到每个样本的单倍型类型以及与表型数据的显著性分析,后续用于材料的预测和选择,比如优势单倍型的筛选。而是否是优势单倍型,不仅仅是看每个单倍型对应表型的平均值,需要进行显著性检验才可以。

1, GWAS分析得到显著性位点

每个GWAS项目分析之后,会得到所有位点的P值,根据阈值(1/N,0.05/N)确定显著性阈值,P值小于这个阈值的位点为显著性位点。

参考代码:

复制代码
library(tidyverse)
library(data.table)
dat = fread("gwas_result.csv")
sig_snp = dat %>% filter(P < 1/nrow(dat))
fwrite(sig_snp,"sig_snp_result.csv")

上面的代码是读取GWAS的分析结果gwas_result.csv,然后使用阈值1/N,筛选显著性为点,最后把显著性为点结果导出到本地。

2,根据LD衰减距离提取显著性为点的上下游区间

比如一个显著性为点,染色体 1, 位置是100000,LD衰减距离是50kb,那么这个区间就是染色体1,起始位置:50000,终止位置是:150000。

参考代码:

复制代码
plink --vcf xx.vcf --chr 1 --from-bp 50000 --to-bp 150000 --allow-extra-chr --recode --out re

3,使用plink计算block

使用plink的参数--blocks no-pheno-req,计算所有的单倍型组:

复制代码
plink --file file_snp1 --blocks no-pheno-req

结果会输出区间内不同的单倍型分组,比如:

复制代码
(base) [kitty@bogon snp2]$ cat plink.blocks
* 8_45359966 8_45372258 8_45377599 8_45382054 8_45382060
* 8_45382942 8_45409356 8_45414677 8_45426223 8_45452899 8_45465473 8_45469854 8_45471890 8_45481334 8_45483769 8_45484766 8_45491938 8_45493451 8_45506558 8_45566653 8_45582370

选择显著性位点所在的单倍型分组,提取出来,与表型数据进行显著性分析。

4,提取block的文件信息

根据显著性位点所在的分组,提取相关的位点信息,整理格式,提取基因型文件,生成vcf格式的数据。

复制代码
grep 8_xxx plink.blocks
cat >snp_total.txt
sed 's/ /\n/g' snp_total.txt >snp_list.txt
plink --file result --extract snp_list.txt --recode  --out file1 --allow-extra-chr
plink --file file1 --recode vcf-iid --out file1

结果生成file1.vcf数据

5,整理表型数据

表型数据两列:ID,y

复制代码
ID y1
G1 48.10
G2 34.37
G3 43.70
G4 51.07
G5 42.43
G6 50.27
G7 40.30
G8 52.67
G9 53.33

结果保存为 dat.txt 文件

6,基因型数据和表型数据显著性分析

这里使用R包geneHapR,读取vcf数据,读取表型txt数据,然后计算单倍型频率,最后使用函数hapVsPheno将基因型数据和表型数据进行显著性检验,绘制分组显著性图。

复制代码
file_name = "file1.vcf"
nn = gsub(".vcf","",file_name)
vcf = import_vcf(file_name)
pheno = import_AccINFO("phe_y1.txt")
hapResult <- vcf2hap(vcf)
write.csv(hapResult,paste0("result",nn,".csv"))

iid = rownames(pheno)
dd = as.data.frame(hapResult)
re = dd %>% filter(Accession %in% iid)
re %>% count(Hap)

# 表型关联
hapVsPheno(hap = hapResult, pheno = pheno,minAcc = 5,
           cutpoints = c(0,0.001,0.01,0.05,1),
           # filename.surfix = "tiff",
           # filename.prefix = nn,
           symbols = c("***","**","*","ns"))
ggsave(paste0(nn,".tiff"))

示例结果:

7,查看优势单倍型对应的样本编号

上面的图中显示,H001单倍型有131个样本,显著高于H002的17个样本,所以H001是优势单倍型,怎么知道单倍型具体的分型以及对应的样本编号呢?

上面代码中,生成的xlsx文件,里面即包含具体的单倍型和对应的编号了,文件如下:

由图片可知,H001的单倍型是:TGTCGTGA,对应的个体有:G87,G23等等。

H002的单倍型是:CGGCAGGT,对应的个体有:G146,G72等等。

上面就是整个内容的介绍,希望对大家有所帮助。

相关推荐
Aurorar0rua2 天前
CS50 x 2024 Notes Algorithms - 07
c语言·开发语言·学习方法
维吉斯蔡2 天前
【VS Code / Cursor】文件夹右键快捷打开与文件类型自动关联
开发语言·程序人生·学习方法
我命由我123453 天前
棘轮效应极简理解
经验分享·学习·职场和发展·产品运营·求职招聘·职场发展·学习方法
AKA__Zas3 天前
芝士算法(前缀和2.0)
java·数据结构·算法·leetcode·哈希算法·学习方法
纪念 2293 天前
数据库基础
数据库·笔记·学习方法
合调于形4 天前
Bianfchheng (Liuu) 《边城(六)》字母标调拼音拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法
2601_958843764 天前
2026年频繁食用火锅烧烤 急慢性肠炎中成药选购避坑及对症指南
学习方法
合调于形5 天前
Bianfchheng (Wu)《边城(五)》字母标调拼音拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法