Metaviz
是宏基因组测序数据的交互式可视化和探索工具。Metaviz提供了主要的导航工具,用于探索分层特征数据,并与多种数据可视化(包括热图、堆叠柱状图和散点图)相结合。Metaviz支持灵活的插件框架,因此用户可以添加新的插件d3可视化。有关Metaviz的更多信息,请访问http://metaviz.cbcb.umd.edu/help.
的metavizr
类之间的双向通信R / Bioconductor
计算基因组学环境和Metaviz
.对象中的对象R / Bioconductor
控件可以可视化和浏览会话Metaviz
导航工具和绘图。Metavizr使用Websockets在浏览器Javascript客户端和R / Bioconductor
会话。Websockets是流行协议的基础闪亮的用R编写交互式基于web的报告的系统。
在这篇短文中,我们将看到两个数据集,一个来自病例/对照研究,另一个来自时间序列。中加载第一个数据集msd16s
Bioconductor包。这些数据来自对孟加拉国、肯尼亚、马里和冈比亚四个国家的儿童进行的中重度腹泻病研究。从每个国家收集病例和对照粪便样本,年龄范围为0-6个月、6-12个月、12-18个月、18-24个月和24-60个月。popet al.[1]中描述了对该数据的分析。
需要(metavizr)需要(metagenomeSeq)需要(msd16s)
联系Metaviz
是否通过类的会话管理器对象进行管理EpivizApp
.我们可以创建这个对象并打开Metaviz
使用startMetaviz
函数。
app <- startMetaviz()
注意:在构建小插图时,以下命令不可见。这些命令用于注册每种图表类型,以便在使用localhost启动新的Metaviz会话时构建小插画。如果使用,则不需要这些命令startMetaviz
使用默认启动Metaviz会话http://metaviz.cbcb.umd.edu.
这将打开一个websocket连接R
会话和浏览器客户端。这将允许我们可视化存储在Metaviz
服务器与数据一起进行交互R
会话。
Windows用户:在Windows平台中,我们需要使用服务
功能让交互R
会话连接到epiviz
Web应用程序和服务数据请求。然后我们转义(使用ctl-c
或esc
这取决于你的环境)来继续互动R
会话。这在任何时候都是必需的metavizr
为web应用程序提供数据,例如,当与UI交互时。(我们正在积极开发对Windows平台上非阻塞会话的支持)。
应用服务器服务()美元
为了便于描述,我们将把992划分为子集msd16s
孟加拉国301份样品。此外,我们将把计数矩阵聚合到物种级别。我们发现,在使用WebSockets的R会话中,100个样本和4000个特征的矩阵大小在交互可视化方面表现良好。对于较大的丰度矩阵,我们建议使用图数据库后端https://github.com/epiviz/metaviz-data-provider.一旦有了数据子集,我们将聚合级别设置为“类”,规范化,找到“类”级别上差异丰富的特征,将这些选择传播到聚合到“物种”级别的mreexperiment,然后探索层次结构。
feature_order <- c("superkingdom", "phylum", "class", "order", "family", "genus", "species", "OTU") aggregated_feature_order <- feature_order[1:7] msd16s_species <- msd16s fData(msd16s)[feature_order] fData(msd16s) <- fData(msd16s_species)[aggregated_feature_order] bangladesh <- msd16s[, (pData(msd16s)$Country == " bangladesh ")]孟加拉国物种<- msd16s[,which(pData(msd16s_species)$Country == "Bangladesh")] aggregated_species <- cumNorm(aggregateByTaxonomy(bengesh_species, lvl="species"), p = 0.75) aggregation_level <- "class" aggregated_bangladesh <- aggregated_bangladesh (Bangladesh, lvl=aggregation_level) normed_bangladesh <- cumNorm(aggregated_bangladesh, p = 0.75)孟加拉国sample_data <- pData(normed_bangladesh) mod <- model。matrix(~1+ dytery, data =孟加拉国,sample_data) results_bangladesh <- fitFeatureModel(normed_bangladesh, mod)
##警告:glm。拟合:算法未收敛
##警告:glm。拟合:数值为0或1的拟合概率
logFC_bangladesh <- MRcoefs(results_bangladesh, number = nrow(normed_bangladesh)) features <- rownames(logFC_bangladesh) featuresToKeep_names <- features[which(logFC_bangladesh[which(abs(logFC_bangladesh$logFC) > 1),]$adjPvalues < .1)] featuresToKeep <- rep(2, length(featuresToKeep_names)) names(featuresToKeep) <- featuresToKeep_names featuresToRemove_names <- features[!(features %in% featuresToKeep_names)] featuresToRemove <- rep(0, length(featuresToRemove_names)) names(featuresToRemove) <- featuresToRemove_names . (features %in% featuresToKeep_names)
metavizControl允许用户指定在mreexperiment对象上操作的设置,包括数据分析,如规范化和日志转换。我们创建了一个metavizControl,其中featuresselection作为发现差异丰度的节点,这些节点在创建Metaviz图时是可见的。metavizControl中的其余设置将使用默认参数。
control <- metavizr::metavizControl(featuresselection = c(featuresToKeep, featuresToRemove))
mouseData
MRExperiment对象现在我们可以将数据视为热图调用revisualize
:
heatmap <- app$chart_mgr$ revisalize (chart_type = "HeatmapPlot", chart = icicle_plot)
使用相同的数据,我们还可以在堆叠图中重新修改它,以查看样本中各种特征的丰度。由于度量是在创建icicle_plot时添加的,所以我们只需要添加一个堆叠的线形图。
<- app$chart_mgr$ revisalize (chart_type ="StackedLinePlot", chart = icicle_plot)
最后,我们可以更新我们对折叠变化的阈值截断,将这些修改传递给冰柱图,并查看更新传播到热图和堆叠图。这显示了统计引导交互式可视化的用例。
feature_names_update < - rownames (logFC_bangladesh [(logFC_bangladesh[这(abs (logFC_bangladesh logFC美元)> 0。5),]adjPvalues < . 05),美元])fSelection_update < -代表(2,长度(feature_names_update))的名字(fSelection_update) < - feature_names_update agg_level = (feature_order = = aggregation_level) select_value = 2名(select_value) = agg_level应用get_ms_object美元(icicle_plot)美元propagateHierarchyChanges (fSelection_update, selectedLevels = select_value request_with_labels = TRUE)
metavizr的另一个特性是使用折线图可视化数据。我们详细介绍了执行此分析的步骤,并使用Paulson等人在使用平滑样条[2]和[3]分析此时间序列数据时使用的Metaviz创建线状图。
首先,导入etec16s数据集,选择前9天的样本数据,并选择感兴趣的特性注释。
library(etec16s) data(etec16s) etec16s <- etec16s[,-which(pData(etec16s)$Day>9)]
接下来,使用metagenomeSeq对时间序列数据拟合平滑样条。
featureData(etec16s)$Kingdom <- "细菌" feature_order <- c("王国","门","纲","目","科","属","种","OTU.ID") featureData(etec16s) <- featureData(etec16s)[,feature_order]
为了使用Metaviz绘制数据,我们将拟合值设置为y坐标,将时间点设置为x坐标。我们需要打电话ts2MRexperiment
使用示例数据和特征数据的参数,在本例中分别是时间点和注释。这是在的构造函数中完成的EpivizMetagenomicsDataTimeSeries-class
.最后,我们添加了mre实验作为测量使用add_measurements
方法,然后将这些测量结果可视化为LinePlot。
ic_plot <- app$plot(object = etec16s, type =" TimeSeries", datasource_name =" etec_splines", control = metavizControl(norm=FALSE, aggregateAtDepth = 4), formula = abundance~id + time*class + AntiGiven, class="AnyDayDiarrhea", id="SubjectID", time="Day", lvl="Family", feature_order = feature_order, B=1, seed = 1234, runFitTimeSeries = TRUE, fitThreshold = 2)
##加载所需的命名空间:gss
##实验对象已验证…通过
##创建hierarchy_tree
##创建node_ids_table
##创建节点表
##创建leaf_of_table
##创建leaf_sample_count_table
splineChart <- app$chart_mgr$ revisalize ("LinePlot", ic_plot)
我们可以在样条图上更新颜色和设置。例如,我们将y轴限制在-10到10之间。为此,我们使用set_chart_settings
方法。控件列出图表的现有设置list_chart_settings
函数。
## type js_class ## 1 HeatmapPlot epiviz.plugins.charts.LinePlot ## 3 StackedLinePlot epiviz.plugins.charts.StackedLinePlot ## 4 epiviz.ui.charts.tree.Icicle epiviz.ui.charts.tree.Icicle ## num_settings ## 1 17 ## 2 16 ## 3 14 ## 4 5 ## settings ## 1 title,marginTop,marginBottom,marginLeft,marginRight,measurementGroupsAggregator,…## 2标题,marginTop,marginBottom,marginLeft,marginRight,measurementGroupsAggregator,…## 3标题,marginTop,marginBottom,marginLeft,marginRight,measurementGroupsAggregator,…## 4标题,marginTop,marginBottom,marginLeft,marginRight ## num_colors ## 1 8 ## 2 20 ## 3 20 ## 4 10
default_value # # 1 # # id标签标题标题# # 2 marginTop上边距30 # # 3 marginBottom下边距50 # # 4 marginLeft左边框30 # # 5 marginRight右边距15 # # 6 measurementGroupsAggregator聚合器测量组mean-stdev # # 7 colLabel列标签colLabel # # 8 rowLabel行标签名称# # 9 showPoints展示分假# # 10 showLines展示真正的# # 11 showErrorBars行显示误差线真正的# # 12 pointRadius点半径4 # # 13 lineThickness线厚度3 # # 14yMin分钟Y默认15 yMax Max Y默认的# # # # # # 16插值插值基础possible_values # # 1 # # 2 # # 3 # # 4 # # 5 # # 6 mean-stdev,四分位数,统计,Min,马克斯,# #和7 # # 8 # 9 # 10 # 11 # # # 12 # # 13 # # 14 # # 15 # # 16线性阶段,一步之后,基础,basis-open, basis-closed,包,红衣主教,cardinal-open,单调的# # # # # # 1型字符串2号# # 3号# # 4号# # 5号# # 6直言# # 7 measurementsMetadata measurementsAnnotation 8 # # # # 9布尔# # 10布尔# # 11Boolean ## 12 number ## 13 number ## 14 number ## 15 number ## 16 category
花键metavizr
除了标记基因调查测序结果,Metaviz还可以从整个宏基因组鸟枪测序中可视化分类群落概况。为了展示这一实用功能,我们将在Bioconductor 2017研讨会中使用小插图的部分:https://github.com/waldronlab/MicrobiomeWorkshop.我们首先检索一个名为Zeller_2014
从curatedMetagenomicData,并将包含丰度测量的表达集转换为mre实验,然后我们将与Metaviz一起使用。
##加载所需的包:ExperimentHub
##加载所需包:AnnotationHub
##加载所需包:BiocFileCache
##加载所需的包:dbplyr
## ##附加包:'AnnotationHub'
下面的对象从'package:Biobase'屏蔽:## ##缓存
##加载所需的包:tidyr
## ##附加包:“tidyr”
以下对象从'package:Matrix'中屏蔽:## ## expand, pack, unpack
## snapshotDate(): 2022-04-19
参见curatedMetagenomicData和browseVignettes('curatedMetagenomicData')获取文档
##从缓存加载
我们将mrex实验添加到Metaviz应用程序中,并调用情节
指定type = " innerNodeCounts "。
##实验对象已验证…通过
##创建hierarchy_tree
##创建node_ids_table
##创建节点表
##创建leaf_sample_count_table
的分类层次结构现在可见FacetZoom实用程序Zeller_2014
数据集。现在我们可以添加一个热图来测量该数据的丰度。
FacetZoom控件可用于选择感兴趣的特征,以显示在链接的热图中。用户可以在分类层次结构的较低级别上进行探索,并根据需要从数据可视化中删除节点。我们完成后,所有的图表都可以通过调用Metaviz应用程序图表管理器来删除。
要关闭与metaviz和R会话的连接,我们使用stop_app函数。
应用stop_app美元()
sessionInfo ()
## R版本4.2.0 RC (2022-04-19 r82224) ##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.4 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.15-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.15-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_GB LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4 stats graphics grDevices utils datasets methods ##[8]基础## ##其他附加包:# # # # [1] curatedMetagenomicData_3.3.4 TreeSummarizedExperiment_2.4.0 [3] Biostrings_2.64.0 XVector_0.36.0 # # [5] SingleCellExperiment_1.18.0 SummarizedExperiment_1.26.0 # # [7] GenomicRanges_1.48.0 GenomeInfoDb_1.32.0 # # [9] IRanges_2.30.0 S4Vectors_0.34.0 # # [11] MatrixGenerics_1.8.0 matrixStats_0.62.0 # # [13] tidyr_1.2.0 ExperimentHub_2.4.0 # # [15] AnnotationHub_3.4.0 BiocFileCache_2.4.0 # # [17] dbplyr_2.1.1 etec16s_1.23.0 # # [19] msd16s_1.15.0 metavizr_1.20.0 # # [21] digest_0.6.29data.table_1.14.2 ## [23] metagenomeSeq_1.38.0 RColorBrewer_1.1-3 ## [25] glmnet_4.1-4 Matrix_1.4-1 ## [27] limma_3.52.0 Biobase_2.56.0 ## [29] BiocGenerics_0.42.0 BiocStyle_2.24.0 ## ##通过命名空间加载(并且没有附加):# # # # [1] utf8_1.2.2 tidyselect_1.1.2 [3] RSQLite_2.2.12 AnnotationDbi_1.58.0 # # [5] grid_4.2.0 BiocParallel_1.30.0 # # [7] ScaledMatrix_1.4.0 munsell_0.5.0 # # [9] codetools_0.2-18 withr_2.5.0 # # [11] colorspace_2.0-3 filelock_1.0.2 # # [13] OrganismDbi_1.38.0 phyloseq_1.40.0 # # [15] knitr_1.38 GenomeInfoDbData_1.2.8 # # [17] bit64_4.0.5 rhdf5_2.40.0 # # [19] vctrs_0.4.1 treeio_1.20.0 # # [21] generics_0.1.2 xfun_0.30 # # [23] R6_2.5.1 ggbeeswarm_0.6.0 # # [25] rsvd_1.0.5 locfit_1.5 - 9.5 # # [27][31] DelayedArray_0.22.0 assertthat_0.2.1 ## [33] promises_1.2.0.1 BiocIO_1.6.0 ## [37] gtable_0.3.0 beachmat_0.12.0 ## [41] splines_4.2.0 rtracklayer_1.1.6.0 ## [43] lazyeval_0.2.2 epivizrData_1.24.0 ## [45] BiocManager_1.30.17 yaml_2.3.5 ## [49] httpuv_1.6.5 RBGL_1.72.0 ## [51] tools_4.2.0 ##bookdown_0.26 # # [53] ggplot2_3.3.5 decontam_1.16.0 # # [55] ellipsis_0.3.2 gplots_3.1.3 # # [57] jquerylib_0.1.4 biomformat_1.24.0 # # [59] MultiAssayExperiment_1.22.0 Rcpp_1.0.8.3 # # [61] plyr_1.8.7 sparseMatrixStats_1.8.0 # # [63] progress_1.2.2 zlibbioc_1.42.0 # # [65] purrr_0.3.4 rcurl_1.98 - 1.6 # # [67] prettyunits_1.1.1 Wrench_1.14.0 # # [69] viridis_0.6.2 epivizrStandalone_1.24.0 # # [71] ggrepel_0.9.1 cluster_2.1.3 # # [73] DECIPHER_2.24.0 magrittr_2.0.3 # # [75] ProtGenerics_1.28.0 hms_1.1.1 # # [77] mime_0.12 evaluate_0.15 ## [79] xtable_1.8-4 XML_3.99-0.9 ## [81] gridExtra_2.3 shape_1.4.6 ## [83] compiler_4.2.0 biomaRt_2.52.0 ## [85] scater_1.24.0 gss_2.2-3 ## [87] tibble_3.1.6 KernSmooth_2.23-20 ## [89] crayon_1.5.1 htmltools_0.5.2 ## [91] mgcv_1.8-40 later_1.3.0 ## [93] DBI_1.1.2 MASS_7.3-57 ## [95] rappdirs_0.3.3 ade4_1.7-19 ## [97] epivizrServer_1.24.0 permute_0.9-7 ## [99] cli_3.3.0 parallel_4.2.0 ## [101] igraph_1.3.1 pkgconfig_2.0.3 ## [103] GenomicAlignments_1.32.0 scuttle_1.6.0 ## [105] xml2_1.3.3 foreach_1.5.2 ## [107] DirichletMultinomial_1.38.0 vipor_0.4.5 ## [109] bslib_0.3.1 multtest_2.52.0 ## [111] mia_1.4.0 yulab.utils_0.0.4 ## [113] stringr_1.4.0 vegan_2.6-2 ## [115] graph_1.74.0 rmarkdown_2.14 ## [117] tidytree_0.3.9 epivizr_2.26.0 ## [119] DelayedMatrixStats_1.18.0 restfulr_0.0.13 ## [121] curl_4.3.2 shiny_1.7.1 ## [123] Rsamtools_2.12.0 gtools_3.9.2 ## [125] rjson_0.2.21 lifecycle_1.0.1 ## [127] nlme_3.1-157 jsonlite_1.8.0 ## [129] Rhdf5lib_1.18.0 BiocNeighbors_1.14.0 ## [131] viridisLite_0.4.0 fansi_1.0.3 ## [133] pillar_1.7.0 lattice_0.20-45 ## [135] KEGGREST_1.36.0 fastmap_1.1.0 ## [137] httr_1.4.2 survival_3.3-1 ## [139] interactiveDisplayBase_1.34.0 glue_1.6.2 ## [141] png_0.1-7 iterators_1.0.14 ## [143] BiocVersion_3.15.2 bit_4.0.4 ## [145] stringi_1.7.6 sass_0.4.1 ## [147] blob_1.2.3 BiocSingular_1.12.0 ## [149] caTools_1.18.2 memoise_2.0.1 ## [151] dplyr_1.0.8 irlba_2.3.5 ## [153] ape_5.6-2
引用:
[1] Pop, M., Walker, a.w., Paulson, J., Lindsay, B., Antonio, M., hosssain, m.a., Oundo, J., Tamboura, B., Mai, V., Astrovskaya, I.和Bravo, h.c., 2014。低收入国家的幼儿腹泻会导致肠道菌群组成的大规模改变。生物工程学报,15(6),p.1。
[2] Pop, M., Paulson, J.N., Chakraborty, S., Astrovskaya, I., Lindsay, B.R., Li, S., Bravo, H.C., Harro, C., Parkhill, J., Walker, A.W.和Walker, r.i., 2016。人肠道菌群在与产肠毒素大肠杆菌挑战和随后环丙沙星治疗后的个体特异性变化。中国生物医学工程学报,17(1),p.1。
[3] Paulson J.N, Talukder H.,和Bravo H.C,使用平滑样条进行微生物标记基因调查的纵向差异丰度分析。在提交。