Skip to content

Commit 0f6cab6

Browse files
committed
SI updates
1 parent 1f8d805 commit 0f6cab6

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

ext/CatalystStructuralIdentifiabilityExtension.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module CatalystStructuralIdentifiabilityExtension
22

33
# Fetch packages.
44
using Catalyst
5+
import DataStructures.OrderedDict
56
import StructuralIdentifiability as SI
67

78
# Creates and exports hc_steady_states function.

ext/CatalystStructuralIdentifiabilityExtension/structural_identifiability_extension.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,8 @@ function make_measured_quantities(
189189
rs::ReactionSystem, measured_quantities::Vector{T}, known_p::Vector{S},
190190
conseqs; ignore_no_measured_warn = false) where {T, S}
191191
# Warning if the user didn't give any measured quantities.
192-
if ignore_no_measured_warn || isempty(measured_quantities)
193-
@warn "No measured quantity provided to the `measured_quantities` argument, any further identifiability analysis will likely fail. You can disable this warning by setting `ignore_no_measured_warn=true`."
192+
if !ignore_no_measured_warn && isempty(measured_quantities)
193+
@warn "No measured quantity provided to the `measured_quantities` argument, any further identifiability analysis will likely fail. You can disable this warning by setting `ignore_no_measured_warn = true`."
194194
end
195195

196196
# Appends the known parameters to the measured_quantities vector. Converts any Symbols to symbolics.
@@ -220,9 +220,9 @@ end
220220
# Sorts the output according to their input order (defaults to the `[unknowns; parameters]` order).
221221
function make_output(out, funcs_to_check, conseqs)
222222
funcs_to_check = vector_subs(funcs_to_check, conseqs)
223-
out = Dict(zip(vector_subs(keys(out), conseqs), values(out)))
223+
out = OrderedDict(zip(vector_subs(keys(out), conseqs), values(out)))
224224
sortdict = Dict(ftc => i for (i, ftc) in enumerate(funcs_to_check))
225-
return sort(out; by = x -> sortdict[x])
225+
return sort!(out; by = x -> sortdict[x])
226226
end
227227

228228
# For a vector of expressions and a conservation law, substitutes the law into every equation.

test/extensions/structural_identifiability.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,13 @@ let
178178
end
179179
@unpack M, E, P, pₑ, pₚ, pₘ = goodwind_oscillator_catalyst
180180
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [:M])
181-
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; known_p = [:pₑ])
181+
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; known_p = [:pₑ], ignore_no_measured_warn = true)
182182
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [:M], known_p = [:pₑ])
183183
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [:M, :E], known_p = [:pₑ])
184184
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [:M], known_p = [:pₑ, :pₚ])
185185
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [:M, :E], known_p = [:pₑ, :pₚ])
186186
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [M])
187-
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; known_p = [pₑ])
187+
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; known_p = [pₑ], ignore_no_measured_warn = true)
188188
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [M], known_p = [pₑ])
189189
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [M, E], known_p = [pₑ])
190190
si_catalyst_ode = make_si_ode(goodwind_oscillator_catalyst; measured_quantities = [M], known_p = [pₑ, pₚ])
@@ -196,7 +196,7 @@ let
196196
# Tests using model.component style (have to make system complete first).
197197
gw_osc_complt = complete(goodwind_oscillator_catalyst)
198198
@test make_si_ode(gw_osc_complt; measured_quantities = [gw_osc_complt.M]) isa ODE
199-
@test make_si_ode(gw_osc_complt; known_p = [gw_osc_complt.pₑ]) isa ODE
199+
@test make_si_ode(gw_osc_complt; known_p = [gw_osc_complt.pₑ], ignore_no_measured_warn = true) isa ODE
200200
@test make_si_ode(gw_osc_complt; measured_quantities = [gw_osc_complt.M], known_p = [gw_osc_complt.pₑ]) isa ODE
201201
@test make_si_ode(gw_osc_complt; measured_quantities = [gw_osc_complt.M, gw_osc_complt.E], known_p = [gw_osc_complt.pₑ]) isa ODE
202202
@test make_si_ode(gw_osc_complt; measured_quantities = [gw_osc_complt.M], known_p = [gw_osc_complt.pₑ, gw_osc_complt.pₚ]) isa ODE
@@ -288,7 +288,7 @@ let
288288
b, A0 --> 2A2
289289
c, A0 --> A1 + A2
290290
end
291-
id_report = assess_identifiability(rs, measured_quantities = [:A0, :A1, :A2])
291+
id_report = assess_identifiability(rs; measured_quantities = [:A0, :A1, :A2], loglevel)
292292
@test sym_dict(id_report) == Dict(
293293
:A0 => :globally,
294294
:A1 => :globally,
@@ -358,6 +358,6 @@ let
358358

359359
# Computes bifurcation diagram.
360360
@test_throws Exception assess_identifiability(incomplete_network; measured_quantities, loglevel)
361-
@test_throws Exception assess_local_identifiability(incomplete_network; measured_quantities, loglevels)
361+
@test_throws Exception assess_local_identifiability(incomplete_network; measured_quantities, loglevel)
362362
@test_throws Exception find_identifiable_functions(incomplete_network; measured_quantities, loglevel)
363363
end

0 commit comments

Comments
 (0)