Specify the parameter values
We must now define parameters, starting with the reaction terms.
We may specify constant parameter values:
params = model_parameters()
# constant parameters
params.reaction["δ₃"] = [1.0]
params.reaction["μ₁"] = [1.0]
params.reaction["μ₃"] = [1.0]
params.reaction["n₁"] = [8]
params.reaction["n₂"] = [2]
or ranges of parameter values:
num_params = 5
params.reaction["δ₁"] = screen_values(min = 0.1,max = 10, number=num_params)
params.reaction["δ₂"] = screen_values(min = 0.1,max = 10,number=num_params)
params.reaction["μ₂"] = screen_values(min = 0.1,max = 10, number=num_params)
params.reaction["k₊"] = screen_values(min = 10.0,max = 100.0, number=num_params)
params.reaction["k₋"] = screen_values(min = 10.0,max = 100.0, number=num_params)
params.reaction["K₁"] = screen_values(min = 0.01,max = 1,number=num_params)
params.reaction["K₂"] = screen_values(min = 0.01,max = 1, number=num_params)
params.reaction
Here, the function screen_values
returns a series of num_params
parameters that are linearly spaced between the min
and max
limits. The argument mode="log"
may be used to sample in log-space instead.
Arbitrary collections of parameters may also be specified, e.g.,
params.reaction["n₁"] = [2; 4; 8]
Next, we must specify the diffusion coefficients:
params.diffusion = Dict(
"NOG" => [1.0],
"GDF5" => screen_values(min = 0.1,max = 30, number=10),
"COMPLEX" => screen_values(min = 0.1,max = 30, number=10)
)
Note, any variables that are not assigned a diffusion constant are assumed to be non-diffusing (i.e., pSMAD
in this example).
Optionally, the initial conditions used to define the steady state(s) of the system may be explicitly set:
params.initial_condition["NOG"] = [0.1;1.0,10.0]
This may be particularly helpful when there are more than one steady states.