重演一篇傻瓜式GWAS分析|培养兴趣专用

重演一篇傻瓜式GWAS分析|培养兴趣专用 发布于 2020-05-10 18:58

全基因组关联分析(genome-wideassociationstudy,GWAS)应该算是动物生信分析里最热点的技能之一吧。关于GWAS原理的书籍和文章网上有一大堆,这相对于GWAS跑流程来说只能算一座小山丘。因为很多人花了好几个月研究原理,一旦丢去数据分析,还是Error Error Error....我还是秉承那些晦涩难懂的概念在你跑一次程序之后你会理解70%,因此不要等都准备齐了再去着手实施的观点。

做什么事兴趣最重要,反馈的成就感会让你慢慢喜欢上一件事。一切为了兴趣,特做一期“一站式体验GWAS”,你一定可以拿到属于自己的第一张曼哈顿图

“GWAS是在某一特定人群中研究遗传突变和表型之间的相关性。GWAS的理论基础是连锁不平衡定律(linkage disequilibrium, LD),既假设观察到的SNP与真正的致病突变(causal variant)之间存在很强的LD。

GWAS是一个逻辑清晰的游戏:我们以身高为例,已知身高的遗传率很高(估计为为0.8),也就是说,A身高1.5,B身高1.8,这30厘米的差异中,有至少24厘米是遗传差异造成的。遗传的基础又是DNA,所以我们应该能够在A和B的基因组上,找到DNA的差异,而这种DNA序列的差异最终贡献了这24厘米的差异,GWAS就是想去找到这种DNA序列的差异。

于是我们找来1000个人,量了每个人的身高(表型),测了每个人的基因组,找出所有的基因组上差异的位点(基因型),对于每个差异的位点都去和表型做一个相关性的分析,给出p-value用来衡量表型和每个位点的相关性。如果和某一个位点非常相关,那我们就找到了能够影响身高的DNA差异!


GWAS分析需要准备的材料:软件、基因型数据和表型数据。

表型数据一般是课题研究者前期实验动物群体饲养获得的数据,网上也有很多共享的数据。

表型数据统计分析:逻辑回归(表型数据为二元);线性回归(表型数据为连续性变量);表型数据正态分析(如果不是正态分布,需转换处理为正态分布);表型数据均值、中值、最大值、最小值;影响因子对表型的影响分析。

基因型数据一般是测序下机数据经SNP calling、基因型填补等后拿到的**.vcf文件,后续根据研究者的课题要求和条件进行质控(Quality control),群体结构分层及亲缘关系/PCA等处理。处理好以上文件后,进行最重要的关联分析(当然以上也很重要),接下来正式重演这个GWAS分析。(质控、call SNP以及表型数据统计分析无;直接画图 相关可能遇到的问题可在简书或知乎私信我,这篇文章在知乎也有发可以复制代码

重演一篇傻瓜式GWAS分析|培养兴趣专用 - 知乎

数据:测试一组狗全基因组的遗传变异与分类形状(毛皮颜色)之间的关系。



#为GWAS分析创建一个工作目录,并下载数据;

#创建工作目录

mkdir ~/GWAS

cd ~/GWAS

#样本VCF文件和表型数据下载
wget https://de.cyverse.org/dl/d/E0A502CC-F806-4857-9C3A-BAEAA0CCC694/pruned_coatColor_maf_geno.vcf.gz

wget https://de.cyverse.org/dl/d/3B5C1853-C092-488C-8C2F-CE6E8526E96B/coatColor.pheno

#pheno为处理好的表型文件 vcf为基因组文件



#解压VCF文件之后 可以看看数据

gunzip pruned_coatColor_maf_geno.vcf.gz

#查看vcf

less pruned_coatColor_maf_geno.vcf

#查看表型数据 前两列也是FID and IID,第三列是表型。

less coatColor.pheno


VCF文件全称为Variant Call Format,表示基因组的变异信息,通常为GATK和Samtools软件处理所得到。

查看文件发现,这个数据涉及53只小狗的476840个SNP,表型:24只黄毛犬 29只深色毛犬

##########################正式开始###########################

#数据有了,接下来安装软件,GWAS分析的软件有很多,这里介绍使用主流软件Plink和vcftools来准备文件,R语言统计画图。


#下载安装Plink 不建议使用 #sudo apt-get install Plink 进行下载

cd /usr/local/bin/

sudo wget http://zzz.bwh.harvard.edu/plink/dist/plink-1.07-x86_64.zip

sudo rm -f plink_linux_x86_64.zip

cd plink-1.07-x86_64/

echo export PATH=$PATH:$(pwd) >> ~/.bashrc

source ~/.bashrc


#下载vcftools,将编译后的文件安装到系统

git clone https://github.com/vcftools/vcftools.git

cd vcftools

./autogen.sh

./configure

make

sudo make install


#安装R和RStudio

#安装R

sudo apt-get update && sudo apt-get install -y r-base r-base-dev

#RStudio

sudo apt-get install gdebi-core

wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.2.5033-amd64.deb

sudo gdebi rstudio-server-1.2.5033-amd64.deb


#qqman包适用于画图 使用R- qqman软件统计画图,安装qqman软件包

Rscript -e "install.packages('qqman', contriburl=contrib.url('http://cran.r-project.org/'))"

#接下来正式使用PLINK 准备文件格式 #将VCF文件转换为Plink可读文件格式(map,ped),然后转换为Plink二进制格式(fam,bed,bim)

cd ~/GWAS

vcftools --vcf pruned_coatColor_maf_geno.vcf --plink --out coatColor

plink --file coatColor --allow-no-sex --dog --make-bed --noweb --out coatColor.binary

#此时应该看到以上格式结尾的5个文件(**.map,**.ped,**.fam,**.bed,**.bim)


#候选等位基因列表创建,awk编辑文本

cat pruned_coatColor_maf_geno.vcf | awk 'BEGIN{FS="\t";OFS="\t";}/#/{next;}{{if($3==".")$3=$1":"$2;}print $3,$5;}'  > alt_alleles

#文件准备完毕,运行这个简单的关联分析 #关于模型的选择和协变量的调试还需要按照自己的要求学习修改 #plink各选项含义可查看官方文档;

plink --bfile coatColor.binary --make-pheno coatColor.pheno "yellow" --assoc --reference-allele alt_alleles --allow-no-sex --adjust --dog --noweb --out coatColor


#画曼哈顿图

#统计图

unad_cutoff_sug=$(tail -n+2 coatColor.assoc.adjusted | awk '$10>=0.05' | head -n1 | awk '{print $3}')

unad_cutoff_conf=$(tail -n+2 coatColor.assoc.adjusted | awk '$10>=0.01' | head -n1 | awk '{print $3}')

#绘图

Rscript -e 'args=(commandArgs(TRUE));library(qqman);'\

'data=read.table("coatColor.assoc", header=TRUE); data=data[!is.na(data$P),];'\

'bitmap("coatColor_man.bmp", width=20, height=10);'\

'manhattan(data, p = "P", col = c("blue4", "orange3"),'\

'suggestiveline = 12,'\

'genomewideline = 15,'\

'chrlabs = c(1:38, "X"), annotateTop=TRUE, cex = 1.2);'\

'graphics.off();' $unad_cutoff_sug $unad_cutoff_conf


文件coatColor_man.bmp即为结果图,可传输查看。

查询发现:最相关的突变是已知的控制色素生成的MC1R(c.916C > T)中的无义SNP。

congratulations! 如果做到这一步,我们已经掌握了简单的Linux命令行执行、大体体验了GWAS分析,是否感觉数据分析原理并没有那么难,快趁热学习一下文中没有涉及的质控内容,这将对接下来学习有很大帮助。

这里需要注意在平常动植物中,不使用plink 进行关联分析,可以在数据过滤处理的时候使用,但是在关联分析的时候不使用。一般是在人类 GWAS 才会使用 plink 进行关联分析。因为它没办法实现复杂模型,就是 MLM 等模型。

在动植物中关联分析 tassel 使用的最多。 上百万标记,几百个样本要几十G 上百G 内存。

gapit 主要是基于 R 软件 。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • 三种方法如何获取snp信息 引用: http://www.bio-info-trainee.com/2100.ht...
    Ternq8阅读 8,986评论 0 29
  • 按照前人的教程,跑了跑GWAS流程,作为初学者,欢迎大家提问,指教。 数据来源:A new regulator o...
    1yon阅读 3,911评论 0 10
  • 练习背景 我有一批患者WGS测序数据(100例患者),包括SNP和INDEL。患者是服用了一种药物的,想分析下患者...
    上校的猫阅读 6,176评论 3 11
  • 最近跑通了一遍GWAS分析,全程在linux操作,虽然具体还有好多需要微调的地方,先把代码整理分享出来mark一下...
    rapunzel0103阅读 33,470评论 45 168
  • 作者:rapunzel0103 链接:https://www.jianshu.com/p/53362fe881cd...
    大花熊阅读 9,555评论 5 25