c-sensitivity
bcdaniels opened this issue · 1 comments
I haven't looked into this carefully, but Santosh Manicka recommends c-sensitivity:
I also wanted to bring to your attention a generalized measure of sensitivity known as “c-sensitivity” (that was worked out by another group) that can be used to analytically compute the Derrida map on which criticality is based: https://www.sciencedirect.com/science/article/pii/S0167278916303621 It’s actually straight-forward to implement it if you are interested in adding it to your package.
Description
Compute sensitivity based on non-unit perturbations, c
. The current implementation of SensitivityMixin.sensitivity
and SensitivityMixin.average_sensitivity
.
Proposed API
Modify the SensitivityMixin
methods sensitivity
and average_sensitivity
to accept a distance parameter c
.
class SensitivityMixin(object):
def sensitivity(state, c=1, transitions=None):
pass
def average_sensitivity(c=1, transitions=None):
pass
Note: This will require modification of the
BooleanNetwork.hamming_neighbors
method to accept a hamming distance.class BooleanNetwork(...): def hamming_neighbors(state, c=1): pass
Example Usage
from neet.boolean.examples import s_pombe
s_pombe.sensitivity([0, 0, 1, 0, 0, 1, 0, 0, 1], c=2)
s_pombe.average_sensitivity(c=2)
References
Kadelka C, Kuipers J, Laubenbacher R. The influence of canalization on the robustness of Boolean networks. Physica D. 2017;353-354: 39–47. doi:10.1016/j.physd.2017.05.002.