Myeolid reprogramming with CABEAN

import biolqm
import cabean
from colomoto_jupyter import tabulate
<IPython.core.display.Markdown object>

Myeolid reprogramming with CABEAN#

Import the myeloid network (Krumsiek et al. doi: 10.1371/journal.pone.0022649)

model = biolqm.load("MyeloidRules.txt", "booleannet")

Use the decompositon-based attractor detection method to identify all the exact attractors of the network.

%time attractors = cabean.attractors(model)
tabulate(attractors)
CPU times: user 5.7 ms, sys: 9.01 ms, total: 14.7 ms
Wall time: 52.2 ms
CEBPA EKLF EgrNab FOG1 Fli1 GATA1 GATA2 Gfi1 PU1 SCL cJun
0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 1 1 0 0 0 1 0
2 0 0 1 0 0 0 0 0 1 0 1
3 0 1 0 1 0 1 0 0 0 1 0
4 1 0 0 0 0 0 0 1 1 0 0
5 1 0 1 0 0 0 0 0 1 0 1

Define the properties of the source and target attractors. Note that source or target may correspond to serveral attractors.

source = {"EgrNab": 0, "CEBPA": 1}
target = {"EgrNab": 1, "CEBPA": 1}

Compute the minimal one-step instantaneous control (OI) from the source to the target.

c1i = cabean.OneStep_Instantaneous(model)
s1i = c1i.attractor_to_attractor(source, target)
s1i
[FromSteadyState('a4', InstantaneousPerturbation(EgrNab=1, Gfi1=0, cJun=1))]
s1i.as_table()
EgrNab Gfi1 cJun
0 1 0 1

Compute the attractor-based sequential instantaneous control (ASI) from the source to the target.

ci = cabean.AttractorSequential_Instantaneous(model)
si = ci.attractor_to_attractor(source, target)
si
[FromSteadyState('a4', InstantaneousPerturbation(EgrNab=1, Gfi1=0, cJun=1)),
 
 FromSteadyState('a4', InstantaneousPerturbation(CEBPA=0), 
     FromSteadyState('a2', InstantaneousPerturbation(CEBPA=1)))]
si.as_graph()
../../_images/bca74eca2e6983dde379d15045b27b0b6fc14c32ff0d9050ff1c02053cfed781.svg
si.as_table()
CEBPA EgrNab Gfi1 cJun
0 1 0 1
1 *

Compute the minimal one-step temporary control (OT) from the source to the target.

c1t = cabean.OneStep_Temporary(model)
s1t = c1t.attractor_to_attractor(source, target)
s1t
[FromSteadyState('a4', TemporaryPerturbation(Gfi1=0)),
 FromSteadyState('a4', TemporaryPerturbation(EgrNab=1))]
s1t.as_table()
EgrNab Gfi1
0 0
1 1

Compute the attractor-based sequential temporary control (AST) from the source to the target.

ct = cabean.AttractorSequential_Temporary(model)
st = ct.attractor_to_attractor(source, target)
st
[FromSteadyState('a4', TemporaryPerturbation(Gfi1=0)),
 FromSteadyState('a4', TemporaryPerturbation(EgrNab=1))]
st.as_table()
EgrNab Gfi1
0 0
1 1

Compute the minimal one-step permanent control (OP) from the source to the target.

c1p = cabean.OneStep_Permanent(model)
s1p = c1p.attractor_to_attractor(source, target)
s1p
[FromSteadyState('a4', PermanentPerturbation(Gfi1=0)),
 FromSteadyState('a4', PermanentPerturbation(EgrNab=1))]
s1p.as_table()
EgrNab Gfi1
0 0
1 1

Compute the attractor-based sequential permanent control (ASP) from the source to the target.

rp = cabean.AttractorSequential_Permanent(model)
%time sp = rp.attractor_to_attractor(source, target)
sp
CPU times: user 2.58 ms, sys: 5.43 ms, total: 8.01 ms
Wall time: 56.7 ms
[FromSteadyState('a4', PermanentPerturbation(Gfi1=0)),
 FromSteadyState('a4', PermanentPerturbation(EgrNab=1))]
sp.as_graph()
../../_images/2062d46dab68f868a35d529a44253fad40b698d55bf9eea05b32fd2ad5f4e79e.svg
sp.as_table()
EgrNab Gfi1
0 0
1 1