Jumbe model PML syntax

In a recent review by Gabrielsson and Hjorth (AAPS Jan 2016), it was suggested to rewrite the effect function in the Jumbe model as:

if C> 0, then S(C) = 1 + kkill,max * (C/KC50 + C); if C=0, then S(C) = 1.

I’m having trouble with the PML syntax to implement this. My current code below brings back an error "assignment only allowed at top level. Suggestions?

Thanks,

Luke

if(C > 0) {Inh = 1+ Kmax * (C^delta / ( KC50^delta + C^delta))} else{if(C = 0) {Inh = 1}}

Hi Luke,

two things: get rid of else statement and change the assignment symbol for ‘equals’, e.g. ‘==’ instead of ‘=’’

Here is an example PML:

if(C > 0){Inh=(1+ Kmax * (C /(KC50+ C)))}
if(C == 0){Inh = 1}

Bernd

and PML support the C language way of telling it what you want:

Inh = C > 0 ? (1+ Kmax * (C /(KC50+ C))) : 1

This reads when C> 0 inh is = to (1+ Kmax * (C /(KC50+ C))) , otherwise it is 1
you can nest have mutliple conditions this way it is just a matter of style and readability

both ways does not handle when C < 0 so you need to make sure that this is impossible to happen in your model.
testing for equality can be numerically tricky what is really 0 is 0 .0000001 zero ? you need to thing about tolerance and precision in these settings