# >>>>>>>>>>>>>>>> Load network and generate random initial states <<<<<<<<<<<<<<<<<
# Load the example network
data(lac_operon_net)
# Function to generate distinct colors for plot
generate_colors <- function(n) {
hues <- seq(0, 1, length.out = n + 1)[-1]
s <- 0.8
v <- 0.6
colors <- hsv(h = hues, s = s, v = v)
return(colors)
}
# Generate distinct colors
col_vec <- generate_colors(length(lac_operon_net$genes))
col_vec <- col_vec[sample(1:length(col_vec))]
# Define plot function
plot_node_activities <- function(node_activities, xlab, ylab) {
old_par <- par(no.readonly = TRUE)
layout(matrix(c(1, 2), nrow = 1), width = c(4, 1))
par(mar = c(5, 4, 4, 0))
matplot(1:nrow(node_activities), node_activities, type = "l", frame = TRUE, lwd = 2,
lty = 1, xlab = xlab, ylab = ylab, col = col_vec)
par(mar = c(5, 0, 4, 2))
plot(c(0, 1), type = "n", axes = FALSE, xlab = "")
legend("center", colnames(node_activities), col = col_vec,
cex = 0.5, fill = col_vec)
layout(matrix(1))
par(old_par)
}
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Method: BNp <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# Define the parameters for the BNp method
params <- rep(0.05, length(lac_operon_net$genes))
# Get node activities after simulation using the BNp method
node_act <- calc_node_activities(lac_operon_net, method = "BNp", params = params,
steps = 100, repeats = 10000)
# Plot node activities
plot_node_activities(node_act, "Time-step", "Node activity")
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Method: SDDS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# Define the parameters for the SDDS method
props <- rep(0.95, length(lac_operon_net$genes))
params <- list(p00 = props, p01 = props, p10 = props, p11 = props)
# Get node activities after simulation using the SDDS method
node_act <- calc_node_activities(lac_operon_net, method = "SDDS", params = params,
steps = 100, repeats = 10000)
# Plot node activities
plot_node_activities(node_act, "Time-step", "Node activity")
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Method: PEW <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# Extract edges from the network
edges <- extract_edges(lac_operon_net)
# Define the parameters for the PEW method
p_on <- runif(nrow(edges))
p_off <- runif(nrow(edges))
params <- list(p_on = p_on, p_off = p_off)
# Get node activities after simulation using the PEW method
node_act <- calc_node_activities(lac_operon_net, method = "PEW", params = params,
steps = 100, repeats = 10000)
# Plot node activities
plot_node_activities(node_act, "Time-step", "Node activity")
Run the code above in your browser using DataLab