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, CatalystNetworkAnalysisThen, 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
endFinally 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.