BeginPackage["Graphics`MultipleListPlot`"] Unprotect[PK1,PK2,PD,Model,Sc,PKPD,TimeCurve,DRcurve] Print["This package provides antibiotics modeling and simulation based on \ bacterial regrowth rate."] Print["Author: Ahmed A. El-Sherbeni, 2009."] (* :Requirements: Needs the package Graphics`MultipleListPlot`. *) PK1[q_, qq_, qqq_] := {k, vd, f} = {q/accuracy, qq, qqq}; PK2[e_, ee_, eee_, eeee_] := {k, ka, avd, f} = {e/accuracy, ee/accuracy, eee, eeee}; PD[t_, tt_, ttt_, tttt_, ttttt_] := {gmax, kmax, ec50, h, nmax} = {t/accuracy, (t+tt)/accuracy, ttt, tttt, ttttt}; Model[y_, yyy_, yyyy_ , yyyyy_] := {n[0], dose1, dose2, z} = {y, Log[10, yyy], Log[10, yyyy], yyyyy}; PG[jj_, jjj_]:= {effdose50, hillslope}={jj, -jjj}; d= f 10^dose; maxeff=100 accuracy=100 time=24 t := time accuracy waiting = 2 wait:= waiting accuracy taw= t/ii experimental={0,0} conc=\!\(ec50\ \((\(-1.`\) + 10000.`\ kmax)\)\^\(\(-1.`\)/h\)\) Adc := {If[Head[k] === Symbol, Goto[sign1], Goto[signlast1]]; Label[sign1]; Print["\"]; Abort[]; Label[signlast1]; If[Head[gmax] === Symbol, Goto[sign2], Goto[signlast2]]; Label[sign2]; Print["\"]; Abort[]; Label[signlast2]; If[Head[z] === Symbol, Goto[sign3], Goto[signlast3]]; Label[sign3]; Print["\"]; Abort[]; Label[signlast3]; ii = 1; Do[If[Head[ka] === Symbol, \[IndentingNewLine]Do[ pkk[\((\((i - 1)\))\)\ taw + tt] = d\ \[ExponentialE]^\((\(-k\)\ tt)\)\ \((1 - \[ExponentialE]^\((\ \(-k\)\ i\ taw)\))\)/\((\((1 - \[ExponentialE]^\((\(-k\)\ taw)\))\)\ vd)\), \ {i, 1, ii}, {tt, 0, t/ii - 1}], Do[pkk[\((\((i - 1)\))\)\ taw + tt] = d\ \((\((\((\[ExponentialE]^\((\((\(-k\))\)\ tt)\)\ \((\((1 - \ \[ExponentialE]^\((\((\(-k\))\)\ i\ taw)\))\))\))\)/\((1 - \ \[ExponentialE]^\((\((\(-k\))\)\ taw)\))\) - \ \((\[ExponentialE]^\((\((\(-ka\))\)\ tt)\)\ \((\((1 - \ \[ExponentialE]^\((\((\(-ka\))\)\ i\ taw)\))\))\))\)/\((1 - \ \[ExponentialE]^\((\((\(-ka\))\)\ taw)\))\))\))\)\ \ ka/\((\((\((\((\((\(-k\))\) + ka)\))\)\ avd)\))\), {i, 1, ii}, {tt, 0, t/ii - 1}]]; If[Head[ka] != Symbol, pkk[0] = 0]; pharmacokinetics[dose] = Join[Table[0, {wwai, 1, wait}], Table[pkk[ttt], {ttt, 0, t - 1}]]; \[IndentingNewLine]\[IndentingNewLine]simulation[ ii, dose] = Table[n[tt] = n[tt - 1] + n[tt - 1]\ \((\((gmax\ \((\((1 - n[tt - 1]/ nmax)\))\) - \((kmax\ \(pharmacokinetics[ dose]\)[\([tt]\)]^ h)\)/\((\(pharmacokinetics[dose]\)[\([tt]\)]^ h + ec50^h)\))\))\), {tt, 1, t + wait}], {dose, dose1, dose2, \((\((dose2 - dose1)\))\)/\((\((z - 1)\))\)}]; \[IndentingNewLine]\[IndentingNewLine]MatrixForm[ Join[{{ABdose, Adc, ActionDur}}, \[IndentingNewLine]\[IndentingNewLine]Table[{N[ 10^dose], \[IndentingNewLine]\[IndentingNewLine]\((1/ 2 \(\[Sum]\+\(q = 1\)\%\(taw + wait\)Extract[ simulation[ii, dose], q]\) + 1/2 \(\[Sum]\+\(qq = 2\)\%\(taw + wait - 1\)Extract[ simulation[ii, dose], qq]\))\)/\((100)\) - n[0]\ nmax\ \(\(-Log[nmax]\) + Log[\((\(-1\) + \ \[ExponentialE]\^\(gmax\ wait\))\)\ n[0] + nmax]\)\/\(gmax\ n[0]\ 100\), \ \[IndentingNewLine]\[IndentingNewLine]N[ Max[Join[{wait}, Position[ pharmacokinetics[dose], _?\((# >= conc &)\)]] - wait]/100]}, {dose, dose1, dose2, \((\((dose2 - dose1)\))\)/\((\((z - 1)\))\)}]]]} TimeCurve[p_]:= {If[Head[k]=== Symbol,Goto[sign1],Goto[signlast1]];Label[sign1];Print["Missed pharmacokinetic parameter(s)"];Abort[];Label[signlast1];If[Head[gmax]=== Symbol,Goto[sign2],Goto[signlast2]];Label[sign2];Print["Missed pharmacodynamic parameter(s)"];Abort[];Label[signlast2];If[Head[z]=== Symbol,Goto[sign3],Goto[signlast3]];Label[sign3];Print["Missed model parameter(s)"];Abort[];Label[signlast3];If[Head[maxeff]=== Symbol,Goto[sign4],Goto[signlast4]];Label[sign4];Print["Missed pharmacological parameter(s)"];Abort[];Label[signlast4];dose=Log[10,p];ii=1;If[Head[ka]===Symbol,Do[pkk[((i - 1)) taw + tt] = d \[ExponentialE]^(-k tt) (1-\[ExponentialE]^(-k i taw))/((1-\[ExponentialE]^(-k taw)) vd), {i, 1, ii}, {tt, 0, t/ii - 1}],Do[pkk[((i - 1)) taw + tt] = d (((\[ExponentialE]^((-k) tt) ((1 - \[ExponentialE]^((-k) i taw))))/(1 - \[ExponentialE]^((-k) taw)) - (\[ExponentialE]^((-ka) tt) ((1 - \ \[ExponentialE]^((-ka) i taw))))/(1 - \[ExponentialE]^((-ka) taw)))) ka/(((((-k)+ ka)) avd)), {i, 1, ii}, {tt, 0, t/ii - 1}]]; If[Head[ka]!=Symbol,pkk[0]=0];pharmacokinetics[p] = Join[Table[0,{wwai,1,wait}],Table[pkk[ttt], {ttt, 0, t - 1}]]; simulation[p] = Table[n[tt] = n[tt - 1] + n[tt - 1] ((gmax ((1 - n[tt - 1]/nmax)) - (kmax pharmacokinetics[p][[tt]]^h)/(pharmacokinetics[p][[tt]]^h + ec50^h))) , {tt, 1, t + wait}]; MultipleListPlot[Table[{day,pharmacokinetics[p][[day accuracy]]},{day, 1/accuracy,If[Max[Join[{wait},Position[pharmacokinetics[p],_?(#\[GreaterEqual]conc&)]]]< 800,8,If[Max[ Join[{wait}, Position[pharmacokinetics[dose],_?(#\[GreaterEqual]conc&)]]]<1600, 16,24]],1/accuracy}],{{Max[Join[{wait},Position[pharmacokinetics[p],_?(#>=conc&)]]]/100,0},{Max[Join[{wait},Position[pharmacokinetics[p],_?(#>=conc&)]]]/100,conc}},TextStyle->{FontFamily->"bookman",FontSize->16}, PlotJoined->True, PlotRange->All], MultipleListPlot[Table[{day,simulation[p][[day accuracy]]},{day, 1/accuracy,Max[Join[{wait},Position[pharmacokinetics[p],_?(#\[GreaterEqual]conc&)]]]/100,1/accuracy}],{{Max[Join[{wait},Position[pharmacokinetics[p],_?(#>=conc&)]]]/100,0},{Max[Join[{wait},Position[pharmacokinetics[p],_?(#>=conc&)]]]/100,simulation[p][[Max[Join[{wait},Position[pharmacokinetics[p],_?(#>=conc&)]]]]]}},TextStyle->{FontFamily->"bookman",FontSize->16}, PlotJoined->True,PlotRange->All]} DRcurve := MultipleListPlot[experimental,drc[1],TextStyle->{\ FontFamily->"bookman",FontSize->16}, PlotJoined->True,PlotRange->All] NewRound := \ ClearAll[waiting,wait,time,t,accuracy,experimental,conc,k,ka,vd,avd,gmax,kmax,ec50,h,nmax,n,dose1,dose2,z,maxeff,effdose50,hillslope,pkk,pharmacokinetics,simulation,drc,ii]; <