Reference
Contents
Index
GraphDynamicalSystems.QN
GraphDynamicalSystems.QualitativeNetwork
DynamicalSystemsBase.get_state
DynamicalSystemsBase.get_state
DynamicalSystemsBase.set_state!
GraphDynamicalSystems.async_qn_step!
GraphDynamicalSystems.build_qn_grammar
GraphDynamicalSystems.create_qn_system
GraphDynamicalSystems.entities
GraphDynamicalSystems.get_domain
GraphDynamicalSystems.get_domain
GraphDynamicalSystems.get_graph
GraphDynamicalSystems.get_n_entities
GraphDynamicalSystems.get_schedule
GraphDynamicalSystems.interpret
GraphDynamicalSystems.limit_change
GraphDynamicalSystems.sample_qualitative_network
GraphDynamicalSystems.sync_qn_step!
GraphDynamicalSystems.target_functions
GraphDynamicalSystems.update_functions_to_interaction_graph
GraphDynamicalSystems.QN
— TypeShorthand for QualitativeNetwork
.
GraphDynamicalSystems.QualitativeNetwork
— Typestruct QualitativeNetwork{N, S} <: GraphDynamicalSystem{N, S}
A qualitative network model as described in "Qualitative networks: a symbolic approach to analyze biological signaling networks".
This implementation encompasses both the synchronous and asynchonous cases. In the paper, it is assumed that the synchronous case is used. As such, the default constructor uses a synchronous schedule.
graph
: Graph containing the topology and target functions of the networkstate
: State of the network
Systems that include the model semantics wrap around this struct with an ArbitrarySteppable
from DynamicalSystems
. See create_qn_system
for an example.
DynamicalSystemsBase.get_state
— Methodget_state(gds::GraphDynamicalSystem) -> Any
Get the state of the GDS.
DynamicalSystemsBase.get_state
— Methodget_state(qn::QualitativeNetwork, component) -> Any
DynamicalSystemsBase.set_state!
— Methodset_state!(
qn::QualitativeNetwork,
entity::Symbol,
value::Integer
) -> Integer
GraphDynamicalSystems.async_qn_step!
— Methodasync_qn_step!(qn::QualitativeNetwork) -> Integer
GraphDynamicalSystems.build_qn_grammar
— Functionbuild_qn_grammar(
entity_names;
...
) -> HerbGrammar.ContextSensitiveGrammar
build_qn_grammar(
entity_names,
constants;
unique_constr
) -> HerbGrammar.ContextSensitiveGrammar
Builds a grammar based on the base QN grammar adding entity_names
and constants
to the grammar.
The following constraints are currently included
- removing symmetry due to commutativity of
+
/*
/min
/max
- forbidding same arguments of two argument functions
- forbidding constant arguments to 2-argument functions
- forbidding constant arguments to 1-argument functions
- using each of the entities only once per function
- forbidding adding or subtracting zero
- forbidding multiplication and division by 1 or 0
- forcing the first operator inside
ceil
andfloor
to be÷
- forbidding
max(□, X)
andmin(□, X)
where X is either the max or min
constant in the grammar.
GraphDynamicalSystems.create_qn_system
— Methodcreate_qn_system(
qn::QualitativeNetwork
) -> Union{DynamicalSystemsBase.ArbitrarySteppable{U, M, typeof(GraphDynamicalSystems.async_qn_step!), typeof(GraphDynamicalSystems.reset_model!), typeof(GraphDynamicalSystems.extract_state), typeof(GraphDynamicalSystems.extract_parameters), P, DynamicalSystemsBase.var"#22#24"{typeof(GraphDynamicalSystems.reset_model!)}} where {U<:(StaticArraysCore.MVector{N, Int64} where N), M<:QualitativeNetwork, P<:MetaGraphsNext.MetaGraph}, DynamicalSystemsBase.ArbitrarySteppable{U, M, typeof(GraphDynamicalSystems.sync_qn_step!), typeof(GraphDynamicalSystems.reset_model!), typeof(GraphDynamicalSystems.extract_state), typeof(GraphDynamicalSystems.extract_parameters), P, DynamicalSystemsBase.var"#22#24"{typeof(GraphDynamicalSystems.reset_model!)}} where {U<:(StaticArraysCore.MVector{N, Int64} where N), M<:QualitativeNetwork, P<:MetaGraphsNext.MetaGraph}}
Construct an asynchronous QualitativeNetwork
system using the async_qn_step!
as a step function.
GraphDynamicalSystems.entities
— Methodentities(gds::GraphDynamicalSystem) -> Any
List all entities in gds
.
GraphDynamicalSystems.get_domain
— Methodget_domain(
qn::QualitativeNetwork,
entity_label::Symbol
) -> Any
Get the domain of the entity entity_label
in qn
.
GraphDynamicalSystems.get_domain
— Methodget_domain(qn::QualitativeNetwork) -> Any
Get all of the domains of the entities in qn
.
GraphDynamicalSystems.get_graph
— Methodget_graph(gds::GraphDynamicalSystem) -> Any
Get the underlying graph of the GDS.
GraphDynamicalSystems.get_n_entities
— Methodget_n_entities(_::GraphDynamicalSystem{N, S}) -> Any
Get the number of entities N
in the GDS.
GraphDynamicalSystems.get_schedule
— Methodget_schedule(_::GraphDynamicalSystem{N, S}) -> Any
Get the schedule for the GDS.
GraphDynamicalSystems.interpret
— Methodinterpret(
e::Union{Int64, Expr, Symbol},
qn::QualitativeNetwork
) -> Any
Interpret target functions from a QualitativeNetwork
.
GraphDynamicalSystems.limit_change
— Methodlimit_change(
prev_value::Integer,
next_value::Integer,
min_level::Integer,
max_level::Integer
) -> Any
Returns the limited value of next_value
which is at most 1 different than prev_value
.
It is also never negative, or larger than N
.
GraphDynamicalSystems.sample_qualitative_network
— Methodsample_qualitative_network(
entities::AbstractVector{Symbol},
domains::AbstractVector{UnitRange{Int64}},
max_eq_depth::Int64;
schedule
) -> QualitativeNetwork
GraphDynamicalSystems.sync_qn_step!
— Methodsync_qn_step!(qn::QualitativeNetwork)
GraphDynamicalSystems.target_functions
— Methodtarget_functions(qn::QualitativeNetwork) -> Dict
GraphDynamicalSystems.update_functions_to_interaction_graph
— Methodupdate_functions_to_interaction_graph(
entities::AbstractVector{Symbol},
update_functions::AbstractVector{Union{Expr, Integer, Symbol}},
domains::AbstractVector{UnitRange{Int64}};
schedule
) -> MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, Symbol, GraphDynamicalSystems.Entity{Int64}, Nothing, DataType, MetaGraphsNext.var"#11#13", Float64}