Title: | Open-Source Software for 'Omic' Data Analysis and Visualization |
---|---|
Description: | A tool for interactive exploration of the results from 'omics' experiments to facilitate novel discoveries from high-throughput biology. The software includes R functions for the 'bioinformatician' to deposit study metadata and the outputs from statistical analyses (e.g. differential expression, enrichment). These results are then exported to an interactive JavaScript dashboard that can be interrogated on the user's local machine or deployed online to be explored by collaborators. The dashboard includes 'sortable' tables, interactive plots including network visualization, and fine-grained filtering based on statistical significance. |
Authors: | Terrence Ernst [aut] (Web application), John Blischak [aut, cre] , Paul Nordlund [aut] (Web application), Justin Moore [aut] (UpSet-related functions and web application), Joe Dalen [aut] (Barcode functionality and web application), Akshay Bhamidipati [aut] (Web application), Brett Engelmann [aut], Marco Curado [aut] (Improved plotting capabilities), Joe LoGrasso [aut] (Support for plotly), AbbVie Inc. [cph, fnd] |
Maintainer: | John Blischak <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.14.2 |
Built: | 2024-10-27 05:20:43 UTC |
Source: | https://github.com/abbvie-external/omicnavigator |
Add annotations
addAnnotations(study, annotations, reset = FALSE)
addAnnotations(study, annotations, reset = FALSE)
study |
An OmicNavigator study created with |
annotations |
The annotations used for the enrichment analyses. The
input is a nested list. The top-level list contains one entry per
annotation database, e.g. reactome. The names correspond to the name of
each annotation database. Each of these elements should be a list that
contains more information about each annotation database. Specifically the
sublist should contain 1) |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
Add assays
addAssays(study, assays, reset = FALSE)
addAssays(study, assays, reset = FALSE)
study |
An OmicNavigator study created with |
assays |
The assays from the study. The input object is a list of data
frames (one per model). The row names should correspond to the featureIDs
( |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
The app can display a barcode plot of the enrichment results for a given
annotation term. The metadata in barcodes
instructs the app how to create
and label the barcode plot.
addBarcodes(study, barcodes, reset = FALSE)
addBarcodes(study, barcodes, reset = FALSE)
study |
An OmicNavigator study created with |
barcodes |
The metadata variables that describe the barcode plot.
The input object is a list of lists (one per model). Each sublist must
contain the element
|
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
Add enrichment results
addEnrichments(study, enrichments, reset = FALSE)
addEnrichments(study, enrichments, reset = FALSE)
study |
An OmicNavigator study created with |
enrichments |
The enrichment results from each model. The input is a
nested named list. The names of the list correspond to the model names.
Each list element should be a list of the annotation databases tested
( |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
You can provide additional information on the annotation terms in your study by providing linkouts to external resources. These will be embedded directly in the enrichments table.
addEnrichmentsLinkouts(study, enrichmentsLinkouts, reset = FALSE)
addEnrichmentsLinkouts(study, enrichmentsLinkouts, reset = FALSE)
study |
An OmicNavigator study created with |
enrichmentsLinkouts |
The URL patterns that describe linkouts to external resources (see Details below). The input object is a named list. The names of the list correspond to the annotation names. Each element of the list is a character vector of linkouts for that annotationID. |
reset |
Reset the data prior to adding the new data (default:
|
For each linkout, the URL pattern you provide will be concatenated with the value of the termID column. As an example, if you used the annotation database AmiGO 2 for your enrichments analysis, you can provide a linkout for each termID using the following pattern:
go = "https://amigo.geneontology.org/amigo/term/"
As another example, if you used the annotation database Reactome for your enrichments analysis, you can provide a linkout for each termID using the following pattern:
reactome = "https://reactome.org/content/detail/"
Note that you can provide more than one linkout per termID.
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
addAnnotations
, addEnrichments
study <- createStudy("example") enrichmentsLinkouts <- list( gobp = c("https://amigo.geneontology.org/amigo/term/", "https://www.ebi.ac.uk/QuickGO/term/"), reactome = "https://reactome.org/content/detail/" ) study <- addEnrichmentsLinkouts(study, enrichmentsLinkouts)
study <- createStudy("example") enrichmentsLinkouts <- list( gobp = c("https://amigo.geneontology.org/amigo/term/", "https://www.ebi.ac.uk/QuickGO/term/"), reactome = "https://reactome.org/content/detail/" ) study <- addEnrichmentsLinkouts(study, enrichmentsLinkouts)
Add feature metadata
addFeatures(study, features, reset = FALSE)
addFeatures(study, features, reset = FALSE)
study |
An OmicNavigator study created with |
features |
The metadata variables that describe the features in the study. The input object is a list of data frames (one per model). The first column of each data frame is used as the featureID, so it must contain unique values. To share a data frame across multiple models, use the modelID "default". All columns will be coerced to character strings. |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
Add mapping object
addMapping(study, mapping, reset = FALSE)
addMapping(study, mapping, reset = FALSE)
study |
An OmicNavigator study created with |
mapping |
Feature IDs from models. The input object is a list of named data frames. For each data frame, column names indicate model names while rows indicate featureIDs per model. Features with same index position across columns are treated as mapped across models. For each model, feature IDs must match feature IDs available in the results object of the respective model. 1:N relationships are allowed. Mapping list elements are required to be named as 'default' or after a model name as provided in addModels(). If a single data frame is provided, this list element is recommended to be named 'default'. For multiple list elements, each with its own data frame, list elements should be named after model name(s) (a single element may still be named 'default'). In that case, when navigating in ON front-end (FE), mapping element related to the selected model in the FE will be used in multimodel plots. If a selected model in FE does not have a corresponding mapping list element, it may still use the mapping list element called 'default' if this is available. E.g., if in a study there are models "transcriptomics" and "proteomics" and the user wants to create a plot based on data from both, a mapping list should be provided with addMapping(). In this case, the mapping list element may be named 'default'. This should contain a data frame with column names 'transcriptomics' and 'proteomics', where feature IDs that map across models are found in the same row. |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
The meta-features table is useful anytime there are metadata variables that cannot be mapped 1:1 to your features. For example, a peptide may be associated with multiple proteins.
addMetaFeatures(study, metaFeatures, reset = FALSE)
addMetaFeatures(study, metaFeatures, reset = FALSE)
study |
An OmicNavigator study created with |
metaFeatures |
The metadata variables that describe the meta-features in
the study. The input object is a list of data frames (one per model). The
first column of each data frame is used as the featureID, so it must
contain the same IDs as the corresponding features data frame
( |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
You can provide additional information on the metaFeatures in your study by providing linkouts to external resources. These will be embedded directly in the metaFeatures table.
addMetaFeaturesLinkouts(study, metaFeaturesLinkouts, reset = FALSE)
addMetaFeaturesLinkouts(study, metaFeaturesLinkouts, reset = FALSE)
study |
An OmicNavigator study created with |
metaFeaturesLinkouts |
The URL patterns that describe linkouts to external
resources (see Details below). The input object is a nested named list. The
names of the list correspond to the model names. Each element of the list
is a named list of character vectors. The names of this nested list must
correspond to the column names of the matching metaFeatures table ( |
reset |
Reset the data prior to adding the new data (default:
|
For each linkout, the URL pattern you provide will be concatenated with the
value of that column for each row. As an example, if your metaFeatures table
included a column named "ensembl"
that contained the Ensembl Gene ID
for each feature, you could create a linkout to Ensembl using the following
pattern:
ensembl = "https://ensembl.org/Homo_sapiens/Gene/Summary?g="
As another example, if you had a column named "entrez"
that contained
the Entrez Gene ID for each feature, you could create a linkout to Entrez
using the following pattern:
entrez = "https://www.ncbi.nlm.nih.gov/gene/"
Note that you can provide more than one linkout per column.
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
study <- createStudy("example") metaFeaturesLinkouts <- list( default = list( ensembl = c("https://ensembl.org/Homo_sapiens/Gene/Summary?g=", "https://www.genome.ucsc.edu/cgi-bin/hgGene?hgg_gene="), entrez = "https://www.ncbi.nlm.nih.gov/gene/" ) ) study <- addMetaFeaturesLinkouts(study, metaFeaturesLinkouts)
study <- createStudy("example") metaFeaturesLinkouts <- list( default = list( ensembl = c("https://ensembl.org/Homo_sapiens/Gene/Summary?g=", "https://www.genome.ucsc.edu/cgi-bin/hgGene?hgg_gene="), entrez = "https://www.ncbi.nlm.nih.gov/gene/" ) ) study <- addMetaFeaturesLinkouts(study, metaFeaturesLinkouts)
Add models
addModels(study, models, reset = FALSE)
addModels(study, models, reset = FALSE)
study |
An OmicNavigator study created with |
models |
The models analyzed in the study. The input is a named list. The names correspond to the names of the models. The elements correspond to the descriptions of the models. Alternatively, instead of a single character string, you can provide a list of metadata fields about each model. The field "description" will be used to derive the tooltip displayed in the app. |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
study <- createStudy("example") models <- list( model_01 = "Name of first model", model_02 = "Name of second model" ) study <- addModels(study, models) # Alternative: provide additional metadata about each model models <- list( model_01 = list( description = "Name of first model", data_type = "transcriptomics" ), model_02 = list( description = "Name of second model", data_type = "proteomics" ) )
study <- createStudy("example") models <- list( model_01 = "Name of first model", model_02 = "Name of second model" ) study <- addModels(study, models) # Alternative: provide additional metadata about each model models <- list( model_01 = list( description = "Name of first model", data_type = "transcriptomics" ), model_02 = list( description = "Name of second model", data_type = "proteomics" ) )
The app's network view of the enrichments results requires pairwise overlap
metrics between all the terms of each annotation in order to draw the edges
between the nodes/terms. These overlaps are calculated automatically when
installing or exporting an OmicNavigator study. If you'd like, you can
manually calculate these pairwise overlaps by calling addOverlaps
prior to installing or exporting your study.
addOverlaps(study, reset = FALSE)
addOverlaps(study, reset = FALSE)
study |
An OmicNavigator study created with |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
addPlots()
adds custom plotting functions and plot metadata to an
OmicNavigator study.
addPlots(study, plots, reset = FALSE)
addPlots(study, plots, reset = FALSE)
study |
An OmicNavigator study created with |
plots |
A nested list containing custom plotting functions and plot
metadata. The input object is a 3-level nested list. The first, or
top-level list element name(s) must match the study |
reset |
Reset the data prior to adding the new data (default:
|
Custom plotting functions must be constructed to accept as the first argument
the value returned from getPlottingData()
. Custom plotting functions can
have additional arguments, but these must be provided with default values.
The end-user should call getPlottingData()
when testing their custom
plotting function. The end-user should consider the nature of the plot, i.e.
the plotType
and (rarely) models
values (see getPlottingData()
). For
example, a custom plotting function meant to produce a multiTest
plot
should accept the output of a getPlottingData()
call with multiple
testID
s assigned to the testID
argument. See the details section of
plotStudy()
for a description of how plotType
dictates the way a custom
plotting function is invoked by the app.
Note that any ggplot2 plots will require extra care. This is because the
plotting code will be inserted into a study package, and thus must follow the
best
practices for using ggplot2 within packages. Specifically, when you refer to
columns of the data frame, e.g. aes(x = group)
, you need to prefix it
with .data$
, so that it becomes aes(x = .data$group)
.
Fortunately this latter code will also run fine as you interactively develop
the function.
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
You can include reports of the analyses you performed to generate the results.
addReports(study, reports, reset = FALSE)
addReports(study, reports, reset = FALSE)
study |
An OmicNavigator study created with |
reports |
The analysis report(s) that explain how the study results were generated. The input object is a list of character vectors (one per model). Each element should be either a URL or a path to a file on your computer. If it is a path to a file, this file will be included in the exported study package. To share a report across multiple models, use the modelID "default". |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
Add inference results
addResults(study, results, reset = FALSE)
addResults(study, results, reset = FALSE)
study |
An OmicNavigator study created with |
results |
The inference results from each model. The input is a nested named list. The names of the list correspond to the model names. Each element in the list should be a list of data frames with inference results, one for each test. In each data frame, the featureID must be in the first column, and all other columns must be numeric. |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
You can provide additional information on the features in your study by providing linkouts to external resources. These will be embedded directly in the results table.
addResultsLinkouts(study, resultsLinkouts, reset = FALSE)
addResultsLinkouts(study, resultsLinkouts, reset = FALSE)
study |
An OmicNavigator study created with |
resultsLinkouts |
The URL patterns that describe linkouts to external resources (see Details below). The input object is a nested named list. The names of the list correspond to the model names. Each element of the list is a named list of character vectors. The names of this nested list must correspond to the column names of the matching features table. To share linkouts across multiple models, use the modelID "default". |
reset |
Reset the data prior to adding the new data (default:
|
For each linkout, the URL pattern you provide will be concatenated with the
value of that column for each row. As an example, if your features table
included a column named "ensembl"
that contained the Ensembl Gene ID
for each feature, you could create a linkout to Ensembl using the following
pattern:
ensembl = "https://ensembl.org/Homo_sapiens/Gene/Summary?g="
As another example, if you had a column named "entrez"
that contained
the Entrez Gene ID for each feature, you could create a linkout to Entrez
using the following pattern:
entrez = "https://www.ncbi.nlm.nih.gov/gene/"
Note that you can provide more than one linkout per column.
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
study <- createStudy("example") resultsLinkouts <- list( default = list( ensembl = c("https://ensembl.org/Homo_sapiens/Gene/Summary?g=", "https://www.genome.ucsc.edu/cgi-bin/hgGene?hgg_gene="), entrez = "https://www.ncbi.nlm.nih.gov/gene/" ) ) study <- addResultsLinkouts(study, resultsLinkouts)
study <- createStudy("example") resultsLinkouts <- list( default = list( ensembl = c("https://ensembl.org/Homo_sapiens/Gene/Summary?g=", "https://www.genome.ucsc.edu/cgi-bin/hgGene?hgg_gene="), entrez = "https://www.ncbi.nlm.nih.gov/gene/" ) ) study <- addResultsLinkouts(study, resultsLinkouts)
Add sample metadata
addSamples(study, samples, reset = FALSE)
addSamples(study, samples, reset = FALSE)
study |
An OmicNavigator study created with |
samples |
The metadata variables that describe the samples in the study. The input object is a named list of data frames (one per model). The first column of each data frame is used as the sampleID, so it must contain unique values. To share a data frame across multiple models, use the modelID "default". |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
Add tests
addTests(study, tests, reset = FALSE)
addTests(study, tests, reset = FALSE)
study |
An OmicNavigator study created with |
tests |
The tests from the study. The input object is a list of lists. Each element of the top-level list is a model. The names should be the modelIDs. For each modelID, each element of the nested list is a test. The names should be the testIDs. The value should be a single character string describing the testID. To share tests across multiple models, use the modelID "default". Instead of a single character string, you can provide a list of metadata fields about each test. The field "description" will be used to derive the tooltip displayed in the app. |
reset |
Reset the data prior to adding the new data (default:
|
Returns the original onStudy
object passed to the argument
study
, but modified to include the newly added data
study <- createStudy("example") tests <- list( default = list( test_01 = "Name of first test", test_02 = "Name of second test" ) ) study <- addTests(study, tests) # Alternative: provide additional metadata about each test tests <- list( default = list( test_01 = list( description = "Name of first test", comparison_type = "treatment vs control", effect_size = "beta" ), test_02 = list( description = "Name of second test", comparison_type = "treatment vs control", effect_size = "logFC" ) ) )
study <- createStudy("example") tests <- list( default = list( test_01 = "Name of first test", test_02 = "Name of second test" ) ) study <- addTests(study, tests) # Alternative: provide additional metadata about each test tests <- list( default = list( test_01 = list( description = "Name of first test", comparison_type = "treatment vs control", effect_size = "beta" ), test_02 = list( description = "Name of second test", comparison_type = "treatment vs control", effect_size = "logFC" ) ) )
A subset of the object basal.vs.lp
from Bioconductor workflow RNAseq123.
basal.vs.lp
basal.vs.lp
A data frame with 24 rows and 8 columns:
Entrez ID of mouse gene
Symbol of mouse gene
Chromosome location of mouse gene
Log fold change
Average expression level of the gene across all samples
Moderated t-statistic
p-value
Adjusted p-value
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
head(basal.vs.lp) str(basal.vs.lp)
head(basal.vs.lp) str(basal.vs.lp)
A subset of the object basal.vs.ml
from Bioconductor workflow RNAseq123.
basal.vs.ml
basal.vs.ml
A data frame with 24 rows and 8 columns:
Entrez ID of mouse gene
Symbol of mouse gene
Chromosome location of mouse gene
Log fold change
Average expression level of the gene across all samples
Moderated t-statistic
p-value
Adjusted p-value
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
head(basal.vs.ml) str(basal.vs.ml)
head(basal.vs.ml) str(basal.vs.ml)
A subset of the object cam.BasalvsLP
from Bioconductor workflow RNAseq123.
cam.BasalvsLP
cam.BasalvsLP
A data frame with 4 rows and 4 columns:
Number of genes in each term
Direction of the enrichment
Nominal p-value
Multiple-testing adjusted p-value
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
head(cam.BasalvsLP) str(cam.BasalvsLP)
head(cam.BasalvsLP) str(cam.BasalvsLP)
A subset of the object cam.BasalvsML
from Bioconductor workflow RNAseq123.
cam.BasalvsML
cam.BasalvsML
A data frame with 4 rows and 4 columns:
Number of genes in each term
Direction of the enrichment
Nominal p-value
Multiple-testing adjusted p-value
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
head(cam.BasalvsML) str(cam.BasalvsML)
head(cam.BasalvsML) str(cam.BasalvsML)
Create a new OmicNavigator study by combining two or more existing study objects.
combineStudies(...)
combineStudies(...)
... |
Two or more objects of class |
This is a convenience function to quickly and conveniently combine studies. However, it is naive, and you will likely need to edit the new study after combining. When there are conflicting elements (e.g. different study names or different maintainers), then the value for the latter study is kept. As a concrete example, if you combined 5 studies, the name of the combined study would be the name of the 5th study.
The behavior is more complex for study elements that are nested lists of data
frames (e.g. results). If the 5 studies included a results table for the same
modelID/testID combination, then only the results from the 5th study would be
retained. However, if they each defined a different modelID, then the results
for all 5 modelIDs would be included in the combined study. Please note that
you should be extra cautious in the situation where the studies have the same
modelID/testID combination. Ideally they should all have the same column
names. Since a data frame is technically a list, the workhorse function
modifyList
will retain any uniquely named
columns from earlier studies along with the columns from the final study.
Note that as a shortcut you can also combine studies using the S3 method
c
.
If a study you would like to combine is already installed, you can convert it
to a study object by importing it with importStudy
.
Returns a new combined OmicNavigator study object, which is a named
nested list with class onStudy
# Define threee study objects studyOne <- createStudy(name = "One", description = "First study", studyMeta = list(metafield1 = "metavalue1")) studyTwo <- createStudy(name = "Two", description = "Second study", maintainer = "The Maintainer", studyMeta = list(metafield2 = "metavalue2")) studyThree <- createStudy(name = "Three", description = "Third study", studyMeta = list(metafield3 = "metavalue3")) # Combine the three studies combineStudies(studyOne, studyTwo, studyThree) # Equivalently, can use c() c(studyOne, studyTwo, studyThree)
# Define threee study objects studyOne <- createStudy(name = "One", description = "First study", studyMeta = list(metafield1 = "metavalue1")) studyTwo <- createStudy(name = "Two", description = "Second study", maintainer = "The Maintainer", studyMeta = list(metafield2 = "metavalue2")) studyThree <- createStudy(name = "Three", description = "Third study", studyMeta = list(metafield3 = "metavalue3")) # Combine the three studies combineStudies(studyOne, studyTwo, studyThree) # Equivalently, can use c() c(studyOne, studyTwo, studyThree)
Create a new OmicNavigator study.
createStudy( name, description = name, samples = list(), features = list(), models = list(), assays = list(), tests = list(), annotations = list(), results = list(), enrichments = list(), metaFeatures = list(), plots = list(), mapping = list(), barcodes = list(), reports = list(), resultsLinkouts = list(), enrichmentsLinkouts = list(), metaFeaturesLinkouts = list(), version = NULL, maintainer = NULL, maintainerEmail = NULL, studyMeta = list() )
createStudy( name, description = name, samples = list(), features = list(), models = list(), assays = list(), tests = list(), annotations = list(), results = list(), enrichments = list(), metaFeatures = list(), plots = list(), mapping = list(), barcodes = list(), reports = list(), resultsLinkouts = list(), enrichmentsLinkouts = list(), metaFeaturesLinkouts = list(), version = NULL, maintainer = NULL, maintainerEmail = NULL, studyMeta = list() )
name |
Name of the study |
description |
Description of the study |
samples |
The metadata variables that describe the samples in the study. The input object is a named list of data frames (one per model). The first column of each data frame is used as the sampleID, so it must contain unique values. To share a data frame across multiple models, use the modelID "default". |
features |
The metadata variables that describe the features in the study. The input object is a list of data frames (one per model). The first column of each data frame is used as the featureID, so it must contain unique values. To share a data frame across multiple models, use the modelID "default". All columns will be coerced to character strings. |
models |
The models analyzed in the study. The input is a named list. The names correspond to the names of the models. The elements correspond to the descriptions of the models. Alternatively, instead of a single character string, you can provide a list of metadata fields about each model. The field "description" will be used to derive the tooltip displayed in the app. |
assays |
The assays from the study. The input object is a list of data
frames (one per model). The row names should correspond to the featureIDs
( |
tests |
The tests from the study. The input object is a list of lists. Each element of the top-level list is a model. The names should be the modelIDs. For each modelID, each element of the nested list is a test. The names should be the testIDs. The value should be a single character string describing the testID. To share tests across multiple models, use the modelID "default". Instead of a single character string, you can provide a list of metadata fields about each test. The field "description" will be used to derive the tooltip displayed in the app. |
annotations |
The annotations used for the enrichment analyses. The
input is a nested list. The top-level list contains one entry per
annotation database, e.g. reactome. The names correspond to the name of
each annotation database. Each of these elements should be a list that
contains more information about each annotation database. Specifically the
sublist should contain 1) |
results |
The inference results from each model. The input is a nested named list. The names of the list correspond to the model names. Each element in the list should be a list of data frames with inference results, one for each test. In each data frame, the featureID must be in the first column, and all other columns must be numeric. |
enrichments |
The enrichment results from each model. The input is a
nested named list. The names of the list correspond to the model names.
Each list element should be a list of the annotation databases tested
( |
metaFeatures |
The metadata variables that describe the meta-features in
the study. The input object is a list of data frames (one per model). The
first column of each data frame is used as the featureID, so it must
contain the same IDs as the corresponding features data frame
( |
plots |
A nested list containing custom plotting functions and plot
metadata. The input object is a 3-level nested list. The first, or
top-level list element name(s) must match the study |
mapping |
Feature IDs from models. The input object is a list of named data frames. For each data frame, column names indicate model names while rows indicate featureIDs per model. Features with same index position across columns are treated as mapped across models. For each model, feature IDs must match feature IDs available in the results object of the respective model. 1:N relationships are allowed. Mapping list elements are required to be named as 'default' or after a model name as provided in addModels(). If a single data frame is provided, this list element is recommended to be named 'default'. For multiple list elements, each with its own data frame, list elements should be named after model name(s) (a single element may still be named 'default'). In that case, when navigating in ON front-end (FE), mapping element related to the selected model in the FE will be used in multimodel plots. If a selected model in FE does not have a corresponding mapping list element, it may still use the mapping list element called 'default' if this is available. E.g., if in a study there are models "transcriptomics" and "proteomics" and the user wants to create a plot based on data from both, a mapping list should be provided with addMapping(). In this case, the mapping list element may be named 'default'. This should contain a data frame with column names 'transcriptomics' and 'proteomics', where feature IDs that map across models are found in the same row. |
barcodes |
The metadata variables that describe the barcode plot.
The input object is a list of lists (one per model). Each sublist must
contain the element
|
reports |
The analysis report(s) that explain how the study results were generated. The input object is a list of character vectors (one per model). Each element should be either a URL or a path to a file on your computer. If it is a path to a file, this file will be included in the exported study package. To share a report across multiple models, use the modelID "default". |
resultsLinkouts |
The URL patterns that describe linkouts to external resources (see Details below). The input object is a nested named list. The names of the list correspond to the model names. Each element of the list is a named list of character vectors. The names of this nested list must correspond to the column names of the matching features table. To share linkouts across multiple models, use the modelID "default". |
enrichmentsLinkouts |
The URL patterns that describe linkouts to external resources (see Details below). The input object is a named list. The names of the list correspond to the annotation names. Each element of the list is a character vector of linkouts for that annotationID. |
metaFeaturesLinkouts |
The URL patterns that describe linkouts to external
resources (see Details below). The input object is a nested named list. The
names of the list correspond to the model names. Each element of the list
is a named list of character vectors. The names of this nested list must
correspond to the column names of the matching metaFeatures table ( |
version |
(Optional) Include a version number to track the updates to your study package. If you export the study to a package, the version is used as the package version. |
maintainer |
(Optional) Include the name of the study package's maintainer |
maintainerEmail |
(Optional) Include the email of the study package's maintainer |
studyMeta |
(Optional) Define metadata about your study. The input is a list of key:value pairs. See below for more details. |
You can add metadata to describe your study by passing a named list to to the
argument studyMeta
. The names of the list cannot contain spaces or
colons, and they can't start with #
or -
. The values of each
list should be a single value. Also, your metadata fields cannot use any of
the
reserved
fields for R's DESCRIPTION file.
Returns a new OmicNavigator study object, which is a named nested
list with class onStudy
addSamples
,
addFeatures
,
addModels
,
addAssays
,
addTests
,
addAnnotations
,
addResults
,
addEnrichments
,
addMetaFeatures
,
addPlots
,
addMapping
,
addBarcodes
,
addReports
,
addResultsLinkouts
,
addEnrichmentsLinkouts
,
addMetaFeaturesLinkouts
,
exportStudy
,
installStudy
study <- createStudy(name = "ABC", description = "An analysis of ABC") # Define a version and study metadata study <- createStudy(name = "ABC", description = "An analysis of ABC", version = "0.1.0", maintainer = "My Name", maintainerEmail = "[email protected]", studyMeta = list(department = "immunology", organism = "Mus musculus"))
study <- createStudy(name = "ABC", description = "An analysis of ABC") # Define a version and study metadata study <- createStudy(name = "ABC", description = "An analysis of ABC", version = "0.1.0", maintainer = "My Name", maintainerEmail = "[email protected]", studyMeta = list(department = "immunology", organism = "Mus musculus"))
Export a study
exportStudy( study, type = c("tarball", "package"), path = NULL, requireValid = TRUE )
exportStudy( study, type = c("tarball", "package"), path = NULL, requireValid = TRUE )
study |
An OmicNavigator study |
type |
Export study as a package tarball ("tarball") or as a package directory ("package") |
path |
Optional file path to save the object |
requireValid |
Require that study is valid before exporting |
Invisibly returns the name of the tarball file ("tarball") or the path to the package directory ("package")
Get annotations from a study
getAnnotations(study, annotationID = NULL, quiet = FALSE, libraries = NULL)
getAnnotations(study, annotationID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
annotationID |
Filter by annotationID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get assays from a study
getAssays(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getAssays(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get data for barcode and violin plots
getBarcodeData(study, modelID, testID, annotationID, termID)
getBarcodeData(study, modelID, testID, annotationID, termID)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
testID |
Filter by testID |
annotationID |
Filter by annotationID |
termID |
Filter by termID |
A list with the following components:
data |
Data frame with the differential statistics to plot |
highest |
(numeric) The largest differential statistic, rounded up to the next integer |
lowest |
(numeric) The lowest differential statistic, rounded down to the next integer |
labelStat |
(character) The x-axis label to describe the differential statistic |
labelLow |
(character) The vertical axis label on the left to describe smaller values (default is "Low") |
labelHigh |
(character) The vertical axis label on the right to describe larger values (default is "High") |
Get barcodes from a study
getBarcodes(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getBarcodes(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get enrichments from a study
getEnrichments( study, modelID = NULL, annotationID = NULL, testID = NULL, quiet = FALSE, libraries = NULL )
getEnrichments( study, modelID = NULL, annotationID = NULL, testID = NULL, quiet = FALSE, libraries = NULL )
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
annotationID |
Filter by annotationID |
testID |
Filter by testID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
getEnrichmentsIntersection
getEnrichmentsIntersection( study, modelID, annotationID, mustTests, notTests, sigValue, operator, type )
getEnrichmentsIntersection( study, modelID, annotationID, mustTests, notTests, sigValue, operator, type )
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
annotationID |
Filter by annotationID |
mustTests |
The testIDs for which a featureID (or termID for enrichment) must pass the filters |
notTests |
The testIDs for which a featureID (or termID for enrichment) must not pass the filters. In other words, if a featureID passes the filter for a testID specified in notTests, that featureID is removed from the output |
sigValue |
The numeric significance value to use as a cutoff for each column |
operator |
The comparison operators for each column, e.g. |
type |
Type of p-value: ( |
Returns a data frame with the enrichments, similar to
getEnrichmentsTable
. Only rows that pass all the filters are
included.
Get enrichments table linkouts from a study
getEnrichmentsLinkouts( study, annotationID = NULL, quiet = FALSE, libraries = NULL )
getEnrichmentsLinkouts( study, annotationID = NULL, quiet = FALSE, libraries = NULL )
study |
An OmicNavigator study. Either an object of class |
annotationID |
Filter by annotationID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get enrichments network from a study
getEnrichmentsNetwork(study, modelID, annotationID, libraries = NULL)
getEnrichmentsNetwork(study, modelID, annotationID, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
annotationID |
Filter by annotationID |
libraries |
The directories to search for installed study packages. If
left as |
Returns a list with the following components:
tests |
(character) Vector of testIDs |
nodes |
(data frame) The description of each annotation term (i.e. node). The nominal and adjusted p-values are in list-columns. |
links |
(list) The statistics for each pairwise overlap between the annotation terms (i.e. nodes) |
Get enrichments table from a study
getEnrichmentsTable( study, modelID, annotationID, type = "nominal", libraries = NULL )
getEnrichmentsTable( study, modelID, annotationID, type = "nominal", libraries = NULL )
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
annotationID |
Filter by annotationID |
type |
Type of p-value: ( |
libraries |
The directories to search for installed study packages. If
left as |
A data frame of enrichments with the following columns:
termID |
The unique ID for the annotation term |
description |
The description of the annotation term |
... |
One column for each of the enrichments |
getEnrichmentsUpset
getEnrichmentsUpset( study, modelID, annotationID, sigValue, operator, type, tests = NULL )
getEnrichmentsUpset( study, modelID, annotationID, sigValue, operator, type, tests = NULL )
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
annotationID |
Filter by annotationID |
sigValue |
The numeric significance value to use as a cutoff for each column |
operator |
The comparison operators for each column, e.g. |
type |
Type of p-value: ( |
tests |
Restrict UpSet plot to only include these tests |
No return value. This function is called for the side effect of creating an UpSet plot.
To enhance the display of the linkouts in the app's tables, it can fetch the favicon URL for each website.
getFavicons(linkouts)
getFavicons(linkouts)
linkouts |
Character vector or (potentially nested) list of character vectors containing the URLs for the table linkouts. |
The URLs to the favicons for each linkout. The output returned will always be the same class and structure as the input.
getResultsLinkouts
,
getEnrichmentsLinkouts
Get features from a study
getFeatures(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getFeatures(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
A data frame (if modelID
is specified) or a list of data
frames. All the columns will be character strings, even if the values
appear numeric.
Get installed OmicNavigator studies
getInstalledStudies(libraries = NULL)
getInstalledStudies(libraries = NULL)
libraries |
Character vector of library directories to search for study
packages. If |
Returns a character vector of the installed OmicNavigator study packages
Get the shared features in a network link
getLinkFeatures(study, annotationID, termID1, termID2)
getLinkFeatures(study, annotationID, termID1, termID2)
study |
An OmicNavigator study. Only accepts name of installed study package. |
annotationID |
Filter by annotationID |
termID1 , termID2
|
Linked terms to find overlapping features |
Returns a character vector with the features included in both termIDs (i.e. the intersection)
Get mapping object from a study
getMapping(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getMapping(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get metaFeatures from a study
getMetaFeatures(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getMetaFeatures(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get metaFeatures table linkouts from a study
getMetaFeaturesLinkouts(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getMetaFeaturesLinkouts(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get metaFeatures for a given feature
getMetaFeaturesTable(study, modelID, featureID)
getMetaFeaturesTable(study, modelID, featureID)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
featureID |
Filter by featureID |
Returns a data frame with the metaFeatures for the provided featureID. If the featureID is not found in the metaFeatures table, the data frame will have zero rows.
addMetaFeatures
, getMetaFeatures
Get models from a study
getModels(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getModels(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get the features in a network node
getNodeFeatures(study, annotationID, termID, libraries = NULL)
getNodeFeatures(study, annotationID, termID, libraries = NULL)
study |
An OmicNavigator study. Only accepts name of installed study package. |
annotationID |
Filter by annotationID |
termID |
Filter by termID |
libraries |
The directories to search for installed study packages. If
left as |
Returns a character vector with the features in the termID
Get overlaps from a study
getOverlaps(study, annotationID = NULL, quiet = FALSE, libraries = NULL)
getOverlaps(study, annotationID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
annotationID |
Filter by annotationID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
This is a convenience function for the app. It is easier to always call the OmicNavigator package functions via OpenCPU than to call the utils package for this one endpoint.
getPackageVersion()
getPackageVersion()
Returns a one-element character vector with the version of the currently installed OmicNavigator R package
Get plots from a study
getPlots(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getPlots(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Returns assay
, sample
, feature
, and result
data that may be used for
plotting. This function is called by plotStudy()
and the output is passed to
custom plotting functions. It should be used directly when interactively
creating custom plotting functions.
getPlottingData(study, modelID, featureID, testID = NULL, libraries = NULL)
getPlottingData(study, modelID, featureID, testID = NULL, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
featureID |
Filter by featureID |
testID |
Filter by testID |
libraries |
The directories to search for installed study packages. If
left as |
The end-user should call this function and populate the first argument of
their custom plotting function with the output. When building functions, the
end-user should understand the category of plotting function they are creating
(e.g. singleFeature
or multiFeature
, see addPlots()
) and call
getPlottingData()
accordingly.
Custom plots that accept data from multiple models and a single test
(plotType = c(‘multiModel’, ‘singleTest’)
; see addPlots()
) should be built
to accept output from getPlottingData()
where modelID
is vector of length
n and testID
is a vector of length n, where n is the number of models.
Custom plots that accept data from multiple models and multiple tests
(plotType = c(‘multiModel’, ‘multiTest’)
) should be built to accept output
from getPlottingData()
where modelID
and testID
vectors are length m,
where m is the total number of tests considered across all models (note that
testID
s must be repeated across models for the plotting function to work in
the app). The index positions of these two vectors should correspond. That is,
testID
position 1 should be found in the model specified by modelID
position 1, etc. See addPlots()
for information about the assignment of
plotTypes
for your custom plots.
Returns a list of at least 4 objects:
assays |
A data frame that contains the assay measurements,
filtered to only include the row(s) corresponding to the input featureID(s)
(see |
samples |
A data frame that contains the sample metadata for the
given modelID (see |
features |
A data frame that contains the feature metadata,
filtered to only include the row(s) corresponding to the input featureID(s)
(see |
results |
A data frame that contains the test results, filtered to only include the row(s) corresponding to the input featureID(s). If multiple featureIDs are requested, the rows are reordered to match the order of this input. The column order is unchanged. If multiple testIDs are provided, they are stored in a list object. |
mapping |
A data frame that contains the featureID(s) from each model. This is the filtered mapping object. This data frame is returned when multiple models are passed as arguments |
The data frame results
is only returned if you pass a testID. By
default the app will always pass the currently selected testID.
Get link to report
getReportLink(study, modelID)
getReportLink(study, modelID)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
Returns a one-element character vector with either a path to a report file or a URL to a report web page. If no report is available for the modelID, an empty character vector is returned.
Get reports from a study
getReports(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getReports(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get results from a study
getResults( study, modelID = NULL, testID = NULL, quiet = FALSE, libraries = NULL )
getResults( study, modelID = NULL, testID = NULL, quiet = FALSE, libraries = NULL )
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
testID |
Filter by testID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
getResultsIntersection
getResultsIntersection( study, modelID, anchor, mustTests, notTests, sigValue, operator, column )
getResultsIntersection( study, modelID, anchor, mustTests, notTests, sigValue, operator, column )
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
anchor |
The primary testID to filter the results |
mustTests |
The testIDs for which a featureID (or termID for enrichment) must pass the filters |
notTests |
The testIDs for which a featureID (or termID for enrichment) must not pass the filters. In other words, if a featureID passes the filter for a testID specified in notTests, that featureID is removed from the output |
sigValue |
The numeric significance value to use as a cutoff for each column |
operator |
The comparison operators for each column, e.g. |
column |
The columns to apply the filters |
Returns a data frame with the results, similar to
getResultsTable
. Only rows that pass all the filters are
included. The new column Set_Membership
is a comma-separated field
that includes the testIDs in which the featureID passed the filters.
Get results table linkouts from a study
getResultsLinkouts(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getResultsLinkouts(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get results table from a study
getResultsTable( study, modelID, testID, annotationID = NULL, termID = NULL, libraries = NULL )
getResultsTable( study, modelID, testID, annotationID = NULL, termID = NULL, libraries = NULL )
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
testID |
Filter by testID |
annotationID |
Filter by annotationID |
termID |
Filter by termID |
libraries |
The directories to search for installed study packages. If
left as |
A data frame which includes the columns from the features table followed by the columns from the results table. All the columns from the features table will be character strings, even if the values appear numeric.
If the optional arguments annotationID
and termID
are
provided, the table will be filtered to only include features in that
annotation term.
getResultsUpset
getResultsUpset(study, modelID, sigValue, operator, column, legacy = FALSE)
getResultsUpset(study, modelID, sigValue, operator, column, legacy = FALSE)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
sigValue |
The numeric significance value to use as a cutoff for each column |
operator |
The comparison operators for each column, e.g. |
column |
The columns to apply the filters |
legacy |
Use legacy code (for testing purposes only) |
Invisibly returns the output from upset
Get samples from a study
getSamples(study, modelID = NULL, quiet = FALSE, libraries = NULL)
getSamples(study, modelID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Get tests from a study
getTests(study, modelID = NULL, testID = NULL, quiet = FALSE, libraries = NULL)
getTests(study, modelID = NULL, testID = NULL, quiet = FALSE, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
testID |
Filter by testID |
quiet |
Suppress messages (default: |
libraries |
The directories to search for installed study packages. If
left as |
The object returned depends on the data available and any filters
(e.g. the argument modelID
):
If no filters are specified, then the object returned is a nested list, similar to the original input object.
If one or more filters are applied, then only a subset of the original nested
list is returned. Technically, each filter applied is used to subset the
original nested list using [[
.
If no data is available, an empty list is returned (list()
).
Determine the common columns across all tests of a model that are available for filtering with UpSet.
getUpsetCols(study, modelID)
getUpsetCols(study, modelID)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
Returns a character vector with the names of the common columns
A subset of the object group
from Bioconductor workflow RNAseq123.
group
group
A factor with 3 levels:
Basal cells
Luminal progenitor cells
Mature luminal cells
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
table(group) str(group)
table(group) str(group)
Create an onStudy object by importing an installed study package
importStudy(study, libraries = NULL)
importStudy(study, libraries = NULL)
study |
Named of an installed OmicNavigator study |
libraries |
The directories to search for installed study packages. If
left as |
Returns the onStudy
object imported from the OmicNavigator
study package
In order to run the OmicNavigator web app on your local machine, the app must
be installed in the www/
subdirectory of the R package. If you
installed the release tarball from the GitHub Releases page, then you already
have the app installed. If you installed directly from GitHub with
install_github
, or if you want to use a different version of the app,
you can manually download and install the app.
installApp(version = NULL, overwrite = FALSE, lib.loc = NULL, ...)
installApp(version = NULL, overwrite = FALSE, lib.loc = NULL, ...)
version |
Version of the web app to install, e.g. |
overwrite |
Should an existing installation of the app be overwritten? |
lib.loc |
a character vector with path names of R libraries.
See ‘Details’ for the meaning of the default value of |
... |
Passed to |
A one-element character vector with the absolute path to the directory in which the app files were installed
Install a study as an R package
installStudy(study, library = .libPaths()[1])
installStudy(study, library = .libPaths()[1])
study |
An OmicNavigator study to install (class |
library |
Directory to install package. Defaults to first directory
returned by |
Invisibly returns the original onStudy
object that was passed
to the argument study
A subset of the object lane
from Bioconductor workflow RNAseq123.
lane
lane
A factor with 3 levels:
Sample sequenced on lane 4
Sample sequenced on lane 6
Sample sequenced on lane 8
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
table(lane) str(lane)
table(lane) str(lane)
A subset of the object lcpm
from Bioconductor workflow RNAseq123.
lcpm
lcpm
A matrix with 24 rows and 9 columns
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
head(lcpm) str(lcpm)
head(lcpm) str(lcpm)
List available studies and their metadata
listStudies(libraries = NULL)
listStudies(libraries = NULL)
libraries |
The directories to search for installed study packages. If
left as |
Returns a nested list with one element per installed OmicNavigator study package. Each study package entry has the following sublist components:
name |
(character) Name of the study |
package |
(list) The fields from |
results |
(nested list) The testIDs available for each modelID |
enrichments |
(nested list) The annotationIDs available for each modelID |
plots |
(nested list) The plotIDs available for each modelID |
A subset of the object Mm.c2
from Bioconductor workflow RNAseq123.
Mm.c2
Mm.c2
A list of 4 character vectors
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
Mm.c2[[1]] str(Mm.c2)
Mm.c2[[1]] str(Mm.c2)
plotStudy()
invokes a custom plotting function saved within an OmicNavigator
study. This function is called by the app using the study-model-test
selection, feature selections, and plotting function metadata (see
addPlots()
) to define arguments.
plotStudy(study, modelID, featureID, plotID, testID = NULL, libraries = NULL)
plotStudy(study, modelID, featureID, plotID, testID = NULL, libraries = NULL)
study |
An OmicNavigator study. Either an object of class |
modelID |
Filter by modelID |
featureID |
Filter by featureID |
plotID |
Filter by plotID |
testID |
Filter by testID |
libraries |
The directories to search for installed study packages. If
left as |
The arguments study
, modelID
, featureID
, and
testID
are passed to the function getPlottingData()
. The list returned
by getPlottingData()
is passed as the first argument to a custom plotting
function. Some custom plotTypes
(see addPlots()
) require care when being
invoked and attention should be paid to how a custom plot will be rendered
by the app. Custom plots with plotType = c(‘multiModel’, ‘singleTest’)
accept a modelID
vector of length n and a vector of testID
s length n,
where n is the number of models. Custom plots with plotType = c(‘multiModel’, ‘multiTest’)
accept modelID
and testID
vectors of
length m, where m is the total number of tests considered across all models
(note testID
s are often repeated across models). Note that the index
positions of these two vectors should correspond. That is, testID
position
1 should be found in the model specified by modelID
position 1, etc.
The app will invoke custom plotting functions via plotStudy()
using the
current menu selections and plot metadata (see addPlots()
). Plots with
plotType = ‘multiTest’
will be invoked with all testID
s found within the
currently selected model. Plots with plotType = c(‘multiModel’,‘singleTest’)
will be invoked with all modelID
s within the
study (unless the plot has specified a list of models via models
) and the
currently selected testID
(an error will result if the currently selected
testID
is not present in all relevant models for the plot). Plots with
plotType = c(‘multiModel’, ‘multiTest’)
will be invoked with all
modelID
s within the study (unless the plot has specified a list of models
via models
) and all identical testID
s across models (if there are no
matching testIDs across models an error will result).
This function is called for the side effect of creating a plot. It invisibly
returns the result from the custom plotting function specified by plotID
.
Previously it invisibly returned the study object. It's unlikely you relied
on this behavior. For a ggplot2 plot, the return value will be the plotting
object with class "ggplot"
. For a plotly plot, the return value will be
the json schema used for plotting with class “json”
.
Remove an installed study R package
removeStudy(study, library = .libPaths()[1])
removeStudy(study, library = .libPaths()[1])
study |
The name of the study or an |
library |
Directory where the study package is installed. Defaults to first directory
returned by |
Invisibly returns the path of the removed study package
A subset of the object samplenames
from Bioconductor workflow RNAseq123.
samplenames
samplenames
A character vector containing the unique sample identifiers
https://bioconductor.org/packages/release/workflows/vignettes/RNAseq123/inst/doc/limmaWorkflow.html
Law CW, Alhamdoosh M, Su S, Dong X, Tian L, Smyth GK, Ritchie ME. RNA-seq analysis is easy as 1-2-3 with limma, Glimma and edgeR version 3; peer review: 3 approved. F1000Research 2018, 5:1408 doi:10.12688/f1000research.9005.3
Sheridan, J.M., Ritchie, M.E., Best, S.A. et al. A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1. BMC Cancer 2015, 15:221 doi:10.1186/s12885-015-1187-z
head(samplenames) str(samplenames)
head(samplenames) str(samplenames)
After you have installed at least one OmicNavigator study package with
installStudy
, you can explore the results in the app. The
function startApp
starts a local instance of the app running on your
current machine. It will automatically open the app in your default browser.
For the best experience, use Google Chrome. From the dropdown menu, you will
be able to select from any of the studies you have installed on your machine.
When you are finished, you can stop the web server by returning to the R
console and pressing the Esc key (Windows) or Ctrl-C (Linux, macOS).
startApp(...)
startApp(...)
... |
extra parameters passed to ocpu_start_server |
Note that the app can't be run from within RStudio Server.
The app requires some additional R packages to run. If you receive an error
about a missing package, please install it with
install.packages
. To ensure you have all the extra
packages installed, you can run the command below:
install.packages(c("faviconPlease", "opencpu", "UpSetR"))
No return value. This function is only called for the side effect of running a local instance of the app.
Displays a tree-like summary of the elements that have been added to an OmicNavigator study.
## S3 method for class 'onStudy' summary(object, elements = NULL, ...)
## S3 method for class 'onStudy' summary(object, elements = NULL, ...)
object |
OmicNavigator study object (class |
elements |
Subset the output to only include specific elements of the
study, e.g. |
... |
Currently unused |
Invisibly returns the original onStudy
object
Validate a study
validateStudy(study)
validateStudy(study)
study |
An OmicNavigator study object |
For a valid study object, the logical value TRUE
is invisibly
returned. For an invalid study object, there is no return value because an
error is thrown.