Skip to content

Commit e1958d7

Browse files
authored
Merge pull request #544 from isaacsas/add_networkprop_test
add new network tests
2 parents 68af4bd + fdba35b commit e1958d7

File tree

2 files changed

+130
-3
lines changed

2 files changed

+130
-3
lines changed

test/network_properties.jl

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
#! format: off
2+
3+
using Catalyst, Test
4+
5+
MAPK = @reaction_network MAPK begin
6+
(k₁, k₂),KKK + E1 <--> KKKE1
7+
k₃, KKKE1 --> KKK_ + E1
8+
(k₄, k₅), KKK_ + E2 <--> KKKE2
9+
k₆, KKKE2 --> KKK + E2
10+
(k₇, k₈), KK + KKK_ <--> KK_KKK_
11+
k₉, KK_KKK_ --> KKP + KKK_
12+
(k₁₀, k₁₁), KKP + KKK_ <--> KKPKKK_
13+
k₁₂, KKPKKK_ --> KKPP + KKK_
14+
(k₁₃, k₁₄), KKP + KKPase <--> KKPKKPase
15+
k₁₅, KKPPKKPase --> KKP + KKPase
16+
k₁₆,KKPKKPase --> KK + KKPase
17+
(k₁₇, k₁₈), KKPP + KKPase <--> KKPPKKPase
18+
(k₁₉, k₂₀), KKPP + K <--> KKPPK
19+
k₂₁, KKPPK --> KKPP + KP
20+
(k₂₂, k₂₃), KKPP + KP <--> KPKKPP
21+
k₂₄, KPKKPP --> KPP + KKPP
22+
(k₂₅, k₂₆), KP + KPase <--> KPKPase
23+
k₂₇, KKPPKPase --> KP + KPase
24+
k₂₈, KPKPase --> K + KPase
25+
(k₂₉, k₃₀), KPP + KPase <--> KKPPKPase
26+
end k₁ k₂ k₃ k₄ k₅ k₆ k₇ k₈ k₉ k₁₀ k₁₁ k₁₂ k₁₃ k₁₄ k₁₅ k₁₆ k₁₇ k₁₈ k₁₉ k₂₀ k₂₁ k₂₂ k₂₃ k₂₄ k₂₅ k₂₆ k₂₇ k₂₈ k₂₉ k₃₀
27+
rcs, B = reactioncomplexes(MAPK)
28+
@test length(rcs) == 26
29+
num_lcs = length(linkageclasses(MAPK))
30+
@test num_lcs == 6
31+
δ = deficiency(MAPK)
32+
@test δ == 5
33+
@test all(==(0), linkagedeficiencies(MAPK))
34+
@test isreversible(MAPK) == false
35+
@test isweaklyreversible(MAPK, subnetworks(MAPK)) == false
36+
cls = conservationlaws(MAPK)
37+
@test Catalyst.get_networkproperties(MAPK).rank == 15
38+
# i=0;
39+
# for lcs in linkageclasses(MAPK)
40+
# i=i+1
41+
# println("Linkage no ",i)
42+
# for comps in rcs[lcs]
43+
# if comps.speciesids ≠ Int64[]
44+
# println(sum(species(rn2)[comps.speciesids]))
45+
# else
46+
# println("0")
47+
# end
48+
# end
49+
# println("-----------")
50+
# end
51+
52+
53+
#########################
54+
rn2 = @reaction_network begin
55+
(k₁, k₂), E + S1 <--> ES1
56+
(k₃, k₄), E + S2 <--> ES2
57+
(k₅, k₆), S2 + ES1 <--> ES1S2
58+
(k₆, k₇), ES1S2 --> S1 + ES2
59+
k₈, ES1S2 --> E+P
60+
(k₉, k₁₀), S1 <--> 0
61+
(k₁₀, k₁₁), 0 <--> S2
62+
k₁₂, P --> 0
63+
end k₁ k₂ k₃ k₄ k₅ k₆ k₇ k₈ k₉ k₁₀ k₁₁ k₁₂
64+
65+
rcs, B = reactioncomplexes(rn2)
66+
@test length(rcs) == 12
67+
@test length(linkageclasses(rn2)) == 4
68+
@test deficiency(rn2) == 2
69+
@test all(==(0), linkagedeficiencies(rn2))
70+
@test isreversible(rn2) == false
71+
@test isweaklyreversible(rn2, subnetworks(rn2)) == false
72+
cls = conservationlaws(rn2)
73+
@test Catalyst.get_networkproperties(rn2).rank == 6
74+
# i=0;
75+
# for lcs in linkageclasses(rn2)
76+
# i=i+1
77+
# println("Linkage no ",i)
78+
# for comps in rcs[lcs]
79+
# if comps.speciesids ≠ Int64[]
80+
# println(sum(species(rn2)[comps.speciesids]))
81+
# else
82+
# println("0")
83+
# end
84+
# end
85+
# println("-----------")
86+
# end
87+
88+
89+
######################
90+
91+
rn3 = @reaction_network begin
92+
(k₁, k₂), A11 <--> 0
93+
(k₃, k₄), A11 <--> A13
94+
(k₅, k₆), 0 <--> A12
95+
(k₆, k₇), 0 <--> A2
96+
k₈, A10 --> 0
97+
(k₉, k₁₀), A12 <--> A6
98+
(k₁₁, k₁₂), A6<--> A4
99+
(k₁₃, k₁₄), A4 <--> A3
100+
k₁₅, A8 --> A9
101+
(k₁₆,k₁₇), A8 <--> A3 + A11
102+
k₁₈, A9 --> A3 + A10
103+
k₁₉, A2+A4 --> A2 + A6
104+
end k₁ k₂ k₃ k₄ k₅ k₆ k₇ k₈ k₉ k₁₀ k₁₁ k₁₂ k₁₃ k₁₄ k₁₅ k₁₆ k₁₇ k₁₈ k₁₉
105+
rcs, B = reactioncomplexes(rn3)
106+
@test length(rcs) == 15
107+
@test length(linkageclasses(rn3)) == 3
108+
@test deficiency(rn3) == 2
109+
@test all(==(0), linkagedeficiencies(rn3))
110+
@test isreversible(rn3) == false
111+
@test isweaklyreversible(rn3, subnetworks(rn3)) == false
112+
cls = conservationlaws(rn3)
113+
@test Catalyst.get_networkproperties(rn3).rank == 10
114+
# i=0;
115+
# for lcs in linkageclasses(rn3)
116+
# i=i+1
117+
# println("Linkage no ",i)
118+
# for comps in rcs[lcs]
119+
# if comps.speciesids ≠ Int64[]
120+
# println(sum(species(rn3)[comps.speciesids]))
121+
# else
122+
# println("0")
123+
# end
124+
# end
125+
# println("-----------")
126+
# end

test/runtests.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ using SafeTestsets
1515
@time @safetestset "Custom Functions" begin include("custom_functions.jl") end
1616
@time @safetestset "Model Modification" begin include("model_modification.jl") end
1717
@time @safetestset "Symbolic Stoichiometry" begin include("symbolic_stoich.jl") end
18+
@time @safetestset "Conservation Laws" begin include("conslaws.jl") end
19+
@time @safetestset "Network Properties" begin include("network_properties.jl") end
1820

1921
# Test api
2022
@time @safetestset "API" begin include("api.jl") end
@@ -31,18 +33,17 @@ using SafeTestsets
3133
# Tests related to solving Stochastic Differential Equations.
3234
@time @safetestset "SDE System Solving" begin include("solve_SDEs.jl") end
3335

34-
# Tests related to solvingJump Systems.
36+
# Tests related to solving Jump Systems.
3537
@time @safetestset "Jump System Solving" begin include("solve_jumps.jl") end
3638

3739
# Miscellaneous tests
3840
#@time @safetestset "Basic Plotting" begin include("plotting.jl") end
3941
@time @safetestset "Latexify" begin include("latexify.jl") end
4042

41-
# disable on Macs as can't install GraphViz via jll
43+
# disable on Macs as can't install GraphViz via jll
4244
if !Sys.isapple()
4345
@time @safetestset "Graphs" begin include("graphs.jl") end
4446
end
4547

46-
@time @safetestset "Conservation Laws" begin include("conslaws.jl") end
4748
@time @safetestset "Units" begin include("units.jl") end
4849
end # @time

0 commit comments

Comments
 (0)