Skip to content

Commit

Permalink
Merge pull request #592 from SciML/minor_doc_changes
Browse files Browse the repository at this point in the history
Various docs fixes
  • Loading branch information
isaacsas authored Feb 16, 2023
2 parents 51a2c71 + e14c0be commit e2dfcd0
Show file tree
Hide file tree
Showing 28 changed files with 688 additions and 62,362 deletions.
4 changes: 2 additions & 2 deletions HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@

## Catalyst 11.0
- **BREAKING:** Added the ability to eliminate conserved species when generating
ODEs, nonlinear problems, SDEs, and steady-state problems via the
ODEs, nonlinear problems, SDEs, and steady state problems via the
`remove_conserved=true` keyword that can be passed to `convert` or to
`ODEProblem`, `NonlinearProblem`, `SDEProblem`, or `SteadyStateProblem` when
called with a `ReactionSystem`. For example,
Expand Down Expand Up @@ -287,7 +287,7 @@
when calling `ODEProblem(mixedsys,...; combinatoric_ratelaws=false)`. This
disables Catalyst's standard rescaling of reaction rates when generating
reaction rate laws, see the
[docs](https://catalyst.sciml.ai/dev/tutorials/using_catalyst/#Reaction-rate-laws-used-in-simulations).
[docs](https://catalyst.sciml.ai/dev/tutorials/introduction_to_catalyst/#Reaction-rate-laws-used-in-simulations).
Leaving this out for systems with floating point stoichiometry will give an
error message.

Expand Down
47 changes: 23 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

Catalyst.jl is a symbolic modeling package for analysis and high performance
simulation of chemical reaction networks. Catalyst defines symbolic
[`ReactionSystem`](https://docs.sciml.ai/Catalyst/stable/tutorials/reaction_systems/)s,
[`ReactionSystem`](https://docs.sciml.ai/Catalyst/stable/catalyst_functionality/programmatic_CRN_construction/)s,
which can be created programmatically or easily
specified using Catalyst's domain specific language (DSL). Leveraging
[ModelingToolkit](/~https://github.com/SciML/ModelingToolkit.jl) and
Expand All @@ -27,12 +27,12 @@ Generated models can be used with solvers throughout the broader
for sensitivity analysis, parameter estimation, machine learning applications,
etc).

## Breaking Changes and New Features
## Breaking changes and new features

Breaking changes and new functionality are summarized in the
[HISTORY.md](HISTORY.md) file.

## Tutorials and Documentation
## Tutorials and documentation

For tutorials and information on using the package, [see the stable
documentation](https://docs.sciml.ai/Catalyst/stable/). The [in-development
Expand All @@ -47,44 +47,43 @@ Several Youtube video tutorials and overviews are also available:

## Features

- DSL provides a simple and readable format for manually specifying chemical
- A DSL provides a simple and readable format for manually specifying chemical
reactions.
- Catalyst `ReactionSystem`s provide a symbolic representation of reaction networks,
built on [ModelingToolkit.jl](https://github.com/SciML/ModelingToolkit.jl) and
[Symbolics.jl](https://github.com/JuliaSymbolics/Symbolics.jl).
built on [ModelingToolkit.jl](https://docs.sciml.ai/ModelingToolkit/stable/) and
[Symbolics.jl](https://docs.sciml.ai/Symbolics/stable/).
- Non-integer (e.g. `Float64`) stoichiometric coefficients are supported for generating
ODE models, and symbolic expressions for stoichiometric coefficients are supported for
all system types.
- The [Catalyst.jl API](http://docs.sciml.ai/Catalyst/stable/api/catalyst_api) provides
functionality for extending networks, building networks programmatically,
network analysis, and for composing multiple networks together.
- The [Catalyst.jl API](http://docs.sciml.ai/Catalyst/stable/api/catalyst_api) provides functionality for extending networks,
building networks programmatically, network analysis, and for composing multiple
networks together.
- `ReactionSystem`s generated by the DSL can be converted to a variety of
`ModelingToolkit.AbstractSystem`s, including symbolic ODE, SDE, and jump process
`ModelingToolkit.AbstractSystem`s, including symbolic ODE, SDE and jump process
representations.
- Conservation laws can be detected and applied to reduce system sizes, and generate
non-singular Jacobians, during conversion to ODEs, SDEs, and steady-state equations.
non-singular Jacobians, during conversion to ODEs, SDEs, and steady state equations.
- By leveraging ModelingToolkit, users have a variety of options for generating
optimized system representations to use in solvers. These include construction
of dense or sparse Jacobians, multithreading or parallelization of generated
derivative functions, automatic classification of reactions into optimized
jump types for Gillespie-type simulations, automatic construction of
jump types for Gillespie type simulations, automatic construction of
dependency graphs for jump systems, and more.
- Generated systems can be solved using any
[DifferentialEquations.jl](https://github.com/SciML/DifferentialEquations.jl)
[DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/stable/)
ODE/SDE/jump solver, and can be used within `EnsembleProblem`s for carrying
out parallelized parameter sweeps and statistical sampling. Plot recipes
are available for visualizing the solutions.
- [Symbolics.jl](/~https://github.com/JuliaSymbolics/Symbolics.jl) symbolic expressions
and Julia `Expr`s can be obtained for all rate laws and functions determining the
deterministic and stochastic terms within resulting ODE, SDE, or jump models.
- [Latexify](/~https://github.com/korsbo/Latexify.jl) can be used to generate
- Symbolic Julia `Expr`s (implemented through [Symbolics.jl](/~https://github.com/JuliaSymbolics/Symbolics.jl)) can be obtained for all rate laws and functions determining the
deterministic and stochastic terms within resulting ODE, SDE or jump models.
- [Latexify](https://korsbo.github.io/Latexify.jl/stable/) can be used to generate
LaTeX expressions corresponding to generated mathematical models or the
underlying set of reactions.
- [Graphviz](https://graphviz.org/) can be used to generate and visualize
reaction network graphs. (Reusing the Graphviz interface created in
[Catlab.jl](https://github.com/AlgebraicJulia/Catlab.jl/).)
[Catlab.jl](https://algebraicjulia.github.io/Catlab.jl/stable/).)

## Packages Supporting Catalyst
## Packages supporting Catalyst
- Catalyst [`ReactionSystem`](@ref)s can be imported from SBML files via
[SBMLToolkit.jl](/~https://github.com/SciML/SBMLToolkit.jl), and from BioNetGen .net
files and various stoichiometric matrix network representations using
Expand All @@ -101,8 +100,8 @@ Several Youtube video tutorials and overviews are also available:
resulting stochastic chemical kinetics with delays models.


## Illustrative Examples
#### Gillespie Simulations of Michaelis-Menten Enzyme Kinetics
## Illustrative examples
#### Gillespie simulations of Michaelis-Menten enzyme kinetics

```julia
using Catalyst, Plots, JumpProcesses
Expand All @@ -124,7 +123,7 @@ plot(jsol,lw=2,title="Gillespie: Michaelis-Menten Enzyme Kinetics")

![](https://user-images.githubusercontent.com/1814174/87864114-3bf9dd00-c932-11ea-83a0-58f38aee8bfb.png)

#### Adaptive SDEs for A Birth-Death Process
#### Adaptive time stepping SDEs for a birth-death process

```julia
using Catalyst, Plots, StochasticDiffEq
Expand All @@ -143,13 +142,13 @@ plot(ssol,lw=2,title="Adaptive SDE: Birth-Death Process")

![](https://user-images.githubusercontent.com/1814174/87864113-3bf9dd00-c932-11ea-8275-f903eef90b91.png)

## Getting Help
## Getting help
Catalyst developers are active on the [Julia
Discourse](https://discourse.julialang.org/), the [Julia Slack](https://julialang.slack.com) channels \#sciml-bridged and \#sciml-sysbio, and the [Julia Zulip sciml-bridged channel](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged).
For bugs or feature requests [open an issue](/~https://github.com/SciML/Catalyst.jl/issues).


## Supporting and Citing Catalyst.jl
## Supporting and citing Catalyst.jl
The software in this ecosystem was developed as part of academic research. If you would like to help support it,
please star the repository as such metrics may help us secure funding in the future. If you use Catalyst as part
of your research, teaching, or other activities, we would be grateful if you could cite our work:
Expand Down
2 changes: 2 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
[deps]
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
Catalyst = "479239e8-5488-4da2-87a7-35f2df7eef83"
DiffEqFlux = "aae7a2af-3d4f-5e19-a356-7da93b79d9d0"
DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa"
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c"
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
Expand Down
2 changes: 1 addition & 1 deletion docs/old_files/unused_tutorials/models.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ plot(sol, lw=2)
```
![models1](../assets/models1.svg)

To solve for a steady-state starting from the guess `u0`, one can use
To solve for a steady state starting from the guess `u0`, one can use
```julia
using SteadyStateDiffEq
prob = SteadyStateProblem(rn,u0,p)
Expand Down
12 changes: 6 additions & 6 deletions docs/pages.jl
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
pages = Any["Home" => "index.md",
"Introduction to Catalyst" => Any["intro_to_catalyst/catalyst_for_new_julia_users.md",
"intro_to_catalyst/using_catalyst.md"],
"Introduction to Catalyst" => Any["introduction_to_catalyst/catalyst_for_new_julia_users.md",
"introduction_to_catalyst/introduction_to_catalyst.md"],
"Catalyst Functionality" => Any["catalyst_functionality/dsl_description.md",
"catalyst_functionality/programmatic_CRN_construction.md",
"catalyst_functionality/compositional_modeling.md",
"catalyst_functionality/parametric_stoichiometry.md",
"catalyst_functionality/network_analysis.md"],
"Catalyst Applications" => Any["tutorials/advanced_simulations.md",
"tutorials/homotopy_continuation.md",
"tutorials/bifurcation_diagrams.md",
"tutorials/parameter_estimation.md"],
"Catalyst Applications" => Any["catalyst_applications/advanced_simulations.md",
"catalyst_applications/homotopy_continuation.md",
"catalyst_applications/bifurcation_diagrams.md",
"catalyst_applications/parameter_estimation.md"],
"Example Networks" => Any["example_networks/basic_CRN_examples.md",
"example_networks/smoluchowski_coagulation_equation.md"],
"FAQs" => "faqs.md",
Expand Down
32 changes: 20 additions & 12 deletions docs/src/api/catalyst_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
CurrentModule = Catalyst
```

## Reaction Network Generation and Representation
## Reaction network generation and representation
Catalyst provides the [`@reaction_network`](@ref) macro for generating a
complete network, stored as a [`ReactionSystem`](@ref), which in turn is
composed of [`Reaction`](@ref)s. `ReactionSystem`s can be converted to other
Expand Down Expand Up @@ -79,7 +79,7 @@ Reaction
ReactionSystem
```

## ModelingToolkit and Catalyst Accessor Functions
## [ModelingToolkit and Catalyst accessor functions](@id api_accessor_functions)
A [`ReactionSystem`](@ref) is an instance of a
`ModelingToolkit.AbstractTimeDependentSystem`, and has a number of fields that
can be accessed using the Catalyst API and the [ModelingToolkit.jl Abstract
Expand Down Expand Up @@ -149,9 +149,9 @@ In the latter case `equations` is equivalent to `get_eqs`.
Below we list the remainder of the Catalyst API accessor functions mentioned
above.

## Basic System Properties
## Basic system properties
See [Programmatic Construction of Symbolic Reaction Systems](@ref programmatic_CRN_construction) for examples and [ModelingToolkit and
Catalyst Accessor Functions](@ref) for more details on the basic accessor
Catalyst Accessor Functions](@ref api_accessor_functions) for more details on the basic accessor
functions.

```@docs
Expand All @@ -168,7 +168,7 @@ Catalyst.isconstant
Catalyst.isbc
```

## Basic Reaction Properties
## Basic reaction properties
```@docs
ismassaction
dependents
Expand All @@ -179,7 +179,7 @@ netstoichmat
reactionrates
```

## Functions to Extend or Modify a Network
## Functions to extend or modify a network
`ReactionSystem`s can be programmatically extended using [`addspecies!`](@ref),
[`addparam!`](@ref), [`addreaction!`](@ref), [`@add_reactions`](@ref), or
composed using [`ModelingToolkit.extend`](@ref) and
Expand All @@ -198,7 +198,7 @@ Catalyst.flatten
merge!(network1::ReactionSystem, network2::ReactionSystem)
```

## Network Analysis and Representations
## Network analysis and representations
Note, currently API functions for network analysis and conservation law analysis
do not work with constant species (currently only generated by SBMLToolkit).

Expand All @@ -224,20 +224,28 @@ isweaklyreversible
reset_networkproperties!
```

## Network Comparison
## Network comparison
```@docs
==(rn1::Reaction, rn2::Reaction)
isequal_ignore_names
==(rn1::ReactionSystem, rn2::ReactionSystem)
```

## Network Visualization
## Network visualization
[Latexify](https://korsbo.github.io/Latexify.jl/stable/) can be used to convert
networks to LaTeX mhchem equations by
```julia
using Latexify
latexify(rn)
```
An optional argument, `form` allows using `latexify` to display a reaction network's ODE (as generated by the reaction rate equation) or SDE (as generated by the chemical Langevin equation) form:
```julia
latexify(rn; form=:ode)
```
```julia
latexify(rn; form=:sde)
```
(As of writing this, an upstream bug causes the SDE form to be erroneously displayed as the ODE form)

If [Graphviz](https://graphviz.org/) is installed and commandline accessible, it
can be used to create and save network diagrams using [`Graph`](@ref) and
Expand All @@ -248,7 +256,7 @@ complexgraph
savegraph
```

## Rate Laws
## [Rate laws](@id api_rate_laws)
As the underlying [`ReactionSystem`](@ref) is comprised of `ModelingToolkit`
expressions, one can directly access the generated rate laws, and using
`ModelingToolkit` tooling generate functions or Julia `Expr`s from them.
Expand All @@ -268,13 +276,13 @@ Base.convert
ModelingToolkit.structural_simplify
```

## Unit Validation
## Unit validation
```@docs
validate(rx::Reaction; info::String = "")
validate(rs::ReactionSystem, info::String="")
```

## Utility Functions
## Utility functions
```@docs
symmap_to_varmap
```
Loading

0 comments on commit e2dfcd0

Please sign in to comment.