Skip to content

Commit

Permalink
Update api.jl
Browse files Browse the repository at this point in the history
adding some more tests to see whether Z*B == netstoichmat(rn)'
  • Loading branch information
yewalenikhil65 committed Jul 29, 2021
1 parent 8d711af commit afee383
Showing 1 changed file with 189 additions and 0 deletions.
189 changes: 189 additions & 0 deletions test/api.jl
Original file line number Diff line number Diff line change
Expand Up @@ -234,4 +234,193 @@ B = [-1 1 0 0 0 0;
@test all(Z .== complex_stoich_matrix(rns[6]))
@test all(B .== complex_incidence_matrix(rns[6]))
@test all.== complex_outgoing_matrix(rns[6]))


reaction_networks_standard = Vector{ReactionSystem}(undef,10)
reaction_networks_hill = Vector{ReactionSystem}(undef,10)
reaction_networks_real = Vector{ReactionSystem}(undef,3)
### some more networks to test whether Z*B == netstoichmat(rn)' or not. ###
reaction_networks_standard[1] = @reaction_network begin
(p1,p2,p3), ∅ (X1,X2,X3)
(k1,k2), X2 X1 + 2X3
(k3,k4), X1 X3
(d1,d2,d3), (X1,X2,X3)
end p1 p2 p3 k1 k2 k3 k4 d1 d2 d3

reaction_networks_standard[2] = @reaction_network begin
mmr(X2,v1,K1), ∅ X1
mm(X1,v2,K2), ∅ X2
d, X1+X2
end v1 K1 v2 K2 d

reaction_networks_standard[3] = @reaction_network begin
mm(X2,v1,K1), ∅ X1
mm(X3,v2,K2), ∅ X2
(k1,k2), X1 X3
(k3,k4), X3 + X2 X4 + X1
d, (X1,X2,X3,X4)
end v1 K1 v2 K2 k1 k2 k3 k4 d

reaction_networks_standard[4] = @reaction_network begin
mmr(X4,v1,K1), ∅ X1
mmr(X1,v2,K2), ∅ X2
mmr(X2,v3,K3), ∅ X3
mmr(X3,v4,K4), ∅ X4
(d1,d2,d3,d4), (X1,X2,X3,X4)
end v1 K1 v2 K2 v3 K3 v4 K4 d1 d2 d3 d4

reaction_networks_standard[5] = @reaction_network begin
p, ∅ X1
(k1,k2), X1 X2
(k3,k4), X2 X3
(k5,k6), X3 X4
d, X4
end p k1 k2 k3 k4 k5 k6 d

reaction_networks_standard[6] = @reaction_network begin
(p1,p2), ∅ (X1,X2)
(k1,k2), 2X1 X3
(k3,k4), X2 + X3 4X4
(k5,k6), X4 + X1 2X3
d, (X1,X2,X3,X4)
end p1 p2 k1 k2 k3 k4 k5 k6 d

reaction_networks_standard[7] = @reaction_network begin
(p1,p2,p3), ∅ (X1,X2,X3)
(k1,k2), X1 + 2X2 X4
(mm(X3,v1,K1),k3), X4 X5
(d1,d2,d3,d4,d5), (X1,X2,X3,X4,X5)
end p1 p2 p3 k1 k2 k3 v1 K1 d1 d2 d3 d4 d5

reaction_networks_standard[8] = @reaction_network begin
p, ∅ 2X1
k1, X1 X2
(k2, k3), X2 X3
d, X3
end p k1 k2 k3 d

reaction_networks_standard[9] = @reaction_network begin
(p1,p2,p3), ∅ (X1,X2,X3)
(d1,d2,d3), (X1,X2,X3)
(k1,k2), X1 + X2 X3
(k3,k4), X3 X4
(k5,k6), X4 X1 + X2
end p1 p2 p3 d1 d2 d3 k1 k2 k3 k4 k5 k6

reaction_networks_standard[10] = @reaction_network begin
p, ∅ X1
(k1,k2), X1 X2
(k3,k4), X2 X3
(k5,k6), X3 X4
(k7,k8), X4 X5
d, X5
end p k1 k2 k3 k4 k5 k6 k7 k8 d


### Network with hill functions ###.

reaction_networks_hill[1] = @reaction_network begin
hillr(X2,v1,K1,n1), ∅ X1
hillr(X1,v2,K2,n2), ∅ X2
(d1,d2), (X1,X2)
end v1 v2 K1 K2 n1 n2 d1 d2

reaction_networks_hill[2] = @reaction_network begin
hillr(X3,v1,K1,n1), ∅ X1
hillr(X1,v2,K2,n2), ∅ X2
hillr(X2,v3,K3,n3), ∅ X3
(d1,d2,d3), (X1,X2,X3)
end v1 v2 v3 K1 K2 K3 n1 n2 n3 d1 d2 d3

reaction_networks_hill[3] = @reaction_network begin
hillr(X2,v1,K1,n1), ∅ X1
hill(X1,v2,K2,n2), ∅ X2
d, X1+X2
end v1 K1 n1 v2 K2 n2 d

reaction_networks_hill[4] = @reaction_network begin
hillr(X2,v1,K1,n1)*hillr(X3,v1,K1,n1), ∅ X1
hillr(X1,v2,K2,n2)*hillr(X3,v2,K2,n2), ∅ X2
hillr(X1,v3,K3,n3)*hillr(X2,v3,K3,n3), ∅ X3
(d1,d2,d3), (X1,X2,X3)
end v1 K1 n1 v2 K2 n2 v3 K3 n3 d1 d2 d3

reaction_networks_hill[5] = @reaction_network begin
hillr(X2,v1,K1,n1)*hill(X4,v1,K1,n1), ∅ X1
hill(X5,v2,K2,n2), ∅ X2
hill(X3,v3,K3,n3), ∅ X3
hillr(X1,v4,K4,n4), ∅ X4
hill(X2,v5,K5,n5), ∅ X5
(k1,k2), X2 X1 + 2X4
(k3,k4), X4 X3
(k5,k6), 3X5 + X1 X2
(d1,d2,d3,d4,d5), (X1,X2,X3,X4,X5)
end v1 K1 n1 v2 K2 n2 v3 K3 n3 v4 K4 n4 v5 K5 n5 k1 k2 k3 k4 k5 k6 d1 d2 d3 d4 d5

reaction_networks_hill[6] = @reaction_network begin
v/10+hill(X1,v,K,n), ∅ X1
d, X1
end v K n d

reaction_networks_hill[7] = @reaction_network begin
v/10 + hill(X1,v,K,n), ∅ X1 + X2
(k1,k2), X1 + X2 X3
k3, X3 X1
d, (X1,X2,X3)
end v K n k1 k2 k3 d

reaction_networks_hill[8] = @reaction_network begin
hill(X2,v1,K1,n1), ∅ X1
hillr(X1,v2,K2,n2)*hill(X3,v3,K3,n3), ∅ X2
hill(X2,v4,K4,n4), ∅ X3
(d1,d2,d3), (X1,X2,X3)
end v1 K1 n1 v2 K2 n2 v3 K3 n3 v4 K4 n4 d1 d2 d3

reaction_networks_hill[9] = @reaction_network begin
hill(X1,v1,K1,n1)*hillr(X1,v2,K2,n2), ∅ X1
d, X1
end v1 K1 n1 v2 K2 n2 d

reaction_networks_hill[10] = @reaction_network begin
hill(X2,v1,K1,n1), ∅ X1
hillr(X4,v2,K2,n2), ∅ X2
(k1,k2), 2X1 + X2 X3
(k3,k4), 2X2 + X3 X4
(k5,k6), X1 + X2 + X3 + X4 X5 + X6
(d1,d2), (X5,X6)
end v1 K1 n1 v2 K2 n2 k1 k2 k3 k4 k5 k6 d1 d2


reaction_networks_real[1] = @reaction_network begin
v0 + hill(σ,v,K,n), ∅ +A)
deg, (σ,A,Aσ)
(kB,kD), A + σ
S*kC, Aσ σ
end v0 v K n kD kB kC deg S;

# A cell cycle model
reaction_networks_real[2] = @reaction_network begin
k1, 0 --> Y
k2p, Y --> 0
k2pp*P, Y --> 0
(k3p+k3pp*A)/(J3+Po), Po-->P
(k4*m)/(J4+P), Y + P --> Y + Po
end k1 k2p k2pp k3p k3pp A J3 k4 m J4
#@add_constraint cc_network P+Po=1
#reaction_networks_real[3] = cc_network

# A bistable switch
reaction_networks_real[3] = @reaction_network begin
d, (X,Y)
hillr(Y,v1,K1,n1), ∅ X
hillr(X,v2,K2,n2), ∅ Y
end d v1 K1 n1 v2 K2 n2

myrn = [reaction_networks_standard;reaction_networks_hill;reaction_networks_real]
for i in 1:length(myrn)
Z = complex_stoich_matrix(myrn[i])
B = complex_incidence_matrix(myrn[i])
@test all(Z*B .== netstoichmat(myrn[i])')
end


0 comments on commit afee383

Please sign in to comment.