vignettes/6. autocatalytic-networks.Rmd
6. autocatalytic-networks.RmdlifesimulatoR
This tutorial introduces autocatalytic networks. In origin-of-life research, autocatalysis is important because it offers a possible route from ordinary chemistry to self-sustaining chemical organization.
A catalyst is something that helps a reaction occur more easily without being consumed by the reaction. An autocatalytic system is one in which the products of reactions help produce more of themselves, either directly or indirectly. In a network, molecule A might help produce molecule B, molecule B might help produce molecule C, and molecule C might help produce molecule A. Together, the system can become self-reinforcing.
This idea matters because early life may not have begun with a single perfect self-replicator. It may have involved networks of mutually reinforcing chemical reactions. Life is not only about individual molecules; life also depends on systems of interaction. Modern cells contain large networks of reactions, enzymes, metabolites, and feedback loops. Autocatalytic network models provide a simplified way to explore how self-maintaining organization could emerge before modern biology.
An autocatalytic network is a system in which molecules help produce other molecules in the same system. Instead of one molecule simply copying itself, a group of molecules collectively supports its own production.
This shifts attention from individual molecules to systems of interactions. In such systems, persistence may emerge from the network as a whole.
This is different from a simple replication-first model, where the main focus is on a molecule that can copy itself.
lifesimulatoR includes a simplified autocatalytic
network model. The main function is
autocatalytic_network().
network <- autocatalytic_network(
n_types = 8,
steps = 50,
catalysis_probability = 0.2,
seed = 123
)
names(network)## [1] "time_series" "catalysis_matrix"
The function creates a toy system with a number of molecular types and probabilistic catalytic relationships between them.
The returned object includes two main components:
time_series: a tibble showing molecular abundances over
time.catalysis_matrix: a matrix showing which molecular
types catalyze others.
head(network$time_series)## # A tibble: 6 × 3
## step molecule abundance
## <int> <chr> <dbl>
## 1 0 M1 0.833
## 2 0 M2 0.504
## 3 0 M3 0.829
## 4 0 M4 0.831
## 5 0 M5 0.815
## 6 0 M6 0.496
network$catalysis_matrix## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE
## [2,] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [3,] FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE
## [4,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [5,] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## [6,] TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE
## [7,] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [8,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
The main arguments are:
n_types: the number of molecular types in the
system.steps: the number of simulation steps.catalysis_probability: the probability that one
molecule type catalyzes another.seed: an optional random seed for reproducibility.The catalysis_probability parameter is especially
important. If this value is very low, few catalytic connections form. If
it is higher, the network becomes more connected.
In origin-of-life theory, the emergence of a sufficiently connected catalytic network may be a key transition.
A set of isolated molecules may react occasionally, but it may not sustain itself. A connected network can create feedback. Once feedback exists, some molecular systems may persist longer, grow faster, or resist disappearance.
The simplified question is:
At what point does a random chemical network become organized enough to support self-sustaining dynamics?
This is not only a chemistry question. It is also a systems question. The structure of the network matters.
The time_series output can be used to track how the
system changes over time.
head(network$time_series)## # A tibble: 6 × 3
## step molecule abundance
## <int> <chr> <dbl>
## 1 0 M1 0.833
## 2 0 M2 0.504
## 3 0 M3 0.829
## 4 0 M4 0.831
## 5 0 M5 0.815
## 6 0 M6 0.496
summary(network$time_series)## step molecule abundance
## Min. : 0 Length:408 Min. : 0.4959
## 1st Qu.:12 Class :character 1st Qu.: 3.8842
## Median :25 Mode :character Median : 16.7127
## Mean :25 Mean : 48.5247
## 3rd Qu.:38 3rd Qu.: 65.6887
## Max. :50 Max. :366.1732
Depending on the simulation settings, the time series may show whether some molecule types become more abundant than others.
We can use plot_simulation() to visualize the abundance
of one molecule type through time.
m1 <- subset(network$time_series, molecule == "M1")
plot_simulation(m1, x = "step", y = "abundance")
This plot shows how the abundance of molecule M1 changes
through the simulation.
It is often useful to look at the final simulation step.
final_step <- max(network$time_series$step)
final_abundances <- subset(network$time_series, step == final_step)
final_abundances## # A tibble: 8 × 3
## step molecule abundance
## <int> <chr> <dbl>
## 1 50 M1 208.
## 2 50 M2 266.
## 3 50 M3 199.
## 4 50 M4 208.
## 5 50 M5 148.
## 6 50 M6 271.
## 7 50 M7 354.
## 8 50 M8 366.
This output shows which molecule types are most abundant at the end of the simulation.
We can compare two networks: one with sparse catalytic connections and one with more frequent catalytic connections.
sparse_network <- autocatalytic_network(
n_types = 8,
steps = 50,
catalysis_probability = 0.05,
seed = 123
)
dense_network <- autocatalytic_network(
n_types = 8,
steps = 50,
catalysis_probability = 0.4,
seed = 123
)
head(sparse_network$time_series)## # A tibble: 6 × 3
## step molecule abundance
## <int> <chr> <dbl>
## 1 0 M1 0.833
## 2 0 M2 0.504
## 3 0 M3 0.829
## 4 0 M4 0.831
## 5 0 M5 0.815
## 6 0 M6 0.496
head(dense_network$time_series)## # A tibble: 6 × 3
## step molecule abundance
## <int> <chr> <dbl>
## 1 0 M1 0.833
## 2 0 M2 0.504
## 3 0 M3 0.829
## 4 0 M4 0.831
## 5 0 M5 0.815
## 6 0 M6 0.496
In a sparse network, many molecular types may have few or no catalytic relationships. In a denser network, feedback loops are more likely. This can make the system more dynamic and potentially more self-reinforcing.
sparse_final <- subset(
sparse_network$time_series,
step == max(sparse_network$time_series$step)
)
dense_final <- subset(
dense_network$time_series,
step == max(dense_network$time_series$step)
)
sparse_final## # A tibble: 8 × 3
## step molecule abundance
## <int> <chr> <dbl>
## 1 50 M1 6.12
## 2 50 M2 1.77
## 3 50 M3 6.13
## 4 50 M4 1.89
## 5 50 M5 14.0
## 6 50 M6 1.77
## 7 50 M7 14.0
## 8 50 M8 1.83
dense_final## # A tibble: 8 × 3
## step molecule abundance
## <int> <chr> <dbl>
## 1 50 M1 76522.
## 2 50 M2 66124.
## 3 50 M3 48509.
## 4 50 M4 156282.
## 5 50 M5 234561.
## 6 50 M6 225042.
## 7 50 M7 194458.
## 8 50 M8 221803.
This comparison helps illustrate how changing network connectivity may affect final molecular abundance.
A larger system may allow more possible catalytic relationships.
larger_network <- autocatalytic_network(
n_types = 15,
steps = 50,
catalysis_probability = 0.2,
seed = 123
)
head(larger_network$time_series)## # A tibble: 6 × 3
## step molecule abundance
## <int> <chr> <dbl>
## 1 0 M1 0.456
## 2 0 M2 0.530
## 3 0 M3 0.604
## 4 0 M4 0.728
## 5 0 M5 0.924
## 6 0 M6 0.657
As n_types increases, the number of possible
relationships grows. This can make the network more complex, even if the
probability of each individual catalytic relationship stays the
same.
This model can be used to introduce the following ideas:
The key teaching point is that an origin-of-life model does not always need to begin with a single molecule that copies itself perfectly. It can also begin with interacting systems that collectively sustain themselves.
Autocatalytic networks are relevant to several origin-of-life hypotheses. Some theories suggest that life began not with a single self-replicating molecule, but with a network of mutually supporting reactions. This is often associated with metabolism-first or network-first perspectives.
In this view, the earliest life-like systems may have been chemical networks that could maintain themselves, process energy, and generate more components of the same network. Genetic replication may have become dominant later.
This contrasts with RNA World models, where the focus is often on molecules capable of both storing information and catalyzing reactions.
These views are not necessarily mutually exclusive. A mature origin-of-life theory may need to explain how networks, compartments, energy flows, and information-carrying molecules became coupled.
This simplified model includes:
It does not include:
For teaching purposes, this limitation is useful. It allows students to focus on the network concept before adding chemical detail.
The key idea is that autocatalytic networks shift the focus from individual molecules to systems of interaction. A molecule may not be impressive by itself, but a network of molecules can produce feedback, persistence, and organization.
This is one reason autocatalysis is such an important idea in origin-of-life research. It provides a possible bridge between random chemistry and the organized, self-maintaining systems seen in living organisms.
catalysis_probability.n_types and observe whether larger systems
behave differently.