Commit 9e57c693 authored by Bentriou Mahmoud's avatar Bentriou Mahmoud
Browse files

new model intracellular viral infection + smc_chernoff

parent 40cf91a4
......@@ -29,7 +29,7 @@ export get_index, get_value, length_var, isaccepted
# Model related methods
export simulate, volatile_simulate
export distribute_mean_value_lha, mean_value_lha, distribute_prob_accept_lha, probability_var_value_lha
export distribute_mean_value_lha, mean_value_lha, distribute_prob_accept_lha, probability_var_value_lha, smc_chernoff
export set_param!, set_x0!, set_time_bound!, set_observed_var!, observe_all!
export get_param, get_x0, getproperty, get_proba_model, get_observed_var
export isbounded, isaccepted, check_consistency
......
......@@ -402,6 +402,13 @@ function probability_var_value_lha(sm::SynchronizedModel, nbr_sim::Int;
return sum_val / nbr_sim
end
function smc_chernoff(sm::SynchronizedModel; approx::Float64 = 0.01, confidence::Float64 = 0.99)
@assert sm.automaton.name in ["F property", "G property", "G and F property"]
nbr_sim = log(2/(1-confidence)) / (2*approx^2)
nbr_sim = convert(Int, trunc(nbr_sim)+1)
@show nbr_sim
return probability_var_value_lha(sm, nbr_sim)
end
function distribute_prob_accept_lha(sm::SynchronizedModel, nbr_sim::Int)
sum_val = @distributed (+) for i = 1:nbr_sim
......
intracellular_viral_infection = @network_model begin
R1: (N + T => G + T, k1 * T * cn)
R2: (N + G => T, k2 * G * cn)
R3: (N + A + T => S + T, k3 * T * cn * ca)
R4: (T => , k4 * T)
R5: (S => , k5 * S)
R6: (G + S => V, k6 * G * S)
end "Intracellular viral infection pkg"
set_x0!(intracellular_viral_infection, [:N, :A, :G, :T, :S, :V], [10000, 10000, 0, 1, 0, 0])
set_param!(intracellular_viral_infection, [:cn, :ca, :k1, :k2, :k3, :k4, :k5, :k6], [1.0, 1.0, 1.0, 0.025, 100.0, 0.25, 0.2, 7.5E-6])
set_time_bound!(intracellular_viral_infection, 200.0)
export intracellular_viral_infection
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment