Closed marcoxa closed 5 years ago
It would probably look something like the code below, which is from Fig 8 in "Modeling for (physical) biologists: an introduction to the rule-based approach" (2015) Phys Biol.
begin model
begin parameters
bx 50 # [=] molecules per cell per unit time
by 50 # [=] molecules per cell per unit time
ax 1 # [=] per unit time
ay 1 # [=] per unit time
nyx 3 # [=] dimensionless Kyx 20 # [=] same units as Y()
nxy 3 # [=] dimensionless Kxy 20 # [=] same units as X()
Xinit 0 # [=] copies per cell
Yinit 0 # [=] copies per cell
end parameters
begin molecule types
X()
Y()
end molecule types
begin species X() Xinit Y() Yinit end species
begin observables Molecules X_tot X() Molecules Y_tot Y() end observables
begin reaction rules
0->X() bx/(1+(Y_tot/Kyx)^nyx)
X()->0 ax
0->Y() by/(1+(X_tot/Kxy)^nxy)
Y()->0 ay
end reaction rules
end model
begin actions
generate_network({overwrite=>1})
writeMfile()
setConcentration("X()",0) setConcentration("Y()",50)
bifurcate({parameter=>"Kxy",par_min=>1.0,par_max=>1.0e2,n_scan_pts=>100,\ log_scale=>1,method=>"ode",t_start=>0,t_end=>1000,n_steps=>10,\ steady_state=>1})
end actions
On Fri, Feb 23, 2018 at 5:25 AM, Marco Antoniotti notifications@github.com wrote:
Hi
I would like to use the repressilator example in a course I am teaching, but I need a crash course on how it is rendered in BNGL.
Is there anybody who could help me?
I offer a pizza :) Cheers
Marco Antoniotti
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/RuleWorld/bionetgen/issues/201, or mute the thread https://github.com/notifications/unsubscribe-auth/ASbo9xn6NQQYokRvplLRcxHQWFX3vvH4ks5tXq44gaJpZM4SQzyz .
Hi Marco,
Bill posted some nice code for the toggle switch, which for whatever reason we don't have in the list of models that come with the BioNetGen distribution. I assume, however, that you are referring to the Repressilator.bngl model that is part of the distribution and is found here. I added a comment to provide the reference to the original model and cleaned up the model a bit to reflect slightly more modern BNG usage. I think you were looking for a bit more detailed explanation of how the BNGL code is describing the repressilator components and interactions. If that's true, I'd be happy to provide this information when I have a bit of time in the next several days.
Best regards,
Jim
And I'll return to Milan ASAP to collect my pizza!
Hi Marco. I wrote the Repressilator.bngl model. I'd be happy to answer any questions about it.
I can tell you that it's comprised of three genes: TetR, CI, and LacI. For each of these gX represents the promoter, mX represents the mRNA, and pX represents the protein product. Each promoter has two binding sites for different proteins: pLacI binds to gTetR, pTetR binds to gCI, and pCI binds to gLacI. In each case, the rate of binding of the two proteins is equivalent but the rate of dissociation of the first protein is greater than that of the second protein (modeling postive cooperativity). For mRNA transcription, the unbound genes transcribe 1000 times faster than the protein-bound genes. mRNA transcribes protein and both mRNA and protein can degrade.
There are also three multiplicative factors: tF, rF, and pF (in the paper Jim linked, these are gamma, eta, and rho). Perhaps these are the source of your question? Very generally, tF controls the intrinsic noise associated with binding at the promoter, rF controls intrinsic noise associated with mRNA transcription, and pF controls intrinsic noise associated with translation. Increasing tF increases the rates of promoter binding and unbinding without affecting the ratio. Small values of tF give very noisy dynamics and the amount of noise decreases with increasing tF. Increasing rF increases the average mRNA levels in the system by increasing the transcription rates. The rate of translation is divided by rF so that increased mRNA levels don't affect the protein levels, therefore isolating that source of noise in the system. Finally, increasing pF increases the average protein levels by increasing the translation rate. To prevent this from affecting the rate of protein binding to the promoter, the binding rate constant is divided by pF. Again, this allows us to isolate that source of noise.
I hope this makes sense and maybe answers your questions. If you have other questions please let me know and I'll be happy to answer them.
--Leonard
This can be closed too
Hi
I would like to use the repressilator example in a course I am teaching, but I need a crash course on how it is rendered in BNGL.
Is there anybody who could help me?
I offer a pizza :)
Cheers
Marco Antoniotti