这个描述描述了包Methylation-Aware基因型与R(MAGAR)可以从GitHub。MAGAR使用Illumina公司BeadArrays使用DNA甲基化数据获得,并从Illumina公司的基因微阵列基因分型数据或全基因组测序来计算甲基化(methQTL)数量性状。包提供了多重口味的线性建模策略来计算methQTL在统计上显著的单核苷酸多态性(snp)之间的交互和个人论文认定的DNA甲基化状态的改变。DNA甲基化在单值论文认定首先总结成相关模块,和一个代表这种相关性的块(tag-CpG)用于methQTL调用。
MAGAR可以安装使用基本Bioconductor安装功能。
如果(! requireNamespace (“BiocManager”)) {install.packages (BiocManager)}如果(! requireNamespace (“MAGAR”)) {BiocManager:安装(“MAGAR”)}
suppressPackageStartupMessages(库(MAGAR))
# #包oligoClasses的请求中没有发现方法:加载“crlmm”时“的意思是”
MAGAR取决于funtional安装叮铃声基因分型结果为处理数据。按照安装说明在这里并指定的路径安装包qtlSetOption (plink.path =“path_to_plink”)
。
此外,根据不同的类型的分析,更需要外部软件工具()。更具体地说,如果你想进行归责bgzip和tabix从htslib包装是需要的,以及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/ |
MAGAR使用两种类型的数据作为输入:获得DNA甲基化数据使用Illumina公司英飞纳姆BeadArrays或酸性亚硫酸盐测序和基因分型数据使用的基因微阵列或全基因组测序获得的。
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装饰图案。最重要的是,分析选项需要指定的进口和预处理模块RnBeads。MAGAR提供了一个默认设置,它是可用的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)
MAGAR支持数据已经处理叮铃声也可用以二进制的形式请全部,.bim和.fam文件,每分钟和. map,因为变量调用文件(.vcf),或者在剂量估算文件格式(到这里。)。对于进一步的处理,我们使用命令行工具叮铃声,这是一起运来MAGAR。但是,这只适用于Linux系统安装。对于Windows和MacOS用户,请安装叮铃声工具从在这里并指定使用的选项plink.path
。前面的示例标识符指定的样品还需要一致的id基因型。进口叮铃声数据,最好来存储.bim,请全部,.fam文件在一个文件夹(这里plink_data
)和指定的包文件夹的位置。
基因族群。dir < - rnb“plink_data”。设置< - load.rnb.set (“rnb_set_dir”)。庵野<——“sample_annotation。csv”数据。loc < -列表(idat.dir = rnb.set geno.dir = plink.dir) qtlSetOption (geno.data。type = "叮铃声”,meth.data.type =“rnb.set”)冰毒。qtl < - doImport (data.location =数据。loc s.anno =。伊斯兰教纪元,s.id。坳= " SampleID " out.folder = getwd ())
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
因为Illumina公司SNP BeadArray数据进一步分析前通常估算,通过包集成了一个归责功能密歇根归责服务器。使用下面描述的选项设置,包会自动向服务器提交归责的工作和流程生成的文件。为了能够在服务器上执行计算,一个帐户是必需的。创建帐户后,你必须请求一个API令牌并指定在用户设置MAGAR使用的选项imputation.user.token
。在归责过程中,包将会停滞一段时间,等待完成的工作。工作完成后,计划将提示输入密码将通过电子邮件发送到用户帐户。归责过程必须根据染色体分裂,这就是为什么多个电子邮件将被发送到账户,和归责过程需要几天。然而,在归责,估算数据可用叮铃声文件,这样,归责只执行一次。预处理的数据上传的归责服务器,包装要求bgzip和tabix的工具htslib包中。也看到进一步的选项来配置污名工作在密歇根归责服务器文档:
qtlSetOption (impute.geno。数据= TRUE, imputation.phasing imputation.reference.panel =“apps@hrc-r1.1”。方法= " shapeit”,归责。人口=“欧元”)
的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
和参考/替代等位基因信息将自动从数据库中进行解析。这一点尤其重要,如果执行归责,因为密歇根归责服务器是敏感的引用不匹配。
虽然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打电话详细过程。
因为邻国论文认定往往高度相关,使用每个CpG独立作为一个潜在的methQTL候选人会导致许多冗余的结果。我们因此旨在近似DNA甲基化单通过确定高度相关论文认定密切附近。程序本身分为六个步骤,对每个染色体独立执行:
correlation.type
)cluster.cor.threshold
)standard.deviation.gauss
)。高值标准偏差导致降低远端点球论文认定,因此,集群将变得更大。absolute.distance.cutoff
这将返回一个集群根据邻近论文认定之间的相关结构,我们将稍后使用methQTL调用。注意,我们使用simultation实验分别确定每个数据类型的参数。他们将自动加载和使用的数据集是:
cluster.cor.threshold
= 0.2,standard.deviation.gauss
= 5000,absolute.distance.cutoff
= 500000cluster.cor.threshold
= 0.2,standard.deviation.gauss
= 3000,absolute.distance.cutoff
= 500000cluster.cor.threshold
= 0.2,standard.deviation.gauss
= 250,absolute.distance.cutoff
= 500000从列表中相关的块,MAGAR计算methQTL交互与单核苷酸多态性在相同的染色体。这个过程分为三个步骤:
representative.cpg.computation
(默认值:row.medians)。absolute.distance.cutoff
(默认:1000000)远离CpG代表linear.model.type
(默认值:classical.linear)。另外,fastQTL可以作为一个选项设置meth.qtl.type
。这将告诉包使用fastQTL软件(Ongen et al . 2016年)。的meth.qtl.type
告诉,methQTL交互是如何定义和提供了三个选项,除了已经提到fastQTL:
methQTL调用过程中,潜在的协变量可以使用指定的选项sel.covariates。我们建议至少包括年龄和性不,因为他们有强烈的影响DNA甲基化模式。
上述程序将创建一个类的对象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
。
可视化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)
包提供了一堆解释函数来描述methQTLs检测到。这包括洛拉富集分析(谢菲尔德和一杯啤酒2016)(qtlLOLAEnrichment
基因组注释),浓缩根据假定的监管元素定义的运用监管建设(Zerbino et al . 2015年)(qtlAnnotationEnrichment
),浓缩的分析不同基替换单核苷酸多态性(qtlBaseSubstitutionEnrichment
),或者TFBS主题浓缩使用TFBSTools。浓缩的可用methQTLs比较methQTLResult
(一个输入),或列表的重叠法methQTLResult
。浓缩的背景被定义为所有的snp /论文认定用作methQTL调用的输入。
res < - qtlBaseSubstitutionEnrichment (meth.qtl.res)
上面讨论的大部分功能都支持一个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])
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 包 |
考虑进一步的选择HDF5Array 如setHDF5DumpDir 和setHDF5DumpFile |
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 |
国旗表明如果等位基因频率计算的基因型数据。 |
MAGAR可以自动分配工作在高性能计算集群,已设置网格利用太阳引擎(白银)技术。你可以通过选择cluster.submit
来doMethQTL
从而激活集群提交。请注意,您还必须指定一个可执行的路径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。