GWAS

写在前面:本文为自己在学习过程中看过各类资料后整理做的笔记,纯属方便自己学习以及后期回顾,也希望有幸能帮助到和我一样的小白们,各位大神如果发现有错误即使纠正,我们共同学习!特别感谢所有我阅读过的各类推文的作者,我会附上来源,以示版权及尊重!大家快乐地学习吧!

全基因组关联分析(Genome-Wide Association Study,GWAS)流程

GWAS_第1张图片

一、准备plink文件

1、准备PED文件

PED文件有六列,六列内容如下:

Family ID

Individual ID

Paternal ID

Maternal ID

Sex (1=male; 2=female; other=unknown)

Phenotype

PED

文件是空格(空格或制表符)分隔的文件。

PED文件长这个样:

GWAS_第2张图片

2、准备MAP文件

MAP文件有四列,四列内容如下:

chromosome (1-22, X, Y or 0 if unplaced)

rs# or snp identifier

Genetic distance (morgans)

Base-pair position (bp units)

MAP文件长这个样:

3、生成bed、fam、bim、文件

输入命令:

plink --file mydata --out mydata --make-bed

注:plink指的是plink软件,如果软件安装在某个指定的路径的话,前面还要加上路径,比如安装在路径为/your/pathway/的文件夹下,则命令应该为“/your/pathway/plink --file mydata --out mydata --make-bed”

mydata指的是1和2生成的PED和MAP文件名,不需要写.ped和.map后缀

bed:

bim:

fam:

GWAS_第3张图片

注:有时fam文件最后一列diagnosis会为 -9 或 NA,都表示缺失值


插一步:质控步骤(QC)

GWAS_第4张图片

可以参照这篇推文,https://www.jianshu.com/p/57c2dbda8a86

填补后质控(Post-imputation quality control)

千人基因组大概有83 million变异位点,经过填补后有许多质量不好的位点,需要过滤掉。

去除MAF = 0的位点

去除MAF<0.01 和 info>0.3的位点。info值用来衡量填充位点的质量,一般较差的位点info <0.15,较好的位点info >0.85。所以过滤阈值一般在0.15-0.85之间。对于同一个位点来说,MAF值越小,info值也越小。可以将MFA值和info值画出柱状图,找到一个比较好的阈值进行过滤。

去除缺失率过多的位点(98%以上)


质控后去除被试命令: 

```

plink --bfile test_2kw -remove remove.txt --out 939_test --make-bed --noweb

```

二、准备表型文件(Alternate phenotype files)

一般表型文件为txt格式,表型文件有三列,分别为:

Family ID

Individual ID

Phenotype

假如有多种表型,第一列和第二列还是Family ID、Individual ID,第三列及以后的每列都是表型,例如以下:

Family ID

Individual ID

Phenotype A

Phenotype B

Phenotype C

……

表型文件长这样:

三、准备协变量文件(Covariate files)

协变量文件同表型文件类似,第一列和第二列是Family ID、Individual ID,第三列及以后的每列都是协变量

Family ID

Individual ID

Covariate A

Covariate B

Covariate C

……

协变量文件长这个样(这里有三个协变量,分别为Sex,Age,temperature):

四、plink进行表型和基因型以及协变量的关联分析

命令如下:

plink --bfile mydata --linear --pheno pheno.txt --mpheno 1 --covar

covar.txt --covar-number 1,2,3 --out mydata –noweb

生成的文件为mydata.assoc.linear

注:“mydata”mydata文件不需要后缀,“--mpheno 1”指的是表型文件的第三列(即第一个表型)

“--covar-number 1,2,3”指的是协变量文件的第三列、第四列、第五列(即第一个、第二个、第三个协变量)

“--linear”指的是用的连续型线性回归,如果表型为二项式(即0、1)类型,则用“--logistic”


五、画曼哈顿图

安装R语言的qqman包,其中的manhattan(),即可画曼哈顿图

https://mp.weixin.qq.com/s/3KN0WHccKv5EbLQUCQVqmw

R包画图

setwd('/Users/mac/Desktop/123')      # 设置工作目录

library(qqman)        # 载入包

data <- read.table("5filter_result.assoc.linear",header =TRUE)      #读取数据

data1 <- data[,c(1,2,3,9)]      #按照规则截取列

data2 <- na.omit(data1)       # 删除含有NA的整行

par(cex=0.8)         #设置点的大小

color_set <- rainbow(9)         # 设置颜色集合 建议c("#8DA0CB","#E78AC3","#A6D854","#FFD92F","#E5C494","#66C2A5","#FC8D62")svg(file="manpic.svg", width=12, height=8)        # 保存svg格式的图片 设置名字

#manhattan(data2,main="Manhattan Plot",col = color_set) #suggestiveline = FALSE 更加显著

manhattan(data2,main="Manhattan Plot",col = c("#8DA0CB","#E78AC3","#A6D854","#FFD92F","#E5C494","#66C2A5","#FC8D62"),suggestiveline =FALSE,annotatePval =0.01)#suggestiveline = FALSE 更加显著

dev.off()        # 保存图片

#par() 显示当前图像参数

str(gwasResults)         #zscore beita 值除以standard error 这个值越大 P越小

head(gwasResults)      # 看前面几行

tail(data2)       #看后面几行

as.data.frame(table(gwasResults$CHR))        # 这个是没根染色体上有多

SNPas.data.frame(table(data2$CHR))          # 这个是没根染色体上有多少SNP

qq(gwasResults$P)      # 画qq图

qq(data2$P)       # 画qq图

manhattan(gwasResults, annotatePval =0.01)      # 这个可以对每根染色体上最高的那个点注释出来

还可以使用haploview画曼哈顿图https://www.jianshu.com/p/609149db6fab


自己入的小坑: assoc.linear文件可以用notepad++打开,但是  .linear不是制表符,需要linux下转换制表符,sed 's/[ ][ ]*/,/g' file.linear > out.csv,sed -i 's/^,//g' out.csv,加了个逗号,最后转成.csv文件,还进行了cut,cut -f 1,2,3,9 file_name > new_file,提取做曼哈顿图时需要的那几列,得到了最终R语言中要做曼哈顿图的文件。我滴个天!哎~

最后需要的文件长这样,好有成就感

GWAS_第5张图片

其实......不用转格式也可以,后来找到了这个https://www.jianshu.com/p/e914ecb99fcc

直接加载 .linear格式

终于做完了,放一张我自己做的图,啊,虽然还部分有细节问题,但感觉拥有了全世界,啊~

GWAS_第6张图片
GWAS_第7张图片

部分还待解决的问题:

1.多个pheno的问题:与单个pheno跑出来的数据大小是一样的,格式也完全一样,p值也只有一列(我以为是多列,每个pheno一个p值),但他们的p值不一样,所以问题来了,计算多表型association时得到的p值是代表什么?多表型一起相关的结果?

2.协变量问题:如果有多个协变量,为什么每个协变量都会跑出来一个p值?我有50万个snp,8个协变量,这样就会出来几百万个p值,都要加载进去做曼哈顿图吗?

3.  .assoc.linear文件中最后几行是什么呀,没搞懂

GWAS_第8张图片

解决问题2:

GWAS_第9张图片

plink manual中是这样给出的,线性模型的问题,我数学知识有限,讲不太清楚,有大牛看到的话可以同通俗的语言给我留言供大家学习。总之呢,我们关心的是第一个ADD,所以,manual给出了下面的



1.https://www.cnblogs.com/leezx/p/9013615.html

2.http://www.cnblogs.com/chenwenyan/p/6095531.html

3.https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzIwMzQyMTA2NA==&scene=124#wechat_redirect

4.https://mp.weixin.qq.com/s/2Uy9TXbsV267CCnRCa9vQQ

5.GWAS+公共数据库上nature

https://mp.weixin.qq.com/s/TOtYKabcEkkwDVOorB_cYQ

6.找到的视频,不过没有质控

https://www.bilibili.com/video/av35122843/?p=13

你可能感兴趣的:(GWAS)