如何使用 MungeSumstats

前处理 GWAS 汇总数据时是否面临以下问题:

1、怎么读取 vcf 数据?
2、不同方法需要的汇总数据格式不尽相同,每次处理都好麻烦。
3、怎么这个 GWAS 缺失 SNP 列。
4、怎么去除ambiguous SNPs?
5、一些 SNP 号都不对,还有重复。

MungeSumstats 可以解决这一切!!!

Overview

MungeSumstats 包旨在促进GWAS总结统计数据的标准。

该包旨在处理GWAS社区输出文件缺乏标准化的问题。现在有一部分人已经手动标准化了许多GWAS:R接口至IEU GWAS数据库API • ieugwasrgwasvcf,但是由于许多GWAS仍然是闭源的,这些仓库并不是涵盖所有的。

GWAS-Download项目已汇集了200多个GWAS的总结统计数据。这个仓库被用来识别最常见的格式,所有这些格式都可以通过MungeSumstats进行标准化。

此外,VCF格式作为GWAS数据的一个新兴标准,也有多个有用的关联R包,如vcfR。然而,目前还没有方法将VCF格式转换为与旧版方法匹配的标准化格式。

MungeSumstats 包标准化了VCF格式和最常见的GWAS数据格式,以便进行下游集成和分析。

MungeSumstats 还提供了全面的质量控制(QC)步骤,这些步骤是进行下游分析(如连锁不平衡得分回归(LDSC)和MAGMA)之前的重要前提。

此外,MungeSumstats 编写高效,导致所有格式化和质量控制检查在标准桌面计算机上为包含50万个SNP的GWAS总结统计数据完成仅需几分钟的时间。通过增加data.table的线程数(nThread),这一速度还可以进一步提高。

目前,MungeSumstats 仅适用于人类数据,因为它使用的是基于人类的基因组参考。

Aim

MungeSumstats 将确保所有分析所需的列都存在且语法正确。一般来说,GWAS数据包括(但不限于)以下列:

  • SNP : SNP ID (rs IDs)
  • CHR : Chromosome number
  • BP : Base pair positions
  • A1 : reference allele
  • A2 : alternative allele
  • Z : Z-score
  • BETA : Effect size estimate relative to the alternative allele
  • P : Unadjusted p-value for SNP
  • SE : The standard error
  • N : Sample size
  • INFO: The imputation information score
  • FRQ: The minor/effect allele frequency (MAF/EAF) of the SNP

MungeSumstats 使用映射文件来推断输入的列名(运行 data("sumstatsColHeaders") 查看这些列)。这个映射文件比任何其他公开可用的数据处理工具更为全面,包含超过200个唯一的映射(截至撰写本教程时)。然而,如果您的列头缺失或您希望更改映射,您可以通过传递您自己的映射文件来实现(参见 format_sumstats(mapping_file))。

MungeSumstats 提供了无与伦比的质量控制,以确保例如等位基因分配和效应方向的一致性。MungeSumstats 进行的测试包括:

  • 检查VCF格式
  • 检查制表符、空格或逗号分隔的压缩文件、csv或tsv文件
  • 检查头列名及同义词
  • 检查GWAS中是否有多个模型或特征
  • 检查SNP ID的一致性–没有混用 rs/missing rs/chr:bp
  • 检查是否将CHR:BP:A2:A1合并到一列
  • 检查是否将CHR:BP合并到一列
  • 检查是否将A1/A2合并到一列
  • 检查CHR和/或BP是否缺失(通过参考基因组推断)
  • 检查SNP ID是否缺失(通过参考基因组推断)
  • 检查A1和/或A2是否缺失(通过参考基因组推断)
  • 检查是否存在关键列(SNP、CHR、BP、P、A1、A2)
  • 检查是否存有一个 signed/effect column(Z、OR、BETA、LOG_ODDS、SIGNED_SUMSTAT)
  • 检查是否有缺失数据
  • 检查是否有重复列
  • 检查是否有极小的p值(小于5e-324)
  • 检查N列是否为整数
  • 检查SNP是否有N大于标准偏差的5倍加上均值
  • 检查SNP是否为RS ID
  • 检查SNP ID格式的一致性
  • 检查是否有重复行,根据SNP ID
  • 检查是否有重复行,根据碱基对位置
  • 检查SNP是否在参考基因组上。通过CHR和BP纠正找不到的SNP ID(通过参考基因组推断)
  • 检查INFO评分
  • 检查FRQ值
  • 检查FRQ是否为次要等位基因频率(MAF)
  • 检查SNP的标准误差(SE)是否为正
  • 检查SNP的效应列(如BETA)是否不为0
  • 检查是否有歧义(strand-ambiguous)SNPs
  • 检查是否有 非双等位基因 (non-biallelic)SNP(通过参考基因组推断)
  • 检查等位基因是否翻转
  • 检查是否有非标准染色体名称的 SNP
  • 检查是否有在排除染色体上的SNP(默认删除非常染色体SNP)
  • 检查是否有z分数(Z)并在缺失时进行推算
  • 检查是否有N并在缺失时进行推算
  • 检查输出格式是否符合LDSC标准
  • 检查输出格式是否符合IEU OpenGWAS标准
  • 如果需要,检查并执行 liftover 到所需的参考基因组
  • 检查GWAS中的插入缺失(indels)并在发现时删除(默认不运行)

用户可以指定在其数据上运行哪些检查。注意MungeSumstats 推断效应等位基因始终为A2等位基因,这与IEU GWAS VCF采用的方法相同,因此这里也采用了这一方法。该推断首先来源于输入文件的列标题,然而,等位基因翻转检查通过将A1(应该是参考等位基因)与参考基因组进行比较来确保这一点。如果SNP的A1 DNA碱基与参考基因组不匹配,而A2(应该是替代等位基因)匹配,则会翻转等位基因及其效应信息(例如,Beta、Odds Ratio、signed summary statistics、FRQ、Z-score*)。

* 默认情况下,Z-score 被假定为基于效应大小计算,而不是基于P值,因此将被翻转。用户可以更改此设置。

如果某项测试未通过,用户将收到通知,并且如果可能,输入将被修正。上述检查中的质量控制步骤也可以根据用户的分析需求进行调整,参见 MungeSumstats::format_sumstats

MungeSumstats 可以处理VCF、txt、tsv、csv文件类型,或这些文件类型的.gz/.bgz版本。该包还允许用户将重新格式化后的文件导出为 tab-delimited、VCF或R原生对象,如data.table、GRanges或VRanges对象。输出还可以以LDSC ready的格式输出,这意味着文件可以直接输入到LDSC中,而无需额外的处理。注意 - 如果使用LDSC格式,A1作为reference(genome build)allele和A2作为effect allele的命名约定将被反转,以匹配LDSC(A1 will now be the effect allele)。有关更多信息,请参见这里。请注意,任何效应列(例如Z)现在将与A1相关,而不是A2。

运行 MungeSumstats

MungeSumstats 可在 Bioconductor 上下载,运行以下代码:

if (!require("BiocManager")) {
  install.packages("BiocManager")
  BiocManager::install("MungeSumstats")
}  

安装完成后,加载软件包:

library(MungeSumstats)

要标准化GWAS数据格式,只需调用 format_sumstats(),并传入汇总数据的路径,或直接传入数据框(dataframe)或数据表(datatable)。您可以指定在GWAS中使用的 genome build(GRCh37 or GRCh38),或者默认情况下,从数据中推断基因组构建。参考基因组用于多个检查,如推导缺失数据(SNP/BP/CHR/A1/A2)和QC步骤(如去除 non-biallelic SNPs、strand-ambiguous,或确保SNP效应的等位基因和方向正确)。该函数调用可以返回重新格式化的GWAS数据的路径,用户可以指定文件保存位置,或者返回数据的R原生对象:data.table、VRanges或GRanges对象。

请注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QH_ShareHub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值