Skip to content

Commit f52b3a9

Browse files
authored
Update HISTORY.md
1 parent 21378a0 commit f52b3a9

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

HISTORY.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,34 @@
11
# Breaking updates and feature summaries across releases
22

33
## Catalyst unreleased (master branch)
4+
- Added the ability to use symbolic stoichiometry expressions via the DSL. This should now work
5+
```julia
6+
rn = @reaction_network rs begin
7+
t*k, (α+k+B)*A --> B
8+
1.0, α*A + 2*B --> k*C + α*D
9+
end k α
10+
```
11+
Here Catalyst will try to preserve the order of symbols within an expression, taking the leftmost as the species and
12+
everything multiplying that species as stoichiometry. For example, we can interpret the above reaction as `S1 A --> S2 b`
13+
where `S1 = (α+k+B)` is the stoichiometry of the reactant `A` and `1` is the stoichiometry of the reactant `B`. For
14+
```julia
15+
rn = @reaction_network rs begin
16+
1.0, 2X*(Y + Z) --> XYZ
17+
end
18+
```
19+
all of `X`, `Y` and `Z` will be registered as species, with substrates `(Y,Z)` having associated stoichiometries of
20+
`(2X,2X)`. As for rate expressions, any symbols that appear and are not defined as parameters will be declared to be species.
21+
22+
In contrast, when declaring reactions
23+
```julia
24+
rx = @reaction t*k, (k+α)*A --> B
25+
```
26+
will work, with every symbol declared a parameter except the leftmost symbol in the reaction line. So
27+
```julia
28+
rx = @reaction 1.0, 2X*(Y + Z) --> XYZ
29+
```
30+
will make `X` a parameter and `Y`, `Z` and `XYZ` species.
31+
- Symbolic stoichiometry supports interpolation of expressions.
432

533
## Catalyst 10.7
634
- Added the ability to use symbolic variables, parameters and expressions for

0 commit comments

Comments
 (0)