Quickstart#
Visualization of Problems#
You can visualize problems.
Start the Problem problem_viewer#
1simba_ml_problem_viewer --module simba_ml.example_problems.trigonometry
2# or
3simba_ml_problem_viewer --module my_own_costum_module
You can find available example_problems in the example_problems package.
Note
The module you want to vizualize should create a PredictionTask named sm.
Generation of CSV Files#
In order to generate CSV files of a problem, you need to create a PredictionTask and then call generate_csvs. Example PredictionTasks can be found in problems.
>>> from simba_ml.example_problems import sir
>>> from simba_ml.simulation import generators
>>> generator = generators.TimeSeriesGenerator(sir.sm)
>>> generator.generate_csvs(10)
>>> from simba_ml.simulation import system_model
>>> from simba_ml.simulation import species
>>> from simba_ml.simulation import noisers
>>> from simba_ml.simulation import generators
>>> from simba_ml.simulation import distributions
>>> from simba_ml.simulation import kinetic_parameters as kinetic_parameters_module
>>> name = "SIR"
>>> specieses = [
... species.Species("Suspectible", distributions.Constant(999)),
... species.Species("Infected", distributions.VectorDistribution([10, 500, 1000])),
... species.Species("Recovered", distributions.VectorDistribution([1, 2, 10]), contained_in_output=False),
... ]
>>> kinetic_parameters = {
... "beta":kinetic_parameters_module.ConstantKineticParameter(distributions.Constant(0.2)),
... "gamma":kinetic_parameters_module.ConstantKineticParameter(distributions.Constant(0.04))
... }
>>> def deriv(_t, y, kinetic_parameters):
... S, I, _t = y
... N = sum(y)
... dS_dt = -kinetic_parameters["beta"] * S * I / N
... dI_dt = kinetic_parameters["beta"] * S * I / N - (kinetic_parameters["gamma"]) * I
... dR_dt = kinetic_parameters["gamma"] * I
... return dS_dt, dI_dt, dR_dt
...
>>> noiser = noisers.AdditiveNoiser(distributions.LogNormalDistribution(0, 2))
>>> sm = system_model.SystemModel(name, specieses, kinetic_parameters, deriv=deriv, noiser=noiser)
>>> generator = generators.TimeSeriesGenerator(sm)
>>> generator.generate_csvs(10)