GEMMA 全基因组关联分析+CMplot多性状曼哈顿+QQ图脚本

这里写自定义目录标题

  • GEMMA 全基因组关联分析+CMplot多性状曼哈顿+QQ图脚本

GEMMA 全基因组关联分析+CMplot多性状曼哈顿+QQ图脚本

###GEMMA 全基因组关联分析+CMplot多性状曼哈顿+QQ图脚本
#作者:刘济铭

##########################
GWAS理论和基本结果理解已经有很多大神进行了解读,因此不再赘述,想要学习请移步知乎或各大基因课平台学习。本人发现目前缺乏具体实用脚本,因此本帖只提供本人脚本供大家交流学习,本人脚本不是最好肯定也会存在问题,请大家见谅。

###全基因组关联分析前需对SNP文件利用repeatmodeler和repeatmasker去除重复片段,后续分析均采用去重复片段SNP文件分析。
#vcftools 过滤VCF文件
vcftools --vcf testnorepeats.recode.vcf --min-alleles 2 --max-alleles 2 --maf 0.05 --max-missing 0.3  --minQ 20 --recode --out test
#此步骤根据各自需求决定,去除多余vcf文件中多余个体数据,id.txt自行构建,个体名按列排布即可
vcftools --vcf test.recode.vcf --recode --recode-INFO-all --stdout  --remove id.txt   > out.vcf
#转plink bed,ped文件
vcftools   --vcf out.vcf --plink --out testnorepeat
plink --file testnorepeat   --make-bed --out testnorepeat --noweb## 下载GEMMA
wget -c https://github.com/genetics-statistics/GEMMA/releases/download/0.98.1/gemma-0.98.1-linux-static.gz
## 解压
gzip -d gemma-0.98.1-linux-static.gz
## 设置权限
chmod a+x gemma-0.98.1-linux-static##!!!!!计算亲缘关系矩阵前必须将plink所得fam文件第六列及以后添加各个体相对应表型数据,后续关联分析用-n定位哪个表型,-n 1 为第六列表型分析,-n 2 为第七列表型分析,以此类推##运行gemma
####计算亲缘关系矩阵,-bfile:输入Plink二进制格式文件的前缀。-gk:指定生成的kinship矩阵类型。
#-gk 1 为centered matrix,-gk 2 为standardized matrix。
#-o:输出文件前缀。
./gemma-0.98.1-linux-static -bfile testnorepeat -gk 2 -o kinship
#运行gemma关联分析,可利用-a输入参考基因组基因注释gff3文件
./gemma-0.98.1-linux-static -bfile testnorepeat -k ./output/kinship.sXX.txt -n 39 -a final.gene.gff3  -lmm 4 -o out#完成关联分析#利用CMplot R包实现曼哈顿图和qq图制作##首先在linux系统中提取gwas分析结果文件中1,2,3,13列数据
cut -f 1,2,3,13 out.assoc.txt  > out1.assoc.txt#对换第1列和第二列位置
awk '{print $2,$1,$3,$4}' out1.assoc.txt > out2.assoc.txt###利用vim工具更改表头为SNP Chromosome Position Trait1 Trait2 Trait3。。。。。。。###此时out2.assoc.txt为R CMplot作图输入文件#### 计算GWAS显著关联SNP位点阈值,此处采用Bonferroni correction = 显著性水平(0.01/0.05)/ Me Me为去冗余独立SNP数量,可使用plink --file testnorepeat --r 指令得到,也可自行设定阈值范围
###!!!以下阈值为本人数据计算结果,大家请自行根据数据计算更改后使用
cat out.assoc.txt  | awk -F ' '  '$13<5.78e-09{print $0}' > out.top1.out
cat out.assoc.txt  | awk -F ' '  '$13<2.89e-08{print $0}' > out.top5.out###提取SNP位置信息
awk  '{print $1"\t"$3}' out.top1.out  >  out1.snp.position
awk  '{print $1"\t"$3}' out.top5.out  >  out5.snp.position
###提取SNP上下游各50kb范围,范围可根据各自数据LD或自行参考文献确定
awk 'BEGIN{FS=OFS="\t"}{if(NR>1){ print $1,$2-50000,$2+50000 }}' out1.snp.position | sort -k 1,1 -k 2,2n  > out1.snp.bed
awk 'BEGIN{FS=OFS="\t"}{if(NR>1){ print $1,$2-50000,$2+50000 }}' out5.snp.position | sort -k 1,1 -k 2,2n  > out5.snp.bed
#####利用bedtools merge工具实现位置重叠SNP融合
bedtools merge -i out1.snp.bed > out1.snpmerged.bed
bedtools merge -i out5.snp.bed > out5.snpmerged.bed###注意,所得out1.snpmerged.bed可能存在染色体名称与参考基因组注释文件差异,务必统一为参考基因组注释文件染色体名称形式,不然无法获得交叉对比结果#awk  '{print $1"\t"$4"\t"$5"\t"$9}' gene.gff3  >  gene_after.gff3###利用bedtools intersect工具实现显著SNP位点上下游50kb内基因交叉对比提取
bedtools intersect -a /scratch/n2007039f/output/gene.gff3  -b out1.snpmerged.bed -wa > gene_top1.outbedtools intersect -a /scratch/n2007039f/output/gene.gff3  -b out5.snpmerged.bed -wa > gene_top5.out####检查数据,查看第13列从小到大情况
###less out.assoc.txt|sort -k 13g|less####R中CMplot包实现GWASQQ图,曼哈顿图等的单个和多个表型联合作图multi_plot
cut -f 13 out.assoc.txt  > LAD
paste FHD FLD.txt FVD.txt > 1
######better to set all Tab to Space
sed 's/\t/ /g' 1 > 2
#使用R作图,建议服务器中使用,计算容量较大
## 加载R包
library("CMplot")
## 导入数据
data <- read.table("out2.assoc.txt",sep=" ",header=T)
#SNP-density plotCMplot(data,type="p",plot.type="d",bin.size=1e6,chr.den.col=c("darkgreen", "yellow", "red"),file="jpg",memo="",dpi=300,main="illumilla_60K",file.output=TRUE,verbose=TRUE,width=9,height=6)## 绘制单个表型Q-Q plot
CMplot(data,plot.type="q",conf.int=TRUE,box=FALSE,file="jpg",memo="",dpi=300,file.output=TRUE,verbose=TRUE,width=5,height=5)## 绘制单个表型Rectangular-Manhattan plot,注意threshold设置,不同数据集不同阈值设置
CMplot(data,plot.type="m",LOG10=TRUE,threshold=5.78e-09,file="tif",memo="",dpi=500,file.output=TRUE,verbose=TRUE,width=18,height=8,signal.col=NULL)CMplot(data,plot.type="m",LOG10=TRUE,threshold=2.89e-08,file="tif",memo="",dpi=500,file.output=TRUE,verbose=TRUE,width=18,height=8,signal.col=NULL)#Genome-wide association study(GWAS)多表型作图,注意threshold设置,不同数据集不同阈值设置
CMplot(data,type="p",plot.type="c",chr.labels=paste("Chr",c(1:14),sep=""),r=0.4,cir.legend=TRUE,outward=FALSE,cir.legend.col="black",cir.chr.h=1.3,chr.den.col="black",file="jpg",memo="",dpi=300,file.output=TRUE,verbose=TRUE,width=10,height=10)CMplot(data,type="p",plot.type="c",r=0.4,col=c("grey30","grey60"),chr.labels=paste("Chr",c(1:14),sep=""),threshold=c(5.78e-09,2.89e-08),cir.chr.h=1.5,amplify=TRUE,threshold.lty=c(1,2),threshold.col=c("red","blue"),signal.line=1,signal.col=c("red","green"),chr.den.col=c("darkgreen","yellow","red"),bin.size=1e6,outward=FALSE,file="jpg",memo="",dpi=300,file.output=TRUE,verbose=TRUE,width=10,height=10)
####manhatton plot
CMplot(data, plot.type="m", LOG10=TRUE, ylim=NULL, threshold=c(5.78e-09,2.89e-08),threshold.lty=c(1,2),threshold.lwd=c(1,1), threshold.col=c("black","grey"), amplify=TRUE,bin.size=1e6,chr.den.col=c("darkgreen", "yellow", "red"),signal.col=c("red","green"),signal.cex=c(1.5,1.5),signal.pch=c(19,19),file="jpg",memo="",dpi=300,file.output=TRUE,verbose=TRUE,width=14,height=6)
#####Multi_tracks Q-Q plot
CMplot(data,plot.type="q",box=FALSE,file="jpg",memo="",dpi=300,conf.int=TRUE,conf.int.col=NULL,threshold.col="red",threshold.lty=2,file.output=TRUE,verbose=TRUE,width=5,height=5)

部分成图结果展示:
SNP-density plot
多表型曼哈顿图
单表型曼哈顿图

QQ图
CMplot包参考学习来源:https://github.com/YinLiLin/CMplot,感谢Lilin Yin大神的CMplot包。
CMplot包Author: Lilin Yin
Contact: ylilin@163.com
QQ group: 166305848
Institution: Huazhong agricultural university

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13145.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新鲜事儿!只有AI作品的电影节;酷~AI纹身设计师;ChatGPT的接生婆RLHF;Wayve自动驾驶模型MILE… | ShowMeAI资讯日报

&#x1f440;日报合辑 | &#x1f3a1;AI应用与工具大全 | &#x1f514;公众号资料下载 | &#x1f369;韩信子 &#x1f4e2; 『AI Film Festival』只接受AI作品的电影节&#xff0c;一万美元奖金花落谁家&#xff1f; https://aiff.runwayml.com/ Runway ML公司12月7日推…

ChatGPT神奇应用:无需美术功底快速生成高清艺术插图

正文共 1410字&#xff0c;阅读大约需要 8 分钟 创意人群的最佳助手&#xff0c;您将在8分钟后获得以下超能力&#xff1a; 1.高清艺术类插图【非人物】 2.多风格高效出图 Beezy评级&#xff1a;A级 *经过寻找和一段时间的学习&#xff0c;一部分人能掌握。主要提升效率并增强自…

让 ChatGPT 扮演一个艺术家,协助我们生成绘图 prompt

stable-diffusion Prompt 生成 直接生成 按照惯用的扮演思路&#xff0c;我们可以让 ChatGPT 扮演一个艺术家&#xff0c;协助我们生成绘图 prompt。考虑到 ChatGPT 和 DallE 同为 openai 公司产品&#xff0c;且 stable-diffusion 开源模型出现较晚&#xff0c;ChatGPT 训练…

翻译: 面向开发人员的GPT提示工程 GPT Prompt Engineering for Developers

1. 提示指南Guidelines for Prompting 在本课中&#xff0c;您将练习两个提示原则及其相关策略&#xff0c;以便为大型语言模型编写有效的提示。 In this lesson, you’ll practice two prompting principles and their related tactics in order to write effective prompts …

14个在你的WordPress网站上使用OpenAI的最好方法(2003)

您是否想知道如何在您的WordPress网站上使用OpenAI和ChatGPT&#xff1f; OpenAI可以提供一切帮助&#xff0c;从为您的帖子生成元描述到撰写电子邮件销售文案。您可以在您的WordPress网站上使用OpenAI来节省时间、降低成本、改善您的搜索引擎优化和工作流程&#xff0c;并发展…

吴恩达OpenAI最新课程:prompt-engineering-for-developers读书笔记

文章目录 一、前言二、Prompt编写原则2.1 环境配置2.2 编写清晰、具体的指令2.2.1 使用分隔符2.2.2 结构化输出&#xff08;JSON、HTML等&#xff09;2.2.3 要求模型检查条件是否满足2.2.4 提供少量示例&#xff08;Few-shot Prompting&#xff09; 2.3 指导模型思考2.3.1 指定…

chatgpt赋能python:Python打折简单程序:节省金钱和时间的利器

Python打折简单程序&#xff1a;节省金钱和时间的利器 作为程序员&#xff0c;我们总是在寻找更好的&#xff0c;更高效的解决方案。在购物时&#xff0c;这也是如此。现在&#xff0c;我们可以通过编写一个简单的Python程序来实现节省金钱和时间的目的。 什么是Python打折简…

《花雕学AI》29:5秒钟就能为你的想法想出新点子?ChatGPT新点子指令模型告诉你怎么做

引言 你有没有遇到过这样的情况&#xff0c;你想出了一个想法&#xff0c;但是不知道怎么扩展或改进它&#xff1f;你有没有想过有一个工具&#xff0c;可以帮你在短时间内为你的想法生成各种新的点子&#xff1f;如果你有这样的需求&#xff0c;那么你一定要了解ChatGPT。 C…

AI大模型应用时代,如何通过数据“造好品,卖好品”?

在数字化时代的浪潮中&#xff0c;品牌营销正面临着前所未有的挑战和机遇。随着技术的迅猛发展&#xff0c;消费者的行为和期望也在不断演变。 新的市场环境下&#xff0c;消费者的需求和购买行为发生了哪些变化&#xff1f; 数码家电转战社媒平台&#xff0c;竞争白热化如…

使用chatGPT编写的支付宝沙箱支付

支付宝沙箱支付指的是在支付宝开放平台的沙箱环境中进行的模拟支付操作。开发者可通过支付宝开放平台的沙箱环境模拟真实的支付流程&#xff0c;包括创建订单、模拟用户付款、模拟用户退款等操作&#xff0c;从而测试自己的支付功能是否正常。沙箱环境中的交易数据和资金均为虚…

ChatGPT提示词工程(一):Guidelines准则

目录 一、说明二、安装环境三、Guidelines准则一&#xff1a;写出明确而具体的说明方法1&#xff1a;使用分隔符清楚地表示输入的不同部分方法2&#xff1a;用结构化输出&#xff1a;如直接要求它以HTML或者JSON格式输出方法3&#xff1a;请模型检查是否满足条件方法4&#xff…

ChatGPT - 使用故事和隐喻来帮助记忆

文章目录 Prompt Prompt 我目前正在学习[主题]。将该主题的关键教训转化为引人入胜的故事和隐喻&#xff0c;以帮助我记忆。

Redisson分布式限流RRateLimiter的实现原理

我们目前在工作中遇到一个性能问题&#xff0c;我们有个定时任务需要处理大量的数据&#xff0c;为了提升吞吐量&#xff0c;所以部署了很多台机器&#xff0c;但这个任务在运行前需要从别的服务那拉取大量的数据&#xff0c;随着数据量的增大&#xff0c;如果同时多台机器并发…

详解Redisson分布式限流的实现原理

我们目前在工作中遇到一个性能问题&#xff0c;我们有个定时任务需要处理大量的数据&#xff0c;为了提升吞吐量&#xff0c;所以部署了很多台机器&#xff0c;但这个任务在运行前需要从别的服务那拉取大量的数据&#xff0c;随着数据量的增大&#xff0c;如果同时多台机器并发…

聊聊Sentinel集群限流探索

最近看了下关于分布式限流的部分&#xff0c;看到Sentinel的分布式限流&#xff0c;也就是集群限流的部分&#xff0c;想搭个环境看看&#xff0c;结果发现网上关于这方面的内容基本可以说没有&#xff0c;你甚至很难跑起来他的demo&#xff0c;就算能跑起来&#xff0c;估计也…

ChatGPT专业应用:生成生日主题

正文共 925 字&#xff0c;阅读大约需要 4 分钟 人力资源等必备技巧&#xff0c;您将在4分钟后获得以下超能力&#xff1a; 生成生日主题 Beezy评级 &#xff1a;A级 *经过寻找和一段时间的学习&#xff0c;一部分人能掌握。主要提升效率并增强自身技能。 推荐人 | Kim 编辑者…

UI设计如何结合AIGC工具?轻松设计出彩的UI界面

大家好。我是不知名设计师 l1m0_&#xff0c;今天分享内容为&#xff1a;UI设计如何结合AIGC工具发挥“奇”效。文中我会针对UI设计的流程和几款人工智能AI工具的功能&#xff0c;来向大家进行介绍AIGC如何在这个过程中发挥作用。对UI设计和AI工具感兴趣的朋友一定不能错过&…

chatgpt赋能python:Python声音处理入门指南

Python声音处理入门指南 如果你是一个音乐爱好者或者处理声音的工程师&#xff0c;Python语言是值得你考虑的一种工具&#xff0c;它拥有丰富的库&#xff0c;可以帮助你在声音分析、编辑、压缩和转换等方面做出成果。 Python声音处理库 Python语言拥有一个大量的声音处理库…

【回答问题】ChatGPT上线了!给我推荐比较流行的音频处理算法模型

给我推荐比较流行的音频处理算法模型 音频处理算法模型有很多种,我给你列举一些比较流行的: 声音分类:用于将声音信号分成不同的类别,比如人声、自然声、机器声等。 声音分离:用于从混合的声音信号中分离出单独的声音源。 语音识别:用于将语音转换成文本。 语音合成…

AIGC领域优秀的资源汇总(应用、论文、开源项目)

AIGC领域介绍&#xff0c;及一些比较优秀的应用&#xff0c;和论文&#xff0c;开源项目汇总。 AIGC大纲 一、AIGC概念 ​ AIGC&#xff0c;全名“AI generated content”&#xff0c;又称生成式AI&#xff0c;意为人工智能生成内容。例如AI文本续写&#xff0c;文字转图像的…