@@ -39,19 +39,19 @@ jump events occur. These jumps can be specified as a [`ConstantRateJump`](@ref),
3939[ ` MassActionJump ` ] ( @ref ) , or a [ ` VariableRateJump ` ] ( @ref ) .
4040
4141Each individual type of jump that can occur is represented through (implicitly
42- or explicitly) specifying two pieces of information; a ` rate ` function (i.e.
42+ or explicitly) specifying two pieces of information; a ` rate ` function (i.e.,
4343intensity or propensity) for the jump and an ` affect! ` function for the jump.
4444The former gives the probability per time a particular jump can occur given the
4545current state of the system, and hence determines the time at which jumps can
46- happen. The later specifies the instantaneous change in the state of the system
46+ happen. The latter specifies the instantaneous change in the state of the system
4747when the jump occurs.
4848
4949A specific jump type is a [ ` VariableRateJump ` ] ( @ref ) if its rate function is
5050dependent on values which may change between the occurrence of any two jump
5151events of the process. Examples include jumps where the rate is an explicit
5252function of time, or depends on a state variable that is modified via continuous
5353dynamics such as an ODE or SDE. Such "general" ` VariableRateJump ` s can be
54- expensive to simulate because it is necessary to take into account the (possibly
54+ expensive to simulate because it is necessary to consider the (possibly
5555continuous) changes in the rate function when calculating the next jump time.
5656
5757* Bounded* [ ` VariableRateJump ` ] ( @ref ) s represent a special subset of
@@ -84,12 +84,12 @@ discrete steps through time, over which they simultaneously execute many jumps.
8484These methods can be much faster as they do not need to simulate the realization
8585of every individual jump event. τ-leaping methods trade accuracy for speed, and
8686are best used when a set of jumps do not make significant changes to the
87- processes' state and/or rates over the course of one time-step (i.e. during a
87+ processes' state and/or rates over the course of one time-step (i.e., during a
8888leap interval). A single [ ` RegularJump ` ] ( @ref ) is used to encode jumps for
8989τ-leaping algorithms. While τ-leaping methods can be proven to converge in the
9090limit that the time-step approaches zero, their accuracy can be highly dependent
9191on the chosen time-step. As a rule of thumb, if changes to the state variable
92- ` u ` during a time-step (i.e. leap interval) are "minimal" compared to size of
92+ ` u ` during a time-step (i.e., leap interval) are "minimal" compared to the size of
9393the system, an τ-leaping method can often provide reasonable solution
9494approximations.
9595
@@ -145,7 +145,7 @@ MassActionJump(reactant_stoich, net_stoich; scale_rates = true, param_idxs=nothi
145145 `` 3A \overset{k}{\rightarrow} B `` the rate function would be
146146 ` k*A*(A-1)*(A-2)/3! ` . To * avoid* having the reaction rates rescaled (by ` 1/2 `
147147 and ` 1/6 ` for these two examples), one can pass the ` MassActionJump `
148- constructor the optional named parameter ` scale_rates = false ` , i.e. use
148+ constructor the optional named parameter ` scale_rates = false ` , i.e., use
149149 ``` julia
150150 MassActionJump (reactant_stoich, net_stoich; scale_rates = false , param_idxs)
151151 ```
@@ -158,7 +158,7 @@ MassActionJump(reactant_stoich, net_stoich; scale_rates = true, param_idxs=nothi
158158 net_stoich = [[1 => 1 ]]
159159 jump = MassActionJump (reactant_stoich, net_stoich; param_idxs= [1 ])
160160 ```
161- Alternatively one can create an empty vector of pairs to represent the reaction:
161+ Alternatively, one can create an empty vector of pairs to represent the reaction:
162162 ``` julia
163163 p = [1. ]
164164 reactant_stoich = [Vector {Pair{Int,Int}} ()]
@@ -222,7 +222,7 @@ Note that
222222- It is currently only possible to simulate ` VariableRateJump ` s with
223223 ` SSAStepper ` when using systems with only bounded ` VariableRateJump ` s and the
224224 ` Coevolve ` aggregator.
225- - When choosing a different aggregator than ` Coevolve ` , ` SSAStepper ` can not
225+ - When choosing a different aggregator than ` Coevolve ` , ` SSAStepper ` cannot
226226 currently be used, and the ` JumpProblem ` must be coupled to a continuous
227227 problem type such as an ` ODEProblem ` to handle time-stepping. The continuous
228228 time-stepper treats * all* ` VariableRateJump ` s as ` ContinuousCallback ` s, using
@@ -242,7 +242,7 @@ RegularJump(rate, c, numjumps; mark_dist = nothing)
242242 jump process
243243- ` c(du, u, p, t, counts, mark) ` calculates the update given ` counts ` number of
244244 jumps for each jump process in the interval.
245- - ` numjumps ` is the number of jump processes, i.e. the number of ` rate `
245+ - ` numjumps ` is the number of jump processes, i.e., the number of ` rate `
246246 equations and the number of ` counts ` .
247247- ` mark_dist ` is the distribution for a mark.
248248
@@ -300,24 +300,24 @@ aggregator requires various types of dependency graphs, see the next section):
300300 aggregator uses a different internal storage format for collections of
301301 ` ConstantRateJumps ` .
302302- * ` DirectCR ` * : The Composition-Rejection Direct method of Slepoy et al [ 2] . For
303- large networks and linear chain-type networks it will often give better
303+ large networks and linear chain-type networks, it will often give better
304304 performance than ` Direct ` .
305305- * ` SortingDirect ` * : The Sorting Direct Method of McCollum et al [ 3] . It will
306306 usually offer performance as good as ` Direct ` , and for some systems can offer
307307 substantially better performance.
308308- * ` RSSA ` * : The Rejection SSA (RSSA) method of Thanh et al [ 4,5] . With ` RSSACR ` ,
309- for very large reaction networks it often offers the best performance of all
309+ for very large reaction networks, it often offers the best performance of all
310310 methods.
311311- * ` RSSACR ` * : The Rejection SSA (RSSA) with Composition-Rejection method of
312- Thanh et al [ 6] . With ` RSSA ` , for very large reaction networks it often offers
312+ Thanh et al [ 6] . With ` RSSA ` , for very large reaction networks, it often offers
313313 the best performance of all methods.
314314- ` RDirect ` : A variant of Gillespie's Direct method [ 1] that uses rejection to
315315 sample the next reaction.
316316- ` FRM ` : The Gillespie first reaction method SSA [ 1] . ` Direct ` should generally
317317 offer better performance and be preferred to ` FRM ` .
318318- ` FRMFW ` : The Gillespie first reaction method SSA [ 1] with ` FunctionWrappers ` .
319319- * ` NRM ` * : The Gibson-Bruck Next Reaction Method [ 7] . For some reaction network
320- structures this may offer better performance than ` Direct ` (for example,
320+ structures, this may offer better performance than ` Direct ` (for example,
321321 large, linear chains of reactions).
322322- * ` Coevolve ` * : An adaptation of the COEVOLVE algorithm of Farajtabar et al [ 8] .
323323 Currently the only aggregator that also supports * bounded*
@@ -372,7 +372,7 @@ evolution, Journal of Machine Learning Research 18(1), 1305–1353 (2017). doi:
372372Italicized constant rate jump aggregators above require the user to pass a
373373dependency graph to ` JumpProblem ` . ` Coevolve ` , ` DirectCR ` , ` NRM ` , and
374374 ` SortingDirect ` require a jump-jump dependency graph, passed through the named
375- parameter ` dep_graph ` . i.e.
375+ parameter ` dep_graph ` . i.e.,
376376``` julia
377377JumpProblem (prob, DirectCR (), jump1, jump2; dep_graph = your_dependency_graph)
378378```
@@ -388,7 +388,7 @@ when the `i`th jump occurs. Internally, all `MassActionJump`s are ordered before
388388` ConstantRateJump ` s and bounded ` VariableRateJump ` s. General ` VariableRateJump ` s
389389are not handled by aggregators, and so not included in the jump ordering for
390390dependency graphs. Note that the relative order between ` ConstantRateJump ` s and
391- relative order between bounded ` VariableRateJump ` s is preserved. In this way one
391+ relative order between bounded ` VariableRateJump ` s is preserved. In this way, one
392392can precalculate the jump order to manually construct dependency graphs.
393393
394394` RSSA ` and ` RSSACR ` require two different types of dependency graphs, passed
@@ -401,7 +401,7 @@ through the following `JumpProblem` kwargs:
401401 value, ` u[i] ` , altered when the jump occurs.
402402
403403For systems generated from a [ Catalyst] ( https://docs.sciml.ai/Catalyst/stable/ )
404- ` reaction_network ` these will be auto-generated. Otherwise you must explicitly
404+ ` reaction_network ` these will be auto-generated. Otherwise, you must explicitly
405405construct and pass in these mappings.
406406
407407## Recommendations for exact methods
@@ -430,7 +430,7 @@ For systems with only `ConstantRateJump`s and `MassActionJump`s,
430430 often substantially outperform the other methods.
431431
432432For pure jump systems, time-step using ` SSAStepper() ` with a ` DiscreteProblem `
433- unless one has general (i.e. non-bounded) ` VariableRateJump ` s.
433+ unless one has general (i.e., non-bounded) ` VariableRateJump ` s.
434434
435435In general, for systems with sparse dependency graphs if ` Direct ` is slow, one
436436of ` SortingDirect ` , ` RSSA ` or ` RSSACR ` will usually offer substantially better
0 commit comments