// (WARNING: DO NOT EDIT) Machine generated by pbpk2cpp.cpp on Fri Feb 15 03:52:31 2008 // Title: PBPk of Diazepam #include #include #include #include #include // constants const double blood2PlasmaRatio = 1.037 ; const double totalVolume = 70000 ; const double totalFlow = 105.5 ; const double dTime = 1 ; const double venousBlood_volume = (0.0514 * totalVolume); const double arterialBlood_volume = (0.0257 * totalVolume); const double rest_volume = (0.1057 * totalVolume); const double adiposeTissue_volume = (0.1743 * totalVolume); const double skin_volume = (0.1114 * totalVolume); const double muscle_volume = (0.4286 * totalVolume); const double gastrointestinalTract_volume = (0.0343 * totalVolume); const double kidneys_volume = (0.0043 * totalVolume); const double liver_volume = (0.0214 * totalVolume); const double heart_volume = (0.0043 * totalVolume); const double brain_volume = (0.0214 * totalVolume); const double lungs_volume = (0.0172 * totalVolume); double venousBlood_diazepam_currentQuantity = 0.0; double venousBlood_diazepam_tissue2OutputRatio = 0.0; double arterialBlood_diazepam_currentQuantity = 0.0; double arterialBlood_diazepam_tissue2OutputRatio = 0.0; double adiposeTissue_diazepam_currentQuantity = 0.0; double adiposeTissue_diazepam_tissue2OutputRatio = 0.0; double skin_diazepam_currentQuantity = 0.0; double skin_diazepam_tissue2OutputRatio = 0.0; double muscle_diazepam_currentQuantity = 0.0; double muscle_diazepam_tissue2OutputRatio = 0.0; double gastrointestinalTract_diazepam_currentQuantity = 0.0; double gastrointestinalTract_diazepam_tissue2OutputRatio = 0.0; double kidneys_diazepam_currentQuantity = 0.0; double kidneys_diazepam_tissue2OutputRatio = 0.0; double liver_diazepam_currentQuantity = 0.0; double liver_diazepam_tissue2OutputRatio = 0.0; double liver_diazepam_excretedQuantity = 0.0; double liver_diazepam_tissue2ExcretionRatio = 0.0; double heart_diazepam_currentQuantity = 0.0; double heart_diazepam_tissue2OutputRatio = 0.0; double brain_diazepam_currentQuantity = 0.0; double brain_diazepam_tissue2OutputRatio = 0.0; double lungs_diazepam_currentQuantity = 0.0; double lungs_diazepam_tissue2OutputRatio = 0.0; void ProcessPhysiology_diazepam (double currentTime , double &venousBlood_out, double venousBlood_in , double &arterialBlood_out, double arterialBlood_in , double &adiposeTissue_out, double adiposeTissue_in , double &skin_out, double skin_in , double &muscle_out, double muscle_in , double &gastrointestinalTract_out, double gastrointestinalTract_in , double &kidneys_out, double kidneys_in , double &liver_out, double liver_in , double &liver_outEx , double &heart_out, double heart_in , double &brain_out, double brain_in , double &lungs_out, double lungs_in ) { venousBlood_out = -(venousBlood_diazepam_tissue2OutputRatio * venousBlood_in) + (adiposeTissue_diazepam_tissue2OutputRatio * adiposeTissue_in) + (skin_diazepam_tissue2OutputRatio * skin_in) + (muscle_diazepam_tissue2OutputRatio * muscle_in) + (kidneys_diazepam_tissue2OutputRatio * kidneys_in) + (liver_diazepam_tissue2OutputRatio * liver_in) + (heart_diazepam_tissue2OutputRatio * heart_in) + (brain_diazepam_tissue2OutputRatio * brain_in) ; arterialBlood_out = -(arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) + (lungs_diazepam_tissue2OutputRatio * lungs_in) ; adiposeTissue_out = -(adiposeTissue_diazepam_tissue2OutputRatio * adiposeTissue_in) + (0.041 * arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) ; skin_out = -(skin_diazepam_tissue2OutputRatio * skin_in) + (0.308 * arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) ; muscle_out = -(muscle_diazepam_tissue2OutputRatio * muscle_in) + (0.047 * arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) ; gastrointestinalTract_out = -(gastrointestinalTract_diazepam_tissue2OutputRatio * gastrointestinalTract_in) + (0.19 * arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) ; kidneys_out = -(kidneys_diazepam_tissue2OutputRatio * kidneys_in) + (0.196 * arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) ; liver_out = -(liver_diazepam_tissue2OutputRatio * liver_in) - (liver_diazepam_tissue2ExcretionRatio * liver_in) + (0.06 * arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) + (gastrointestinalTract_diazepam_tissue2OutputRatio * gastrointestinalTract_in) ; liver_outEx = (liver_diazepam_tissue2ExcretionRatio * liver_in) ; heart_out = -(heart_diazepam_tissue2OutputRatio * heart_in) + (0.038 * arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) ; brain_out = -(brain_diazepam_tissue2OutputRatio * brain_in) + (0.12 * arterialBlood_diazepam_tissue2OutputRatio * arterialBlood_in) ; lungs_out = -(lungs_diazepam_tissue2OutputRatio * lungs_in) + (venousBlood_diazepam_tissue2OutputRatio * venousBlood_in) ; } void ProcessPhysiologyTop (double currentTime) // Eulers { double venousBlood_diazepam_dQuantity = 0.0; double arterialBlood_diazepam_dQuantity = 0.0; double adiposeTissue_diazepam_dQuantity = 0.0; double skin_diazepam_dQuantity = 0.0; double muscle_diazepam_dQuantity = 0.0; double gastrointestinalTract_diazepam_dQuantity = 0.0; double kidneys_diazepam_dQuantity = 0.0; double liver_diazepam_dQuantity = 0.0; double liver_diazepam_dExcretion = 0.0 ; double heart_diazepam_dQuantity = 0.0; double brain_diazepam_dQuantity = 0.0; double lungs_diazepam_dQuantity = 0.0; ProcessPhysiology_diazepam ( currentTime , venousBlood_diazepam_dQuantity, (venousBlood_diazepam_currentQuantity) , arterialBlood_diazepam_dQuantity, (arterialBlood_diazepam_currentQuantity) , adiposeTissue_diazepam_dQuantity, (adiposeTissue_diazepam_currentQuantity) , skin_diazepam_dQuantity, (skin_diazepam_currentQuantity) , muscle_diazepam_dQuantity, (muscle_diazepam_currentQuantity) , gastrointestinalTract_diazepam_dQuantity, (gastrointestinalTract_diazepam_currentQuantity) , kidneys_diazepam_dQuantity, (kidneys_diazepam_currentQuantity) , liver_diazepam_dQuantity, (liver_diazepam_currentQuantity) , liver_diazepam_dExcretion , heart_diazepam_dQuantity, (heart_diazepam_currentQuantity) , brain_diazepam_dQuantity, (brain_diazepam_currentQuantity) , lungs_diazepam_dQuantity, (lungs_diazepam_currentQuantity) ); venousBlood_diazepam_currentQuantity += venousBlood_diazepam_dQuantity * dTime ; arterialBlood_diazepam_currentQuantity += arterialBlood_diazepam_dQuantity * dTime ; adiposeTissue_diazepam_currentQuantity += adiposeTissue_diazepam_dQuantity * dTime ; skin_diazepam_currentQuantity += skin_diazepam_dQuantity * dTime ; muscle_diazepam_currentQuantity += muscle_diazepam_dQuantity * dTime ; gastrointestinalTract_diazepam_currentQuantity += gastrointestinalTract_diazepam_dQuantity * dTime ; kidneys_diazepam_currentQuantity += kidneys_diazepam_dQuantity * dTime ; liver_diazepam_currentQuantity += liver_diazepam_dQuantity * dTime ; liver_diazepam_excretedQuantity += liver_diazepam_dExcretion * dTime ; heart_diazepam_currentQuantity += heart_diazepam_dQuantity * dTime ; brain_diazepam_currentQuantity += brain_diazepam_dQuantity * dTime ; lungs_diazepam_currentQuantity += lungs_diazepam_dQuantity * dTime ; } void InitializeSimulation () { venousBlood_diazepam_tissue2OutputRatio = totalFlow * 1 / venousBlood_volume ; printf("# venousBlood_diazepam_tissue2OutputRatio: %g \n", venousBlood_diazepam_tissue2OutputRatio); arterialBlood_diazepam_tissue2OutputRatio = totalFlow * 1 / arterialBlood_volume ; printf("# arterialBlood_diazepam_tissue2OutputRatio: %g \n", arterialBlood_diazepam_tissue2OutputRatio); adiposeTissue_diazepam_tissue2OutputRatio = totalFlow * 0.041 / (adiposeTissue_volume * 2.74 / blood2PlasmaRatio) ; printf("# adiposeTissue_diazepam_tissue2OutputRatio: %g \n", adiposeTissue_diazepam_tissue2OutputRatio); skin_diazepam_tissue2OutputRatio = totalFlow * 0.308 / (skin_volume * 0.72 / blood2PlasmaRatio) ; printf("# skin_diazepam_tissue2OutputRatio: %g \n", skin_diazepam_tissue2OutputRatio); muscle_diazepam_tissue2OutputRatio = totalFlow * 0.047 / (muscle_volume * 0.29 / blood2PlasmaRatio) ; printf("# muscle_diazepam_tissue2OutputRatio: %g \n", muscle_diazepam_tissue2OutputRatio); gastrointestinalTract_diazepam_tissue2OutputRatio = totalFlow * 0.19 / (gastrointestinalTract_volume * 0.4 / blood2PlasmaRatio) ; printf("# gastrointestinalTract_diazepam_tissue2OutputRatio: %g \n", gastrointestinalTract_diazepam_tissue2OutputRatio); kidneys_diazepam_tissue2OutputRatio = totalFlow * 0.196 / (kidneys_volume * 0.49 / blood2PlasmaRatio) ; printf("# kidneys_diazepam_tissue2OutputRatio: %g \n", kidneys_diazepam_tissue2OutputRatio); liver_diazepam_tissue2OutputRatio = totalFlow * 0.25 / (liver_volume * 1.04 / blood2PlasmaRatio) ; liver_diazepam_tissue2ExcretionRatio = 0.4784 / (liver_volume * 1.04 ); printf("# liver_diazepam_tissue2ExcretionRatio: %g \n", liver_diazepam_tissue2OutputRatio); printf("# liver_diazepam_tissue2OutputRatio: %g \n", liver_diazepam_tissue2OutputRatio); heart_diazepam_tissue2OutputRatio = totalFlow * 0.038 / (heart_volume * 0.47 / blood2PlasmaRatio) ; printf("# heart_diazepam_tissue2OutputRatio: %g \n", heart_diazepam_tissue2OutputRatio); brain_diazepam_tissue2OutputRatio = totalFlow * 0.12 / (brain_volume * 0.22 / blood2PlasmaRatio) ; printf("# brain_diazepam_tissue2OutputRatio: %g \n", brain_diazepam_tissue2OutputRatio); lungs_diazepam_tissue2OutputRatio = totalFlow * 1 / (lungs_volume * 0.69 / blood2PlasmaRatio) ; printf("# lungs_diazepam_tissue2OutputRatio: %g \n", lungs_diazepam_tissue2OutputRatio); } void InjectSubstance (double currentTime) { static int finished = 0; if (finished) { return; } /* if */ if (currentTime >= 0) { venousBlood_diazepam_currentQuantity += 7e+006; finished = 1; } /* if */ } void SanityCheck () { double total = 0.0; total += venousBlood_diazepam_currentQuantity ; total += arterialBlood_diazepam_currentQuantity ; total += adiposeTissue_diazepam_currentQuantity ; total += skin_diazepam_currentQuantity ; total += muscle_diazepam_currentQuantity ; total += gastrointestinalTract_diazepam_currentQuantity ; total += kidneys_diazepam_currentQuantity ; total += liver_diazepam_currentQuantity ; total += liver_diazepam_excretedQuantity ; total += heart_diazepam_currentQuantity ; total += brain_diazepam_currentQuantity ; total += lungs_diazepam_currentQuantity ; printf("# SanityCheck: %g\n",total); } void PlotPhysiology (double currentTime) { static double nextPlot = 0.0; if (currentTime >= nextPlot) { nextPlot += 600; printf("%g ",currentTime / 3600); printf("%g ",brain_diazepam_currentQuantity / brain_volume); printf("%g ",muscle_diazepam_currentQuantity / muscle_volume); printf("%g ",adiposeTissue_diazepam_currentQuantity / adiposeTissue_volume); printf("%g ",venousBlood_diazepam_currentQuantity / (venousBlood_volume * blood2PlasmaRatio )); // convert Cbloodtotal to Cplasma printf("\n"); SanityCheck(); } /* if */ } void RunSimulation () { double currentTime; InitializeSimulation (); for (currentTime = 0; currentTime < 259200; currentTime += dTime) { InjectSubstance(currentTime) ; ProcessPhysiologyTop(currentTime) ; PlotPhysiology(currentTime) ; } /* currentTimeForLoop */ } void main () { RunSimulation(); }