Network analysis algorithms
Hi all, this summer I'm planning on adding a lot of graph/network analysis features relevant for chemical reaction networks to Catalyst. A smattering of things this might include:
- Detecting concordance in a reaction network
- Detecting persistence in a reaction network
- Detecting autocatalysis, particularly self-replicable siphons, in a reaction network (and perhaps other things related to programmability)
- Detecting bistability in a reaction network
- Detecting absolute concentration robustness
- Adding a "network summary" that tells you about relevant features at-a-glance
Let me know if people have other suggestions - I would like to focus on functionality that would be useful for practicing chemists/systems biologists, but am not super familiar with this literature. My focus over the next few weeks will be adding algorithms for different properties, rather than the summary/UI side, but if people have suggestions for the latter I'm also happy to hear them.
These look great to me!
Methodology for the persistence check:
- Detect the set of minimal siphons in the reaction network, following Shiu et al., 2009
- Check necessary and sufficient conditions for persistence outlined in Angeli et al., 2007: a network is persistent iff it is consistent (S-matrix has right null eigenvector), conservative (S-matrix has left null eigenvector), and all of its siphons are not critical (i.e. they contain the support of a conservation law)