1介绍

这个描述描述了包Methylation-Aware基因型与R(MAGAR)可以从GitHub。MAGAR使用Illumina公司BeadArrays使用DNA甲基化数据获得,并从Illumina公司的基因微阵列基因分型数据或全基因组测序来计算甲基化(methQTL)数量性状。包提供了多重口味的线性建模策略来计算methQTL在统计上显著的单核苷酸多态性(snp)之间的交互和个人论文认定的DNA甲基化状态的改变。DNA甲基化在单值论文认定首先总结成相关模块,和一个代表这种相关性的块(tag-CpG)用于methQTL调用。

2安装

MAGAR可以安装使用基本Bioconductor安装功能。

如果(! requireNamespace (“BiocManager”)) {install.packages (BiocManager)}如果(! requireNamespace (“MAGAR”)) {BiocManager:安装(“MAGAR”)}
suppressPackageStartupMessages(库(MAGAR))
# #包oligoClasses的请求中没有发现方法:加载“crlmm”时“的意思是”

2.1需要外部软件工具

MAGAR取决于funtional安装叮铃声基因分型结果为处理数据。按照安装说明在这里并指定的路径安装包qtlSetOption (plink.path =“path_to_plink”)

此外,根据不同的类型的分析,更需要外部软件工具()。更具体地说,如果你想进行归责bgziptabixhtslib包装是需要的,以及vcftools用于排序的VCF文件。最后,如果methQTL执行调用fastQTL需要安装的软件工具和可执行指定的位置MAGAR使用qtlSetOption函数的值bgzip.path,tabix.path,vcftools.path,fast.qtl.path

工具 描述 所需 URL
叮铃声 Toolsuite基因分型结果进行处理的数据 进口基因分型结果,处理二进制叮铃声格式或VCF文件中的数据 http://zzz.bwh.harvard.edu/plink/
bgzip 压缩的文件的工具 归责设计数据上传,密歇根归责服务器 http://www.htslib.org/download/
tabix 索引顺序文件的工具 归责设计数据上传,密歇根归责服务器 http://www.htslib.org/download/
vcftools 已处理文件的工具 归责设计数据上传,密歇根归责服务器 https://vcftools.github.io/downloads.html
fastQTL 工具确定eQTLs (methQTLs) pcr和DNA甲基化数据 methQTL打电话,替代methQTL调用方法相比,默认的线性模型 http://fastqtl.sourceforge.net/

3输入数据

MAGAR使用两种类型的数据作为输入:获得DNA甲基化数据使用Illumina公司英飞纳姆BeadArrays或酸性亚硫酸盐测序和基因分型数据使用的基因微阵列或全基因组测序获得的。

3.1DNA甲基化数据(芯片)

MAGAR利用广泛使用的RnBeads软件包对DNA甲基化数据导入。因此,MAGAR支持各种输入选项RnBeads从基因表达,包括直接下载综合(GEO) IDAT,床上的文件。为进一步的选项,我们参考RnBeads装饰图案和文档。除了原始的甲基化数据,样本注释表指定要分析的样品需要提供。每个样品的表包含一个行,如下:

SampleID,年龄、性别、条形码Sample_1, 14日,f, 209054857842 _r01c01 Sample_2, 42岁,f, 209054857842 _r02c01 Sample_3, 45岁的m, 209054857842 _r03c01

为进一步的细节在进口过程中,我们参考RnBeads装饰图案。最重要的是,分析选项需要指定的进口和预处理模块RnBeadsMAGAR提供了一个默认设置,它是可用的extdata / rnbeads_options.xml。您可以使用此文件作为您自己的设置的模板,然后指定的包:

选择< - rnb.xml2options(执行(“extdata”、“rnbeads_options.xml”,包=“MAGAR”)) rnb.options(标识符。列= " geo_accession " import.idat.platform =“probes450”) xml。fi < - file.path (getwd (),“rnbeads_options.xml”)猫(rnb.options2xml(),文件= xml.fi) qtlSetOption (rnbeads。选择= xml.fi)

3.2基因分型数据

3.2.2IDAT文件

MAGAR还支持原始IDAT文件和使用CRLMMR-package,连同叮铃声执行基因型呼叫和数据导入。包装需要一个样本注释表中描述的格式DNA甲基化数据部分。除了上面指定的列名、列命名GenoSentrixPosition必须补充说,它指定IDAT文件id。

SampleID,年龄、性别、条形码,GenoSentrixPosition Sample_1, 14日,f, 209054857842 _r01c01, 9701756058 _r05c01 Sample_2, 42岁,f, 209054857842 _r02c01, 9701756058 _r07c01 Sample_3, 45岁的m, 209054857842 _r03c01, 9742011016 _r04c01

3.2.3归责

因为Illumina公司SNP BeadArray数据进一步分析前通常估算,通过包集成了一个归责功能密歇根归责服务器。使用下面描述的选项设置,包会自动向服务器提交归责的工作和流程生成的文件。为了能够在服务器上执行计算,一个帐户是必需的。创建帐户后,你必须请求一个API令牌并指定在用户设置MAGAR使用的选项imputation.user.token。在归责过程中,包将会停滞一段时间,等待完成的工作。工作完成后,计划将提示输入密码将通过电子邮件发送到用户帐户。归责过程必须根据染色体分裂,这就是为什么多个电子邮件将被发送到账户,和归责过程需要几天。然而,在归责,估算数据可用叮铃声文件,这样,归责只执行一次。预处理的数据上传的归责服务器,包装要求bgziptabix的工具htslib包中。也看到进一步的选项来配置污名工作在密歇根归责服务器文档:

qtlSetOption (impute.geno。数据= TRUE, imputation.phasing imputation.reference.panel =“apps@hrc-r1.1”。方法= " shapeit”,归责。人口=“欧元”)

3.3执行数据导入

doImport功能要求路径各自的pcr和DNA甲基化数据,以及一个示例注释表(如前所述)。在这个描述中,我们将描述DNA甲基化数据的导入IDAT格式和基因分型数据叮铃声文件。首先,你必须指定相应的路径IDAT叮铃声文件。此外,您必须指定样本中的标识符列注释表决定样品pcr和DNA甲基化数据。对于较大的文件,我们建议激活选择大型矩阵在磁盘上而不是存储在主存(hdf5dump)。

为估算数据,没有进一步的处理是进行基因分型数据和使用剂量值是:

idat.dir<- "idat_dir" geno.dir <- "geno_dir" anno.sheet <- "sample_annotation.tsv" qtlSetOption(hdf5dump=TRUE) imp.data <- doImport(data.location = c(idat.dir=idat.dir,geno.dir=geno.dir), s.anno = anno.sheet, s.id.col = "ID", tab.sep = "\t", out.folder = getwd())

请注意recode.allele.frequencies选项指定,如果根据群组分析SNP参考和选择要记录根据等位基因等位基因频率在可用的样本。另外,一条通往dbSNP的本地版本(雪莉等人。2001)可以通过提供db.snp.ref和参考/替代等位基因信息将自动从数据库中进行解析。这一点尤其重要,如果执行归责,因为密歇根归责服务器是敏感的引用不匹配。

4methQTL打电话

虽然MAGAR概念上methQTL调用分裂成两个步骤((i)计算相关块,(ii)调用methQTL /相关块),只需要一个函数调用。这个函数只需要输入methQTLInput对象上一步产生的,但进一步的选项,如协变量和假设机率截止可以直接指定为一个函数参数,或作为全局参数使用qtlSetOption ?

imp.data < - loadMethQTLInput(执行(“extdata”、“reduced_methQTL”,包=“MAGAR”)) qtlSetOption meth.qtl (standard.deviation.gauss = 100, cluster.cor.threshold = 0.75)。res < - doMethQTL (imp.data default.options = FALSE, p.val.cutoff = 0.05)
1.3 # # 2021-10-26 17:48:14地位开始归责过程资讯# # 2021-10-26 17:48:14 1.3状态归责过程完成资讯# # # # 2021-10-26 17:48:14 1.3状态开始计算methQTLs # # 2021-10-26 17:48:14 1.3状态开始计算methQTL染色体chr18 # # 2021-10-26 17:48:14 1.3状态开始计算相关块# # 2021-10-26 17:48:14 1.3状态开始计算相关矩阵# # 2021-10-26 17:48:14 1.3状态完成计算相关矩阵# # 2021-10-26 17:48:14 1.3状态开始计算两两距离# # 2021-10-26 17:48:16 1.3状态完成计算两两距离# # 2021-10-26 17:48:17 1.3状态开始体重距离1.3 # # 2021-10-26 17:48:17状态完成重量距离# # 2021-10-26 17:48:18 1.3状态开始计算图1.3 # # 2021-10-26 17:48:18状态完成计算图# # 2021-10-26 17:48:18 1.3状态开始计算集群# # 2021-10-26 17:48:19 1.3状态完成计算集群1.3 # # 2021-10-26 17:48:19状态计算相关模块完成
# #保存7 x 5形象
# # 2021-10-26 17:48:20 1.3状态开始计算methQTL相关块# # 2021-10-26 17:48:20 1.3状态开始设置多核# # 2021-10-26 17:48:20 1.3信息使用1核心# # 2021-10-26 17:48:20 1.3状态完成设置多核# # 2021-10-26 17:48:36 1.5状态完成计算methQTL相关块# # 2021-10-26 17:48:36 1.5状态完成计算methQTL染色体chr18 # # 2021-10-26 17:48:37 1.5状态计算methQTLs完成

我们将现在的两步methQTL打电话详细过程。

4.1计算CpG相关模块

因为邻国论文认定往往高度相关,使用每个CpG独立作为一个潜在的methQTL候选人会导致许多冗余的结果。我们因此旨在近似DNA甲基化单通过确定高度相关论文认定密切附近。程序本身分为六个步骤,对每个染色体独立执行:

  1. 计算(Pearson)所有论文认定(进一步相关类型之间的相关矩阵中可用的选择correlation.type)
  2. 构造相关矩阵的距离矩阵
  3. 丢弃所有交互相关性低于给定的阈值(选择:cluster.cor.threshold)
  4. 重量之间的距离根据基因距离两个论文认定高斯(选择:standard.deviation.gauss)。高值标准偏差导致降低远端点球论文认定,因此,集群将变得更大。
  5. 丢弃所有交互范围超过的选项absolute.distance.cutoff
  6. 计算鲁汶集群在无向加权图引起的距离矩阵

这将返回一个集群根据邻近论文认定之间的相关结构,我们将稍后使用methQTL调用。注意,我们使用simultation实验分别确定每个数据类型的参数。他们将自动加载和使用的数据集是:

  • 450 k:cluster.cor.threshold= 0.2,standard.deviation.gauss= 5000,absolute.distance.cutoff= 500000
  • 史诗:cluster.cor.threshold= 0.2,standard.deviation.gauss= 3000,absolute.distance.cutoff= 500000
  • rrb / WGBS:cluster.cor.threshold= 0.2,standard.deviation.gauss= 250,absolute.distance.cutoff= 500000

4.2叫methQTL /相关块

从列表中相关的块,MAGAR计算methQTL交互与单核苷酸多态性在相同的染色体。这个过程分为三个步骤:

  1. 计算一个代表CpG (tag-CpG)相关块,指定的选项representative.cpg.computation(默认值:row.medians)。
  2. 丢弃所有进一步的snpabsolute.distance.cutoff(默认:1000000)远离CpG代表
  3. 叫methQTL使用线性模型。methQTL的多个选项是可用的,可以选择通过选项linear.model.type(默认值:classical.linear)。另外,fastQTL可以作为一个选项设置meth.qtl.type。这将告诉包使用fastQTL软件(Ongen et al . 2016年)

meth.qtl.type告诉,methQTL交互是如何定义和提供了三个选项,除了已经提到fastQTL:

  1. oneVSall:CpG只能影响一个SNP。我们选择的假定值最低。
  2. twoVSall:CpG可以正面和负面影响两个独立的单核苷酸多态性。计划将输出满足假定值截止。
  3. allVSall:对于每个CpG, snp显示将返回假定值低于假定值截止。

methQTL调用过程中,潜在的协变量可以使用指定的选项sel.covariates。我们建议至少包括年龄不,因为他们有强烈的影响DNA甲基化模式。

5下游分析和解释

5.1如何使用methQTLResult

上述程序将创建一个类的对象methQTLResult,其中包含的methQTL叫前面的步骤。一个表的所有methQTL,你需要从对象中提取信息。在大多数下面的函数调用,有选择类型,值:* SNP的:描述影响任何的单核苷酸多态性DNA甲基化状态* CpG的:描述每个相关块的代表性论文认定任何SNP基因型影响*的心脏。块”:描述所有论文认定,这是相关块的一部分,其代表CpG受任何基因型的影响

此外,您可以获得基因组注释论文认定和snp参与methQTL交互:

结果。表< - getResult (meth.qtl.res)头(result.table)
庵野。冰毒< - getAnno (meth.qtl.res“冰毒”)负责人(anno.meth)
庵野。基因族群< - getAnno (meth.qtl.res“基因工程”)负责人(anno.geno)

更多详细信息输出,也看到的功能getResultsGWASMap

5.2情节

可视化methQTL,MAGAR提供了一些绘图功能。大多数函数返回一个对象的类型ggplot随后,它可以存储或查看。要么全部methQTL可以同时显示在一个阴谋,或特定methQTL可以可视化:

结果。表< - result.table[秩序(result.table P.value美元,减少= FALSE)] qtlPlotSNPCpGInteraction (imp.data, result.table CpG [1], result.table SNP[1]美元)
# #“geom_smooth()使用公式的y ~ x '

qtlDistanceScatterplot (meth.qtl.res)

5.3解释功能

包提供了一堆解释函数来描述methQTLs检测到。这包括洛拉富集分析(谢菲尔德和一杯啤酒2016)(qtlLOLAEnrichment基因组注释),浓缩根据假定的监管元素定义的运用监管建设(Zerbino et al . 2015年)(qtlAnnotationEnrichment),浓缩的分析不同基替换单核苷酸多态性(qtlBaseSubstitutionEnrichment),或者TFBS主题浓缩使用TFBSTools。浓缩的可用methQTLs比较methQTLResult(一个输入),或列表的重叠法methQTLResult。浓缩的背景被定义为所有的snp /论文认定用作methQTL调用的输入。

res < - qtlBaseSubstitutionEnrichment (meth.qtl.res)

5.4methQTL结果列表

上面讨论的大部分功能都支持一个methQTLResult作为输入,或这样的对象的列表。指定列表,功能一般会重叠methQTLs发现和比较那些所有snp /论文认定已用于methQTL调用。此外,有功能特别的工作methQTLResult对象和执行重叠,或确定methQTLs特定数据集。

meth.qtl.res。2<- loadMethQTLResult(system.file("extdata","MethQTLResult_chr18",package="MAGAR")) meth.qtl.list <- list(First=meth.qtl.res,Second=meth.qtl.res.2) qtlVennPlot(meth.qtl.list,out.folder=getwd())
# #加载需要名称空间:文氏图
qtlUpsetPlot (meth.qtl。列表类型=“cor.block”)
# # 2021-10-26 17:48:38 1.5状态开始建造宇宙# # 2021-10-26 17:48:38 1.5状态开始获得相关块对象1 # # 2021-10-26 17:48:38 1.5获得相关块对象状态完成1 # # 2021-10-26 17:48:38 1.5状态开始获得相关块对象2 # # 2021-10-26 17:48:38 1.5获得相关块对象状态完成2 # # 2021-10-26 17:48:38 1.5状态开始重叠1.5 # # 2021-10-26 17:48:38状态开始获得相关块对象1 # # 2021-10-26 17:48:38 1.5获得相关块对象状态完成1 # # 2021-10-26 17:48:38 1.5状态开始获得相关块对象2 # # 2021-10-26 17:48:38 1.5获得相关块对象状态完成2 # # 2021-10-26 17:48:38 1.5状态完成重叠

spec.first < - getSpecificQTL (meth.qtl.list首先,美元meth.qtl.list [1])

6高级配置

6.1MAGAR选项

MAGAR是一个灵活的软件包,允许多个口味的methQTL分析。在这里,我们提供不同的选项,描述分析表中选择非默认选项并讨论可能的问题。大多数选择合理的默认值,使用仿真实验确定。为进一步的信息,请参阅文档qtlSetOption

选项 描述 请注意
外部工具
vcftools.path 路径的安装VCFtools处理VCF基因分型数据的文件
plink.path 通往一个可执行版本的叮铃声基因分型结果进行处理的数据
fast.qtl.path 路径为调用methQTLs FastQTL的可执行版本 只需要,当meth.qtl.type = ' fastQTL '
bgzip.path 路径的可执行版本bgzip HTSlib包的压缩基因组数据
tabix.path 路径的可执行版本tabic HTSlib包的索引基因组数据
外部工具配置
rnbeads.options XML文件指定路径通过RnBeads甲基化进行数据处理
rnbeads.report 现有的目录路径,RnBeads报告存储
rnbeads.qc 国旗表示如果RnBeads的质量控制模块执行
hardy.weinberg.p 哈迪温伯格测试假定值截止用于过滤snp叮铃声
minor.allele.frequency 最低要求小的SNP等位基因频率在叮铃声
missing.values.samples 最大数量的缺失基因型/ SNP在样品被叮铃声他方的SNP
plink.geno 最小样本基因分型率在叮铃声
n.permutations 的数量排列在fastQTL用于纠正多个测试
归责的选项
impute.geno.data 国旗表明如果基因分型数据是否要执行
imputation.user.token 用户令牌生成的密歇根归责服务器,允许与服务器通信API 需要在生成的https://imputationserver.sph.umich.edu
imputation.reference.panel 参考面板用于污名 看到https://imputationserver.readthedocs.io/en/latest/api/为进一步的信息
imputation.phasing.method 分阶段方法用于污名 看到https://imputationserver.readthedocs.io/en/latest/api/为进一步的信息
imputation.population 的人口参考面板用于污名 看到https://imputationserver.readthedocs.io/en/latest/api/为进一步的信息
导入选项
meth.data.type 的甲基化数据类型处理 接受的值idat.dir,data.dir,data.files,GS.report,地理,或rnb.set
geno.data.type 基因分型的类型的数据被处理 接受的值idat叮铃声
相关块调用
compute.cor.blocks 国旗表明如果相关块确定的甲基化数据
correlation.type 相关的类型是用于计算相关块 接受的值皮尔森,斯皮尔曼,肯德尔
cluster.cor.threshold 相关阈值导致零的相关矩阵的一个条目
standard.deviation.gauss 使用的标准差的高斯加权根据基因相似性距离
absolute.distance.cutoff 基因组的距离截止距离。高导致零距离的相似性矩阵
max.cpgs 最大数量的论文认定用于计算相关块 取决于可用的内存
MethQTL打电话
meth.qtl.type 这个选项决定methQTL是如何定义的 接受的值oneVSall,allVSall,twoVSall,或fastQTL
linear.model.type 确定调用methQTLs线性模型是如何定义的 接受的值categorical.anova,classical.linear,或fastQTL
representative.cpg.computation 决定一个代表性的CpG每相关块标识,这是与SNP基因型有关 接受的值row.medians,mean.center,或best.all
n.prin.comp 数值显示多少电脑中不使用methQTLs的识别
一般选择
hdf5dump 国旗表明如果大型矩阵存储在磁盘上而不是在主内存使用HDF5Array 考虑进一步的选择HDF5ArraysetHDF5DumpDirsetHDF5DumpFile
db.snp.ref dbSNP路径下载的版本。dbSNP, SNP标识符可以提取并带注释的单核苷酸多态性可以从甲基化数据中删除 在vcf dbSNP应该。广州格式,可以从下载https://ftp.ncbi.nih.gov/snp/organisms/human_9606_b150_GRCh37p13/VCF/
cluster.config 配置优质计算集群。目前支持粘和上海黄金交易所的很多。
cluster.architecture 字符串表示使用高性能计算架构 目前支持“粘”很多,“白银”
recode.allele.frequencies 国旗表明如果等位基因频率计算的基因型数据。

6.2雇佣MAGAR在科学计算集群

MAGAR可以自动分配工作在高性能计算集群,已设置网格利用太阳引擎(白银)技术。你可以通过选择cluster.submitdoMethQTL从而激活集群提交。请注意,您还必须指定一个可执行的路径Rscript和潜在的使用选项设置指定资源需求cluster.config

qtlSetOption(集群。配置= c (h_vmem = " 60 g”, mem_free = 20克))qtlSetOption (rscript。路径= / usr / bin / Rscript) meth.qtl。res < - doMethQTL(冰毒。qtl = imp.data集群。提交= T)

引用

Ongen Halit,阿方索成矿,安德鲁阿南德•布朗Emmanouil t . Dermitzakis,奥利弗Delaneau》2016。“快速、高效为成千上万的分子表型QTL mapper。”生物信息学32 (10):1479 - 85。https://doi.org/10.1093/bioinformatics/btv722

谢菲尔德,Nathan C。,Christoph Bock. 2016. “LOLA: enrichment analysis for genomic region sets and regulatory elements in R and Bioconductor.”生物信息学32 (4):587 - 89。https://doi.org/10.1093/bioinformatics/btv612

雪莉,s T。,M.H. Ward, M. Kholodov, J. Baker, L. Phan, E.M. Smigielski, and K. Sirotkin. 2001. “dbSNP: the NCBI database of genetic variation.”核酸的研究29(1):308 - 11所示。https://doi.org/10.1093/nar/29.1.308

Zerbino丹尼尔·R。,Steven P. Wilder, Nathan Johnson, Thomas Juettemann, and Paul R. Flicek. 2015. “The Ensembl Regulatory Build.”基因组生物学16 (1):1 - 8。https://doi.org/10.1186/s13059 - 015 - 0621 - 5