make_sigma {graphsim} | R Documentation |
Generate Sigma (\Sigma
) Matrix
Description
Compute the Sigma (\Sigma
) matrix from an igraph
structure
or pre-computed matrix. These are compatible with rmvnorm
and
generate_expression
.
By default data is generated with a mean of 0 and standard deviation of 1 for
each gene (with correlations between derived from the graph structure).
Thus where the Sigma (\Sigma
) matrix has diagonals of 1 (for the variance of each gene)
then the symmetric non-diagonal terms (for covariance) determine the correlations
between each gene in the output from generate_expression
.
Usage
make_sigma_mat_adjmat(mat, state = NULL, cor = 0.8, sd = 1)
make_sigma_mat_comm(mat, state = NULL, cor = 0.8, sd = 1)
make_sigma_mat_laplacian(mat, state = NULL, cor = 0.8, sd = 1)
make_sigma_mat_graph(
graph,
state = NULL,
cor = 0.8,
sd = 1,
comm = FALSE,
laplacian = FALSE,
directed = FALSE
)
make_sigma_mat_dist_adjmat(
mat,
state = NULL,
cor = 0.8,
sd = 1,
absolute = FALSE
)
make_sigma_mat_dist_graph(
graph,
state = NULL,
cor = 0.8,
sd = 1,
absolute = FALSE
)
Arguments
mat |
precomputed adjacency, laplacian, commonlink, or scaled distance matrix (generated by |
state |
numeric vector. Vector of length E(graph). Sign used to calculate
state matrix, may be an integer state or inferred directly from expected correlations
for each edge. May be applied a scalar across all edges or as a vector for each edge
respectively. May also be entered as text for "activating" or "inhibiting" or as
integers for activating (0,1) or inhibiting (-1,2). Compatible with inputs for
|
cor |
numeric. Simulated maximum correlation/covariance of two adjacent nodes. Default to 0.8. |
sd |
standard deviations of each gene. Defaults to 1. May be entered as a scalar applying to all genes or a vector with a separate value for each. |
graph |
An |
comm |
logical whether a common link matrix is used to compute sigma. Defaults to FALSE (adjacency matrix). |
laplacian |
logical whether a Laplacian matrix is used to compute sigma. Defaults to FALSE (adjacency matrix). |
directed |
logical. Whether directed information is passed to the distance matrix. |
absolute |
logical. Whether distances are scaled as the absolute difference from the diameter (maximum possible). Defaults to TRUE. The alternative is to calculate a relative difference from the diameter for a geometric decay in distance. |
Value
a numeric covariance matrix of values in the range [-1, 1]
Author(s)
Tom Kelly tom.kelly@riken.jp
See Also
See also generate_expression
for computing the simulated data,
make_distance
for computing distance from a graph object,
and
make_state
for resolving inhibiting states.
See also plot_directed
for plotting graphs or
heatmap.2
for plotting matrices.
See also make_laplacian
, make_commonlink
,
or make_adjmatrix
for computing input matrices.
See also igraph
for handling graph objects.
Other graphsim functions:
generate_expression()
,
make_adjmatrix
,
make_commonlink
,
make_distance
,
make_laplacian
,
make_state
,
plot_directed()
Other generate simulated expression functions:
generate_expression()
,
make_distance
,
make_state
Examples
# construct a synthetic graph module
library("igraph")
graph_test_edges <- rbind(c("A", "B"), c("B", "C"), c("B", "D"))
graph_test <- graph.edgelist(graph_test_edges, directed = TRUE)
# compute sigma (\eqn{\Sigma}) matrix for toy example
sigma_matrix <- make_sigma_mat_graph(graph_test, cor = 0.8)
sigma_matrix
# compute sigma (\eqn{\Sigma}) matrix from adjacency matrix for toy example
adjacency_matrix <- make_adjmatrix_graph(graph_test)
sigma_matrix <- make_sigma_mat_adjmat(adjacency_matrix, cor = 0.8)
sigma_matrix
# compute sigma (\eqn{\Sigma}) matrix from shared edges for toy example
common_link_matrix <- make_commonlink_graph(graph_test)
sigma_matrix <- make_sigma_mat_comm(common_link_matrix, cor = 0.8)
sigma_matrix
# compute sigma (\eqn{\Sigma}) matrix from Laplacian for toy example
laplacian_matrix <- make_laplacian_graph(graph_test)
sigma_matrix <- make_sigma_mat_laplacian(laplacian_matrix, cor = 0.8)
sigma_matrix
# compute sigma (\eqn{\Sigma}) matrix from distance matrix for toy example
distance_matrix <- make_distance_graph(graph_test, absolute = FALSE)
sigma_matrix <- make_sigma_mat_dist_adjmat(distance_matrix, cor = 0.8)
sigma_matrix
# compute sigma (\eqn{\Sigma}) matrix from geometric distance directly from toy example graph
sigma_matrix <- make_sigma_mat_dist_graph(graph_test, cor = 0.8)
sigma_matrix
# compute sigma (\eqn{\Sigma}) matrix from absolute distance directly from toy example graph
sigma_matrix <- make_sigma_mat_dist_graph(graph_test, cor = 0.8, absolute = TRUE)
sigma_matrix
# compute sigma (\eqn{\Sigma}) matrix from geometric distance with sd = 2
sigma_matrix <- make_sigma_mat_dist_graph(graph_test, cor = 0.8, sd = 2)
sigma_matrix
# construct a synthetic graph network
graph_structure_edges <- rbind(c("A", "C"), c("B", "C"), c("C", "D"), c("D", "E"),
c("D", "F"), c("F", "G"), c("F", "I"), c("H", "I"))
graph_structure <- graph.edgelist(graph_structure_edges, directed = TRUE)
# compute sigma (\eqn{\Sigma}) matrix from geometric distance directly from synthetic graph network
sigma_matrix_graph_structure <- make_sigma_mat_dist_graph(graph_structure,
cor = 0.8, absolute = FALSE)
sigma_matrix_graph_structure
# visualise matrix
library("gplots")
heatmap.2(sigma_matrix_graph_structure, scale = "none", trace = "none",
col = colorpanel(50, "white", "red"))
# compute sigma (\eqn{\Sigma}) matrix from geometric distance directly from
# synthetic graph network with inhibitions
edge_state <- c(1, 1, -1, 1, 1, 1, 1, -1)
# pass edge state as a parameter
sigma_matrix_graph_structure_inhib <- make_sigma_mat_dist_graph(graph_structure,
state = edge_state,
cor = 0.8,
absolute = FALSE)
sigma_matrix_graph_structure_inhib
# visualise matrix
library("gplots")
heatmap.2(sigma_matrix_graph_structure_inhib, scale = "none", trace = "none",
col = colorpanel(50, "blue", "white", "red"))
# compute sigma (\eqn{\Sigma}) matrix from geometric distance directly from
# synthetic graph network with inhibitions
E(graph_structure)$state <- c(1, 1, -1, 1, 1, 1, 1, -1)
# pass edge state as a graph attribute
sigma_matrix_graph_structure_inhib <- make_sigma_mat_dist_graph(graph_structure,
cor = 0.8,
absolute = FALSE)
sigma_matrix_graph_structure_inhib
# visualise matrix
library("gplots")
heatmap.2(sigma_matrix_graph_structure_inhib, scale = "none", trace = "none",
col = colorpanel(50, "blue", "white", "red"))
# import graph from package for reactome pathway
# TGF-\eqn{\Beta} receptor signaling activates SMADs (R-HSA-2173789)
TGFBeta_Smad_graph <- identity(TGFBeta_Smad_graph)
# compute sigma (\eqn{\Sigma}) matrix from geometric distance directly from TGF-\eqn{\Beta} pathway
TFGBeta_Smad_state <- E(TGFBeta_Smad_graph)$state
table(TFGBeta_Smad_state)
# states are edge attributes
sigma_matrix_TFGBeta_Smad_inhib <- make_sigma_mat_dist_graph(TGFBeta_Smad_graph,
cor = 0.8,
absolute = FALSE)
# visualise matrix
library("gplots")
heatmap.2(sigma_matrix_TFGBeta_Smad_inhib, scale = "none", trace = "none",
col = colorpanel(50, "blue", "white", "red"))
# compute sigma (\eqn{\Sigma}) matrix from geometric distance directly from TGF-\eqn{\Beta} pathway
TGFBeta_Smad_graph <- remove.edge.attribute(TGFBeta_Smad_graph, "state")
# compute with states removed (all negative)
sigma_matrix_TFGBeta_Smad <- make_sigma_mat_dist_graph(TGFBeta_Smad_graph,
state = -1,
cor = 0.8,
absolute = FALSE)
# visualise matrix
library("gplots")
heatmap.2(sigma_matrix_TFGBeta_Smad, scale = "none", trace = "none",
col = colorpanel(50, "white", "red"))
# compute with states removed (all positive)
sigma_matrix_TFGBeta_Smad <- make_sigma_mat_dist_graph(TGFBeta_Smad_graph,
state = 1,
cor = 0.8,
absolute = FALSE)
# visualise matrix
library("gplots")
heatmap.2(sigma_matrix_TFGBeta_Smad, scale = "none", trace = "none",
col = colorpanel(50, "white", "red"))
#restore edge attributes
TGFBeta_Smad_graph <- set_edge_attr(TGFBeta_Smad_graph, "state",
value = TFGBeta_Smad_state)
TFGBeta_Smad_state <- E(TGFBeta_Smad_graph)$state
# states are edge attributes
sigma_matrix_TFGBeta_Smad_inhib <- make_sigma_mat_dist_graph(TGFBeta_Smad_graph,
cor = 0.8,
absolute = FALSE)
# visualise matrix
library("gplots")
heatmap.2(sigma_matrix_TFGBeta_Smad_inhib, scale = "none", trace = "none",
col = colorpanel(50, "blue", "white", "red"))