BSTModelKit.BSTModelType
mutable struct BSTModel <: AbstractBSTModel

Mutable holding structure for the BST model object. This object is used to store all the data that is needed to simulate the model. The object is passed to the evaluate function to simulate the model. A BSTModel object is created using the build function.

Fields

  • number_of_dynamic_states::Int64: The number of dynamic states in the model.
  • number_of_static_states::Int64: The number of static states in the model.
  • list_of_dynamic_species::Array{String,1}: A list of the dynamic species in the model.
  • list_of_static_species::Array{String,1}: A list of the static species in the model.
  • list_of_reactions::Array{String,1}: A list of the reactions in the model.
  • total_species_list::Array{String,1}: A list of all the species in the model.
  • static_factors_array::Array{Float64,1}: A list of the static factors in the model.
  • initial_condition_array::Array{Float64,1}: A list of the initial conditions for the dynamic states.
  • S::Array{Float64,2}: The stoichiometry matrix.
  • G::Array{Float64,2}: The exponent matrix.
  • α::Array{Float64,1}: The rate constant vector.

Metadata fields

  • author::String: The author of the model.
  • version::String: The version of the model.
  • date::String: The date the model was created.
  • description::String: A description of the model.
BSTModelKit.buildMethod
build(path::String) -> BSTModel

This function is used to build a BSTModel object from a model file. The model file can be in one of the following formats: bst, txt, jld2, dat, net, toml. The function will parse the file and build the model object.

Arguments

  • path::String: The path to the model file.

Returns

  • A BSTModel object. See the BSTModel documentation for more information on the fields of the model object.
BSTModelKit.evaluateMethod
evaluate(model::BSTModel; tspan::Tuple{Float64,Float64} = (0.0,20.0), Δt::Float64 = 0.01, 
    input::Union{Nothing,Function} = nothing) -> Tuple{Array{Float64,1}, Array{Float64,2}}

This function is used to evaluate the model object that has been built using the build function. The evaluate function will return a tuple with two elements: a vector of time points and a matrix of state values.

Arguments

  • model::BSTModel: A model object that has been built using the build function.
  • tspan::Tuple{Float64,Float64}: A tuple that defines the time span for the simulation. The default is (0.0,20.0).
  • Δt::Float64: The time step for the simulation. The default is 0.01.
  • input::Union{Nothing,Function}: An optional input function that can be used to drive the simulation. The default is nothing.

Returns

  • A tuple with two elements:
    • Array{Float64,1}: A vector of time points.
    • Array{Float64,2}: A matrix of state values.
BSTModelKit.morrisMethod
morris(performance::Function, L::Array{Float64,1}, U::Array{Float64,1}; 
    number_of_samples::Int64 = 1000) -> Array{Float64,2}

The morris function is a wrapper around the gsa function that uses the Morris method to perform a global sensitivity analysis.

Arguments

  • performance::Function: a function that takes a vector of parameters and returns a scalar performance metric.
  • L::Array{Float64,1}: a vector of lower bounds for the parameters.
  • U::Array{Float64,1}: a vector of upper bounds for the parameters.
  • number_of_samples::Int64: the number of samples to use in the analysis.

Returns

  • a matrix of results where the first column is the mean and the second column is the variance of the sensitivity analysis.
BSTModelKit.sobolMethod
sobol(performance::Function, L::Array{Float64,1}, U::Array{Float64,1}; 
    number_of_samples::Int64 = 1000, orders::Array{Int64,1} = [0, 1, 2])

The sobol function is a wrapper around the gsa function that uses the Sobol method to perform a global sensitivity analysis.

Arguments

  • performance::Function: a function that takes a vector of parameters and returns a scalar performance metric.
  • L::Array{Float64,1}: a vector of lower bounds for the parameters.
  • U::Array{Float64,1}: a vector of upper bounds for the parameters.
  • number_of_samples::Int64: the number of samples to use in the analysis.
  • orders::Array{Int64,1}: the orders of sensitivity to compute.

Returns

  • a SobolResult object.
BSTModelKit.steadystateMethod
steadystate(model::BSTModel; tspan::Tuple{Float64,Float64} = (0.0,20.0), Δt::Float64 = 0.01, input::Union{Nothing,Function} = nothing) -> Array{Float64,1}

The steadystate function is used to evaluate the steady state of the model object that has been built using the build function.

Arguments

  • model::BSTModel: A model object that has been built using the build function.
  • tspan::Tuple{Float64,Float64}: A tuple that defines the time span for the simulation. The default is (0.0,20.0).
  • Δt::Float64: The time step for the simulation. The default is 0.01.
  • input::Union{Nothing,Function}: An optional input function that can be used to drive the simulation. The default is nothing.

Returns

  • A vector of state values that represent the steady state of the system.
Base.indexinMethod
indexin(dd::Dict{String,Any},species_symbol::String; 
    key="total_species_list")::Union{Nothing,Int}

The indexin function is a utility function that returns the index of a species in the total species list of a model.

Arguments

  • dd::Dict{String,Any}: a dictionary that contains the model data.
  • species_symbol::String: the symbol of the species to find.
  • key::String: the key in the dictionary that contains the total species list.

Returns

  • an integer that represents the index of the species in the total species list, or nothing if the species is not found.