Hi support,
I had a problem describing a model structure using PML. The problem is the inability to achieve recirculation that depend on both time and concentration (similar to the Enterohepatic Recirculation).
In order to understand my requirements, let’s assume a Enterohepatic Recirculation mechanism.
Factors affecting Enterohepatic Recirculation:
Enterohepatic Recirculation is to occur when the drug concentration is above a threshold C_cut.
For a period of time after biliary excretion, drugs accumulate in the bile, but biliary excretion does not occur again.(Refractory period)
Drug background description:
The drug is administered orally, drugs exist in the body have “Enterohepatic Recirculation” phenomenon.
The Enterohepatic Recirculation stops until the concentration below a certain level(C_cut).
There are multiple dose levels: A, B, C, and multiple administration frequencies: BID, QD.
Model structure:
The mechanism by which drugs except for Enterohepatic Recirculation can be described by the following model:
Absorption: first-order rate absorption with absorption delay
Distribution: one compartment
Elimination: first order rate elimination
Hepato-intestinal circulation mechanism:
- At concentrations higher than C_cut, biliary excretion events are triggered
- Biliary excretion events do not occur again during a Duration after the event occurs.
- There is a delayed Tlag between the occurrence of excretion events and the arrival of bile in the intestine
The PML realization of biliary excretion events:
sequence{
while(C<C_cut){
sleep(Tlag)
A_intestinal = A_intestinal+A_bile
sleep(Duration-Tlag)
}
}
Problem
The above code can work properly after a single dose("Initial Estimates"work, “Excute” not work), but in multiple dosing scenarios, the code does not work properly and does not perform biliary excretion as expected after a second dose.
I checked the “Phoenix Modeling Language Reference Guide” and it was mentioned that sequence statement only works when it stops and until a sleep statement isencountered. This means that Once the C < C_cut the sequence statement is invalidated, even if C is larger than the C_cut sequence again, it will not wake up the sequence.
I noticed that it was mentioned in the help that only reset can wake up and re-execute sequence statements, but the current model does not support me to use reset, because I also used sequence to set the initial value of other variables. So It is not appropriate for these variables to be set to the initial value again after multiple dosing.
Do you have any solutions that can help me achieve the model I want?
Sincerely,
0521