This vignette demonstrates the different dynamic processes topologies (e.g. bifurcating and cyclic). Note that, for the sake of reducing runtime for generating this vignette, the simulations are ran with reduced settings. Check out the vignette on tweaking parameters for information on how the different parameters are changed.

You can find a full list of backbones using ?list_backbones. This vignette will showcase each of them individually.

Linear

set.seed(1)

backbone <- backbone_linear()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Bifurcating

set.seed(2)

backbone <- backbone_bifurcating()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Bifurcating converging

set.seed(3)

backbone <- backbone_bifurcating_converging()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Bifurcating cycle

set.seed(4)

backbone <- backbone_bifurcating_cycle()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Bifurcating loop

set.seed(5)

backbone <- backbone_bifurcating_loop()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Binary tree

set.seed(6)

backbone <- backbone_binary_tree(
  num_modifications = 2
)

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Branching

set.seed(7)

backbone <- backbone_branching(
  num_modifications = 2,
  min_degree = 3,
  max_degree = 3
)

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
#> Warning in .generate_cells_predict_state(model): Simulation does not contain all
#> gold standard edges. This simulation likely suffers from bad kinetics; choose a
#> different seed and rerun.
out$plot

Consecutive bifurcating

set.seed(8)

backbone <- backbone_consecutive_bifurcating()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
#> Warning in .generate_cells_predict_state(model): Simulation does not contain all
#> gold standard edges. This simulation likely suffers from bad kinetics; choose a
#> different seed and rerun.
out$plot

Trifurcating

set.seed(9)

backbone <- backbone_trifurcating()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Converging

set.seed(10)

backbone <- backbone_converging()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Cycle

set.seed(11)

backbone <- backbone_cycle()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Disconnected

set.seed(12)

backbone <- backbone_disconnected()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  simulation_params = simulation_default(census_interval = 10, ssa_algorithm = ssa_etl(tau = 300 / 3600)),
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
#> Warning in .generate_cells_predict_state(model): Simulation does not contain all
#> gold standard edges. This simulation likely suffers from bad kinetics; choose a
#> different seed and rerun.
out$plot

Linear simple

set.seed(13)

backbone <- backbone_linear_simple()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot

Cycle simple

set.seed(14)

backbone <- backbone_cycle_simple()

init <- initialise_model(
  backbone = backbone,
  num_cells = 500,
  num_tfs = 100,
  num_targets = 0,
  num_hks = 0,
  verbose = FALSE
)
out <- generate_dataset(init, make_plots = TRUE)
out$plot