GWAS-eQTL的共定位分析

GWAS-eQTL的共定位分析,听起来是不是很高大上。当时自己也是不太清楚,还到处找教程,脚本什么的。但是都无果,好不容易找到一个,折腾了半天安装了R包,只能做人类的!!!当场炸裂。但是其实了解了之后也就那么回事~

那就自己写一个脚本就行~

GWASeQTL都是对SNP进行分析,一个与表型进行关联分析,一个与基因的表达量进行关联分析;说到底都有一个共同的SNP信息。现在共定位分析只不过是将eQTL和GWAS的SNP计算的P-value值进行整合,换句话说就是在两个分析过程中有相同的SNP在两部分分析中都显示是超过阈值线的P值,那这个SNP是不是就是很重要的信息。

1.eQTL分析

可以看上一篇文章:https://www.jianshu.com/p/fba46efad6d8

2.GWAS分析

现在网上满天都是,稍微去查一下,找到适合自己的就可以做,在这里我推荐GAPIT,这个方便快捷。

3.共定位分析

文件准备

#整理eQTL结果为Chr3.eqtl.txt样式
awk 'NR > 1 {print $0}' modelANOVA.eqtl.txt | grep "Chr3" | awk '{print $1"\t"$4}' | awk -F "\t" 'BEGIN{OFS=FS}{$2=-log($2)/log(10)}1' > Chr3.eqtl.txt

$ head Chr3.eqtl.txt
rsid    pval
Chr3-35149904   42.5056
Chr3-8369353    41.4392
Chr3-35146484   39.5319
Chr3-5143404    32.4618
Chr3-35221782   31.0892
Chr3-3862546    28.8215
Chr3-4703118    27.3703
Chr3-4657827    27.3212
Chr3-4720052    27.2563
#整理GWAS结果为Chr3.eqtl.txt样式
awk '{print $1"\t"$4}' GWAS.csv | grep "Chr3" | awk -F "\t" 'BEGIN{OFS=FS}{$2=-log($2)/log(10)}1' > Chr3.gwas.txt

$ head Chr3.gwas.txt
rsid    pval
Chr3-6970       0.639774
Chr3-9305       1.15444
Chr3-19824      1.14868
Chr3-21749      0.357413
Chr3-22444      0.355889
Chr3-26997      1.0888
Chr3-29995      0.371762
Chr3-48017      0.665807
Chr3-48111      0.326685

awk -F "\t" 'BEGIN{OFS=FS}{$2=-log($2)/log(10)}1是将结果的pvalue值转化为-log10()的对数。注意文件的列名比较重要,也就是这个rsid,后面的文件要通过这个进行匹配。否则会发生错误。

共定位脚本

# 加载ggplot2包
library(ggplot2)

# 读取eQTL数据,确保文件路径正确
eqtl_data <- read.table(file="/you_path/Chr3.eqtl.txt", header=TRUE, stringsAsFactors = FALSE)
# 读取GWAS数据,确保文件路径正确
gwas_data <- read.table(file="/you_path/Chr3.gwas.txt", header=TRUE, stringsAsFactors = FALSE)

# 确保两个数据集中SNP标识符的格式相同
eqtl_data$rsid <- as.character(eqtl_data$rsid)
gwas_data$rsid <- as.character(gwas_data$rsid)

# 合并两个数据集,仅保留两个数据集中都有的SNP
merged_data <- merge(eqtl_data, gwas_data, by = "rsid")
names(merged_data) <- c("SNP", "eqtl_pval", "gwas_pval")

# 检查合并后的数据前几行
head(merged_data)

# 定义显著性阈值
gw_threshold <- 6   # GWAS的阈值
eq_threshold <- 15  # eQTL的阈值

# 创建一个新列来表示显著性状态
merged_data$significance <- with(merged_data, ifelse(eqtl_pval > eq_threshold & gwas_pval > gw_threshold, 'Red',
                                                     ifelse(gwas_pval > gw_threshold, 'Purple',
                                                     ifelse(eqtl_pval > eq_threshold, 'Green', 'Navyblue'))))

# 绘制散点图并增加显著性标记,添加居中标题和坐标轴标题
p <- ggplot(merged_data, aes(x = eqtl_pval, y = gwas_pval)) +
  geom_point(aes(color = significance), alpha = 0.5) +
  scale_color_manual(values = c("Navyblue" = "#000074", "Purple" = "#692A7D", "Green" = "#66BD99", "Red" = "#8A1C3D")) +
  geom_text(data = subset(merged_data, significance == 'Red'), aes(label = SNP), 
            hjust = 0, vjust = 0, check_overlap = TRUE, size = 3, color = "#8A1C3D") +
  geom_vline(xintercept = eq_threshold, color = "#53832F", linetype = "dashed") +
  geom_hline(yintercept = gw_threshold, color = "red", linetype = "dashed") +
  ggtitle("GWAS-eQTL co-localization analysis") +
  xlab(expression(paste("eQTL  -log"[10], "(p-value)"))) + # 设置x轴标题
  ylab(expression(paste("GWAS  -log"[10], "(p-value)"))) + # 设置y轴标题
  theme_minimal() +
  theme(legend.position = "bottom", 
        axis.text = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 20, face = "bold"),
        axis.title.x = element_text(size = 16, face = "bold"), # 设置x轴标题样式
        axis.title.y = element_text(size = 16, face = "bold")) # 设置y轴标题样式

pdf("Chr3.pdf", width = 20, height = 12)
print(p)
dev.off()

4.结果展示

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

推荐阅读更多精彩内容