-
-
Notifications
You must be signed in to change notification settings - Fork 81
Closed
Description
Consider the following example code for the SIR model, which attempts to run the model with Gillespie twice, using remake to change the initial condition:
using DiffEqBiological
sir_model = @reaction_network SIR begin
c1, s + i --> 2i
c2, i --> r
end c1 c2
p = (0.1/1000,0.01)
tspan = (0.0,250.0)
dprob = DiscreteProblem(sir_model,[999,1,0],tspan,p);
jprob = JumpProblem(dprob,Direct(),sir_model);
sol1 = solve(jump_prob,SSAStepper());
sol2 = solve(remake(jprob,prob=remake(dprob,u0=[998,1,1])),SSAStepper());
When run, it returns an error:
AssertionError: length(jump_prob.jump_callback.discrete_callbacks) == 1
Stacktrace:
[1] __init(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper; save_start::Bool, save_end::Bool, seed::UInt64, saveat::Nothing) at /Users/guardian/.julia/packages/DiffEqJump/InDQm/src/SSA_stepper.jl:68
[2] __init(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper) at /Users/guardian/.julia/packages/DiffEqJump/InDQm/src/SSA_stepper.jl:64
[3] init_call(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:13
[4] init_call(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:10
[5] init(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:30
[6] init(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:18
[7] __solve(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/guardian/.julia/packages/DiffEqJump/InDQm/src/SSA_stepper.jl:27
[8] __solve(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper) at /Users/guardian/.julia/packages/DiffEqJump/InDQm/src/SSA_stepper.jl:27
[9] (::DiffEqBase.var"#466#467"{JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing},Tuple{SSAStepper}})() at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:49
[10] maybe_with_logger(::DiffEqBase.var"#466#467"{JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing},Tuple{SSAStepper}}, ::Nothing) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/utils.jl:259
[11] solve_call(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper; merge_callbacks::Bool, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:48
[12] solve_call(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:37
[13] solve(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:66
[14] solve(::JumpProblem{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Symbol,DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}},Tuple{Symbol},NamedTuple{(:prob,),Tuple{DiscreteProblem{Array{Int64,1},Tuple{Float64,Float64},true,Tuple{Float64,Float64},DiscreteFunction{true,DiffEqBiological.var"#66#67",Nothing,Array{Symbol,1}},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}}}}}},DiffEqJump.NullAggregator,CallbackSet{Tuple{},Tuple{}},Nothing,Tuple{},Nothing,Nothing}, ::SSAStepper) at /Users/guardian/.julia/packages/DiffEqBase/Avuz1/src/solve.jl:54
[15] top-level scope at In[9]:1
Metadata
Metadata
Assignees
Labels
No labels