Code for the simulation
From OpenWetWare
Jump to navigationJump to search
Return to Diffusible Signal Oscillator
Construction's Program Code for SPiM:
- val t = 0.1 (*Decay Rate*)
- val d = 0.001 (*Inhibition Rate*)
- val u = 0.0001 (*Constitutive Rate*)
- val bind = 1.0 (*Protein binding rate*)
- let Cl(a:chan,b:chan)=
- do delay@t;(ALas(b) | Cl(a,b))
- or ?a;delay@u;Cl(a,b)
- and ALas(b:chan)=
- do !b;ALas(b)
- or delay@d
- new a@bind:chan
- new b@bind:chan
- new c@bind:chan
- new e@bind:chan
- new f@bind:chan
- val t = 0.1 val d = 0.001
- val u = 0.0001 val bind = 1.0
- let Las(b:chan,c:chan)=
- do ?e;delay@t;(ALux(c)|GFP()|Las(b,c))
- or ?b; delay@t; (ALux(c)|GFP()|Las(b,c))
- and ALux(c:chan)=
- do !c;ALux(c)
- or delay@d
- and GFP()=
- delay@d
- new a@bind:chan
- new b@bind:chan
- new c@bind:chan
- new e@bind:chan
- new f@bind:chan
- val t = 0.1 val d = 0.001
- val u = 0.0001 val bind = 1.0
- let Lux(c:chan,a:chan)=
- do ?f;delay@t;(RCl(a)|RFP()| Lux(c,a))
- or ?c; delay@t; (RCl(a)|RFP()|Lux(c,a))
- and RCl(a:chan)=
- do !a;RCl(a)
- or delay@d
- and RFP()=
- delay@d
- new a@bind:chan
- new b@bind:chan
- new c@bind:chan
- new e@bind:chan
- new f@bind:chan
- val t = 0.1 val d = 0.001
- val u = 0.0001 val bind = 1.0
- let X()=
- delay@t;(RLas(e)|RLux(f)|X())
- and RLas(e:chan)=
- do !e;RLas(e)
- or delay@d
- and RLux(f:chan)=
- do !f;RLux(f)
- or delay@d
- new a@bind:chan
- new b@bind:chan
- new c@bind:chan
- new e@bind:chan
- new f@bind:chan
- run(Cl(a,b))
- run(Las(b,c))
- run(Lux(c,a))
- run(X())