大家好,我是邓飞,今天给大家分享一下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等等。
上面就是整个内容的介绍,希望对大家有所帮助。