ramr用户指南

Oleksii Nikolaienko

2023年4月25日,

文摘

一个全面的指南使用ramr包罕见的异常甲基化区域的检测。

介绍

ramr是低频的R包检测异常甲基化发生在大型数据集得到的甲基化分析亚硫酸氢使用数组或高通量测序。此外,包提供函数可视化发现异常甲基化区域(AMR),产生的所有可能的地区作为参考集富集分析,并生成生物相关测试数据集AMR / DMR搜索算法的性能评估。

电流特性

读取数据

ramr操作类的对象的方法农庄。AMR搜索的输入对象必须用样本β值除了包含元数据列。一个典型的输入对象是这样的:

农庄与383788和845元数据对象列:seqnames范围链| GSM1235534 GSM1235535 GSM1235536……< Rle > < IRanges > < Rle > | <数字> <数字> <数字>…cg13869341 chr1 15865 * | 0.801634776091808 0.846486905008704 0.86732154737116……cg24669183 chr1 534242 * | 0.834138820071765 0.861974610731835 0.832557979806823……cg15560884 chr1 710097 * | 0.711275180750356 0.70461945838556 0.699487225634589……cg01014490 chr1 714177 * | 0.0769098196182058 0.0569443780518647 0.0623154673389864……cg17505339 chr1 720865 * | 0.876413362222415 0.885593263385521 0.877944732153869…………………………cg05615487 chr22 51176407 * | 0.84904178467798 0.836538383875097 0.81568519870099……cg22122449 chr22 51176711 * | 0.882444486059592 0.870804215405886 0.859269224277308……cg08423507 chr22 51177982 * | 0.886406345093286 0.882430879852752 0.887241923657461…… cg19565306 chr22 51222011 * | 0.0719084295670266 0.0845209871264646 0.0689074604483659 ... cg09226288 chr22 51225561 * | 0.724145303755024 0.696281176451351 0.711459675603635 ...

ramr包提供一个样本数据,模拟使用GSE51032数据集的描述ramr参考论文。样本数据集ramr.data10000年论文认定和100个样本(包含β值ramr.samples),并携带6独特(ramr.tp.unique)和15个非唯一(ramr.tp.nonunique包含至少10)真阳性amr论文认定与β值增加/减少了0.5

图书馆(ramr)# >加载所需的包:GenomicRanges# >加载所需的包:stats4# >加载所需的包:BiocGenerics# ># >附加包:“BiocGenerics”# >以下对象是蒙面的包:统计数据:# ># >差,疯狂,sd, var, xtabs# >以下对象从“包:基地”:蒙面# ># >过滤器,发现,地图、位置降低,anyDuplicated, aperm,追加,as.data.frame,# > basename、cbind colnames目录名,做。电话,重复,eval, evalq, grep,# > grepl、相交。无序、拉普兰人、宾州、匹配mget,秩序,粘贴,pmax,# > pmax.int pmin, pmin.int、等级、rbind, rownames,酸式焦磷酸钠,setdiff,排序,表,# > tapply,联盟,独特的,不可分割的,。马克斯,which.min# >加载所需的包:S4Vectors# ># >附加包:“S4Vectors”# >以下对象从包:跑龙套的蒙面:# ># > findMatches# >以下对象从“包:基地”:蒙面# ># >我,扩大。网格,unname# >加载所需的包:IRanges# >加载所需的包:GenomeInfoDb# >加载所需的包:平行# >加载所需的包:doParallel# >加载所需的包:foreach# >加载所需的包:迭代器# >加载所需的包:doRNG# >加载所需的包:rngtools数据(ramr)(ramr.samples)# > [1]“sample1”“sample2”“之上”“sample4”“sample5”“sample6”ramr.data [1:10,ramr.samples [1:3]]与10范围和3 # >农庄对象元数据列:# > seqnames范围链| sample1 sample2之上# > < Rle > < IRanges > < Rle > | <数字> <数字> <数字># > cg13869341 chr1 15865 * 0.879959 | 0.833609 - 0.847747# > cg14008030 chr1 18827 * 0.609759 | 0.553312 - 0.547931# > cg12045430 chr1 29407 * 0.222865 | 0.186572 - 0.204322# > cg20826792 chr1 29425 * 0.426783 | 0.481280 - 0.439688# > cg00381604 chr1 29435 * 0.167011 | 0.134126 - 0.173629# > cg20253340 chr1 68849 * 0.541587 | 0.500267 - 0.615868# > cg21870274 chr1 69591 * 0.775057 | 0.777613 - 0.771680# > cg03130891 chr1 91550 * 0.223610 | 0.245783 - 0.204307# > cg24335620 chr1 135252 * 0.786113 | 0.777796 - 0.790842# > cg16162899 chr1 449076 * 0.898071 | 0.878150 - 0.860134# > - - - - - - -# > seqinfo: 24从hg19基因组序列;没有seqlengthsplotAMR(ramr.dataramr.samples,ramr.tp.unique[1])# > [[1]]

plotAMR(ramr.dataramr.samples,ramr.tp.nonunique[c(1,6,11)))# > [[1]]

输入(或模板)对象可以获得使用来自不同数据源的数据。在这里,我们提供两个例子:

使用数据从NCBI地理

下面的代码拉(注:非常大)从NCBI原始文件地理数据库,并以标准化并创建农庄使用对象进行进一步分析ramr(系统需求:22 gb的磁盘空间,64 gb的RAM)

库(minfi)库(GEOquery)图书馆(GenomicRanges)图书馆(IlluminaHumanMethylation450kanno.ilmn12.hg19) #目的地临时文件dest.dir < - tempdir() #下载和打开原始IDAT附加的文件。文件< - getGEOSuppFiles (“GSE51032”, baseDir =服务台。dir makeDirectory = FALSE, filter_regex =“生”)解压(rownames (suppl.files) exdir =服务台。dir, idat verbose = TRUE)。文件< - list.files(服务台。dir,模式= " idat。广州美元”,酸式焦磷酸钠(idat full.names = TRUE)。文件、gunzip覆盖= TRUE) #阅读地理IDAT文件。idat < - read.metharray.exp (dest.dir) colnames (geo.idat) < - gsub (“(GSM \ \ d +)。* 1”、“\ \”,colnames genomic.ratio (geo.idat)) #处理原始数据。< - preprocessQuantile (geo。idat mergeManifest = TRUE, fixOutliers = TRUE) #创建农庄与β值数据对象。< -农庄组织(genomic.ratio.set)数据范围。贝塔< - getBeta (genomic.ratio.set)样本。id < - colnames (geo.idat) mcols (data.ranges) < -数据。贝塔#数据。范围和样本。ids objects are now ready for AMR search using ramr

使用俾斯麦胞嘧啶报告文件

库(methylKit)库(GenomicRanges) #文件。列表是一个用户定义的特征向量和俾斯麦胞嘧啶报告文件文件的文件名。#示例列表。ids是一个用户定义的特征向量样本的名字。ids #甲基化上下文字符串定义如果读取覆盖两股将被合并上下文< -“CpG”#配件使用ramr贝塔分布(过滤。方法“测试版”或“wbeta”) #要求大部分的β值不等于0或1 min.beta < - 0.001马克斯。β< - 0.999 #阅读和团结meth.data甲基化值。原始< - methRead (as.list (file.list) as.list (sample.ids),装配=“hg19”,标题= TRUE,上下文=上下文,分辨率=“基地”,治疗=代表(0,长度(sample.ids)),管道=“bismarkCytosineReport”) meth.data。曼联< -团结(meth.data。生,destrand = isTRUE(上下文= =“CpG”)) #创建这些农庄对象与β值数据。< -农庄组织(meth.data.utd)数据范围。贝塔< - percMethylation (meth.data.utd) / 100 data.betas [data.betas <最小。β)< - min.beta data.betas [data.betas > max。β)< - max。βmcols (data.ranges) < -数据。贝塔#数据。范围和样本。id对象现在准备使用ramr AMR搜索

模拟数据

ramr提供方法来创建组随机amr和生成相关生物甲基化β值使用真实的数据集作为模板。下面的代码提供了一个示例,但它是推荐使用一个真正的实验数据(例如GSE51032)创建一个测试数据集的性能评估ramr或其他AMR / DMR搜索引擎。并行数据生成的结果完全重现当同样的种子已经设置(由于doRNG:: % doRNG %)。

#设置所需的种子如果可重复的结果set.seed(999年)#独特随机amramr。独特的< -simulateAMR(ramr.datansamples =25,regions.per.sample =2,min.cpgs =5,merge.window =1000年,dbeta =0.2)具有独特的amr #非唯一amr以外的地区amr。nonunique < -simulateAMR(ramr.datansamples =4,exclude.ranges =amrs.unique,samples.per.region =2,min.cpgs =5,merge.window =1000年)# AMR地区以外的随机噪声噪音< -simulateAMR(ramr.datansamples =25,regions.per.sample =20.,exclude.ranges =c(amr。独特,amrs.nonunique),min.cpgs =1,max.cpgs =1,merge.window =1,dbeta =0.5)#“平滑”甲基化数据没有amr(负控制)光滑。数据< -simulateData(ramr.datansamples =25,核=2)# >模拟数据(0.894秒)#甲基化数据与amr和噪音吵了。数据<-simulateData(ramr.datansamples =25,amr.ranges =c(amr。独特,amr。nonunique、噪音),核=2)# >模拟数据(0.997秒)# >介绍表突变(0.136秒)#这就是地区的样子图书馆(gridExtra)# ># >附加包:“gridExtra”# ># >以下对象是蒙面从“包:BiocGenerics”:# ># >结合do.call(“grid.arrange”,c(plotAMR(noisy.dataamr.ranges =amrs.unique [1:4]),ncol =2))

do.call(“grid.arrange”,c(plotAMR(noisy.dataamr.ranges =排序(amrs.nonunique) [1:8]),ncol =2))

do.call(“grid.arrange”,c(plotAMR(noisy.dataamr.ranges =噪声(1:4]),ncol =2))# > ' geom_line()”:每组包含只有一个观察。# >ℹ你需要调整群体审美吗?

#我们能找到他们吗?system.time(< -getAMR(noisy.dataramr.method =“测试版”,min.cpgs =5,merge.window =1000年,qval.cutoff =1)依照,核=2))# >识别amr(2.493秒)# >用户系统运行# > 3.834 0.867 2.693#所有可能的区域所有人。范围< -getUniverse(noisy.datamin.cpgs =5,merge.window =1000年)#真正的阳性tp < -总和(发现% / %c(amr。独特,amrs.nonunique))#假阳性《外交政策》< -总和(发现% %外c(amr。独特,amrs.nonunique))#真正的底片tn < -长度(all.ranges% %外c(amr。独特,amrs.nonunique))#假阴性fn < -总和(c(amr。独特,amrs.nonunique)% %外发现)#准确性,MCCacc < -(tp+tn)/(tp+tn+《外交政策》+fn)mcc < -(tp*tn- - - - - -《外交政策》*fn)/(√6(tp+《外交政策》)*√6(tp+fn)*√6(tn+《外交政策》)*√6(tn+fn))setNames(c(tp、fp、tn、fn),c(“TP”,“外交政策”,“TN”,“FN”))# > TP FP TN FN57 # > 0 206 1setNames(cmcc (acc),c(“准确性”,“世纪挑战集团”))# > MCC准确性# > 0.9962121 - 0.9889444

AMR识别

这个代码显示了如何进行基本的分析ramr使用提供的数据文件:

#识别amramr < -getAMR(ramr.dataramr.samples,ramr.method =“测试版”,min.cpgs =5,merge.window =1000年,qval.cutoff =1 e - 3,核=2)# >识别amr(7.215秒)#检查排序(amr)22 # >农庄对象范围和5元数据列:# > seqnames范围链| revmap ncpg dbeta示例# > < Rle > < IRanges > < Rle > | <列表> <整数> <人物> <数字># > [1]chr1 566172 - 569687 * | 17, 18, 19,…15 sample95 0.498337# > [2]chr1 874697 - 877876 * 165166167 (|),…13 sample44 0.451475# > [3]chr1 874697 - 877876 * 165166167 (|),…13 sample45 0.457115# > [4]chr1 874697 - 877876 * 165166167 (|),…13 sample46 0.458498# > [5]chr1 1095607 - 1106175 * 620621622 (|),…49 sample66 -0.503085# >………………………# > [18]chr1 2200890 - 2200890 * | 2263年,2264年,2265年……10 sample58 -0.505059# > [19]chr1 2200890 - 2200890 * | 2263年,2264年,2265年……10 sample59 -0.498849# > [20]chr1 2200890 - 2200890 * | 2263年,2264年,2265年……10 sample60 -0.500389# > [21]chr1 2269871 - 2269871 * | 2410年,2411年,2412年……10 sample71 -0.496600# > [22]chr1 2443577 - 2443577 * | 2722年,2723年,2724年……30 sample25 -0.484617# > pval# > <数字>4.60616 e - 171 # > [1]# > 1.30458 e-07 [2]# > 1.04111 e-07 [3]# > 8.03068 e-08 [4]# > 1.92980 e-17 [5]# >……# > 2.98503 e-08 [18]# > 4.05494 e-08 [19]# > 3.68870 e-08 [20]# > 1.54741 e-17 [21]# > 1.26772 e-19 [22]# > - - - - - - -# > seqinfo: 24从hg19基因组序列;没有seqlengthsdo.call(“grid.arrange”,c(plotAMR(ramr.dataramr.samples,amrs[1:10]),ncol =2))

并行处理的结果是如果同样的种子已经完全重现。

AMR注释和富集分析

如果有必要,可以带注释的amr已知基因组元素使用R库annotatr1或检测潜在的浓缩在表观遗传或其他标志使用R库萝拉2

#注释amr使用图书馆annotatr R图书馆(annotatr)# >警告:替换之前的进口“跑龙套::findMatches”S4Vectors:: findMatches装船时# >“AnnotationDbi”注释。类型< -c(“hg19_cpg_inter”,“hg19_cpg_islands”,“hg19_cpg_shores”,“hg19_cpg_shelves”,“hg19_genes_intergenic”,“hg19_genes_promoters”,“hg19_genes_5UTRs”,“hg19_genes_firstexons”,“hg19_genes_3UTRs”)注释< -build_annotations(基因组=“hg19”,注释=annotation.types)# >加载所需的包:GenomicFeatures# >加载所需的包:AnnotationDbi# >加载所需的包:Biobase# >欢迎光临Bioconductor# ># >片段包含介绍性的材料;视图与“browseVignettes ()”。引用# > Bioconductor,看到引用(“Biobase”),和包的引文(“pkgname”)。# ># > ' select()的返回1:1键和列之间的映射# >建设启动子……1 # >建筑to5kb上游TSS……# >构建基因间……5 # >建筑utr……3 # >建筑utr……# >建筑外显子……# >建筑第一外显子……# >建筑内含子……# >建筑CpG岛……# >从缓存加载# >建筑CpG海岸……# >建筑CpG货架……# >建筑inter-CpG-islands……amr。annots < -annotate_regions(区域=amr,注释=注释,ignore.strand =真正的,安静的=)# >注释…summarize_annotations(annotated_regions =amrs.annots,安静的=)# >计数注释类型# > #宠物猫:9×2# > annot。n型# > <空空的> < int ># > 1 hg19_cpg_inter 4# > 2 hg19_cpg_islands 10# > 3 hg19_cpg_shelves 4# > 4 hg19_cpg_shores 10# > 5 hg19_genes_3UTRs 2# > 6 hg19_genes_5UTRs 5# > 7 hg19_genes_firstexons 8# > 8 hg19_genes_intergenic 1# > 9 hg19_genes_promoters 8
#生成所有可能的基因组区域使用样本数据集和#相同的参数作为宇宙< getUniverse (ramr AMR搜索。数据,min.cpgs =5,merge.window =1000年)# enrichment analysis of AMRs using R library LOLA library(LOLA) # prepare the core database as described in vignettes vignette("usingLOLACore") # load the core database and perform the enrichment analysis hg19.coredb <- loadRegionDB(system.file("LOLACore", "hg19", package="LOLA")) runLOLA(amrs, universe, hg19.coredb, cores=1, redefineUserSets=TRUE)

引用了ramr

Oleksii Nikolaienko,每Eystein Lønning, Stian Knappskog,ramr:一个R / Bioconductor包罕见的异常甲基化的检测区域,生物信息学,2021;btab586,https://doi.org/10.1093/bioinformatics/btab586

的数据基础ramr手稿

复制数据:“ramr: R包检测罕见的异常甲基化区域,https://doi.org/10.18710/ED8HSD

会话信息

sessionInfo()# > R安装版本4.3.0 RC (2023-04-13 r84269)# >平台:x86_64-pc-linux-gnu(64位)# >下运行:Ubuntu 22.04.2 LTS# ># >矩阵产品:违约# >布拉斯特区:/home/biocbuild/bbs - 3.17 - bioc / R / lib / libRblas.so# > LAPACK: /usr/lib/x86_64-linux-gnu / LAPACK / liblapack.so.3.10.0# ># >语言环境:# > [1]LC_CTYPE = en_US。utf - 8 C而= en_GB LC_NUMERIC =# > [4]LC_COLLATE = C LC_MONETARY = en_US。utf - 8 LC_MESSAGES = en_US.UTF-8# > [7]LC_PAPER = en_US。utf - 8 LC_NAME C = C LC_ADDRESS =# > [10]LC_TELEPHONE = C LC_MEASUREMENT = en_US。utf - 8 LC_IDENTIFICATION = C# ># >时区:美国/ New_York# > tzcode来源:系统(glibc)# ># >附加基本包:# >[1]平行stats4统计图形grDevices跑龙套基础数据集的方法# ># >其他附加包:# > [1]org.Hs.eg.db_3.17.0 TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2# > [3]GenomicFeatures_1.52.0 AnnotationDbi_1.62.0# > [5]Biobase_2.60.0 annotatr_1.26.0# > [7]gridExtra_2.3 ramr_1.8.0# > [9]doRNG_1.8.6 rngtools_1.5.2# > [11]doParallel_1.0.17 iterators_1.0.14# > [13]foreach_1.5.2 GenomicRanges_1.52.0# > [15]GenomeInfoDb_1.36.0 IRanges_2.34.0# > [17]S4Vectors_0.38.0 BiocGenerics_0.46.0# ># >加载通过名称空间(而不是附加):# > [1]DBI_1.1.3 bitops_1.0-7 biomaRt_2.56.0# > [4]rlang_1.1.0 magrittr_2.0.3 matrixStats_0.63.0# > [7]compiler_4.3.0 RSQLite_2.3.1 png_0.1-8# > [10]vctrs_0.6.2 reshape2_1.4.4 stringr_1.5.0# > [13]pkgconfig_2.0.3 crayon_1.5.2 fastmap_1.1.1# > [16]dbplyr_2.3.2 XVector_0.40.0 ellipsis_0.3.2# > [19]labeling_0.4.2 utf8_1.2.3 Rsamtools_2.16.0# > [22]promises_1.2.0.1 rmarkdown_2.21 tzdb_0.3.0# > [25]purrr_1.0.1 bit_4.0.5 xfun_0.39# > [28]zlibbioc_1.46.0 cachem_1.0.7 jsonlite_1.8.4# > [31]progress_1.2.2 EnvStats_2.7.0 blob_1.2.4# > [34]highr_0.10 later_1.3.0 DelayedArray_0.26.0# > [37]BiocParallel_1.34.0 interactiveDisplayBase_1.38.0 prettyunits_1.1.1# > [40]R6_2.5.1 bslib_0.4.2 stringi_1.7.12# > [43]rtracklayer_1.60.0 jquerylib_0.1.4 numderiv_2016.8 - 1.1# > [46]SummarizedExperiment_1.30.0 Rcpp_1.0.10 knitr_1.42# > [49]readr_2.1.4 Matrix_1.5-4 httpuv_1.6.9# > [52]tidyselect_1.2.0 yaml_2.3.7 codetools_0.2-19# > [55]curl_5.0.0 regioneR_1.32.0 lattice_0.21-8# > [58]tibble_3.2.1 plyr_1.8.8 shiny_1.7.4# > [61]withr_2.5.0 KEGGREST_1.40.0 evaluate_0.20# > [64]BiocFileCache_2.8.0 xml2_1.3.3 Biostrings_2.68.0# > [67]pillar_1.9.0 BiocManager_1.30.20 filelock_1.0.2# > [70]MatrixGenerics_1.12.0 generics_0.1.3 rcurl_1.98 - 1.12# > [73]hms_1.1.3 BiocVersion_3.17.1 ggplot2_3.4.2# > [76]munsell_0.5.0 scales_1.2.1 xtable_1.8-4# > [79]glue_1.6.2 tools_4.3.0 BiocIO_1.10.0# > [82]AnnotationHub_3.8.0 BSgenome_1.68.0 GenomicAlignments_1.36.0# > [85]xml_3.99 - 0.14 grid_4.3.0 colorspace_2.1-0# > [88]GenomeInfoDbData_1.2.10 ExtDist_0.7-1 restfulr_0.0.15# > [91]cli_3.6.1 rappdirs_0.3.3 optimx_2022 - 4.30# > [94]fansi_1.0.4 dplyr_1.1.2 gtable_0.3.3# > [97]sass_0.4.5 digest_0.6.31 rjson_0.2.21# > [100]farver_2.1.1 memoise_2.0.1 htmltools_0.5.5# > [103]lifecycle_1.0.3 httr_1.4.5 mime_0.12# > [106]bit64_4.0.5

引用


  1. 莫林一个裁缝,雷蒙德•G Cavalcante annotatr:基因组区域背景下,生物信息学,33岁的体积问题15日01 2017年8月,页2381 - 2383,https://doi.org/10.1093/bioinformatics/btx183↩︎

  2. 内森·c·谢菲尔德Christoph烈性黑啤酒,萝拉:集和监管元素富集分析基因组区域R和Bioconductor,生物信息学,32岁的体积问题4,2016年2月15日,页587 - 589,https://doi.org/10.1093/bioinformatics/btv612↩︎