You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Return the negative of the graph Laplacian of the reaction network. The ODE system of a chemical reaction network can be factorized as ``\frac{dx}{dt} = Y A_k Φ(x)``, where ``Y`` is the [`complexstoichmat`](@ref) and ``A_k`` is the negative of the graph Laplacian, and ``Φ`` is the [`massactionvector`](@ref). ``A_k`` is an n-by-n matrix, where n is the number of complexes, where ``A_{ij} = k_{ij}`` if a reaction exists between the two complexes and 0 otherwise.
199
+
Returns a symbolic matrix by default, but will return a numerical matrix if parameter values are specified via pmap.
200
+
201
+
**Warning**: Unlike other Catalyst functions, the `laplacianmat` function will return a `Matrix{Num}` in the symbolic case. This is to allow easier computation of the matrix decomposition of the ODEs, and to ensure that multiplying the sparse form of the matrix will work.
Return an r×c matrix ``K`` such that, if complex ``j`` is the substrate complex of reaction ``i``, then ``K_{ij} = k``, the rate constant for this reaction. Mostly a helper function for the network Laplacian, [`laplacianmat`](@ref). Has the useful property that ``\frac{dx}{dt} = S*K*Φ(x)``, where S is the [`netstoichmat`](@ref) or net stoichiometry matrix and ``Φ(x)`` is the [`massactionvector`](@ref).
216
+
Returns a symbolic matrix by default, but will return a numerical matrix if rate constants are specified as a `Tuple`, `Vector`, or `Dict` of symbol-value pairs via `pmap`.
217
+
218
+
**Warning**: Unlike other Catalyst functions, the `fluxmat` function will return a `Matrix{Num}` in the symbolic case. This is to allow easier computation of the matrix decomposition of the ODEs, and to ensure that multiplying the sparse form of the matrix will work.
functionfluxmat(::Type{SparseMatrixCSC{T, Int}}, rcmap, rates) where T
239
+
Is = Int[]
240
+
Js = Int[]
241
+
Vs = T[]
242
+
for (i, (complex, rxs)) inenumerate(rcmap)
243
+
for (rx, dir) in rxs
244
+
dir ==-1&&begin
245
+
push!(Is, rx)
246
+
push!(Js, i)
247
+
push!(Vs, rates[rx])
248
+
end
249
+
end
250
+
end
251
+
Z =sparse(Is, Js, Vs, length(rates), length(rcmap))
252
+
end
253
+
254
+
functionfluxmat(::Type{Matrix{T}}, rcmap, rates) where T
255
+
nr =length(rates)
256
+
nc =length(rcmap)
257
+
K =zeros(T, nr, nc)
258
+
for (i, (complex, rxs)) inenumerate(rcmap)
259
+
for (rx, dir) in rxs
260
+
dir ==-1&& (K[rx, i] = rates[rx])
261
+
end
262
+
end
263
+
K
264
+
end
265
+
266
+
functionfluxmat(rn::ReactionSystem, pmap::Vector)
267
+
pdict =Dict(pmap)
268
+
fluxmat(rn, pdict)
269
+
end
270
+
271
+
functionfluxmat(rn::ReactionSystem, pmap::Tuple)
272
+
pdict =Dict(pmap)
273
+
fluxmat(rn, pdict)
274
+
end
275
+
276
+
# Helper to substitute values into a (vector of) symbolic expressions. The syms are the symbols to substitute and the symexprs are the expressions to substitute into.
Return the vector whose entries correspond to the "mass action products" of each complex. For example, given the complex A + B, the corresponding entry of the vector would be ``A*B``, and for the complex 2X + Y, the corresponding entry would be ``X^2*Y``. The ODE system of a chemical reaction network can be factorized as ``\frac{dx}{dt} = Y A_k Φ(x)``, where ``Y`` is the [`complexstoichmat`](@ref) and ``A_k`` is the negative of the [`laplacianmat`](@ref). This utility returns ``Φ(x)``.
288
+
Returns a symbolic vector by default, but will return a numerical vector if species concentrations are specified as a tuple, vector, or dictionary via scmap.
289
+
If the `combinatoric_ratelaws` option is set, will include prefactors for that (see [introduction to Catalyst's rate laws](@ref introduction_to_catalyst_ratelaws). Will default to the default for the system.
290
+
291
+
**Warning**: Unlike other Catalyst functions, the `massactionvector` function will return a `Vector{Num}` in the symbolic case. This is to allow easier computation of the matrix decomposition of the ODEs.
error("The supplied ReactionSystem has reactions that are not ismassaction. Testing for being complex balanced is currently only supported for pure mass action networks.")
927
+
error("The supplied ReactionSystem has reactions that are not ismassaction. Testing for being detailed balanced is currently only supported for pure mass action networks.")
0 commit comments