欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 解图-1-QQ-plot

解图-1-QQ-plot

2025/5/22 11:07:52 来源:https://blog.csdn.net/weixin_53737233/article/details/148123275  浏览:    关键词:解图-1-QQ-plot

基本概念

QQ图(Quantile-Quantile Plot)是评估观察数据与理论分布差异的可视化工具。在GWAS分析中,QQ图用于:

  1. 1. 比较观察的P值分布与理论期望:横轴表示期望的-log₁₀(P值),纵轴表示观察到的-log₁₀(P值)

  2. 2. 评估富集程度:图线偏离对角线越明显,表示富集越强

  3. 3. 检测基因组通胀:整体曲线系统性偏离可能表示存在人口分层等问题

解读

图片

该图比较了SCZ(精神分裂症)GWAS中不同功能性变异的P值分布:

  • 灰色线:全部GWAS SNPs
  • 彩色点:脑发育相关的功能性变异
    • 蓝色:cis-eQTLs (调控基因表达的变异)
    • 红色:cis-isoQTLs (调控转录本异构体的变异)
    • 黄色:cis-sQTLs (调控RNA剪接的变异)

关键观察:彩色点(功能性变异)的线比灰色线(背景变异)陡峭得多,表明这些功能性变异在精神分裂症相关遗传风险中明显富集。

QQ-plot详解

P值分位数计算
  1. 1. 观察到的P值分位数:

对P值进行排序(从小到大)

对排序后的P值取-log10(P)

  1. 2. 理论期望P值分位数:

在零假设下,P值应服从均匀分布U(0,1)

第i个排序P值的期望值为 i/(n+1),其中n是总SNP数

对这些期望值取-log10(P)

解读QQ-plot

对角线:表示观察P值完全符合零假设期望的情况

整体偏离对角线上方:通货膨胀,可能由人口分层或批次效应引起

仅在尾部偏离:真实关联信号

不同颜色线/点的斜率差异:表示不同功能注释SNP子集的富集程度差异

偏离模式:

整体偏离对角线上方:通货膨胀,可能由人口分层或批次效应引起

仅在尾部偏离:真实关联信号

不同颜色线/点的斜率差异:表示不同功能注释SNP子集的富集程度差异

样图绘制

# 模拟数据
set.seed(42)# 总体GWAS数据(100,000个SNP)
n_gwas <- 100000
gwas_pvals <- runif(n_gwas)^1.2# 稍微富集一些# 功能性变异
n_qtl <- 1000
eqtl_index <- sample(1:n_gwas,5000)
isoqtl_index <- sample(1:n_gwas,2000)
sqtl_index <- sample(1:n_gwas,3000)# 为功能变异设置更显著的P值
gwas_pvals[eqtl_index]<- gwas_pvals[eqtl_index]^1.8
gwas_pvals[isoqtl_index]<- gwas_pvals[isoqtl_index]^1.9
gwas_pvals[sqtl_index]<- gwas_pvals[sqtl_index]^1.7# 创建数据框
gwas_data <- data.frame(SNP = paste0("rs",1:n_gwas),P = gwas_pvals,is_eqtl =rep(FALSE, n_gwas),is_isoqtl =rep(FALSE, n_gwas),is_sqtl =rep(FALSE, n_gwas)
)# 标记QTL
gwas_data$is_eqtl[eqtl_index]<-TRUE
gwas_data$is_isoqtl[isoqtl_index]<-TRUE
gwas_data$is_sqtl[sqtl_index]<-TRUElibrary(ggplot2)create_qq_data <-function(pvals){
# 排序P值sorted_pvals <- sort(pvals)
# 计算观察到的-log10(P)observed <--log10(sorted_pvals)
# 计算期望的-log10(P)n <-length(sorted_pvals)expected <--log10(seq(1, n)/(n +1))return(data.frame(expected = expected, observed = observed))
}# 提取各组P值
all_qq <- create_qq_data(gwas_data$P)
all_qq$group <-"SCZ GWAS"eqtl_qq <- create_qq_data(gwas_data$P[gwas_data$is_eqtl])
eqtl_qq$group <-"cis-eQTL"isoqtl_qq <- create_qq_data(gwas_data$P[gwas_data$is_isoqtl])
isoqtl_qq$group <-"cis-isoQTL"sqtl_qq <- create_qq_data(gwas_data$P[gwas_data$is_sqtl])
sqtl_qq$group <-"cis-sQTL"# 合并数据
all_data <- rbind(all_qq, eqtl_qq, isoqtl_qq, sqtl_qq)# 设置颜色
colors <-c("SCZ GWAS"="grey50","cis-eQTL"="blue","cis-isoQTL"="red","cis-sQTL"="orange")# 绘图
qqplot <- ggplot(all_data, aes(x = expected, y = observed, color = group))+
# 绘制数据点geom_point(size =0.8, alpha =0.7)+
# 添加期望线geom_abline(intercept =0, slope =1, linetype ="dashed", color ="grey")+
# 设置颜色scale_color_manual(values = colors)+
# 设置轴标签labs(x =expression(-log[10](expected~P-value)),y =expression(-log[10](observed~P-value)),title ="QQ-plot of SCZ GWAS P-values by functional annotation")+
# 美化主题theme_bw()+theme(legend.title = element_blank())print(qqplot)

图片

参考文献

  1. Cross-ancestry atlas of gene, isoform, and splicing regulation in the developing human brain

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词