<<xlr8r.m

reference:
 Chickarmane V, Peterson C (2008) A Computational Model for Understanding Stem Cell, Trophectoderm and Endoderm Lineage Determination. PLoS ONE 3(10): e3478. doi:10.1371/journal.pone.0003478
 
 direct link: http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0003478

This implementation © 2012 xlr8r.info.  GPL license terms apply.

Note: the princ. species in this paper are {A,𝒞,𝒢,𝒢𝒞,𝒩,𝒪,𝒮}, which in the following model are all represented by a SCRIPT font. This is because the Mathematica symbols A, N, O already represent other functions and the goal was to follow the paper as closely as possible. Please be careful here, because in Mathematica, N is a different variable than 𝒩, etc.

The figures at the end of the notebook match figure 4 of the cited paper.

net={

{
{{A, 𝒪*𝒮, 𝒪*𝒮*𝒩}, {A, 𝒪, 𝒪*𝒮, 𝒪*𝒮*𝒩, 𝒞*𝒪, 𝒢𝒞}}⟹𝒪, rational[{a0,a1,a2,a3},{1,b0, b1, b2,b3,b4,b5}]
},
{𝒪->∅, γ1},

{
{{𝒪*𝒮,𝒪*𝒮*𝒩},{𝒪,𝒪*𝒮,𝒪*𝒮*𝒩}}⟹𝒮,
rational[{c0,c1,c2}, {1,d0,d1,d2}]
},
{𝒮-> ∅, γ2},

{{{𝒪*𝒮,𝒪*𝒮*𝒩}, {𝒪,𝒪*𝒮,𝒪*𝒮*𝒩, 𝒪*𝒢}}⟹𝒩,
rational[{e0, e1,e2}, {1, f0, f1, f2, f3}]
},
{𝒩-> ∅, γ3},

{{{𝒞},{𝒞,𝒞*𝒪}}⟹𝒞,
rational[{g0,g1},{1,h0,h1}]
}, 
{𝒞->∅, γ4},

{{{𝒞,𝒢},{𝒞,𝒢}}⟹𝒢𝒞,
rational[{i0,i1,i2},{1,j0,j1}]
},
{𝒢𝒞-> ∅, γ5},

{{{𝒪,𝒢},{𝒪,𝒢,𝒩}}⟹𝒢,
rational[{p0,p1,p2},{1,q0,q1,q2}]
},
{𝒢-> ∅, γg},

{A-> A, 1}

};

interpret[net][[1]]//TableForm

table2={a0-> .001, a1-> 1, a2-> 0.005, a3-> 0.025, 
b0-> 1, b1-> 0.001, b2-> 0.005, b3-> 0.025, b4->  10, b5->  10, γ1->  0.1, c0->  0.001,c1-> 0.005,c2->  0.025, d0->  0.001, d1->  0.005, d2->  0.025, γ2->  0.1, e0->  0.001, e1->  0.1, e2->  0.1, f0->  0.001, f1->  0.1, f2->  0.1,f3-> 10,γ3->  0.1,g0->  0.001, g1->   2, h0->   2, h1->  5, γ4->  0.1, i0->  0.001, i1->  0.1, i2->  0.1, j0->  0.1, j1->  0.1, γs-> 0.1,  p0-> 0.1, p1->  1.0, p2->  2.5 10^-4, q0->  1.0, q1->  2.5 10^-4, q2->  15, γg->  0.1};

ic={𝒪-> 5,𝒩-> 5,𝒮-> 5,𝒢-> 0,𝒢𝒞->0,𝒞-> 0, A-> 1};
n=run[net, initialConditions-> ic, rates-> table2, timeSpan-> 300];
oplot=runPlot[n,𝒪, PlotStyle-> {Blue,Thick}, holdLegend-> True];
splot=runPlot[n,𝒮,PlotStyle-> {Darker[Green], Thick}, holdLegend-> True];
nplot=runPlot[n,𝒩, PlotStyle-> {Red, Thick}, holdLegend-> True];
cplot=runPlot[n,𝒞, PlotStyle-> {Cyan, Thick}, holdLegend-> True];
gplot=runPlot[n,𝒢, PlotStyle-> {Magenta, Thick}, holdLegend-> True];
gcplot=runPlot[n,𝒢𝒞, PlotStyle-> {Brown, Thick}, holdLegend-> True];
trplot=Show[oplot,splot,nplot,cplot,gplot,gcplot, Frame-> True, PlotLabel-> "Trophectoderm"]

ic={𝒪-> 0,𝒩-> 5,𝒮-> 5,𝒢-> 0,𝒢𝒞->0,𝒞-> 5, A-> 10};
n=run[net, initialConditions-> ic, rates-> table2, timeSpan-> 300];
oplot=runPlot[n,𝒪, PlotStyle-> {Blue,Thick}, holdLegend-> True];
splot=runPlot[n,𝒮,PlotStyle-> {Darker[Green], Thick}, holdLegend-> True];
nplot=runPlot[n,𝒩, PlotStyle-> {Red, Thick}, holdLegend-> True];
cplot=runPlot[n,𝒞, PlotStyle-> {Cyan, Thick}, holdLegend-> True];
gplot=runPlot[n,𝒢, PlotStyle-> {Magenta, Thick}, holdLegend-> True];
gcplot=runPlot[n,𝒢𝒞, PlotStyle-> {Brown, Thick}, holdLegend-> True];
dsplot=Show[oplot,splot,nplot,cplot,gplot,gcplot, Frame-> True, PlotLabel-> "Differentiated Stem Cell"]

ic={𝒪-> 5,𝒩-> 5,𝒮-> 5,𝒢-> 0,𝒢𝒞->0,𝒞-> 0, A-> 10};
n=run[net, initialConditions-> ic, rates-> table2, timeSpan-> 300];
oplot=runPlot[n,𝒪, PlotStyle-> {Blue,Thick}, holdLegend-> True];
splot=runPlot[n,𝒮,PlotStyle-> {Darker[Green], Thick}, holdLegend-> True];
nplot=runPlot[n,𝒩, PlotStyle-> {Red, Thick}, holdLegend-> True];
cplot=runPlot[n,𝒞, PlotStyle-> {Cyan, Thick}, holdLegend-> True];
gplot=runPlot[n,𝒢, PlotStyle-> {Magenta, Thick}, holdLegend-> True];
gcplot=runPlot[n,𝒢𝒞, PlotStyle-> {Brown, Thick}, holdLegend-> True];
stemplot=Show[oplot,splot,nplot,cplot,gplot,gcplot, Frame-> True, PlotLabel-> "Stem Cell"]

ic={𝒪-> 5,𝒩-> 5,𝒮-> 5,𝒢-> 0,𝒢𝒞->0,𝒞-> 0, A-> 25};
n=run[net, initialConditions-> ic, rates-> table2, timeSpan-> 300];
oplot=runPlot[n,𝒪, PlotStyle-> {Blue,Thick}, holdLegend-> True];
splot=runPlot[n,𝒮,PlotStyle-> {Darker[Green], Thick}, holdLegend-> True];
nplot=runPlot[n,𝒩, PlotStyle-> {Red, Thick}, holdLegend-> True];
cplot=runPlot[n,𝒞, PlotStyle-> {Cyan, Thick}, holdLegend-> True];
gplot=runPlot[n,𝒢, PlotStyle-> {Magenta, Thick}, holdLegend-> True];
gcplot=runPlot[n,𝒢𝒞, PlotStyle-> {Brown, Thick}, holdLegend-> True];
endplot=Show[oplot,splot,nplot,cplot,gplot,gcplot, Frame-> True, PlotLabel-> "Endoderm"]