CatalystNetworkAnalysis is a package providing analysis utilities for reaction networks defined in Catalyst.jl. CatalystNetworkAnalysis provides the ability to determine dynamic properties of reaction networks, such as the ability to admit multiple steady states, the existence of species with concentrations robust to perturbation, persistence, and more. The algorithms implemented in the package extract information from the graph structure of ReactionSystems
or the algebraic structure of their polynomial differential equations. For a full set of dynamical properties of networks that this package can shed light on, along with citations for the algorithms implemented, please see the [documentation].
To use this package, first install it and Catalyst from the Julia package manager:
pkg> add Catalyst, CatalystNetworkAnalysis
Then, import a desired reaction network for analysis using tools like ReactionNetworkImporters or create a chemical reaction network, e.g. by using Catalyst's DSL. Note that the network must be of Catalyst's ReactionSystem
.
# The Horn-Jackson network
rn = @reaction_network begin
k1, 3A --> 2A + B
k2, 2A + B --> 3B
k1, 3B --> 2A + B
k2, 2A + B --> 3A
end
Finally we can pass the reaction network into CatalystNetworkAnalysis's utilities. The main function is a networksummary
that collates dynamical information computed for the network at-a-glance.
networksummary(rn)
Some functions will optionally take initial conditions u0
or parameter maps p
, which should be specified as Dict
, Vector{Pair}
, or Tuple{Pair}
.
p = [:k1 => 1., k2 => 0.15]
networksummary(rn; p = p)
Catalyst and CatalystNetworkAnalysis developers are active on the Julia Discourse and the Julia Slack channels #sciml-bridged and #sciml-sysbio. For bugs or feature requests, open an issue.