Time after last dose

2 views (last 30 days)
Abed Alnaif
Abed Alnaif on 29 Jun 2022
Commented: Abed Alnaif on 29 Jun 2022
Is there a way to keep track of time after last dose in a SimBiology model? I'm working on implementing the following model, and the model includes a time after dose (TAD) parameter: https://link.springer.com/article/10.1208/s12248-020-00455-y
Also, my model will eventually include several drugs, and thus several dose objects (one for each drug). Thus, I would like the time-after-last-dose tracking to be specific to a particular dose object and ignore the other dose objects (each dose object having a different target).
Thank you,

Accepted Answer

Arthur Goldsipe
Arthur Goldsipe on 29 Jun 2022
I haven't read the article, so I don't know how the TAD parameter is used. I'm assuming you need to know TAD during the simulation. If you only need it for some sort of post-simulation analysis, I have some ideas for other simpler options.
Your question reminds me of something I implemented in this insulin demo. Look at the first event in this model, and you should be able to do something similar to determine TAD. But I do want to say that this is a little tedious. If this is something that comes up often, I'd like to think of features we could add to make the work easier.
In my case, I also needed to set a parameter in response to a dose. I did that by adding a helper event and a helper species (that is the target of the dose). The basic idea is that the helper species is only there to trigger the event whenever a dose occurs. So the species concentration starts out as zero, and the event detects whenever the species concentration changes (due to a dose). The even then transfers the drug to the "real" target and updates the parameter. One annoying limitation today is that events aren't triggered at time=0, so you have to do a little extra work if you have a dose at time 0. I worked around this by getting the dose to trigger at some small time greater than 0 (effectively making the dose get applied at a time > 0). So to summarize, here's what your event might look like:
  • Trigger: time > timeSmall & Dose > 0*Dose
  • Event Function 1 (store TAD): paramTAD = time
  • Event Function 2 (apply dose): Target = Target + Dose
  • Event Function 3 (reset helper species): Dose = 0*Dose
  1 Comment
Abed Alnaif
Abed Alnaif on 29 Jun 2022
Hi Arthur,
Thanks. I don't think that this is something that occurs frequently. This is the first time I've seen this.
I think your implementation would work for me, and I can take TAD to be equal to time-paramTAD
I think a nice feature would be if there was some reserved keyword for each dose object which keeps track of TAD, which can then be used in the model. But I'm not sure if it would be worth implementing this given that it doesn't occur often.

Sign in to comment.

More Answers (0)


More Answers in the  SimBiology Community





Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by