@@ -306,13 +306,40 @@ void setup_pd_model_auc(Pharmacodynamics_Model *pPD, pugi::xml_node substrate_no
306
306
// internalized drug amount (or concentration) simply decreases as A(dt) = A0 * exp(-metabolism_rate * dt);
307
307
pPD->metabolism_reduction_factor = exp (-metabolism_rate * pPD->dt );
308
308
309
+ // Damage (D) follows D' = A - linear_rate * D - constant_rate ==> D(dt) = d_00 + d_10 * A0 + d_01 * D0; defining d_00, d_10, and d_01 here
310
+ pPD->initial_damage_coefficient = exp (-linear_repair_rate * pPD->dt ); // d_01
311
+ if (linear_repair_rate == 0 )
312
+ {
313
+ pPD->damage_constant = -constant_repair_rate * pPD->dt ; // d_00
314
+ }
315
+ else
316
+ {
317
+ pPD->damage_constant = (constant_repair_rate / linear_repair_rate) * (pPD->initial_damage_coefficient - 1 ); // d_00
318
+ }
319
+ if (metabolism_rate != linear_repair_rate)
320
+ {
321
+ pPD->initial_substrate_coefficient = (pPD->metabolism_reduction_factor - pPD->initial_damage_coefficient ) / (linear_repair_rate - metabolism_rate); // d_10
322
+ }
323
+ else
324
+ {
325
+ pPD->initial_substrate_coefficient = pPD->initial_damage_coefficient * pPD->dt ; // d_10
326
+ }
327
+ /* OLD CODE USED TO COMPUTE d_00, d_10, and d_01
309
328
if (linear_repair_rate == 0)
310
329
{
311
330
// Damage (D) follows D' = A - constant_rate ==> D(dt) = d_00 + d_10 * A0 + 1 * D0; defining d_00 and d_01 here
312
331
pPD->damage_constant = -constant_repair_rate * pPD->dt; // d_00
313
- pPD->initial_substrate_coefficient = (1 - exp (-metabolism_rate * pPD->dt )) / metabolism_rate; // d_10
332
+ if (metabolism_rate == 0)
333
+ {
334
+ pPD->initial_substrate_coefficient = pPD->dt; // d_10
335
+ }
336
+ else
337
+ {
338
+ pPD->initial_substrate_coefficient = (1 - pPD->metabolism_reduction_factor) / metabolism_rate; // d_10
339
+ }
314
340
pPD->initial_damage_coefficient = 1.0; // d_01
315
341
}
342
+
316
343
else
317
344
{
318
345
// Damage (D) follows D' = A - linear_rate * D - constant_rate ==> D(dt) = d_00 + d_10 * A0 + d_01 * D0; defining d_00, d_10, and d_01 here
@@ -334,6 +361,7 @@ void setup_pd_model_auc(Pharmacodynamics_Model *pPD, pugi::xml_node substrate_no
334
361
pPD->initial_substrate_coefficient = pPD->initial_damage_coefficient * pPD->dt; // d_10
335
362
}
336
363
}
364
+ */
337
365
}
338
366
}
339
367
0 commit comments