|
1 | 1 | # Breaking updates and feature summaries across releases
|
2 | 2 |
|
3 | 3 | ## 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. |
4 | 32 |
|
5 | 33 | ## Catalyst 10.7
|
6 | 34 | - Added the ability to use symbolic variables, parameters and expressions for
|
|
0 commit comments