BMI wrapper for PySB-assembled models (indra.assemblers.pysb.bmi_wrapper)¶
This module allows creating a Basic Modeling Interface (BMI) model from and automatically assembled PySB model. The BMI model can be instantiated within a simulation workflow system where it is simulated together with other models.
-
class
indra.assemblers.pysb.bmi_wrapper.BMIModel(model, inputs=None, stop_time=1000, outside_name_map=None)[source]¶ This class represents a BMI model wrapping a model assembled by INDRA.
Parameters: - model (pysb.Model) – A PySB model assembled by INDRA to be wrapped in BMI.
- inputs (Optional[list[str]]) – A list of variable names that are considered to be inputs to the model meaning that they are read from other models. Note that designating a variable as input means that it must be provided by another component during the simulation.
- stop_time (int) – The stopping time for this model, controlling the time units up to which the model is simulated.
- outside_name_map (dict) – A dictionary mapping outside variables names to inside variable names (i.e. ones that are in the wrapped model)
-
export_into_python()[source]¶ Write the model into a pickle and create a module that loads it.
The model basically exports itself as a pickle file and a Python file is then written which loads the pickle file. This allows importing the model in the simulation workflow.
-
get_attribute(att_name)[source]¶ Return the value of a given attribute.
Atrributes include: model_name, version, author_name, grid_type, time_step_type, step_method, time_units
Parameters: att_name (str) – The name of the attribute whose value should be returned. Returns: value – The value of the attribute Return type: str
-
get_current_time()[source]¶ Return the current time point that the model is at during simulation
Returns: time – The current time point Return type: float
-
get_input_var_names()[source]¶ Return a list of variables names that can be set as input.
Returns: var_names – A list of variable names that can be set from the outside Return type: list[str]
-
get_output_var_names()[source]¶ Return a list of variables names that can be read as output.
Returns: var_names – A list of variable names that can be read from the outside Return type: list[str]
-
get_start_time()[source]¶ Return the initial time point of the model.
Returns: start_time – The initial time point of the model. Return type: float
-
get_time_step()[source]¶ Return the time step associated with model simulation.
Returns: dt – The time step for model simulation Return type: float
-
get_time_units()[source]¶ Return the time units of the model simulation.
Returns: units – The time unit of simulation as a string Return type: str
-
get_value(var_name)[source]¶ Return the value of a given variable.
Parameters: var_name (str) – The name of the variable whose value should be returned Returns: value – The value of the given variable in the current state Return type: float
-
get_values(var_name)[source]¶ Return the value of a given variable.
Parameters: var_name (str) – The name of the variable whose value should be returned Returns: value – The value of the given variable in the current state Return type: float
-
get_var_name(var_name)[source]¶ Return the internal variable name given an outside variable name.
Parameters: var_name (str) – The name of the outside variable to map Returns: internal_var_name – The internal name of the corresponding variable Return type: str
-
get_var_rank(var_name)[source]¶ Return the matrix rank of the given variable.
Parameters: var_name (str) – The name of the variable whose rank should be returned Returns: rank – The dimensionality of the variable, 0 for scalar, 1 for vector, etc. Return type: int
-
get_var_type(var_name)[source]¶ Return the type of a given variable.
Parameters: var_name (str) – The name of the variable whose type should be returned Returns: unit – The type of the variable as a string Return type: str
-
get_var_units(var_name)[source]¶ Return the units of a given variable.
Parameters: var_name (str) – The name of the variable whose units should be returned Returns: unit – The units of the variable Return type: str
-
initialize(cfg_file=None, mode=None)[source]¶ Initialize the model for simulation, possibly given a config file.
Parameters: cfg_file (Optional[str]) – The name of the configuration file to load, optional.
-
make_repository_component()[source]¶ Return an XML string representing this BMI in a workflow.
This description is required by EMELI to discover and load models.
Returns: xml – String serialized XML representation of the component in the model repository. Return type: str
-
set_value(var_name, value)[source]¶ Set the value of a given variable to a given value.
Parameters: - var_name (str) – The name of the variable in the model whose value should be set.
- value (float) – The value the variable should be set to