Esempio n. 1
0
solver = ODESolver()

# %% Calculate data range as factors:

print("No factors applied")

# %% Plot

# obs_data_plot(solver.timePoint, obs_data_noisy_s, obs_data_raw_s)

# %% Define prior distribution of parameters
# Be careful that RV("uniform", -10, 15) means uniform distribution in [-10, 5], '15' here is the interval length

# Set prior

lim = PriorLimits(1e-6, 75)

prior_distribution = "uniform"

print(prior_distribution)

# args = (para["lambda_n"], para["k_n_beta"], para["mu_n"], para["v_n_phi"],
#         para["lambda_phi"], para["k_phi_beta"], para["mu_phi"],
#         para["s_beta_n"], para["i_beta_phi"], para["mu_beta"],
#         para["s_alpha_phi"], para["mu_alpha"])

para_prior1 = pyabc.Distribution(
    lambda_n=pyabc.RV(prior_distribution, lim.lb, lim.interval_length),
    k_n_beta=pyabc.RV(prior_distribution, lim.lb, lim.interval_length),
    mu_n=pyabc.RV(prior_distribution, lim.lb, lim.interval_length),
    v_n_phi=pyabc.RV(prior_distribution, lim.lb, lim.interval_length),
Esempio n. 2
0
# scl = 48/sum(factors.values())

# for i in range(48):
#     factors[i] = factors[i] * scl

# %% Plot

# obs_data_plot(solver.timePoint, obs_data_noisy_s, obs_data_raw_s)

# %% Define prior distribution of parameters
# Be careful that RV("uniform", -10, 15) means uniform distribution in [-10, 5], '15' here is the interval length

# Set prior

lim = PriorLimits(1e-6, 20)

prior_distribution = "loguniform"

print(prior_distribution)

para_prior1 = para_prior(lim, prior_distribution, 1)
para_prior2 = para_prior(lim, prior_distribution, 2)
para_prior3 = para_prior(lim, prior_distribution, 3)
para_prior4 = para_prior(lim, prior_distribution, 4)
para_prior5 = para_prior(lim, prior_distribution, 5)

# %% Define ABC-SMC model

distanceP2 = pyabc.PNormDistance(p=2)  # , factors=factors)
Esempio n. 3
0
#     factors[i] = 2

# scl = time_length / sum(factors.values())

# for i in range(time_length):
#     factors[i] = factors[i] * scl

# print(factors)

# %% Plot


# %% Define prior distribution of parameters
# Be careful that RV("uniform", -10, 15) means uniform distribution in [-10, 5], '15' here is the interval length

lim = PriorLimits(1e-6, 25)
# lim2 = PriorLimits(1e-6, 1)
# lim3 = PriorLimits(1e-6, 10)
lim2 = PriorLimits(0, 5)
lim3 = PriorLimits(0, 15)

prior_distribution = "uniform"

para_prior1 = pyabc.Distribution(
    lambda_n=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    k_n_beta=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    mu_n=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    v_n_phi=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),

    lambda_phi=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    k_phi_beta=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),
Esempio n. 4
0
    factors[i] = 1 / range_A

scl = 120./sum(factors.values())

for i in range(120):
    factors[i] = factors[i] * scl


# %% Plot

# obs_data_plot(solver.timePoint, obs_data_noisy_s, obs_data_raw_s)

# %% Define prior distribution of parameters
# Be careful that RV("uniform", -10, 15) means uniform distribution in [-10, 5], '15' here is the interval length

lim = PriorLimits(0, 20)
lim2 = PriorLimits(0, 1)
lim3 = PriorLimits(0, 10)
# lim2 = PriorLimits(0, 20)
# lim3 = PriorLimits(0, 20)

paraPrior = pyabc.Distribution(
    lambdaN=pyabc.RV("uniform", lim3.lb, lim3.interval_length),
    kNB=pyabc.RV("uniform", lim3.lb, lim3.interval_length),
    muN=pyabc.RV("uniform", lim2.lb, lim2.interval_length),
    vNM=pyabc.RV("uniform", lim2.lb, lim2.interval_length),
    lambdaM=pyabc.RV("uniform", lim3.lb, lim3.interval_length),
    kMB=pyabc.RV("uniform", lim2.lb, lim2.interval_length),
    muM=pyabc.RV("uniform", lim2.lb, lim2.interval_length),
    sBN=pyabc.RV("uniform", lim3.lb, lim3.interval_length),
    iBM=pyabc.RV("uniform", lim3.lb, lim3.interval_length),
Esempio n. 5
0
#
# scl = 120./sum(factors.values())
#
# for i in range(120):
#     factors[i] = factors[i] * scl

# %% Plot

# obs_data_plot(solver.timePoint, obs_data_noisy_s, obs_data_raw_s)

# %% Define prior distribution of parameters
# Be careful that RV("uniform", -10, 15) means uniform distribution in [-10, 5], '15' here is the interval length

# Set prior

lim = PriorLimits(1e-6, 50)

prior_distribution = "loguniform"

print(prior_distribution)

# args = (para["lambda_n"], para["k_n_beta"], para["mu_n"], para["v_n_phi"],
#         para["lambda_phi"], para["k_phi_beta"], para["mu_phi"],
#         para["s_beta_n"], para["i_beta_phi"], para["mu_beta"],
#         para["s_alpha_phi"], para["mu_alpha"])

para_prior1 = pyabc.Distribution(
    lambda_n=pyabc.RV(prior_distribution, lim.lb, lim.interval_length),
    k_n_beta=pyabc.RV(prior_distribution, lim.lb, lim.interval_length),
    mu_n=pyabc.RV(prior_distribution, lim.lb, lim.interval_length),
    v_n_phi=pyabc.RV(prior_distribution, lim.lb, lim.interval_length),
# Created by: chaolinhan
# Created on: 2020/6/9

import os

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import pyabc

from pyABC_study.ODE import ODESolver, PriorLimits, arr2d_to_dict, para_true1, para_prior
from pyABC_study.dataPlot import result_data_old, result_plot, result_data

# %% Settings

lim = PriorLimits(1e-6, 50)

prior_distribution = "uniform"

print(prior_distribution)

para_prior1 = para_prior(lim, prior_distribution, 1)

solver = ODESolver()
solver.time_point = solver.time_point_default

obs_data_raw_s = solver.ode_model1(para_true1, flatten=False, add_noise=False)

solver.time_point = solver.time_point_exp
obs_data_raw_s_less = solver.ode_model(para_true1, flatten=False, add_noise=False)
Esempio n. 7
0
# for i in range(int(0.5 * time_length), time_length):
#     factors[i] = 2

# scl = time_length / sum(factors.values())

# for i in range(time_length):
#     factors[i] = factors[i] * scl

# print(factors)

# %% Plot

# %% Define prior distribution of parameters
# Be careful that RV("uniform", -10, 15) means uniform distribution in [-10, 5], '15' here is the interval length

lim = PriorLimits(1e-6, 25)
lim2 = PriorLimits(1e-6, 1)
lim3 = PriorLimits(1e-6, 10)
# lim2 = PriorLimits(0, 5)
# lim3 = PriorLimits(0, 15)

prior_distribution = "loguniform"

para_prior1 = pyabc.Distribution(
    lambda_n=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    k_n_beta=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    mu_n=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    v_n_phi=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),
    lambda_phi=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    k_phi_beta=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),
    mu_phi=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),
Esempio n. 8
0
# for i in range(90, 120):
#     factors[i] = 1 / range_A

# scl = 120./sum(factors.values())

# for i in range(120):
#     factors[i] = factors[i] * scl

# %% Plot

# obs_data_plot(solver.timePoint, obs_data_noisy_s, obs_data_raw_s)

# %% Define prior distribution of parameters
# Be careful that RV("uniform", -10, 15) means uniform distribution in [-10, 5], '15' here is the interval length

lim = PriorLimits(1e-6, 10)
lim2 = PriorLimits(0, 1)
lim3 = PriorLimits(0, 10)
# lim2 = PriorLimits(0, 20)
# lim3 = PriorLimits(0, 20)

prior_distribution = "uniform"

para_prior1 = pyabc.Distribution(
    lambda_n=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    k_n_beta=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    mu_n=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),
    v_n_phi=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),
    lambda_phi=pyabc.RV(prior_distribution, lim3.lb, lim3.interval_length),
    k_phi_beta=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),
    mu_phi=pyabc.RV(prior_distribution, lim2.lb, lim2.interval_length),