| Title: | Gene Expression Variation Analysis (GEVA) |
|---|---|
| Description: | Statistic methods to evaluate variations of differential expression (DE) between multiple biological conditions. It takes into account the fold-changes and p-values from previous differential expression (DE) results that use large-scale data (*e.g.*, microarray and RNA-seq) and evaluates which genes would react in response to the distinct experiments. This evaluation involves an unique pipeline of statistical methods, including weighted summarization, quantile detection, cluster analysis, and ANOVA tests, in order to classify a subset of relevant genes whose DE is similar or dependent to certain biological factors. |
| Authors: | Itamar José Guimarães Nunes [aut, cre] (ORCID: <https://orcid.org/0000-0002-6246-4658>), Murilo Zanini David [ctb], Bruno César Feltes [ctb] (ORCID: <https://orcid.org/0000-0002-2825-8295>), Marcio Dorn [ctb] (ORCID: <https://orcid.org/0000-0001-8534-3480>) |
| Maintainer: | Itamar José Guimarães Nunes <[email protected]> |
| License: | LGPL-3 |
| Version: | 1.21.0 |
| Built: | 2026-05-30 08:13:07 UTC |
| Source: | https://github.com/bioc/geva |
Exhaustive list of generic methods exported from GEVA. Use findMethods to retrieve the specific usages.
inputvalues(object) inputweights(object, normalized) inputdata(object) inputnames(object) infolist(object, field, ...) infolist(object) <- value factors(object) factors(object) <- value classification.table(object) classification.table(object) <- value analysis.params(gobject) featureTable(object) featureTable(object) <- value sv(object) svattr(S, V) elem.class(typedlist) elem.class(typedlist) <- value groupsets(object) groupsets(object) <- value groups(object) scores(object, group) centroids(object) offsets(object) sv.scores(object) qindexes(object) qareasizes(object) qcount(object) quantiles(object) quantiles.method(object) group.rels(object) cluster.method(object) results.table(gres) sv.data(object) variation(object, ...) get.summary.method(x) get.variation.method(x) get.distance.method(x) as.SVTable(x, ...)inputvalues(object) inputweights(object, normalized) inputdata(object) inputnames(object) infolist(object, field, ...) infolist(object) <- value factors(object) factors(object) <- value classification.table(object) classification.table(object) <- value analysis.params(gobject) featureTable(object) featureTable(object) <- value sv(object) svattr(S, V) elem.class(typedlist) elem.class(typedlist) <- value groupsets(object) groupsets(object) <- value groups(object) scores(object, group) centroids(object) offsets(object) sv.scores(object) qindexes(object) qareasizes(object) qcount(object) quantiles(object) quantiles.method(object) group.rels(object) cluster.method(object) results.table(gres) sv.data(object) variation(object, ...) get.summary.method(x) get.variation.method(x) get.distance.method(x) as.SVTable(x, ...)
object, x, gobject
|
Primary object. See the documentation from each class for specific usages |
normalized |
|
field |
When used with a information list, returns the information entry with the corresponding name |
... |
Additional parameters. If used with an imported S3 method, passes the arguments to the default |
value |
The value to be assigned |
S |
Vector to construct the |
V |
Vector to construct the |
typedlist |
A |
group |
Character to filter the returned groups. Omit it to return all groups |
gres |
A |
See the specific usages for each method.
# Returing analysis parameters from an object gsummary <- geva.summarize(geva.ideal.example(), summary.method="mean", variation.method="sd") anpars <- analysis.params(gsummary) print(anpars) # $summary.method # [1] "mean" # $variation.method # [1] "sd"# Returing analysis parameters from an object gsummary <- geva.summarize(geva.ideal.example(), summary.method="mean", variation.method="sd") anpars <- analysis.params(gsummary) print(anpars) # $summary.method # [1] "mean" # $variation.method # [1] "sd"
Performs a cluster analysis from summarized data.
geva.cluster( sv, cluster.method = options.cluster.method, cl.score.method = options.cl.score.method, resolution = 0.3, distance.method = options.distance, ..., grouped.return = FALSE ) options.cluster.method # c("hierarchical", "density", "quantiles") options.cl.score.method # c("auto", "hclust.height", "density", "centroid") options.distance # c("euclidean", "manhattan")geva.cluster( sv, cluster.method = options.cluster.method, cl.score.method = options.cl.score.method, resolution = 0.3, distance.method = options.distance, ..., grouped.return = FALSE ) options.cluster.method # c("hierarchical", "density", "quantiles") options.cl.score.method # c("auto", "hclust.height", "density", "centroid") options.distance # c("euclidean", "manhattan")
sv |
a |
cluster.method |
|
cl.score.method |
|
resolution |
|
distance.method |
|
... |
further arguments passed to
|
grouped.return |
|
The cluster.method determines which grouping subroutine is used to classify the summarized data points based on distance and partitioning. Each option has their equivalent functions that can be called directly: "density" uses geva.dcluster(); "hierarchical" uses geva.hcluster(); and "quantiles" calls geva.quantiles(). However, this wrapper function can also be used to join GEVASummary and GEVAGroupSet objects into a single GEVAGroupedSummary object by setting grouped.return to TRUE.
The cl.score.method argument defines how scores are calculated for each SV point (row in sv) that was assigned to a cluster, (i.e., excluding non-clustered points). If specified as "auto", the parameter will be selected based on the cluster.method: "density" (rate of neighbor points) for the density method; and "hclust.height" (local hierarchy height) for the hierarchical method. The "centroid" method calculates the scores based on the proportional distance between each point to its cluster's centroid. Note that the cl.score.method argument is ignored if cluster.method is "quantiles", since quantile scores are always based on their local centroid distances.
The resolution value is a more accessible way to define the cluster separation threshold used in density and hierarchical clustering methods. Density clusters uses an epsilon value that represents the minimum distance of separation, whereas hierarchical clusters are defined by cutting the hierarchy tree wherever there is a minimum distance between two hierarchies. In this sense, resolution translates a value between 0 and 1 to propotional value for epsilon or hierarchical height (depending on the cluster.method) that would result in the least number of possible clusters for 0 and the highest number for 1. Nevertheless, if epsilon is specified as eps in the optinal arguments, its value is used and resolution is ignored.
This function produces a GEVAGroupSet-derived object, particularly a GEVACluster for the "hierarchical" and "density" cluster methods or a GEVAQuantiles for the "quantiles" method.
However, if grouped.return is TRUE and sv is a GEVASummary object, the produced GEVAGroupSet data will be concatenated to the input and returned as a GEVAGroupedSummary
Other geva.cluster:
geva.dcluster(),
geva.hcluster(),
geva.quantiles()
## Cluster analysis from a randomly generated input # Preparing the data ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters # Hierarchical clustering gclust <- geva.cluster(gsummary, cluster.method="hierarchical") plot(gclust) # Density clustering gclust <- geva.cluster(gsummary, cluster.method="density") plot(gclust) # Density clustering with slightly more resolution gclust <- geva.cluster(gsummary, cluster.method="density", resolution=0.35) plot(gclust)## Cluster analysis from a randomly generated input # Preparing the data ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters # Hierarchical clustering gclust <- geva.cluster(gsummary, cluster.method="hierarchical") plot(gclust) # Density clustering gclust <- geva.cluster(gsummary, cluster.method="density") plot(gclust) # Density clustering with slightly more resolution gclust <- geva.cluster(gsummary, cluster.method="density", resolution=0.35) plot(gclust)
Performs a density cluster analysis from summarized data.
geva.dcluster( sv, resolution = 0.3, dcluster.method = options.dcluster.method, cl.score.method = options.cl.score.method, minpts = 2, ..., eps = NA_real_, include.raw.results = FALSE ) options.dcluster.method # c("dbscan", "optics")geva.dcluster( sv, resolution = 0.3, dcluster.method = options.dcluster.method, cl.score.method = options.cl.score.method, minpts = 2, ..., eps = NA_real_, include.raw.results = FALSE ) options.dcluster.method # c("dbscan", "optics")
sv |
a |
resolution |
|
dcluster.method |
|
cl.score.method |
|
minpts |
|
... |
additional arguments. Accepts |
eps |
|
include.raw.results |
|
This function performs a density cluster analysis with the aid of implemented methods from the dbscan::dbscan package. The available methods for the dcluster.method arguments are "dbscan" and "options", which internally call dbscan::dbscan() and dbscan::optics(), respectively.
The resolution value is an accessible way to define the cluster separation threshold used in density clustering. The DBSCAN algorithm uses an epsilon value that represents the minimum distance of separation, and resolution translates a value between 0 and 1 to a propotional value within the acceptable range of epsilon values. This allows defining the rate of clusters from 0 to 1, which results in the least number of possible clusters for 0 and the highest number for 1. Nevertheless, if epsilon is specified as eps in the optinal arguments, its value is used and resolution is ignored.
The cl.score.method argument defines how scores are calculated for each SV point (row in sv) that was assigned to a cluster, (i.e., excluding non-clustered points). If specified as "auto", the parameter will be selected based on the rate of neighbor points ("density").
If include.raw.results is TRUE, some aditional data will be attached to the info slot of the returned GEVACluster objects, including the kNN tree generated during the intermediate steps.
A GEVACluster object
In density clustering, only the most dense points are clustered. For the unclustered points, the grouping value is set to NA.
Other geva.cluster:
geva.cluster(),
geva.hcluster(),
geva.quantiles()
## Density clustering from a randomly generated input # Preparing the data ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters # Density clustering gclust <- geva.dcluster(gsummary) plot(gclust) # Density clustering with slightly more resolution gclust <- geva.dcluster(gsummary, resolution=0.35) plot(gclust)## Density clustering from a randomly generated input # Preparing the data ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters # Density clustering gclust <- geva.dcluster(gsummary) plot(gclust) # Density clustering with slightly more resolution gclust <- geva.dcluster(gsummary, resolution=0.35) plot(gclust)
Merges the obtained information (Summarization, Clustering, and Quantiles), then applies the final steps to produce the classification results for the SV points (genes).
geva.finalize( gsummary, ..., p.value = 0.05, p.val.adjust = options.factoring.p.adjust, constraint.factors = TRUE ) options.factoring.p.adjust # c("partial.quantiles", "holm", "hochberg", "hommel", # "bonferroni", "BH", "BY", "fdr", "none")geva.finalize( gsummary, ..., p.value = 0.05, p.val.adjust = options.factoring.p.adjust, constraint.factors = TRUE ) options.factoring.p.adjust # c("partial.quantiles", "holm", "hochberg", "hommel", # "bonferroni", "BH", "BY", "fdr", "none")
gsummary |
a |
... |
Intermediate results produced from the |
p.value |
|
p.val.adjust |
|
constraint.factors |
|
In this procedure, the SV points (i.e., each row in the GEVASummary object) are classified according to the detected quantiles (see geva.quantiles), whose results can be adjusted using other grouping analysis results such as clusters (see geva.cluster). To achieve the best statistical accuracy, both GEVAQuantiles and GEVACluster objects must be given in the ... as optional arguments. If a GEVAQuantiles argument is not present, it is automatically calculated using the default parameters.
If multiple factors are present in the GEVASummary object (retrieved by factors(gsummary)), a factor analysis is also performed, giving two additional possible classifications (factor-dependent and factor-specific) besides the default ones (similar, basal, and sparse).
In factor analysis, an ANOVA is applied for each gene using Fisher's and Levene's tests to distinguish genes whose logFC (differential expression) variation is dependent or specific to the analyzed factors based on the p-value cutoff. The p.val.adjust argument defines how these p-values will be adjusted: by quantile separation between each factor ("partial.quantiles" method); or by one of the default methods listed in stats::p.adjust.methods.
The constraint.factors argument determines if the S values (summarized logFC) will be limited to the range between the quantile centroids during factor analysis. For example, if the quantile centroids were -0.90, 0.00, and 0.90 in the S axis, values such as -1.53 and 2.96 would be converted to -0.90 and 0.90, respectively. This constraint is particularly applied to avoid significative observations from ANOVA based on multiple degrees of differential expression.
In another example to illustrate the constraint of factors, given two sets of values: A = (-1.00, -1,10, 0.00, 0.20, 1.00, 1.15), and B = (0.00, 0.12, 1.11, 1.00, 1.95, 2.00), with the centroids located in C = (-0.90, 0.00, 0.90), and the factors F = (Cond1, Cond1, Cond2, Cond2, Cond3, Cond3). If constraint.factors is FALSE, both A and B are considered as significantly separated factors, whereas if TRUE, only A will present a significant separation, since in B the values 1.11, 1.00, 1.95, and 2.00 are converted to 0.90. In qualitative terms, if constraint.factors is TRUE, all values above 0.90 are considered the same over-expressed values, ensuring that they will fit in the same degree of differential expression. Hence, in this example using the constrained values, B would not represent a significant separation between the factors Cond1, Cond2, and Cond3.
A GEVAResults object, containing the entire set of results. The relevant genes can be retrieved using top.genes()
To perform factor analysis, the following observations must be considered:
The factors must be defined in the provided data. They can be retrieved using the factors accessor. If factors are not present or are entirelly composed by NA, they can be assigned through factors<- by providing a factor or character vector of the same length of the input columns;
Each factor must include two or more values, since the factor analysis is based on ANOVA and at least two values are needed to variance calculation;
Columns whose factor value is NA are not considered.
## Finalizing example using a random generated input ginput <- geva.ideal.example() # Generates a random input (for testing purposes only) gsummary <- geva.summarize(ginput) # Summarizes the input gquant <- geva.quantiles(gsummary) # Calculates the quantiles gclust <- geva.cluster(gsummary) # Calculates the clusters gresults <- geva.finalize(gsummary, gquant, gclust) # Finishes the results head(top.genes(gresults)) # Prints the final results plot(gresults) # Plots the final SV-plot## Finalizing example using a random generated input ginput <- geva.ideal.example() # Generates a random input (for testing purposes only) gsummary <- geva.summarize(ginput) # Summarizes the input gquant <- geva.quantiles(gsummary) # Calculates the quantiles gclust <- geva.cluster(gsummary) # Calculates the clusters gresults <- geva.finalize(gsummary, gquant, gclust) # Finishes the results head(top.genes(gresults)) # Prints the final results plot(gresults) # Plots the final SV-plot
Performs a hierarchical cluster analysis from summarized data.
geva.hcluster( sv, resolution = 0.3, hc.method = options.hc.method, hc.metric = options.hc.metric, cl.score.method = options.cl.score.method, ..., include.raw.results = FALSE ) options.hc.metric # c("euclidean", "maximum", "manhattan", "canberra", # "binary", "minkowski") options.hc.method # c("centroid", "median", "ward", "single")geva.hcluster( sv, resolution = 0.3, hc.method = options.hc.method, hc.metric = options.hc.metric, cl.score.method = options.cl.score.method, ..., include.raw.results = FALSE ) options.hc.metric # c("euclidean", "maximum", "manhattan", "canberra", # "binary", "minkowski") options.hc.method # c("centroid", "median", "ward", "single")
sv |
a |
resolution |
|
hc.method |
|
hc.metric |
|
cl.score.method |
|
... |
additional arguments:
|
include.raw.results |
|
This function performs a hierarchical cluster analysis with the aid of implemented methods from the fastcluster::fastcluster package, particularly the fastcluster::hclust.vector() function. The available methods for the hc.method and hc.metric are described in the function's documentation page (see fastcluster::hclust.vector()).
The resolution value is an accessible way to define the cluster separation threshold used in hierarchical clustering. The algorithm produces a dendrogram-like hierarchy in which each level/node is separated by a distance (sometimes called "height") to the next level/node, and the resolution translates a value between 0 and 1 to a propotional value within the total hierarchy height. This allows defining the rate of clusters from 0 to 1, which results in the least number of possible clusters (usually two) for 0, and the highest number (approximately one cluster per point) for 1.
If include.raw.results is TRUE, some aditional data will be attached to the info slot of the returned GEVACluster objects, including the kNN tree generated during the intermediate steps.
A GEVACluster object
In hierarchical clustering, all points are clustered. Therefore, setting resolution to 1 will result into one cluster per point, where the cluster analysis may become pointless (no pun intended).
Other geva.cluster:
geva.cluster(),
geva.dcluster(),
geva.quantiles()
## Hierarchical clustering from a randomly generated input # Preparing the data ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters # Hierarchical clustering gclust <- geva.hcluster(gsummary) plot(gclust) # Hierarchical clustering with slightly more resolution gclust <- geva.hcluster(gsummary, resolution=0.35) plot(gclust)## Hierarchical clustering from a randomly generated input # Preparing the data ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters # Hierarchical clustering gclust <- geva.hcluster(gsummary) plot(gclust) # Hierarchical clustering with slightly more resolution gclust <- geva.hcluster(gsummary, resolution=0.35) plot(gclust)
Generates a random example of GEVAInput object that simulates an ideal analysis dataset. Used for testing purposes only.
geva.ideal.example(probecount = 10000, nfactors = 3, colsperfactor = 3)geva.ideal.example(probecount = 10000, nfactors = 3, colsperfactor = 3)
probecount |
|
nfactors |
|
colsperfactor |
|
A GEVAInput object. The included tables are composed by probecount rows and nfactors * colsperfactor columns
## "Ideal" input example ginput <- geva.ideal.example() # Generates a random example gsummary <- geva.summarize(ginput) # Summarizes the generated data plot(gsummary) # Plots the summarized data## "Ideal" input example ginput <- geva.ideal.example() # Generates a random example gsummary <- geva.summarize(ginput) # Summarizes the generated data plot(gsummary) # Plots the summarized data
Helper functions used to edit the contents from a GEVAInput.
geva.input.correct(ginput, na.rm = TRUE, inf.rm = TRUE, invalid.col.rm = TRUE) geva.input.filter( ginput, p.value.cutoff = 0.05, by.any = FALSE, na.val = 0, ... ) geva.input.rename.rows( ginput, attr.column, dupl.rm.method = c("least.p.vals", "order") )geva.input.correct(ginput, na.rm = TRUE, inf.rm = TRUE, invalid.col.rm = TRUE) geva.input.filter( ginput, p.value.cutoff = 0.05, by.any = FALSE, na.val = 0, ... ) geva.input.rename.rows( ginput, attr.column, dupl.rm.method = c("least.p.vals", "order") )
ginput |
A |
na.rm |
|
inf.rm |
|
invalid.col.rm |
|
p.value.cutoff |
|
by.any |
|
na.val |
|
... |
optional arguments. Accepts |
attr.column |
|
dupl.rm.method |
|
geva.input.correct corrects the numeric input data (values and weights), removing rows that include invalid values such as NA or infinite.
geva.input.filter attempts to select the most relevant part of the input data, removing rows containing p.values (1 - weights) above a specific threshold.
geva.input.rename.rows replaces the row names with a column from the feature table (see GEVAInput). The column name specified for attr.column must be included in the names(featureTable(ginput)). Any duplicates are removed according to the dupl.rm.method, and the selected duplicates are stored as a new column named "renamed_id" inside the feature table from the returned object.
A modified GEVAInput object
## geva.input.correct example colexample1 <- runif(1000, -1, 1) # Random column 1 colexample2 <- runif(1000, -1, 1) # Random column 2 colexample3 <- runif(1000, -1, 1) # Random column 3 colexample3[runif(1000, -1, 1) < 0] = NA # Random NA's ginput = geva.merge.input(col1=colexample1, col2=colexample2, col3=colexample3) # Before the correction: print(nrow(ginput)) # Returns 1000 # Applies the correction (removes rows with NA's) ginput <- geva.input.correct(ginput) # After the correction: print(nrow(ginput)) # Returns less than 1000 ## --- ## geva.input.filter example ginput <- geva.ideal.example(1000) # Generates a random input # Before the filter: print(nrow(ginput)) # Returns 1000 # Applies the filter ginput <- geva.input.filter(ginput) # After the filter: print(nrow(ginput)) # Returns less than 1000 ## --- ## geva.input.rename.rows example ginput <- geva.ideal.example() # Generates a random input # Renames to 'Symbol' ginput <- geva.input.rename.rows(ginput, attr.column = "Symbol") print(head(ginput)) # The row names are set now as the gene symbols## geva.input.correct example colexample1 <- runif(1000, -1, 1) # Random column 1 colexample2 <- runif(1000, -1, 1) # Random column 2 colexample3 <- runif(1000, -1, 1) # Random column 3 colexample3[runif(1000, -1, 1) < 0] = NA # Random NA's ginput = geva.merge.input(col1=colexample1, col2=colexample2, col3=colexample3) # Before the correction: print(nrow(ginput)) # Returns 1000 # Applies the correction (removes rows with NA's) ginput <- geva.input.correct(ginput) # After the correction: print(nrow(ginput)) # Returns less than 1000 ## --- ## geva.input.filter example ginput <- geva.ideal.example(1000) # Generates a random input # Before the filter: print(nrow(ginput)) # Returns 1000 # Applies the filter ginput <- geva.input.filter(ginput) # After the filter: print(nrow(ginput)) # Returns less than 1000 ## --- ## geva.input.rename.rows example ginput <- geva.ideal.example() # Generates a random input # Renames to 'Symbol' ginput <- geva.input.rename.rows(ginput, attr.column = "Symbol") print(head(ginput)) # The row names are set now as the gene symbols
Functions to read, load, and concatenate the experimental comparisons from the data input. This is the initial step to proceed with any GEVA analysis.
geva.merge.input( ..., col.values = "logFC", col.pvals = "adj.P.Val", col.other = NULL ) geva.read.tables( filenames = NULL, dirname = ".", col.values = "logFC", col.pvals = "adj.P.Val", col.other = NULL, ..., files.pattern = "\\.txt$", p.value.cutoff = 0.05, read.args = list() )geva.merge.input( ..., col.values = "logFC", col.pvals = "adj.P.Val", col.other = NULL ) geva.read.tables( filenames = NULL, dirname = ".", col.values = "logFC", col.pvals = "adj.P.Val", col.other = NULL, ..., files.pattern = "\\.txt$", p.value.cutoff = 0.05, read.args = list() )
... |
multiple
|
col.values |
|
col.pvals |
|
col.other |
|
filenames |
|
dirname |
single |
files.pattern |
single |
p.value.cutoff |
|
read.args |
|
The geva.merge.input function takes multiple tables as arguments (e.g., matrix or data.frame objects), extracts the logFC columns from each table and merges them into a single GEVAInput dataset.
The column names are specified in the col.values and col.pvals arguments (character) and must correctly match the column names for logFC and p-value columns, respectively, in the inputs to be extracted.
Multiple values for column names can also be specified as valid name possibilities if they differ among the tables.
The function geva.merge.input reads multiple tab-delimited text files containing, extracts the logFC columns from each table and merges into a single GEVAInput dataset.
A GEVAInput object
The inclusion of p-value columns is not technically required, but strongly recommended as they improve the statistical accuracy in the summarization steps. If the p-value (or adjusted p-value) columns are present, their values are converted to weights by applying 1 - pvalue for each pvalue element, otherwise an optional na.val optional argument can specified as replacement to the absent values (default is NA). Weights are used to accomodate the central logFC values towards the most significant observations and penalize potential statistical innacuracies.
### EXAMPLE 1 ## geva.merge.input example with three randomly generated tables ## (For demonstration purposes only) # Number of rows n <- 10000 # Random row (probe) names probnms <- sprintf("PROBE_%s", 1:n) # Random gene names (optional) genenms <- paste0(sprintf("GENE_%s", 1:n), LETTERS[1:n %% (length(LETTERS)+1)]) # Random table 1 dt1 <- data.frame(row.names=probnms, logfc=(rnorm(n, 0, sd=2) * rnorm(n, 0, sd=0.5)), pvalues = runif(n, max=0.08), genesymbol = genenms) # Random table 2 dt2 <- data.frame(row.names=probnms, logfc=(rnorm(n, 0, sd=2) * rnorm(n, 0, sd=0.5)), pvalues = runif(n, max=0.08), genesymbol = genenms) # Random table 3 dt3 <- data.frame(row.names=probnms, logfc=(rnorm(n, 0, sd=2) * rnorm(n, 0, sd=0.5)), pvalues = runif(n, max=0.08), genesymbol = genenms) # Merges the three tables ginput <- geva.merge.input(exp1=dt1, exp2=dt2, exp3=dt3, col.values="logfc", col.pvals="pvalues", col.other="genesymbol") # Prints the first rows from the merged table print(head(ginput)) # values print(head(inputweights(ginput))) # weights # --- ## Not run: ### EXAMPLE 2 ## geva.read.tables example with three tab-delimited files # Table file examples. Each one has 3 columns: "logfc", "pvalues", and "genesymbol" # Replace it with your tab-delimited files (e.g. exported from limma's topTable) fnames <- c("dt1.txt", "dt2.txt", "dt3.txt") ginput <- geva.read.tables(fnames, col.values="logfc", col.pvals="pvalues", col.other="genesymbol") # Prints the first rows from the merged table print(head(ginput)) # values print(head(inputweights(ginput))) # weights # --- ### EXAMPLE 3 ## geva.read.tables example with tab-delimited files in a directory # Directory name (replace it with a directory containing the table files) dirnm <- "C:/User/robertplant123/Documents/R/gevaexamples" # In this example, table files contain 3 columns: "logfc", "pvalues", and "genesymbol" # Reads all txt files in the directory ginput <- geva.read.tables(dirname=dirnm, col.values="logfc", col.pvals="pvalues", col.other="genesymbol") # (Optional step) # Let's assume that all table file names start with "dt" and ends with the ".txt" extension, # such as dt1.txt, dt2.txt and so on... fname_pattern <- c("^dt.+?\\.txt$") # Defines a RegEx pattern to find the files # Loads only files that match the file name pattern ginput <- geva.read.tables(dirname=dirnm, files.pattern=fname_pattern, col.values="logfc", col.pvals="pvalues", col.other="genesymbol") # Prints the first rows from the merged table print(head(ginput)) # values print(head(inputweights(ginput))) # weights ## End(Not run)### EXAMPLE 1 ## geva.merge.input example with three randomly generated tables ## (For demonstration purposes only) # Number of rows n <- 10000 # Random row (probe) names probnms <- sprintf("PROBE_%s", 1:n) # Random gene names (optional) genenms <- paste0(sprintf("GENE_%s", 1:n), LETTERS[1:n %% (length(LETTERS)+1)]) # Random table 1 dt1 <- data.frame(row.names=probnms, logfc=(rnorm(n, 0, sd=2) * rnorm(n, 0, sd=0.5)), pvalues = runif(n, max=0.08), genesymbol = genenms) # Random table 2 dt2 <- data.frame(row.names=probnms, logfc=(rnorm(n, 0, sd=2) * rnorm(n, 0, sd=0.5)), pvalues = runif(n, max=0.08), genesymbol = genenms) # Random table 3 dt3 <- data.frame(row.names=probnms, logfc=(rnorm(n, 0, sd=2) * rnorm(n, 0, sd=0.5)), pvalues = runif(n, max=0.08), genesymbol = genenms) # Merges the three tables ginput <- geva.merge.input(exp1=dt1, exp2=dt2, exp3=dt3, col.values="logfc", col.pvals="pvalues", col.other="genesymbol") # Prints the first rows from the merged table print(head(ginput)) # values print(head(inputweights(ginput))) # weights # --- ## Not run: ### EXAMPLE 2 ## geva.read.tables example with three tab-delimited files # Table file examples. Each one has 3 columns: "logfc", "pvalues", and "genesymbol" # Replace it with your tab-delimited files (e.g. exported from limma's topTable) fnames <- c("dt1.txt", "dt2.txt", "dt3.txt") ginput <- geva.read.tables(fnames, col.values="logfc", col.pvals="pvalues", col.other="genesymbol") # Prints the first rows from the merged table print(head(ginput)) # values print(head(inputweights(ginput))) # weights # --- ### EXAMPLE 3 ## geva.read.tables example with tab-delimited files in a directory # Directory name (replace it with a directory containing the table files) dirnm <- "C:/User/robertplant123/Documents/R/gevaexamples" # In this example, table files contain 3 columns: "logfc", "pvalues", and "genesymbol" # Reads all txt files in the directory ginput <- geva.read.tables(dirname=dirnm, col.values="logfc", col.pvals="pvalues", col.other="genesymbol") # (Optional step) # Let's assume that all table file names start with "dt" and ends with the ".txt" extension, # such as dt1.txt, dt2.txt and so on... fname_pattern <- c("^dt.+?\\.txt$") # Defines a RegEx pattern to find the files # Loads only files that match the file name pattern ginput <- geva.read.tables(dirname=dirnm, files.pattern=fname_pattern, col.values="logfc", col.pvals="pvalues", col.other="genesymbol") # Prints the first rows from the merged table print(head(ginput)) # values print(head(inputweights(ginput))) # weights ## End(Not run)
Calculates the quantiles of a SVTable.
geva.quantiles( sv, quantile.method = options.quantiles, initial.thresholds = c(S = NA_real_, V = NA_real_), nq.s = 3L, nq.v = 2L, comb.score.fn = prod, ... ) options.quantiles # c("range.slice", "proportional", "density", "k.max.sd", # "custom")geva.quantiles( sv, quantile.method = options.quantiles, initial.thresholds = c(S = NA_real_, V = NA_real_), nq.s = 3L, nq.v = 2L, comb.score.fn = prod, ... ) options.quantiles # c("range.slice", "proportional", "density", "k.max.sd", # "custom")
sv |
a |
quantile.method |
|
initial.thresholds |
named |
nq.s |
|
nq.v |
|
comb.score.fn |
|
... |
additional arguments include:
|
The quantile.method defines how the initial quantile (usually the one at the bottom center) is calculated. Each method has a specific way to estimate the first spatial delimiter, as described below:
"range.slice" (default)Separation is set at the nearest point to a fraction of the spatial range. This fraction can be specified by the qslice optional argument (numeric, default is 0.25, or 25%);
"density"Separation is set at the point with the most proportional density by k neighbor points to its current spatial fraction. This method uses the optional arguments qslice (numeric, default is 0.25, or 25%) for the desired spatial fraction, and k (numeric, default is 16) for the number of neighbor points;
"k.max.sd"Separation is set at the point with the greatest standard deviation of distance to its k neighbor points. The number of neighbor points can be specified by the k optional argument (numeric, default is 16);
"proportional"Separation is set at the exact axis division so that all quantiles have the size;
"custom"Uses the values specified in the initial.thresholds argument.
A custom initial separation point can be specified in the initial.thresholds as a numeric vector of two elements, where the first element refers to S axis and the second, to V axis. If one of the elements is NA, the initial quantile is calculated for that axis only. If both values are not NA, the quantile separation method is ignored and automatically set to "custom".
The nq.s and nq.v arguments determine the number of quantiles for the S and V axes, respectively. These parameters can be used to increase the number of possible partitions in the SV space, but their applicability is currently being tested (see ‘Note’).
The comb.score.fn is a function applied to the partial scores for each SV point to combine them into a single value. The result value is defined as the "quantile score" for a SV point. The function is applied iteratively to two-element numeric vectors.
Customizing the number of quantiles by nq.s and nq.v is a experimental feature and the remaining analysis steps are mostly based on the default parameters for these arguments. Tests are being conducted to determine this feature's applicability for the next releases.
Other geva.cluster:
geva.cluster(),
geva.dcluster(),
geva.hcluster()
## Quantile detection from a randomly generated input # Preparing the data ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters # Default usage gquants <- geva.quantiles(gsummary) # Detects the quantiles plot(gquants) # Plots the quantiles # Custom initial delimiters gquants <- geva.quantiles(gsummary, initial.thresholds = c(S=1.00, V=0.5)) plot(gquants) # Plots the quantiles # Quantile detection using densities gquants <- geva.quantiles(gsummary, quantile.method = 'density') plot(gquants) # Plots the quantiles## Quantile detection from a randomly generated input # Preparing the data ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters # Default usage gquants <- geva.quantiles(gsummary) # Detects the quantiles plot(gquants) # Plots the quantiles # Custom initial delimiters gquants <- geva.quantiles(gsummary, initial.thresholds = c(S=1.00, V=0.5)) plot(gquants) # Plots the quantiles # Quantile detection using densities gquants <- geva.quantiles(gsummary, quantile.method = 'density') plot(gquants) # Plots the quantiles
Given a GEVAInput object, applies the geva.summarize(), geva.quantiles, geva.cluster, and geva.finalize in a single call. Optional arguments are passed to the internal calls of these functions.
geva.quick(gobject, ...)geva.quick(gobject, ...)
gobject |
A |
... |
Optional arguments passed to |
This function performs the summarization, quantile detecetion, and clustering of an input data, then merges the results together and, if applicable, performs a factor analysis. If the gobject is not a GEVAInput, it must provide a valid GEVAInput object when called by inputdata(gobject). Moreover, all parameters used in previous analysis will be taken into account. For instance, if gobject is a GEVASummary obtained by using variation.method='mad', the internal call to geva.summarize in this function will use variation.method='mad' as well, unless if another parameter for variation.method is specified in the ... arguments.
Therefore, this function can be useful not only as a shortcut to analyze GEVAInput but also for parameter testing when applied to a GEVAResults object, since the previous parameters are reused, while the specified parameters are overriden.
A GEVAResults object
## Basic usage using a random generated input ginput <- geva.ideal.example() # Generates a random input example gresults <- geva.quick(ginput) # Performs the entire analysis (default parameters) print(head(top.genes(gresults))) # Prints the results plot(gresults) # Plots the final SV-plot ## Example with non-default parameters ginput <- geva.ideal.example() # Generates a random input example gresults <- geva.quick(ginput, summary.method="median", variation.method="mad", quantiles.method="density", cluster.method="density", resolution=0.32) print(head(top.genes(gresults))) # Prints the results plot(gresults) # Plots the final SV-plot## Basic usage using a random generated input ginput <- geva.ideal.example() # Generates a random input example gresults <- geva.quick(ginput) # Performs the entire analysis (default parameters) print(head(top.genes(gresults))) # Prints the results plot(gresults) # Plots the final SV-plot ## Example with non-default parameters ginput <- geva.ideal.example() # Generates a random input example gresults <- geva.quick(ginput, summary.method="median", variation.method="mad", quantiles.method="density", cluster.method="density", resolution=0.32) print(head(top.genes(gresults))) # Prints the results plot(gresults) # Plots the final SV-plot
Performs the summarization step by calculating the central points and variation estimates of logFC values from the input data.
geva.summarize( ginput, summary.method = options.summary, variation.method = options.variation, ... ) options.summary # c("mean", "median") options.variation # c("sd", "var", "mad")geva.summarize( ginput, summary.method = options.summary, variation.method = options.variation, ... ) options.summary # c("mean", "median") options.variation # c("sd", "var", "mad")
ginput |
a |
summary.method |
single |
variation.method |
single |
... |
additional arguments. Accepts |
The options.summary refer to the available operations to calculate central logFC values (mean or median), whereas options.variation presents three functions to calculate logFC variation (sd: Standard Deviation; var: Variance; and mad: Median Absolute Deviation).
Moreover, all those operations include a weighted counterpart applied using the weights table from the GEVAInput object.
A GEVASummary object
stats::var(), stats::sd(), stats::mad()
## Summarization of a randomly generated input ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters plot(gsummary) # Plots the summarized data## Summarization of a randomly generated input ginput <- geva.ideal.example() # Generates a random input example gsummary <- geva.summarize(ginput) # Summarizes with the default parameters plot(gsummary) # Plots the summarized data
The GEVACluster class represents the classification results from a cluster analysis. For each probe/gene, there is a assigned cluster among the g defined clusters.
This class inherits from GEVAGroupSet.
A GEVACluster object
groupingfactor (m elements, g levels), cluster assignment for each gene/probe
(Inherited from GEVAGroupSet)
scoresnumeric vector (m elements) comprising a score value for each cluster assignment
(Inherited from GEVAGroupSet)
ftabledata.frame (m lines) with additional cluster assignment features
(Inherited from GEVAGroupSet)
centroidsnumeric SVTable (g lines) with the S and V centroid coordinates for each cluster
(Inherited from GEVAGroupSet)
offsetsnumeric SVTable (m lines) with the S and V coordinate offsets each gene/probe from its cluster centroid
(Inherited from GEVAGroupSet)
infolist of supplementary information
(Inherited from GEVAGroupSet)
cluster.methodcharacter, method used in the cluster analysis (see geva.cluster)
(See also the inherited methods from GEVAGroupSet)
Plotting
lines(x, ...)Draws convex hulls around the clustered points
plot(x, y, ...)Draws a SV-plot that highlights the clustered points. Convex hulls are included for visual purposes only and do not avoid enclosing points from other clusters on concave parts.
Can be combined with another SVTable or GEVAGroupSet given as the y argument to include additional graphical elements
The GEVAGroupedSummary class inherits the GEVASummary class and includes group analysis data (e.g., clustering and quantile detection).
A GEVAGroupedSummary object
svnumeric matrix composed by two columns: S (summary) and V (variation)
(Inherited from SVTable)
inputdataGEVAInput-class with the data input
(Inherited from GEVASummary)
sv.methodNames of the statistical methods used to summarize data
(Inherited from GEVASummary)
infolist with additional information
(Inherited from GEVASummary)
groupsetlistTypedList of GEVAGroupSet objects
(See also the inherited methods from GEVASummary)
Conversion and coercion
as.expression(x, ginput, ...)Converts this object to expression
as.matrix(x, ...)Converts this object to matrix
Plotting
lines(x, ...)Draws delimiters within quantiles and convex hulls around the clustered points
plot(x, y, ...)Draws a SV-plot. The horizontal axis is for summary (S) and the vertical axis is for variation (V).
In addition, highlights the included group sets
points(x, ...)Generic points implementation for GEVAGroupedSummary
Properties
analysis.params(gobject)Returns a list of analysis parameters passed to geva.cluster to obtain this object
Sub-slot accessors
cluster.method(object)Gets a character vector listing the cluster.method from each group set
quantiles(object)Gets the GEVAQuantiles, or NULL if not present
The GEVAGroupSet class represents the classification of summarized values from a SVTable, where each gene/probe has one assigned group among g defined groups. This is an abstract class. Inherits the GEVACluster and GEVAQuantiles classes.
A GEVAGroupSet object
groupingfactor (m elements, g levels) used to group the genes/probes
scoresnumeric vector (m elements) with the assigned grouping scores for each gene/probe
ftabledata.frame (m lines) with additional grouping features
centroidsnumeric SVTable (g lines) with the S and V centroid coordinates for each group
offsetsnumeric SVTable (m lines) with the S and V coordinate offsets each gene/probe from its group centroid
infolist of additional information
Alternative accessors
levels(x)Returns the unique group names included in the group set.
Equivalent to levels(groups(x))
Conversion and coercion
as.data.frame(x, row.names = names(x), ...)Returns a data.frame with the groups and scores slots as columns
as.expression(x, sv, ...)Gets the expression that reproduces this GEVAGroupSet object, including function parameters used by geva.cluster. The sv argument is optional but can be specified to replace the source SVTable
as.SVTable(x, which = c("sv", "offsets", "centroids"), ...)Retrieves a SVTable based on the contents indicated by which. The accepted arguments are: sv for the source data; offsets for the offsets slots; and centroids for the centroids slot
Dimension accessors
length(x)Returns the number of rows in the sv slot
names(x)Gets the assigned names by the classification and scores
Plotting
color.values(x, point.col = NULL, ...)Gets the colors associated to the grouped data points. If not present, generates random group colors.
If point.col is a single character or an vector of the same length of data points, adjusts the color values to web RGBA
plot(x, y, ...)Draws a SV-plot that highlights the grouped information.
Can be combined with another SVTable or GEVAGroupSet given as the y argument to include additional graphical elements
points(x, ...)Draws the grouped points
Properties
analysis.params(gobject)Returns a list of analysis parameters passed to geva.cluster to obtain this object
cluster.method(object)Returns the option used as the cluster.method argument when calling geva.cluster
Sub-slot accessors
classification.table(object) <- valueStores the classification data.frame on this object
classification.table(object)Returns a data.frame of predicted classifications, if supported by this object
sv.data(object)Returns a SVTable with the source SV coordinates
sv(object)Returns the numeric matrix in the SVTable from sv.data(object)
The GEVAInput class contains the initial data for GEVA usage.
It stores numeric matrices of logFC values from differential expression comparison results. Options for calculations and summarizing are also included.
A GEVAInput object
valuesnumeric matrix (m*n) of log-ratio values, usually logFC
weightsnumeric matrix (m*n) of weighted values. If not defined, all weight values are equal to 1
factorsfactor (n elements) representing the grouping of the n columns. If not defined, all factors are equal to NA
ftabledata.frame with m rows containing attribute columns associated to the features (e.g., probes or genes)
infolist of supplementary information related to the input
Alternative accessors
levels(x)Returns the unique values from the assigned factors; or NA if there are no assigned factors in x
Conversion and coercion
as.array(x, ...)Converts this object to array
Dimension accessors
dim(x)Gets the dimensions defined for both matrices in values and weights slots
dimnames(x) <- valueSets the list with the row and column names.
Individual dimension names can also be set using rownames<- and colnames<-
dimnames(x)Gets a list with the row and column names.
Individual dimension names can also be accessed through rownames and colnames
inputnames(object)Gets the input column names (same as colnames(object))
length(x)Returns the number of rows in the values slot
names(x)Same as inputnames. For internal use
Plotting
plot(x, y, ...)Summarizes the input using the default parameters, then calls the plot on the returned GEVASummary object.
Not intended to regular use and will give a warning if called
Properties
analysis.params(gobject)Returns a list of analysis parameters passed to geva.merge.input or geva.read.tables to obtain this object
Subsetting
head(x, n = 6L, ...)Returns the first parts of the values table
tail(x, n = 6L, ...)Returns the last parts of the values table
The GEVAQuantiles class represents the results of a quantile detection analysis. For each probe/gene, there is a assigned quantile among the g defined quantiles.
This class inherits from GEVAGroupSet and is inherited by GEVAQuantilesAdjusted.
A GEVAQuantiles object
groupingfactor (m elements, g levels), quantile assignment for each gene/probe
(Inherited from GEVAGroupSet)
scoresnumeric vector (m elements) with the assigned quantile scores for each gene/probe
(Inherited from GEVAGroupSet)
ftabledata.frame (m lines) with additional quantile assignment features
(Inherited from GEVAGroupSet)
centroidsnumeric SVTable (g lines) with the S and V centroid coordinates for each quantile
(Inherited from GEVAGroupSet)
offsetsnumeric SVTable (m lines) with the S and V coordinate offsets each gene/probe from its quantile centroid
(Inherited from GEVAGroupSet)
infolist of additional information
(Inherited from GEVAGroupSet)
svscoresnumeric SVTable (m lines) with individual partial scores for the assigned quantiles
qareasizesnumeric SVTable (g lines) with the S and V sizes for each quantile
qindexesinteger SVTable (g lines) representing the position index to each quantile, in terms of summary and variation
qcountinteger attributes (SVIntAttribute) with the defined number of quantiles for the S and V axes
qcutoffnumeric attributes (SVNumAttribute) with the initial quantile cutoff in S and V, starting from the point zero
qmethodcharacter, method used to calculate the initial quantiles (see geva.quantiles())
(See also the inherited methods from GEVAGroupSet)
Conversion and coercion
as.expression(x, sv, ...)Converts this object to expression
as.SVTable(
x,
which = c("sv", "offsets", "centroids", "qindexes"),
...,
row.names = names(x)
)Converts this object to SVTable
Plotting
lines(x, ...)Draws the quantile delimiter lines
plot(x, y, ...)Draws a SV-plot that highlights the points from each quantile. Dashed lines are included as the quantile delimiters.
Can be combined with another SVTable or GEVAGroupSet given as the y argument to include additional graphical elements
Properties
cluster.method(object)Returns the option used as the cluster.method argument when calling geva.cluster.
Instances of this object always return 'quantiles'
Sub-slot accessors
classification.table(object) <- valueSets the data.frame with the qualitative contrasts of classification relevance
classification.table(object)Gets a data.frame with the qualitative contrasts of classification relevance
quantiles(object)Gets the unique quantile names
The GEVAQuantilesAdjusted class represents the results of a quantile detection analysis with adjusted assignments based on relationships with other GEVAGroupSet objects. For each probe/gene, there is a assigned quantile among the g defined quantiles.
This class inherits from GEVAQuantiles.
A GEVAQuantilesAdjusted object
groupingfactor (m elements, g levels), quantile assignment for each gene/probe
(Inherited from GEVAGroupSet)
scoresnumeric vector (m elements) with the assigned quantile scores for each gene/probe
(Inherited from GEVAGroupSet)
ftabledata.frame (m lines) with additional quantile assignment data
(Inherited from GEVAGroupSet)
centroidsnumeric SVTable (g lines) with the S and V centroid coordinates for each quantile
(Inherited from GEVAGroupSet)
offsetsnumeric SVTable (m lines) with the S and V coordinate offsets each gene/probe from its quantile centroid
(Inherited from GEVAGroupSet)
infolist of additional information
(Inherited from GEVAGroupSet)
svscoresnumeric SVTable (m lines) with individual partial scores for the assigned quantiles
(Inherited from GEVAQuantiles)
qareasizesnumeric SVTable (g lines) with the S and V sizes for each quantile
(Inherited from GEVAQuantiles)
qindexesinteger SVTable (g lines) representing the position index to each quantile, in terms of summary and variation
(Inherited from GEVAQuantiles)
qcountinteger attributes (SVIntAttribute) with the defined number of quantiles for the S and V axes
(Inherited from GEVAQuantiles)
qcutoffnumeric attributes (SVNumAttribute) with the initial quantile cutoff in S and V, starting from the point zero
(Inherited from GEVAQuantiles)
grouprelsTypedList of named factor elements representing external group relationships to the current quantiles
(See also the inherited methods from GEVAQuantiles and GEVAGroupSet)
The GEVAResults class contains the final results from GEVA analyses. It represents the results of multiple statistical approaches from summary/variation data, clustering, quantile detection, and factor analysis (if applicable).
A GEVAResults object
resultstabledata.frame (m lines) with classification results for the genes/probes
svdataGEVASummary used as input
quantdataGEVAQuantiles or GEVAQuantilesAdjusted with the final quantile assignments for the summarized data
factoringdata.frame (m lines) with detailed results for the factor analyses, such as p-values for each factor. If there was no factor analysis, this slot is NULL or empty
classiftabledata.frame used as reference for the final classification
infolist of supplementary information
Conversion and coercion
as.expression(x, gsummary, gquants, ...)Gets the expression that reproduces this GEVAResults object, including function parameters used by geva.finalize. The gsummary and gquants arguments are optional but can be specified to replace the internal GEVASummary and GEVAQuantiles, respectively
Dimension accessors
dim(x)Returns the dimensions from the resultstable slot
dimnames(x)Returns a list with the row and column names from the results.table slot.
Individual dimension names can also be accessed through rownames and colnames
length(x)Returns the number of rows in the resultstable slot
names(x)Returns the column names from the resultstable slot
Plotting
plot(x, y, ...)Draws a SV-plot that highlights the relevant points from adjusted quantiles
points(x, which, ..., classif)Draws the results points.
If which (character vector) is given, plots only the matching genes/probes.
If classif (character vector) is given, plots only points with the matching classification
Properties
x$name <- valueExtracts a column from the resultstable slot
x[i, j, ..., drop=TRUE]Extracts the contents from the resultstable slot
analysis.params(gobject)Returns a list of analysis parameters passed to geva.finalize or geva.quick to obtain this object
Sub-slot accessors
featureTable(object)Returns the features data.frame from the internal GEVAInput
head(x, ...)Returns the first lines of results.table(x)
inputdata(object)Returns the internal GEVAInput
inputvalues(object)Returns the values matrix from the internal GEVAInput
inputweights(object, normalized)Returns the weights matrix from the internal GEVAInput
levels(x)Returns the factors used in factor analysis, if present
The GEVASummary class represents the calculation results for summary and variation from a GEVAInput.
This class inherits from SVTable.
A GEVASummary object
svnumeric matrix composed by two columns: S (summary) and V (variation)
(Inherited from SVTable)
inputdataGEVAInput-class with the data input
sv.methodNames of the statistical methods used to summarize data
infolist with additional information
(See also the inherited methods from SVTable)
Conversion and coercion
as.expression(x, ginput, ...)Gets the expression that reproduces this GEVASummary object, including function parameters used by geva.summary. The ginput argument is optional but can be specified to replace the internal GEVAInput
as.matrix(x, ...)Equivalent to sv(x)
Grouping
groupsets(object) <- valueConverts this instance to GEVAGroupedSummary and sets the list of GEVAGroupSet objects.
Can be used with $<name> to specify the object name in the list.
If value is a GEVAGroupSet, inserts the element and sets the name based on the value call
groupsets(object)Gets the list of GEVAGroupSet objects attached to this instance. Only applicable for GEVAGroupedSummary objects
Plotting
plot(x, y, ...)Draws a SV-plot. The horizontal axis is for summary (S) and the vertical axis is for variation (V)
Properties
analysis.params(gobject)Returns a list of analysis parameters passed to geva.summarize to obtain this object
get.summary.method(x)Gets a character for the summarization method name
get.variation.method(x)Gets a character for the variation calculation method name
Sub-slot accessors
factors(object) <- valueSets the value to the factor slot in the internal GEVAInput
factors(object)Gets the factor defined in the factors slot in the internal GEVAInput
featureTable(object)Gets the data.frame from the ftable slot in the internal GEVAInput
infolist(object, field = NULL, ...)Gets the list from the info slot.
If recursive is TRUE, appends the contents from the info slot in the internal GEVAInput
inputvalues(object)Gets the matrix from the values slot in the internal GEVAInput
inputweights(object, normalized)Gets the matrix from the weights slot in the internal GEVAInput
This S4 class stores two character slots representing attribute fields for summary and variation. The SVAttribute class is abstract and must be instantiated as SVChrAttribute (for character), SVNumAttribute (for numeric), or SVIntAttribute (for integer).
S |
the summary value |
V |
the variation value |
A SVAttribute object
Seither character or numeric or integer of length one
Veither character or numeric or integer of length one
Alternative accessors
summary(object, ...)Returns the contents from S slot
sv(object)Returns the contents as a named vector
variation(object, ...)Returns the contents from S slot
Constructors
sv.data(object)For internal use. Returns the equivalent object
svattr(S, V)Creates a new SVAttribute
Conversion and coercion
as.character(x, ...)Converts this object to character
as.vector(x, ...)Converts this object to vector
Dimension accessors
dim(x)For internal use, always returns NULL
names(x)Returns the slot names (always c('S', 'V'))
Properties
x$name <- valueQueries the vector contents (equivalent to the indexer). Only accepts $S and $V
x[i, j, ..., drop=TRUE]Indexer to access the vector values. Only accepts 'S' or 'V' as i arguments
The slots S and V must be of the same class (either character, numeric, or integer).
The SVTable class stores a matrix composed by two columns: S (for summary) and V (for variation).
This class is inherited by GEVASummary.
A SVTable object
svmatrix composed by two columns: S (summary) and V (variation)
Alternative accessors
summary(object, ...)Returns the S column
sv.data(object)Equivalent to returning this object itself
variation(object, ...)Returns the V column
Constructor
svtable(S, V, row.names = NULL)Creates a SVTable from the vectors S and V
Conversion and coercion
as.data.frame(x, ...)Converts this object to data.frame
as.matrix(x, ...)Converts this object to matrix
as.SVTable.data.frame(x, row.names = rownames(x), ...)Converts a data.frame to a SVTable
as.SVTable.matrix(x, row.names = rownames(x), ...)Converts a matrix to a SVTable
as.SVTable(x, ...)Returns the same object
Dimension accessors
dimnames(x)Gets a list with the row and column names from the sv slot.
Individual dimension names can also be accessed through rownames and colnames
dim(x)Gets the dimensions from the sv slot
length(x)Returns the number of rows in the sv slot
names(x)Always returns c('S', 'V')
Formatting and evaluation
format(x, ...)Generic format implementation for SVTable
with(data, expr, ...)Generic with implementation for SVTable
Plotting
plot(x, y, ...)Draws a SV-plot. The horizontal axis is for summary (S) and the vertical axis is for variation (V)
points(x, ...)Draws the SV points in the plot
Subsetting
head(x, n = 6L, ...)Returns the first parts of the matrix contents
tail(x, n = 6L, ...)Returns the last parts of the matrix contents
Validation
is.na(x)Generic is.na implementation for SVTable
The matrix from sv slot can be numeric, character, or any other supported type by matrix. The same slot from GEVASummary, however, is always a numeric matrix.
## Creates a SV-table where: # - S has elements from 1 to 10; and # - V has elements from 10 to 1 svtab <- svtable(seq.int(1, 10), seq.int(10, 1))## Creates a SV-table where: # - S has elements from 1 to 10; and # - V has elements from 10 to 1 svtab <- svtable(seq.int(1, 10), seq.int(10, 1))
Extracts the genes with a relevant classification according to the GEVA results.
top.genes( gevaresults, classif = c("similar", "factor-dependent", "factor-specific"), which.spec = levels(gevaresults), add.cols = NULL, ..., names.only = FALSE )top.genes( gevaresults, classif = c("similar", "factor-dependent", "factor-specific"), which.spec = levels(gevaresults), add.cols = NULL, ..., names.only = FALSE )
gevaresults |
a |
classif |
|
which.spec |
|
add.cols |
|
... |
optional arguments (not used in this version) |
names.only |
|
If names.only is FALSE (the default), returns a subset of the resultstable slot (data.frame) from the gevaresults that includes only the filtered genes according to the function parameters.
Otherwise, if names.only is TRUE, returns only the row names (character vector) of this table subset.
## Basic usage with a random generated input ginput <- geva.ideal.example() # Generates a random input example gresults <- geva.quick(ginput) # Performs the entire analysis (default parameters) # Gets a table that includes all the top genes dtgenes <- top.genes(gresults) # Gets the top genes table head(dtgenes) # Prints the first results # Appends the "Symbol" column to the results table dtgenes <- top.genes(gresults, add.cols="Symbol") head(dtgenes) # Prints the first results # Appends all feature columns to the results table dtgenes <- top.genes(gresults, add.cols=names(featureTable(gresults))) head(dtgenes) # Prints the first results # Gets only the factor-specific genes dtgenes <- top.genes(gresults, "factor-specific") head(dtgenes) # Prints the first results # Gets only the factor-specific genes for "Cond_1" factor (if any) dtgenes <- top.genes(gresults, "factor-specific", "Cond_1") head(dtgenes) # Prints the first results## Basic usage with a random generated input ginput <- geva.ideal.example() # Generates a random input example gresults <- geva.quick(ginput) # Performs the entire analysis (default parameters) # Gets a table that includes all the top genes dtgenes <- top.genes(gresults) # Gets the top genes table head(dtgenes) # Prints the first results # Appends the "Symbol" column to the results table dtgenes <- top.genes(gresults, add.cols="Symbol") head(dtgenes) # Prints the first results # Appends all feature columns to the results table dtgenes <- top.genes(gresults, add.cols=names(featureTable(gresults))) head(dtgenes) # Prints the first results # Gets only the factor-specific genes dtgenes <- top.genes(gresults, "factor-specific") head(dtgenes) # Prints the first results # Gets only the factor-specific genes for "Cond_1" factor (if any) dtgenes <- top.genes(gresults, "factor-specific", "Cond_1") head(dtgenes) # Prints the first results
List containing elements of the same class or inheritance.
A TypedList object
.Datalist of internal contents. Elements must match or inherit a common class
(Inherited from list)
elem.classcharacter representing the class related to the elements
Constructors
typed.list(..., elem.class = NA_character_)Creates a TypedList from the elements in ... derived from the class elem.class
Conversion and coercion
as.list(x, ...)Converts this object to list
as.typed.list.list(x, elem.class = NA_character_)Converts a list to a TypedList if its elements inherit the same type
as.typed.list(x, elem.class = NA_character_)Coerces a TypedList to support the inherited class indicated by elem.class
as.typed.list.vector(x, elem.class = NA_character_)Converts a vector to a TypedList
Properties
x[i, j, ...] <- valueSets a value to this list. The value argument must be compatible to the current list type
## Creates a TypeList that stores list-derived objects tpls = typed.list(A=list(1L:5L), B=data.frame(v1=LETTERS[1L:10L]), elem.class = 'list') # Note: The 'elem.class' above is optional, since the # class is automatically detected from the first argument## Creates a TypeList that stores list-derived objects tpls = typed.list(A=list(1L:5L), B=data.frame(v1=LETTERS[1L:10L]), elem.class = 'list') # Note: The 'elem.class' above is optional, since the # class is automatically detected from the first argument