Skip to content

Commit 895292c

Browse files
committed
Merge branch 'master' into change_equation_inference
2 parents f94fe04 + 4754287 commit 895292c

File tree

80 files changed

+8342
-4887
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+8342
-4887
lines changed

.github/workflows/DocsCleanup.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Doc Preview Cleanup
2+
3+
on:
4+
pull_request:
5+
types: [closed]
6+
7+
# Ensure that only one "Doc Preview Cleanup" workflow is force pushing at a time
8+
concurrency:
9+
group: doc-preview-cleanup
10+
cancel-in-progress: false
11+
12+
jobs:
13+
doc-preview-cleanup:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: write
17+
steps:
18+
- name: Checkout gh-pages branch
19+
uses: actions/checkout@v4
20+
with:
21+
ref: gh-pages
22+
- name: Delete preview and history + push changes
23+
run: |
24+
if [ -d "${preview_dir}" ]; then
25+
git config user.name "Documenter.jl"
26+
git config user.email "[email protected]"
27+
git rm -rf "${preview_dir}"
28+
git commit -m "delete preview"
29+
git branch gh-pages-new $(echo "delete history" | git commit-tree HEAD^{tree})
30+
git push --force origin gh-pages-new:gh-pages
31+
fi
32+
env:
33+
preview_dir: previews/PR${{ github.event.number }}

.github/workflows/Documentation.yml

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ permissions:
1212
contents: read
1313

1414
concurrency:
15-
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
16-
cancel-in-progress: true
15+
group: docs-${{ github.ref }} # Group name for concurrency control
16+
cancel-in-progress: true # Ensures only one doc build runs at a time for each branch/ref, regardless of the trigger
1717

1818
jobs:
1919
build:
@@ -22,11 +22,21 @@ jobs:
2222
- name: Checkout
2323
uses: actions/checkout@v4
2424

25-
# Install binary dependencies needed for GLMakie to run in a headless environment
26-
# xvfb: Creates a virtual frame buffer to simulate a display
27-
# libgl1, mesa-utils, freeglut3-dev, xorg-dev, libxrandr-dev, libxinerama-dev, libxcursor-dev, libxi-dev, libxext-dev: Required libraries for OpenGL rendering
28-
- name: Install binary dependencies
29-
run: sudo apt-get update && sudo apt-get install -y xvfb libgl1 mesa-utils freeglut3-dev xorg-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev
25+
# # Install all required X11 and OpenGL libraries
26+
# # These are needed for GLMakie to work in a headless environment
27+
# - name: Install binary dependencies
28+
# run: |
29+
# sudo apt-get update
30+
# sudo apt-get install -y xvfb libgl1 mesa-utils freeglut3-dev xorg-dev \
31+
# libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev
32+
33+
# # Start Xvfb explicitly instead of using xvfb-run
34+
# # This gives us more control and visibility into the virtual display setup
35+
# - name: Setup virtual framebuffer
36+
# run: |
37+
# # Start Xvfb and wait for it to be ready
38+
# /usr/bin/Xvfb :99 -screen 0 1024x768x24
39+
# echo "DISPLAY=:99" >> $GITHUB_ENV
3040

3141
- name: Install Julia
3242
uses: julia-actions/setup-julia@latest
@@ -38,22 +48,22 @@ jobs:
3848
with:
3949
cache-name: docs-cache
4050

41-
# Install Julia package dependencies for the documentation project
51+
# Install dependencies with the virtual display already running
4252
- name: Install dependencies
43-
run: >
44-
DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs/ -e 'ENV["JULIA_PKG_SERVER"] = ""; using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
53+
run: |
54+
julia --project=docs/ -e '
55+
ENV["JULIA_PKG_SERVER"] = "";
56+
using Pkg;
57+
Pkg.develop(PackageSpec(path=pwd()));
58+
Pkg.instantiate()'
4559
46-
# Build and deploy the documentation using xvfb to simulate a display for GLMakie
47-
# xvfb-run: Runs Julia with a virtual display to support OpenGL rendering
48-
# --server-args: Configures the virtual display resolution and color depth
60+
# Build documentation with the stable virtual display
4961
- name: Build and deploy
5062
env:
51-
GKSwstype: "100" # Specifies the workstation type for GR framework rendering, https://discourse.julialang.org/t/generation-of-documentation-fails-qt-qpa-xcb-could-not-connect-to-display/60988/7
52-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Required for permissions to deploy documentation
53-
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key
54-
run: >
55-
DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24'
56-
julia --project=docs --color=yes --code-coverage=user docs/make.jl
63+
GKSwstype: "100"
64+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65+
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
66+
run: xvfb-run julia --project=docs --color=yes --code-coverage=user docs/make.jl
5767

5868
- name: Upload site as artifact
5969
uses: actions/upload-artifact@v4
@@ -66,9 +76,8 @@ jobs:
6676

6777
- uses: julia-actions/julia-processcoverage@v1
6878

69-
- uses: codecov/codecov-action@v4
79+
- uses: codecov/codecov-action@v5
7080
with:
71-
file: lcov.info
81+
files: lcov.info
7282
token: ${{ secrets.CODECOV_TOKEN }}
7383
fail_ci_if_error: false
74-

HISTORY.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,34 @@
2525
StructuralIdentifiability has with Julia 1.10.5 and 1.11.
2626
- A tutorial on making interactive plot displays using Makie has been added.
2727
- The BifurcationKit extension has been updated to v.4.
28-
28+
- There is a new DSL option `@require_declaration` that will turn off automatic inferring for species, parameters, and variables in the DSL. For example, the following will now error:
29+
```julia
30+
rn = @reaction_network begin
31+
@require_declaration
32+
(k1, k2), A <--> B
33+
end
34+
```
35+
When this flag is set, all symbolics must be explicitly declared.
36+
```julia
37+
rn = @reaction_network begin
38+
@species A(t) B(t)
39+
@parameters k1 k2
40+
@require_declaration
41+
(k1, k2), A <--> B
42+
end
43+
```
44+
- Catalyst's network visualization capability has shifted from using Graphviz to [GraphMakie.jl](https://graph.makie.org/stable/). To use this functionality, load the GraphMakie extension by installing `Catalyst` and `GraphMakie`, along with a Makie backend like `GLMakie`. There are two new methods for visualizing graphs: `plot_network` and `plot_complexes`, which respectively display the species-reaction graph and complex graph.
45+
```julia
46+
using Catalyst, GraphMakie, GLMakie
47+
brusselator = @reaction_network begin
48+
A, ∅ --> X
49+
1, 2X + Y --> 3X
50+
B, X --> Y
51+
1, X -->
52+
end
53+
plot_network(brusselator)
54+
```
55+
2956
## Catalyst 14.4.1
3057
- Support for user-defined functions on the RHS when providing coupled equations
3158
for CRNs using the @equations macro. For example, the following now works:

Project.toml

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,13 @@ BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
3232
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
3333
GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2"
3434
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
35+
NetworkLayout = "46757867-2c16-5918-afeb-47bfcb05e46a"
3536
# StructuralIdentifiability = "220ca800-aa68-49bb-acd8-6037fa93a544"
3637

3738
[extensions]
3839
CatalystBifurcationKitExtension = "BifurcationKit"
3940
CatalystCairoMakieExtension = "CairoMakie"
40-
CatalystGraphMakieExtension = "GraphMakie"
41+
CatalystGraphMakieExtension = ["GraphMakie", "NetworkLayout"]
4142
CatalystHomotopyContinuationExtension = "HomotopyContinuation"
4243
# CatalystStructuralIdentifiabilityExtension = "StructuralIdentifiability"
4344

@@ -46,7 +47,7 @@ BifurcationKit = "0.4.4"
4647
CairoMakie = "0.12"
4748
Combinatorics = "1.0.2"
4849
DataStructures = "0.18"
49-
DiffEqBase = "< 6.159.0"
50+
DiffEqBase = "6.159.0"
5051
DocStringExtensions = "0.8, 0.9"
5152
DynamicPolynomials = "0.5, 0.6"
5253
DynamicQuantities = "0.13.2, 1"
@@ -57,27 +58,31 @@ JumpProcesses = "9.13.2"
5758
LaTeXStrings = "1.3.0"
5859
Latexify = "0.16.5"
5960
MacroTools = "0.5.5"
60-
ModelingToolkit = "9.32"
61+
ModelingToolkit = "< 9.60"
62+
NetworkLayout = "0.4.7"
6163
Parameters = "0.12"
6264
Reexport = "0.2, 1.0"
6365
Requires = "1.0"
6466
RuntimeGeneratedFunctions = "0.5.12"
65-
SciMLBase = "< 2.57.2"
67+
SciMLBase = "2.57.2"
6668
Setfield = "1"
6769
# StructuralIdentifiability = "0.5.8"
68-
SymbolicUtils = "2.1.2, 3.3.0"
69-
Symbolics = "5.30.1, 6"
70+
SymbolicUtils = "3.8.1"
71+
Symbolics = "6.22"
7072
Unitful = "1.12.4"
7173
julia = "1.10"
7274

7375
[extras]
7476
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
7577
DomainSets = "5b8099bc-c8ec-5219-889f-1d9e522a28bf"
76-
Graphviz_jll = "3c863552-8265-54e4-a6dc-903eb78fde85"
7778
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
7879
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
7980
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
80-
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
81+
OrdinaryDiffEqBDF = "6ad6398a-0878-4a85-9266-38940aa047c8"
82+
OrdinaryDiffEqDefault = "50262376-6c5a-4cf5-baba-aaf4f84d72d7"
83+
OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce"
84+
OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a"
85+
OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2"
8186
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
8287
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
8388
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
@@ -93,7 +98,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
9398
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
9499

95100
[targets]
96-
test = ["DiffEqCallbacks", "DomainSets", "Graphviz_jll", "Logging", "NonlinearSolve",
97-
"OrdinaryDiffEq", "Pkg", "Plots", "Random", "SafeTestsets", "SciMLBase", "SciMLNLSolve",
98-
"StableRNGs", "StaticArrays", "Statistics", "SteadyStateDiffEq", "StochasticDiffEq",
99-
"Test", "Unitful"]
101+
test = ["DiffEqCallbacks", "DomainSets", "Logging", "NonlinearSolve", "OrdinaryDiffEqBDF", "OrdinaryDiffEqDefault", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "Pkg", "Plots", "Random", "SafeTestsets", "SciMLBase", "SciMLNLSolve", "StableRNGs", "StaticArrays", "Statistics", "SteadyStateDiffEq", "StochasticDiffEq", "Test", "Unitful"]

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ be found in its corresponding research paper, [Catalyst: Fast and flexible model
7272
- Model steady states can be [computed through homotopy continuation](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/homotopy_continuation/) using [HomotopyContinuation.jl](https://github.com/JuliaHomotopyContinuation/HomotopyContinuation.jl) (which can find *all* steady states of systems with multiple ones), by [forward ODE simulations](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/nonlinear_solve/#steady_state_solving_simulation) using [SteadyStateDiffEq.jl](https://github.com/SciML/SteadyStateDiffEq.jl), or by [numerically solving steady-state nonlinear equations](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/nonlinear_solve/#steady_state_solving_nonlinear) using [NonlinearSolve.jl](https://github.com/SciML/NonlinearSolve.jl).
7373
- [BifurcationKit.jl](https://github.com/bifurcationkit/BifurcationKit.jl) can be used to [compute bifurcation diagrams](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/bifurcation_diagrams/) of model steady states (including finding periodic orbits).
7474
- [DynamicalSystems.jl](https://github.com/JuliaDynamics/DynamicalSystems.jl) can be used to compute model [basins of attraction](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/dynamical_systems/#dynamical_systems_basins_of_attraction), [Lyapunov spectrums](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/dynamical_systems/#dynamical_systems_lyapunov_exponents), and other dynamical system properties.
75-
- [StructuralIdentifiability.jl](https://github.com/SciML/StructuralIdentifiability.jl) can be used to [perform structural identifiability analysis](https://docs.sciml.ai/Catalyst/stable/inverse_problems/structural_identifiability/).
7675
- [Optimization.jl](https://github.com/SciML/Optimization.jl), [DiffEqParamEstim.jl](https://github.com/SciML/DiffEqParamEstim.jl), and [PEtab.jl](https://github.com/sebapersson/PEtab.jl) can all be used to [fit model parameters to data](https://sebapersson.github.io/PEtab.jl/stable/Define_in_julia/).
7776
- [GlobalSensitivity.jl](https://github.com/SciML/GlobalSensitivity.jl) can be used to perform [global sensitivity analysis](https://docs.sciml.ai/Catalyst/stable/inverse_problems/global_sensitivity_analysis/) of model behaviors.
7877
- [SciMLSensitivity.jl](https://github.com/SciML/SciMLSensitivity.jl) can be used to compute local sensitivities of functions containing forward model simulations.
78+
<!-- - [StructuralIdentifiability.jl](https://github.com/SciML/StructuralIdentifiability.jl) can be used to [perform structural identifiability analysis](https://docs.sciml.ai/Catalyst/stable/inverse_problems/structural_identifiability/). -->
7979

8080
#### Features of packages built upon Catalyst
8181
- Catalyst [`ReactionSystem`](@ref)s can be [imported from SBML files](https://docs.sciml.ai/Catalyst/stable/model_creation/model_file_loading_and_export/#Loading-SBML-files-using-SBMLImporter.jl-and-SBMLToolkit.jl) via [SBMLImporter.jl](https://github.com/sebapersson/SBMLImporter.jl) and [SBMLToolkit.jl](https://github.com/SciML/SBMLToolkit.jl), and [from BioNetGen .net files](https://docs.sciml.ai/Catalyst/stable/model_creation/model_file_loading_and_export/#file_loading_rni_net) and various stoichiometric matrix network representations using [ReactionNetworkImporters.jl](https://github.com/SciML/ReactionNetworkImporters.jl).
@@ -92,7 +92,7 @@ an ordinary differential equation.
9292

9393
```julia
9494
# Fetch required packages.
95-
using Catalyst, OrdinaryDiffEq, Plots
95+
using Catalyst, OrdinaryDiffEqDefault, Plots
9696

9797
# Create model.
9898
model = @reaction_network begin

docs/Project.toml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@ CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
55
Catalyst = "479239e8-5488-4da2-87a7-35f2df7eef83"
66
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
77
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
8-
DiffEqParamEstim = "1130ab10-4a5a-5621-a13d-e4788d82bd4c"
98
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
109
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
1110
DynamicalSystems = "61744808-ddfa-5f27-97ff-6e42cc95d634"
12-
GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a"
1311
GlobalSensitivity = "af5da776-676b-467e-8baf-acd8249e4f0f"
1412
GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2"
1513
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
@@ -20,10 +18,12 @@ Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
2018
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
2119
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
2220
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
21+
NetworkLayout = "46757867-2c16-5918-afeb-47bfcb05e46a"
2322
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
2423
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
2524
Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba"
2625
OptimizationBBO = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b"
26+
OptimizationEvolutionary = "cb963754-43f6-435e-8d4b-99009ff27753"
2727
OptimizationNLopt = "4e6fcdb7-1186-4e1f-a706-475e75c168bb"
2828
OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e"
2929
OptimizationOptimisers = "42dfb2eb-d2b4-4451-abcd-913932933ac1"
@@ -33,6 +33,7 @@ OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce"
3333
OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf"
3434
OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a"
3535
OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2"
36+
PEtab = "48d54b35-e43e-4a66-a5a1-dde6b987cf69"
3637
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
3738
QuasiMonteCarlo = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b"
3839
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
@@ -49,12 +50,10 @@ BifurcationKit = "0.4.4"
4950
CairoMakie = "0.12"
5051
Catalyst = "14.4"
5152
DataFrames = "1.6"
52-
DiffEqBase = "< 6.159.0"
53-
DiffEqParamEstim = "2.2"
53+
DiffEqBase = "6.159.0"
5454
Distributions = "0.25"
5555
Documenter = "1.4.1"
5656
DynamicalSystems = "3.3"
57-
GLMakie = "0.10"
5857
GlobalSensitivity = "2.6"
5958
GraphMakie = "0.5"
6059
Graphs = "1.11.1"
@@ -63,11 +62,13 @@ IncompleteLU = "0.2"
6362
JumpProcesses = "9.13.2"
6463
Latexify = "0.16.5"
6564
LinearSolve = "2.30"
66-
ModelingToolkit = "9.32"
65+
ModelingToolkit = "< 9.60"
66+
NetworkLayout = "0.4"
6767
NonlinearSolve = "3.12, 4"
6868
Optim = "1.9"
6969
Optimization = "4"
7070
OptimizationBBO = "0.4"
71+
OptimizationEvolutionary = "0.4"
7172
OptimizationNLopt = "0.3"
7273
OptimizationOptimJL = "0.4"
7374
OptimizationOptimisers = "0.3"
@@ -77,6 +78,7 @@ OrdinaryDiffEqRosenbrock = "1"
7778
OrdinaryDiffEqSDIRK = "1"
7879
OrdinaryDiffEqTsit5 = "1"
7980
OrdinaryDiffEqVerner = "1"
81+
PEtab = "3.5"
8082
Plots = "1.40"
8183
QuasiMonteCarlo = "0.3"
8284
SciMLBase = "2.46"
@@ -85,4 +87,4 @@ SpecialFunctions = "2.4"
8587
StaticArrays = "1.9"
8688
SteadyStateDiffEq = "2.2"
8789
StochasticDiffEq = "6.65"
88-
Symbolics = "5.30.1, 6"
90+
Symbolics = "6.22"

docs/make.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using Documenter
22
using Catalyst, ModelingToolkit
3+
# Add packages for plotting
4+
using GraphMakie, CairoMakie
35

46
docpath = Base.source_dir()
57
assetpath = joinpath(docpath, "src", "assets")
@@ -37,7 +39,9 @@ makedocs(sitename = "Catalyst.jl",
3739
collapselevel = 1,
3840
assets = ["assets/favicon.ico"],
3941
canonical = "https://docs.sciml.ai/Catalyst/stable/"),
40-
modules = [Catalyst, ModelingToolkit],
42+
modules = [Catalyst, ModelingToolkit,
43+
isdefined(Base, :get_extension) ? Base.get_extension(Catalyst, :CatalystGraphMakieExtension) :
44+
Catalyst.CatalystGraphMakieExtension],
4145
doctest = false,
4246
clean = true,
4347
pages = pages,

docs/pages.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ pages = Any[
4040
"Steady state analysis" => Any[
4141
"steady_state_functionality/homotopy_continuation.md",
4242
"steady_state_functionality/nonlinear_solve.md",
43-
"steady_state_functionality/steady_state_stability_computation.md",
43+
# "steady_state_functionality/steady_state_stability_computation.md",
4444
"steady_state_functionality/bifurcation_diagrams.md",
4545
"steady_state_functionality/dynamical_systems.md"
4646
],
4747
"Inverse problems" => Any[
48+
"inverse_problems/petab_ode_param_fitting.md",
4849
"inverse_problems/optimization_ode_param_fitting.md",
49-
# "inverse_problems/petab_ode_param_fitting.md",
5050
"inverse_problems/behaviour_optimisation.md",
5151
# "inverse_problems/structural_identifiability.md",
5252
"inverse_problems/global_sensitivity_analysis.md",

docs/src/api.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ isequivalent
271271
==(rn1::ReactionSystem, rn2::ReactionSystem)
272272
```
273273

274-
## Network visualization
274+
## [Network visualization](@id network_visualization)
275275
[Latexify](https://korsbo.github.io/Latexify.jl/stable/) can be used to convert
276276
networks to LaTeX equations by
277277
```julia
@@ -292,13 +292,10 @@ displayed as the ODE form)
292292

293293
Finally, another optional argument (`expand_functions=true`) automatically expands functions defined by Catalyst (such as `mm`). To disable this, set `expand_functions=false`.
294294

295-
If [Graphviz](https://graphviz.org/) is installed and commandline accessible, it
296-
can be used to create and save network diagrams using [`Graph`](@ref) and
297-
[`savegraph`](@ref).
295+
Reaction networks can be plotted using the `GraphMakie` extension, which is loaded whenever all of `Catalyst`, `GraphMakie`, and `NetworkLayout` are loaded (note that a Makie backend, like `CairoMakie`, must be loaded as well). The two functions for plotting networks are `plot_network` and `plot_complexes`, which are two distinct representations.
298296
```@docs
299-
Graph
300-
complexgraph
301-
savegraph
297+
plot_network(::ReactionSystem)
298+
plot_complexes(::ReactionSystem)
302299
```
303300

304301
## [Rate laws](@id api_rate_laws)

0 commit comments

Comments
 (0)