We get this question quite regularly - the best way to do this currently is by using dosing. What you have to do:
- In your dataset: Create a column in your dataset for each parameter you want to change. For each individual in your dataset, assign a value of your parameter at t = 0. e.g. You have a column 'Dose_ka' with value 3 at t = 0, and NaN's (empties) elsewhere. If you have many parameters that you need to assign values to, you could automate this by exporting your dataset from SimBiology pulling out the
- In your model: Create a dummy species, e.g. 'Dose_ka'. Then create a repeated assignment (an initial assignment will not work!) to assign the value of Dose_ka to the parameter ka. So the repeated assignment rule should read ka = Dose_ka. This is assuming you are assigning a value to a parameter or a compartment. If you want to assign an initial value to a species, you can of course just dose the species at t = 0 (make sure the model value of the initial condition is 0).
- In your fit task/sbiofit: map the dose column for Dose_ka to the species Dose_ka in your model.
Another solution could be - but this is more involved - to create a simfunction where you specify which model components you want to change the value of, define your own objective function and pass that to the optimization alogrithm. In that case, you are basically doing the work that sbiofit does for you.
We have noted this use case, thanks for asking it here!
Please let us know if you have further questions.