基因组广泛关联研究(GWAS)结果可视化是GWAS分析的重要步骤,旨在直观地展示和解释统计分析的结果,帮助研究者识别显著的遗传变异及其与表型之间的关系。以下是一些常用的GWAS结果可视化方法及其介绍:


1. 曼哈顿图(Manhattan Plot)

  • 用途:展示整个基因组中每个SNP与表型关联的显著性水平。

  • 特点

    • X轴表示SNP所在的染色体和其基因组位置。

    • Y轴表示每个SNP的–log10(p-value)。

    • 超过显著性阈值(如 Bonferroni 校正)的SNP通常用特殊颜色或标记突出显示。

  • 工具:R包qqman、Python库MatplotlibSeaborn,或专用的GWAS工具(如LocusZoom)。


2. QQ图(Quantile-Quantile Plot)

  • 用途:评估GWAS结果中显著性水平的总体分布是否符合期望。

  • 特点

    • X轴为期望的p-value分布的–log10值。

    • Y轴为观察到的p-value分布的–log10值。

    • 偏离对角线的点可能暗示潜在的信号或混杂因素(如群体结构)。

  • 工具:R包qqmanqqplotr,Python中的scipy.stats.probplot


3. 火山图(Volcano Plot)

  • 用途:综合展示效应大小和显著性之间的关系。

  • 特点

    • X轴为效应大小(如贝塔值)。

    • Y轴为–log10(p-value)。

    • 显著且效应较大的SNP通常位于图的左右上方。

  • 工具:Python库MatplotlibPlotly


4. 区域关联图(Regional Association Plot)

  • 用途:展示某个特定基因组区域内SNP与表型的关联性。

  • 特点

    • X轴为基因组位置。

    • Y轴为–log10(p-value)。

    • 附加信息:LD(连锁不平衡)情况、参考基因注释。

  • 工具:LocusZoom软件。


5. 热图(Heatmap)

  • 用途:可视化多个变量间的相关性,例如多个表型与多个基因之间的关联。

  • 特点

    • 不同颜色代表不同的相关性强度。

    • 可显示多维度的数据关系。

  • 工具:R的heatmap函数、Python的Seaborn库。


6. 圈图(Circos Plot)

  • 用途:用于展示多种基因组数据,如GWAS结果与其他组学数据的整合。

  • 特点

    • 将基因组信息按染色体编号排列成环状。

    • 外圈常用于表示显著性或基因位置,内圈可显示其他组学数据。

  • 工具:Circos软件、R包circlize


7. 网络图(Network Plot)

  • 用途:展示显著SNP之间的功能关联或其与表型的关联。

  • 特点

    • 节点代表SNP或基因。

    • 边表示关联或功能相互作用。

  • 工具:Cytoscape、R包igraph


8. 条形图与箱线图

  • 用途:展示特定SNP的基因型与表型之间的关系。

  • 特点

    • 条形图可显示不同基因型下表型的均值及误差。

    • 箱线图显示不同基因型的表型分布。

  • 工具:R中的ggplot2或Python的Seaborn


可视化注意事项

  1. 数据预处理

    • 对结果进行适当的多重检验校正(如FDR、Bonferroni)。

    • 删除质量较低的SNP。

  2. 显著性阈值:根据研究需要设定,比如常用的 5×10−85 \times 10^{-8}5×10−8。

  3. 图形注释:添加基因名称、功能注释等,提高图形的解读性。

  4. 软件与工具选择:选择支持大规模数据的工具,优化计算和绘图性能。


推荐工具与资源

  • Rqqmanggplot2CMplot

  • PythonMatplotlibSeabornPlotly

  • 专用软件:LocusZoom, Circos, Cytoscape。

每种可视化方法适用于不同的分析场景,可以根据研究需求灵活选择。

gwas_result.assoc.txt示例数据样式(部分)

SNP Chromosome Posiotion Trait1chr01:1579 1 1579 8.892120e-01chr01:1695 1 1695 9.298810e-01chr01:1708 1 1708 7.801369e-01chr01:1748 1 1748 9.272730e-01chr01:1794 1 1794 7.891402e-01chr01:1872 1 1872 9.408543e-01chr01:1948 1 1948 8.349593e-01chr01:1953 1 1953 8.349593e-01chr01:2004 1 2004 7.985962e-01
​​​​​​
#使用R作图,建议服务器中使用,计算容量较大
#安装CMplot包install.packages("CMplot")
## 加载R包library("CMplot")
## 导入数据data <- read.table("gwas_result.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 plotCMplot(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 plotCMplot(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 plotCMplot(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)

1. SNP密度图

解释
SNP密度图是用于展示全基因组范围内SNP分布情况的图形。它直观地显示了每个染色体上的SNP密度,为研究人员提供基因组覆盖程度的信息。

如何解读
  • X轴:通常表示染色体编号及其相应的基因组位置。

  • Y轴:可以表示每个窗口区域内的SNP数目或SNP的分布密度。

  • 观察要点

    • 高密度区域可能是基因富集区(通常也可能是LD块较大的区域)。

    • 低密度区域可能反映了基因组测序覆盖的不足或该区域SNP的稀缺性。

  • 研究意义

    • 判断是否存在基因组特定区域的SNP分布异常。

    • 检查数据质量是否均衡(例如基因组某些区域缺失SNP可能表明技术问题)。


2. QQ图(Quantile-Quantile Plot)

解释
QQ图比较了观察到的SNP关联统计量(通常是p-value的–log10值)与理论期望的统计量。它帮助评估数据中是否存在偏离随机分布的显著信号。

如何解读
  • X轴:期望的p-value分布(理论上的–log10值)。

  • Y轴:实际观察到的p-value分布(–log10值)。

  • 观察要点

    • 如果点基本沿对角线分布,说明数据整体符合无关联的期望。

    • 如果点在尾部偏离对角线,则可能暗示显著信号的存在(通常在显著性高的范围偏离)。

    • 系统性偏移(例如整体上方偏移)可能表明存在混杂因素(如群体结构、隐匿性相关)。

  • 研究意义

    • 检查显著性水平是否符合期望。

    • 确认潜在的显著信号。


3. 曼哈顿图(Manhattan Plot)

解释
曼哈顿图是GWAS中最常用的可视化工具之一,用于全基因组范围内展示每个SNP与表型关联的统计显著性(通常是–log10(p-value))。

如何解读
  • X轴:基因组中的位置(通常按染色体分组,横轴从1号染色体到X/Y染色体)。

  • Y轴:每个SNP的显著性(–log10(p-value))。

  • 观察要点

    • 数据点如高楼般突起的区域表示显著的关联信号,这些通常对应于染色体上某一特定区域(基因或LD块)。

    • 水平参考线通常表示显著性阈值,例如GWAS显著性阈值(5×10−85 \times 10^{-8}5×10−8)。

    • 不同染色体常用不同颜色交替显示,以区分数据来源。

  • 研究意义

    • 突出的点代表潜在的功能变异位点。

    • 帮助识别和定位与表型显著关联的基因组区域。


比较与联系

  1. SNP密度图提供的是分布信息,可以作为数据质量检查的初步工具,确认SNP的覆盖是否均匀。

  2. QQ图用于评估整体显著性水平是否有系统性偏移以及是否存在真实信号,是对全局关联结果的检测。

  3. 曼哈顿图是展示显著SNP的主要工具,能直观显示显著性热点区域的位置。


实际应用场景

  • SNP密度图:在GWAS研究设计阶段,检查数据覆盖和SNP分布均匀性。

  • QQ图:在分析完成后,验证数据是否存在全局偏移,初步发现信号。

  • 曼哈顿图:定位显著信号所在的具体染色体区域,指导后续的生物学验证。

生信大白记第41记,就到这里,关注我!

下一记,持续更新学习生物信息学的内容!

生信大白记邮箱账号:shengxindabaiji@163.com

生信大白记简书账号:生信大白记

生信大白记CSDN账号:生信大白记

生信大白记微信公众号:生信大白记

加入生信大白记交流群938339543

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐