// Imp-Pi example program by Mathias John, adapted Andrew Phillips's example for Spim model repressilator reactions // reaction for one reactant reactions delay; // blocking of gene lockGene; variables // rate constant for protein production rProd: 0.1; // rate constant for protein decay rDec: 0.001; // rate constant for unblocking gene rFree: 0.0001; // rate constant for locking gene rLock: 1.0; species gene(me,peer) { free: delay[rProd]?(){add 1 of new protein(peer)}.free + lockGene[func(n1,r,n2) {if(n1=n2) r} me rLock]?().locked; locked: delay[rFree]?().free; } protein(n) { m: lockGene[n]!().m + delay[rDec]?().null; } timer() { m: delay!().m; } solution { add 1 of new gene("A","B"); add 1 of new gene("B","C"); add 1 of new gene("C","A"); add 1 of new timer() }