Skip to content

Commit 520a17a

Browse files
committed
add script and models for the parametric model experiments
1 parent 6477e5c commit 520a17a

4 files changed

Lines changed: 1062 additions & 0 deletions

File tree

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
2+
%var: 'Na' 6.022e23 // Avogadro's [mol^-1]
3+
%var: 'V' 1.4e-15 // Cell volume [L]
4+
//
5+
%var: 'c0' 1e9 // M^-1 s^-1
6+
%var: 'c1' 224 // s^-1
7+
%var: 'c2' 9 // s^-1
8+
%var: 'c3' 0.5 // s^-1
9+
%var: 'c4' 5e-4 // s^-1
10+
%var: 'c5' 0.167 // s^-1
11+
%var: 'c6' 0.0057762265 // s^-1
12+
%var: 'c7' 0.0011552453 // s^-1
13+
//
14+
%var: 'tF' 1e-4 // telegraph factor
15+
%var: 'rF' 1000 // rna factor
16+
%var: 'pF' 1000 // protein factor
17+
18+
%var: 'l0' 'c0'/'Na'/'V'*'tF'/'pF'
19+
%var: 'l1' 'c1'*'tF'
20+
%var: 'l2' 'c2'*'tF'
21+
%var: 'l3' 'c3'*'rF'
22+
%var: 'l4' 'c4'*'rF'
23+
24+
%var: 'm0' 'c0'/'Na'/'V'*'tF'/'pF'
25+
%var: 'm1' 'c1'*'tF'
26+
%var: 'm2' 'c2'*'tF'
27+
%var: 'm3' 'c3'*'rF'
28+
%var: 'm4' 'c4'*'rF'
29+
%agent: Null()
30+
%agent: gTetR(lac1,lac2)
31+
%agent: pLacI(tet)
32+
%agent: pTetR(cI)
33+
%agent: gCI(tet1,tet2)
34+
%agent: gLacI(cI1,cI2)
35+
%agent: mTetR()
36+
%agent: mCI()
37+
%agent: mLacI()
38+
%agent: pCI(lac )
39+
40+
%init: 1 Null()
41+
%init: 1 gTetR(lac1[1],lac2[2]),pLacI(tet[1]),pLacI(tet[2])
42+
%init: 1 gCI(tet1[1],tet2[2]),pTetR(cI[1]),pTetR(cI[2])
43+
%init: 1 gLacI(cI1[1],cI2[2]),pCI(lac[1]),pCI(lac[2])
44+
%init: 3163 mTetR()
45+
%init: 6819 mCI()
46+
%init: 129 mLacI()
47+
%init: 183453 pTetR(cI)
48+
%init: 2006198 pCI(lac)
49+
%init: 165670 pLacI(tet)
50+
51+
%var: 'k0' 'c0'/'Na'/'V'*'tF'/'pF'
52+
%var: 'k1' 'c1'*'tF'
53+
%var: 'k2' 'c2'*'tF'
54+
%var: 'k3' 'c3'*'rF'
55+
%var: 'k4' 'c4'*'rF'
56+
// working_set
57+
//0
58+
gTetR(lac1,lac2) , pLacI(tet) <-> gTetR(lac1[1],lac2),pLacI(tet[1]) @'k0', 'k1'
59+
gTetR(lac2,lac1) , pLacI(tet) <-> gTetR(lac2[1],lac1),pLacI(tet[1]) @'k0', 'k1'
60+
61+
gTetR(lac1[_],lac2) , pLacI(tet) <-> gTetR(lac1[_],lac2[1]),pLacI(tet[1]) @'k0', 'k2'
62+
63+
gTetR(lac2[_],lac1) , pLacI(tet) <-> gTetR(lac2[_],lac1[1]),pLacI(tet[1]) @'k0', 'k2'
64+
65+
gTetR(lac1,lac2),. -> gTetR(lac1,lac2) , mTetR() @'k3'
66+
//5
67+
gTetR(lac1[_]),. -> gTetR(lac1[_]) , mTetR() @'k4'
68+
69+
gTetR(lac2[_]),. -> gTetR(lac2[_]) , mTetR() @'k4'
70+
71+
mTetR(),. -> mTetR() , pTetR(cI) @'c5'/'rF'*'pF'
72+
73+
mTetR() , Null() -> .,Null() @'c6'{0}
74+
pTetR(cI) , Null() -> .,Null() @'c7'{0}
75+
//10
76+
77+
gCI(tet1,tet2) , pTetR(cI) <-> gCI(tet1[1],tet2),pTetR(cI[1]) @'l0', 'l1'
78+
79+
gCI(tet2,tet1) , pTetR(cI) <-> gCI(tet2[1],tet1),pTetR(cI[1]) @'l0', 'l1'
80+
81+
gCI(tet1[_],tet2) , pTetR(cI) <-> gCI(tet1[_],tet2[1]),pTetR(cI[1]) @'l0', 'l2'
82+
83+
gCI(tet2[_],tet1) , pTetR(cI) <-> gCI(tet2[_],tet1[1]),pTetR(cI[1]) @'l0', 'l2'
84+
85+
gCI(tet1,tet2),. -> gCI(tet1,tet2) ,mCI() @'l3'
86+
//15
87+
gCI(tet1[_]),. -> gCI(tet1[_]) , mCI() @'l4'
88+
gCI(tet2[_]),. -> gCI(tet2[_]) , mCI() @'l4'
89+
90+
mCI(),. -> mCI() , pCI(lac) @'c5'/'rF'*'pF'
91+
92+
mCI() , Null() -> .,Null() @'c6'{0}
93+
pCI(lac) , Null() -> .,Null() @'c7'{0}
94+
//20
95+
gLacI(cI1,cI2) , pCI(lac) <-> gLacI(cI1[1],cI2),pCI(lac[1]) @'m0','m1'
96+
97+
gLacI(cI2,cI1) , pCI(lac) <-> gLacI(cI2[1],cI1),pCI(lac[1]) @'m0','m1'
98+
99+
gLacI(cI1[_],cI2) , pCI(lac) <-> gLacI(cI1[_],cI2[1]),pCI(lac[1]) @'m0','m2'
100+
101+
gLacI(cI2[_],cI1) , pCI(lac) <-> gLacI(cI2[_],cI1[1]),pCI(lac[1]) @'m0','m2'
102+
103+
gLacI(cI1,cI2),. -> gLacI(cI1,cI2) , mLacI() @ 'm3'
104+
//25
105+
106+
gLacI(cI1[_]),. -> gLacI(cI1[_]), mLacI() @'m4'
107+
108+
gLacI(cI2[_]),. -> gLacI(cI2[_]), mLacI() @'m4'
109+
110+
mLacI(),. -> mLacI() , pLacI(tet) @'c5'/'rF'*'pF'
111+
mLacI() , Null() -> .,Null() @'c6'{0}
112+
pLacI(tet) , Null() -> .,Null() @'c7'{0}
113+
//30
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/////////////////////
2+
// stories
3+
4+
%var: 'cflow' 0
5+
%mod: [true] do $TRACK 'sos recruited' [true];
6+
%mod: ('sos recruited' - 'cflow' = 10 ) do ($TRACK 'sos recruited' [false];$STOP;)
7+
8+
9+
//////////////////////////////////////////////////////////////////////////////
10+
// agent interfaces
11+
12+
13+
%agent: EGF(r)
14+
%agent: EGFR(CR,C,N,L,Y1016{u p},Y1092{u p},Y1172{u p})
15+
%agent: SoS(PR,S{u p})
16+
%agent: Shc(Y{u p},PTB{u p})
17+
%agent: Grb2(SH3c,SH3n,SH2{u p})
18+
19+
20+
21+
22+
//------------------------------------------------------------------------------
23+
// "mad computer scientist" rate constants
24+
25+
%var: 'k_on' 1
26+
%var: 'k_cat' 1
27+
%var: 'k_off' 1
28+
29+
//------------------------------------------------------------------------------
30+
// more reasonable rate constants
31+
32+
// %var: 'k_on K' 0.01 # molecule^-1 s^-1
33+
// %var: 'k_off K' 2.5 # s^-1
34+
// %var: 'k_cat K' 1 # s^-1
35+
36+
//////////////////////////////////////////////////////////////////////////////
37+
// initial mixture
38+
39+
%init: 10 EGF(r)
40+
%init: 10 EGFR(CR,C,N,L,Y1016{u},Y1092{u},Y1172{u})
41+
%init: 20 SoS(PR,S{u})
42+
%init: 16 Shc(Y{u},PTB{u})
43+
%init: 10 Grb2(SH3c,SH3n,SH2{u})
44+
45+
//////////////////////////////////////////////////////////////////////////////
46+
// observables
47+
48+
%obs: 'long' |Shc(PTB[_],Y[1]),Grb2(SH2[1],SH3n[2]),SoS(PR[2])|
49+
%obs: 'short' |EGFR(Y1092{p}[2]),Grb2(SH2[2],SH3n[1]),SoS(PR[1])|
50+
%var: 'sos recruited' |Grb2(SH2[_],SH3n[2]),SoS(PR[2])|
51+
52+
53+
//////////////////////////////////////////////////////////////////////////////
54+
// rules for "Sos recruitment"
55+
// working_set
56+
//0
57+
'EGFR.EGFR'
58+
EGF(r[2]), EGFR(L[2],CR[.],N[.],C[.]), EGF(r[3]), EGFR(L[3],CR[.],N[.],C[.]) ->
59+
EGF(r[2]), EGFR(L[2],CR[1],N[.],C[.]), EGF(r[3]), EGFR(L[3],CR[1],N[.],C[.]) @ 'k_on'/2
60+
'EGFR/EGFR'
61+
EGF(r[2]), EGFR(L[2],CR[1],N[.],C[.]), EGF(r[3]), EGFR(L[3],CR[1],N[.],C[.]) ->
62+
EGF(r[2]), EGFR(L[2],CR[.],N[.],C[.]), EGF(r[3]), EGFR(L[3],CR[.],N[.],C[.]) @ 'k_off'/2
63+
64+
'EGF.EGFR' EGF(r[.]), EGFR(L[.],CR[.]) -> EGF(r[1]), EGFR(L[1],CR[.]) @ 'k_on'
65+
'EGF/EGFR' EGF(r[1]), EGFR(L[1],CR[.]) -> EGF(r[.]), EGFR(L[.],CR[.]) @ 'k_off'
66+
'Shc.Grb2' Shc(Y[.]{p}), Grb2(SH2[.]) -> Shc(Y[1]{p}), Grb2(SH2[1]) @ 5*'k_on'
67+
//5
68+
'Shc/Grb2' Shc(Y{p}[1]), Grb2(SH2[1]) -> Shc(Y{p}[.]), Grb2(SH2[.]) @ 'k_off'
69+
'EGFR.Grb2' EGFR(Y1092{p}[.]), Grb2(SH2[.]) -> EGFR(Y1092{p}[1]), Grb2(SH2[1]) @ 'k_on'
70+
'EGFR/Grb2' EGFR(Y1092{p}[1]), Grb2(SH2[1]) -> EGFR(Y1092{p}[.]), Grb2(SH2[.]) @ 'k_off'
71+
'EGFR.Shc' EGFR(Y1172{p}[.]), Shc(PTB[.]) -> EGFR(Y1172{p}[1]), Shc(PTB[1]) @ 'k_on'
72+
'EGFR/Shc' EGFR(Y1172{p}[1]), Shc(PTB[1]) -> EGFR(Y1172{p}[.]), Shc(PTB[.]) @ 'k_off'
73+
//10
74+
'Grb2.SoS' Grb2(SH3n[.]), SoS(PR[.],S[.]{u}) -> Grb2(SH3n[1]), SoS(PR[1],S[.]{u}) @ 'k_on'
75+
'Grb2/SoS' Grb2(SH3n[1]), SoS(PR[1]) -> Grb2(SH3n[.]), SoS(PR[.]) @ 'k_off'
76+
'EGFR.int' EGFR(CR[1],N[.],C[.]), EGFR(CR[1],N[.],C[.]) -> EGFR(CR[1],N[2],C[.]), EGFR(CR[1],N[.],C[2]) @ 'k_on'
77+
'EGFR/int' EGFR(CR[1],N[2],C[.]), EGFR(CR[1],N[.],C[2]) -> EGFR(CR[1],N[.],C[.]), EGFR(CR[1],N[.],C[.]) @ 'k_off'
78+
'pY1092@EGFR' EGFR(N[1]), EGFR(C[1],Y1092{u}[.]) -> EGFR(N[1]), EGFR(C[1],Y1092{p}[.]) @ 'k_cat'
79+
//15
80+
'pY1172@EGFR' EGFR(N[1]), EGFR(C[1],Y1172[.]{u}) -> EGFR(N[1]), EGFR(C[1],Y1172[.]{p}) @ 'k_cat'
81+
'uY1092@EGFR' EGFR(Y1092[.]{p}) -> EGFR(Y1092[.]{u}) @ 'k_cat'
82+
'uY1172@EGFR' EGFR(Y1172{p}[.]) -> EGFR(Y1172{u}[.]) @ 'k_cat'
83+
84+
'pY@Shc' EGFR(Y1172{p}[1]), Shc(PTB[1],Y{u}[.]) -> EGFR(Y1172{p}[1]), Shc(PTB[1],Y{p}[.]) @ 'k_cat'
85+
86+
'uY@Shc' Shc(Y{p}[.]) -> Shc(Y{u}[.]) @ 'k_cat'
87+
//20

0 commit comments

Comments
 (0)