把GWAS数据变成工具能吃的格式:gwasglue连接指南
【免费下载链接】gwasglueLinking GWAS data to analytical tools in R项目地址: https://gitcode.com/gh_mirrors/gw/gwasglue
先讲一个真实的崩溃现场
凌晨一点,你终于从三个不同课题组要到了GWAS汇总数据。一份是VCF格式,压缩包好几个G;一份是IEU数据库里现成的,用ID就能查;还有一份是老式的文本表,连列名都不统一。
接下来本该顺利做共定位和孟德尔随机化分析。可现实是:你花了大半夜在"格式转换"上——把VCF转成TwoSampleMR要的格式,把文本表对齐到参考等位基因,再手工合并成一张表。真正用来做科学分析的时间,可能不到两小时。
这不是你不够熟练。**问题出在"数据来源"和"分析工具"之间,隔着一道没人替你修的桥。**而 gwasglue 这个R包,就是专门来修这座桥的。
拆穿一个常见的误解
很多人以为"GWAS分析难",难在统计方法本身。其实方法部分早有成熟包:共定位有coloc,精细定位有FINEMAP和SuSIE,孟德尔随机化有TwoSampleMR,可视化有gassocplot。
真正的痛点在于数据管道。每个分析工具对输入格式的要求都不一样,而每个数据来源输出的字段也千差万别。你缺的不是分析工具,而是一个能"接上"它们的适配器。
gwasglue 的设计思路极其直白:它的每个接插件都是一对函数,命名规则一眼就能看懂——
ieugwasr_to_coloc:从IEU GWAS数据库取数,喂给colocgwasvcf_to_TwoSampleMR:把VCF格式的GWAS数据,变成TwoSampleMR的标准格式gwasvcf_to_finemapr:从VCF提取区域变异和LD矩阵,直接进入精细定位流程
左边是数据源(ieugwasr负责在线查询IEU数据库,gwasvcf负责解析VCF文件),右边是分析工具。中间的_to_,就是gwasglue替你干掉的脏活累活。整个包的核心逻辑,就是这一句话:把"能读数据的包"和"能分析数据的包"焊接起来。
跟着一次共定位走一遍
空讲概念太抽象,我们实际跑一次共定位分析。假设你想知道:**LDL胆固醇的遗传信号,和冠心病的遗传信号,在同一个基因组区域里到底是不是"同一个因果变异"造成的。**这就是共定位(colocalisation)要回答的问题。
如果走IEU数据库通道,核心代码只有三步:
# 1. 指定基因组区域(染色体:位置范围) chrpos <- "1:109317192-110317192" # 2. 一键取数、对齐、转格式 out <- ieugwasr_to_coloc(id1='ieu-a-300', id2='ieu-a-7', chrompos=chrpos) # 3. 交给coloc跑分析 res <- coloc::coloc.abf(out[[1]], out[[2]])注意到没有?你在第二步根本没写任何"格式处理"代码。两个数据集在指定区域的重叠变异、等位基因对齐、效应量提取、样本量补充,全被ieugwasr_to_coloc包揽了。如果数据源换成VCF文件,只需把函数换成gwasvcf_to_coloc,分析代码一行都不用改。
上图就是分析后直接可出的区域关联图:上方两个面板分别展示两个数据集在同一区域的-log10(p)信号,点的颜色代表与索引变异的连锁不平衡程度(r²),底部是基因注释。你只调用了一行绘图转换函数coloc_to_gassocplot,就能拿到这种发表在论文里都够格的图。
这就是gwasglue的爽点:**接口统一,换来的是分析流程的可复用性。**换个区域、换对数据集,改几个参数就能重跑。
不只是共定位:一张图看懂全家桶
gwasglue接的可不止coloc一个工具。打开源码目录R/,每个文件对应一个分析生态:
| 分析场景 | 接插件文件 | 说明 |
|---|---|---|
| 孟德尔随机化 | TwoSampleMR.r | 暴露/结局数据一键格式化成MR标准格式,甚至提供make_TwoSampleMR_dat自动完成从VCF到工具变量选择再到数据协调的全流程 |
| 精细定位 | finemapr.r、susieR.r、cojo.r | 提取区域变异与LD矩阵,输出可直接喂给FINEMAP、SuSIE、GCTA-COJO的输入 |
| 共定位 | coloc.r、pwcoco.r | 覆盖coloc与PWCoCo |
| 可视化 | gassocplot.r | 区域关联图、堆叠图 |
以孟德尔随机化为例,gwasvcf_to_TwoSampleMR会把VCF里的效应量、标准误、p值、等位基因频率等字段,自动映射成TwoSampleMR要求的列名,并顺手算出病例数、对照数。过去要手写十几行mutate和rename的活,现在一行函数到位。
真正的硬骨头:等位基因对齐
如果上面那些叫"锦上添花",那R/harmonise.r里这组函数就是"雪中送炭"。
做过跨数据集分析的人都知道,等位基因方向不一致是最隐蔽的坑。A数据集用参考等位基因做效应等位基因,B数据集恰好相反;有的是正链编码,有的是负链;还有回文SNP(A/T、C/G)这种翻链后无法区分的麻烦精。
gwasglue提供了一套完整的对齐工具链:
harmonise:基于chr:pos和ref/alt等位基因做通用对齐,能处理交换、翻转、插入缺失重编码,并明确告诉你每个位点做了什么处理is_forward_strand:先判断你的数据整体在不在正链上,避免盲目翻链harmonise_against_ref:以参考面板为基准做严格对齐
它把对齐决策做成了一张清晰的"审计表"——每个位点是被保留、交换、翻链还是丢弃,一目了然。这份透明性,比"默默给你改数据"的工具靠谱得多。
三分钟装好并跑通
安装只需要一行:
devtools::install_github("mrcieu/gwasglue")装好后第一件事,建议先看一眼仓库里的官方教程目录vignettes/:共定位看colocalisation.Rmd,条件分析看cojo.Rmd,孟德尔随机化看mr.Rmd,每个都是带完整可复现代码的文档。函数级别的说明则在man/目录下逐一对应。
新手最常问的三个问题
问:我必须把数据存成VCF才能用吗?不用。两条通道任选:数据在IEU GWAS数据库里,就用ieugwasr_to_*系列直接在线取数;自己手头有VCF文件,就用gwasvcf_to_*系列。同一种分析,两个入口,接口对称。
问:我的数据是自定义文本格式怎么办?先分析,后转换。用read_gwas按列位读入原始文件,harmonise_against_ref对齐到参考面板,再交给下游函数。gwasglue不是只管"标准数据",它连非标数据都给你兜底。
问:gwasglue帮我做了转换,我还能保留自己的处理吗?能。它返回的都是标准的数据框或列表对象,本质上是普通R对象,你可以随时在中间插入自己的过滤、筛选、合并逻辑,再用coloc_to_gassocplot、write_out这类反向工具接回流程。
最后说句实在话
GWAS分析的工具生态正在快速膨胀:新的精细定位方法、新的MR检验、新的可视化方案层出不穷。但工具越多,格式鸿沟越大。gwasglue的价值恰恰在于它替你把"翻译层"做掉了——让你更换分析工具时,不需要重写数据管道;更换数据来源时,不需要重写分析脚本。
数据管道就该是标准件,分析才是你真正的科研主场。把格式转换的苦力活交给gwasglue,把脑力留给科学问题本身。
【免费下载链接】gwasglueLinking GWAS data to analytical tools in R项目地址: https://gitcode.com/gh_mirrors/gw/gwasglue
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考