前处理 GWAS 汇总数据时是否面临以下问题:
1、怎么读取 vcf 数据?
2、不同方法需要的汇总数据格式不尽相同,每次处理都好麻烦。
3、怎么这个 GWAS 缺失 SNP 列。
4、怎么去除ambiguous SNPs?
5、一些 SNP 号都不对,还有重复。
…
MungeSumstats 可以解决这一切!!!
Overview
MungeSumstats 包旨在促进GWAS总结统计数据的标准。
该包旨在处理GWAS社区输出文件缺乏标准化的问题。现在有一部分人已经手动标准化了许多GWAS:R接口至IEU GWAS数据库API • ieugwasr 和 gwasvcf,但是由于许多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对象。
请注意