diff --git a/Cargo.toml b/Cargo.toml
index 5abc609..f603779 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -20,7 +20,7 @@ static-z3 = ["z3/static-link-z3"]
pyo3 = { version = "0.20.0", features = ["abi3-py37", "extension-module"] }
biodivine-lib-param-bn = { version="0.5.9", features=["solver-z3"] }
biodivine-lib-bdd = "0.5.11"
-biodivine-pbn-control = { git = "https://github.com/sybila/biodivine-pbn-control", rev = "defc197" }
+biodivine-pbn-control = { git = "https://github.com/sybila/biodivine-pbn-control", rev = "6b27f62" }
biodivine-hctl-model-checker = "0.2.2"
rand = "0.8.5"
macros = { path = "macros" }
diff --git a/example/case-study/control/main.ipynb b/example/case-study/control/main.ipynb
index 05f77f0..176a46b 100644
--- a/example/case-study/control/main.ipynb
+++ b/example/case-study/control/main.ipynb
@@ -2,13 +2,13 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 56,
+ "execution_count": 1,
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.418330Z",
- "start_time": "2024-04-03T13:44:39.112925Z"
+ "end_time": "2024-04-03T13:47:12.001572Z",
+ "start_time": "2024-04-03T13:47:10.934313Z"
}
},
"outputs": [
@@ -52,7 +52,7 @@
},
{
"cell_type": "code",
- "execution_count": 57,
+ "execution_count": 2,
"outputs": [],
"source": [
"import biodivine_aeon as ba\n",
@@ -61,15 +61,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.424213Z",
- "start_time": "2024-04-03T13:44:40.419782Z"
+ "end_time": "2024-04-03T13:47:12.546847Z",
+ "start_time": "2024-04-03T13:47:12.002230Z"
}
},
"id": "11969bfac9ef8031"
},
{
"cell_type": "code",
- "execution_count": 58,
+ "execution_count": 3,
"outputs": [],
"source": [
"# Load the model and create a Perturbation Graph\n",
@@ -80,15 +80,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.429972Z",
- "start_time": "2024-04-03T13:44:40.424320Z"
+ "end_time": "2024-04-03T13:47:12.555854Z",
+ "start_time": "2024-04-03T13:47:12.547174Z"
}
},
"id": "c6edd4931c7190eb"
},
{
"cell_type": "code",
- "execution_count": 59,
+ "execution_count": 4,
"outputs": [],
"source": [
"# Find attractors representing the four possible phenotypes\n",
@@ -110,15 +110,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.436061Z",
- "start_time": "2024-04-03T13:44:40.432343Z"
+ "end_time": "2024-04-03T13:47:12.564892Z",
+ "start_time": "2024-04-03T13:47:12.562030Z"
}
},
"id": "3dc68ef7bec3b2d8"
},
{
"cell_type": "code",
- "execution_count": 60,
+ "execution_count": 5,
"outputs": [],
"source": [
"# Let's demonstrate now, how we can compute source-target control.\n",
@@ -129,21 +129,21 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.441390Z",
- "start_time": "2024-04-03T13:44:40.436360Z"
+ "end_time": "2024-04-03T13:47:12.579059Z",
+ "start_time": "2024-04-03T13:47:12.574702Z"
}
},
"id": "ad993245710ad338"
},
{
"cell_type": "code",
- "execution_count": 61,
+ "execution_count": 6,
"outputs": [
{
"data": {
"text/plain": "ColorSet(cardinality=0)"
},
- "execution_count": 61,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
@@ -155,21 +155,21 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.447692Z",
- "start_time": "2024-04-03T13:44:40.438788Z"
+ "end_time": "2024-04-03T13:47:12.583721Z",
+ "start_time": "2024-04-03T13:47:12.579504Z"
}
},
"id": "8fc32f37fe13d238"
},
{
"cell_type": "code",
- "execution_count": 62,
+ "execution_count": 7,
"outputs": [
{
"data": {
"text/plain": "[({'EKLF': False, 'Fli1': True}, ColorSet(cardinality=1))]"
},
- "execution_count": 62,
+ "execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
@@ -181,15 +181,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.455080Z",
- "start_time": "2024-04-03T13:44:40.450423Z"
+ "end_time": "2024-04-03T13:47:12.596686Z",
+ "start_time": "2024-04-03T13:47:12.592258Z"
}
},
"id": "21f94010e630c102"
},
{
"cell_type": "code",
- "execution_count": 63,
+ "execution_count": 8,
"outputs": [
{
"name": "stdout",
@@ -203,7 +203,7 @@
"data": {
"text/plain": "[({'PU1': False, 'Fli1': True}, ColorSet(cardinality=1))]"
},
- "execution_count": 63,
+ "execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
@@ -247,7 +247,7 @@
">>> {\"PU1\": false, \"Fli1\": true}: 1; rho = 1.000\n",
"Best robustness 1 observed in 1 perturbations.\n",
">>>>>> Elapsed: 1ms\n",
- ">>> {\"PU1\": false, \"Fli1\": true}: 1; rho = 1.000\n",
+ ">>> {\"Fli1\": true, \"PU1\": false}: 1; rho = 1.000\n",
"Best robustness 1 observed in 1 perturbations.\n",
"Robustness 1 achieved for perturbation size 2.\n",
"Robustness 1 achieved for perturbation size 2.\n"
@@ -277,15 +277,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.463178Z",
- "start_time": "2024-04-03T13:44:40.458836Z"
+ "end_time": "2024-04-03T13:47:12.619546Z",
+ "start_time": "2024-04-03T13:47:12.602433Z"
}
},
"id": "63cbeae745ce11b1"
},
{
"cell_type": "code",
- "execution_count": 64,
+ "execution_count": 9,
"outputs": [],
"source": [
"# Now we can compute a full sets of results for all pairs of source-target control"
@@ -293,15 +293,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.468399Z",
- "start_time": "2024-04-03T13:44:40.463066Z"
+ "end_time": "2024-04-03T13:47:12.619704Z",
+ "start_time": "2024-04-03T13:47:12.606992Z"
}
},
"id": "247b6e3dbaef4a9e"
},
{
"cell_type": "code",
- "execution_count": 65,
+ "execution_count": 10,
"outputs": [],
"source": [
"all_atts = {\n",
@@ -317,15 +317,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:40.497539Z",
- "start_time": "2024-04-03T13:44:40.467846Z"
+ "end_time": "2024-04-03T13:47:12.619766Z",
+ "start_time": "2024-04-03T13:47:12.610946Z"
}
},
"id": "405ad725fbc5e9e1"
},
{
"cell_type": "code",
- "execution_count": 66,
+ "execution_count": 11,
"outputs": [],
"source": [
"data = {\n",
@@ -341,22 +341,22 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.697101Z",
- "start_time": "2024-04-03T13:44:40.921010Z"
+ "end_time": "2024-04-03T13:47:13.924143Z",
+ "start_time": "2024-04-03T13:47:13.584568Z"
}
},
"id": "86ea9b904b0027de"
},
{
"cell_type": "code",
- "execution_count": 67,
+ "execution_count": 12,
"outputs": [
{
"data": {
- "text/plain": " source target \\\n0 Erythrocyte Megakaryocyte \n1 Erythrocyte Monocyte \n2 Erythrocyte Granulocyte \n3 Megakaryocyte Erythrocyte \n4 Megakaryocyte Monocyte \n5 Megakaryocyte Granulocyte \n6 Monocyte Erythrocyte \n7 Monocyte Megakaryocyte \n8 Monocyte Granulocyte \n9 Granulocyte Erythrocyte \n10 Granulocyte Megakaryocyte \n11 Granulocyte Monocyte \n\n onestep \\\n0 [({'Fli1': True, 'EKLF': False}, ColorSet(card... \n1 [({'PU1': True}, ColorSet(cardinality=1))] \n2 [({'Gfi1': True, 'CEBPa': True, 'GATA1': False... \n3 [({'Fli1': False, 'EKLF': True}, ColorSet(card... \n4 [({'PU1': True}, ColorSet(cardinality=1))] \n5 [({'GATA1': False, 'Fli1': False, 'CEBPa': Tru... \n6 [({'EKLF': True, 'GATA1': True, 'PU1': False},... \n7 [({'PU1': False, 'GATA1': True, 'Fli1': True},... \n8 [({'CEBPa': True, 'Gfi1': True, 'EgrNab': Fals... \n9 [({'GATA1': True, 'CEBPa': False, 'PU1': False... \n10 [({'Fli1': True, 'GATA1': True, 'PU1': False, ... \n11 [({'CEBPa': False}, ColorSet(cardinality=1))] \n\n temporary \\\n0 [({'EKLF': False}, ColorSet(cardinality=1)), (... \n1 [({'PU1': True}, ColorSet(cardinality=1))] \n2 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n3 [({'EKLF': True}, ColorSet(cardinality=1)), ({... \n4 [({'PU1': True}, ColorSet(cardinality=1))] \n5 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n6 [({'GATA1': True, 'EKLF': True, 'GATA2': True}... \n7 [({'Fli1': True, 'PU1': False}, ColorSet(cardi... \n8 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n9 [({'GATA1': True, 'GATA2': True, 'EKLF': True}... \n10 [({'Fli1': True, 'PU1': False}, ColorSet(cardi... \n11 [({'CEBPa': False}, ColorSet(cardinality=1))] \n\n permanent \n0 [({'EKLF': False}, ColorSet(cardinality=1)), (... \n1 [({'PU1': True}, ColorSet(cardinality=1))] \n2 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n3 [({'EKLF': True}, ColorSet(cardinality=1)), ({... \n4 [({'PU1': True}, ColorSet(cardinality=1))] \n5 [({'EgrNab': False, 'CEBPa': True}, ColorSet(c... \n6 [({'GATA1': True, 'PU1': False, 'EKLF': True},... \n7 [({'Fli1': True, 'PU1': False}, ColorSet(cardi... \n8 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n9 [({'GATA1': True, 'EKLF': True, 'PU1': False},... \n10 [({'PU1': False, 'Fli1': True}, ColorSet(cardi... \n11 [({'CEBPa': False}, ColorSet(cardinality=1))] ",
- "text/html": "
\n\n
\n \n \n | \n source | \n target | \n onestep | \n temporary | \n permanent | \n
\n \n \n \n 0 | \n Erythrocyte | \n Megakaryocyte | \n [({'Fli1': True, 'EKLF': False}, ColorSet(card... | \n [({'EKLF': False}, ColorSet(cardinality=1)), (... | \n [({'EKLF': False}, ColorSet(cardinality=1)), (... | \n
\n \n 1 | \n Erythrocyte | \n Monocyte | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n
\n \n 2 | \n Erythrocyte | \n Granulocyte | \n [({'Gfi1': True, 'CEBPa': True, 'GATA1': False... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n
\n \n 3 | \n Megakaryocyte | \n Erythrocyte | \n [({'Fli1': False, 'EKLF': True}, ColorSet(card... | \n [({'EKLF': True}, ColorSet(cardinality=1)), ({... | \n [({'EKLF': True}, ColorSet(cardinality=1)), ({... | \n
\n \n 4 | \n Megakaryocyte | \n Monocyte | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n
\n \n 5 | \n Megakaryocyte | \n Granulocyte | \n [({'GATA1': False, 'Fli1': False, 'CEBPa': Tru... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n [({'EgrNab': False, 'CEBPa': True}, ColorSet(c... | \n
\n \n 6 | \n Monocyte | \n Erythrocyte | \n [({'EKLF': True, 'GATA1': True, 'PU1': False},... | \n [({'GATA1': True, 'EKLF': True, 'GATA2': True}... | \n [({'GATA1': True, 'PU1': False, 'EKLF': True},... | \n
\n \n 7 | \n Monocyte | \n Megakaryocyte | \n [({'PU1': False, 'GATA1': True, 'Fli1': True},... | \n [({'Fli1': True, 'PU1': False}, ColorSet(cardi... | \n [({'Fli1': True, 'PU1': False}, ColorSet(cardi... | \n
\n \n 8 | \n Monocyte | \n Granulocyte | \n [({'CEBPa': True, 'Gfi1': True, 'EgrNab': Fals... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n
\n \n 9 | \n Granulocyte | \n Erythrocyte | \n [({'GATA1': True, 'CEBPa': False, 'PU1': False... | \n [({'GATA1': True, 'GATA2': True, 'EKLF': True}... | \n [({'GATA1': True, 'EKLF': True, 'PU1': False},... | \n
\n \n 10 | \n Granulocyte | \n Megakaryocyte | \n [({'Fli1': True, 'GATA1': True, 'PU1': False, ... | \n [({'Fli1': True, 'PU1': False}, ColorSet(cardi... | \n [({'PU1': False, 'Fli1': True}, ColorSet(cardi... | \n
\n \n 11 | \n Granulocyte | \n Monocyte | \n [({'CEBPa': False}, ColorSet(cardinality=1))] | \n [({'CEBPa': False}, ColorSet(cardinality=1))] | \n [({'CEBPa': False}, ColorSet(cardinality=1))] | \n
\n \n
\n
"
+ "text/plain": " source target \\\n0 Erythrocyte Megakaryocyte \n1 Erythrocyte Monocyte \n2 Erythrocyte Granulocyte \n3 Megakaryocyte Erythrocyte \n4 Megakaryocyte Monocyte \n5 Megakaryocyte Granulocyte \n6 Monocyte Erythrocyte \n7 Monocyte Megakaryocyte \n8 Monocyte Granulocyte \n9 Granulocyte Erythrocyte \n10 Granulocyte Megakaryocyte \n11 Granulocyte Monocyte \n\n onestep \\\n0 [({'EKLF': False, 'Fli1': True}, ColorSet(card... \n1 [({'PU1': True}, ColorSet(cardinality=1))] \n2 [({'CEBPa': True, 'GATA1': False, 'Gfi1': True... \n3 [({'Fli1': False, 'EKLF': True}, ColorSet(card... \n4 [({'PU1': True}, ColorSet(cardinality=1))] \n5 [({'CEBPa': True, 'Fli1': False, 'Gfi1': True,... \n6 [({'PU1': False, 'EKLF': True, 'GATA1': True},... \n7 [({'Fli1': True, 'GATA1': True, 'PU1': False},... \n8 [({'Gfi1': True, 'EgrNab': False, 'CEBPa': Tru... \n9 [({'GATA1': True, 'EKLF': True, 'PU1': False, ... \n10 [({'CEBPa': False, 'Fli1': True, 'PU1': False,... \n11 [({'CEBPa': False}, ColorSet(cardinality=1))] \n\n temporary \\\n0 [({'EKLF': False}, ColorSet(cardinality=1)), (... \n1 [({'PU1': True}, ColorSet(cardinality=1))] \n2 [({'EgrNab': False, 'CEBPa': True}, ColorSet(c... \n3 [({'EKLF': True}, ColorSet(cardinality=1)), ({... \n4 [({'PU1': True}, ColorSet(cardinality=1))] \n5 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n6 [({'GATA2': True, 'EKLF': True, 'GATA1': True}... \n7 [({'Fli1': True, 'PU1': False}, ColorSet(cardi... \n8 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n9 [({'GATA2': True, 'GATA1': True, 'EKLF': True}... \n10 [({'PU1': False, 'Fli1': True}, ColorSet(cardi... \n11 [({'CEBPa': False}, ColorSet(cardinality=1))] \n\n permanent \n0 [({'EKLF': False}, ColorSet(cardinality=1)), (... \n1 [({'PU1': True}, ColorSet(cardinality=1))] \n2 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n3 [({'EKLF': True}, ColorSet(cardinality=1)), ({... \n4 [({'PU1': True}, ColorSet(cardinality=1))] \n5 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n6 [({'GATA1': True, 'PU1': False, 'EKLF': True},... \n7 [({'Fli1': True, 'PU1': False}, ColorSet(cardi... \n8 [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... \n9 [({'GATA1': True, 'EKLF': True, 'PU1': False},... \n10 [({'Fli1': True, 'PU1': False}, ColorSet(cardi... \n11 [({'CEBPa': False}, ColorSet(cardinality=1))] ",
+ "text/html": "\n\n
\n \n \n | \n source | \n target | \n onestep | \n temporary | \n permanent | \n
\n \n \n \n 0 | \n Erythrocyte | \n Megakaryocyte | \n [({'EKLF': False, 'Fli1': True}, ColorSet(card... | \n [({'EKLF': False}, ColorSet(cardinality=1)), (... | \n [({'EKLF': False}, ColorSet(cardinality=1)), (... | \n
\n \n 1 | \n Erythrocyte | \n Monocyte | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n
\n \n 2 | \n Erythrocyte | \n Granulocyte | \n [({'CEBPa': True, 'GATA1': False, 'Gfi1': True... | \n [({'EgrNab': False, 'CEBPa': True}, ColorSet(c... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n
\n \n 3 | \n Megakaryocyte | \n Erythrocyte | \n [({'Fli1': False, 'EKLF': True}, ColorSet(card... | \n [({'EKLF': True}, ColorSet(cardinality=1)), ({... | \n [({'EKLF': True}, ColorSet(cardinality=1)), ({... | \n
\n \n 4 | \n Megakaryocyte | \n Monocyte | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n [({'PU1': True}, ColorSet(cardinality=1))] | \n
\n \n 5 | \n Megakaryocyte | \n Granulocyte | \n [({'CEBPa': True, 'Fli1': False, 'Gfi1': True,... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n
\n \n 6 | \n Monocyte | \n Erythrocyte | \n [({'PU1': False, 'EKLF': True, 'GATA1': True},... | \n [({'GATA2': True, 'EKLF': True, 'GATA1': True}... | \n [({'GATA1': True, 'PU1': False, 'EKLF': True},... | \n
\n \n 7 | \n Monocyte | \n Megakaryocyte | \n [({'Fli1': True, 'GATA1': True, 'PU1': False},... | \n [({'Fli1': True, 'PU1': False}, ColorSet(cardi... | \n [({'Fli1': True, 'PU1': False}, ColorSet(cardi... | \n
\n \n 8 | \n Monocyte | \n Granulocyte | \n [({'Gfi1': True, 'EgrNab': False, 'CEBPa': Tru... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n [({'CEBPa': True, 'EgrNab': False}, ColorSet(c... | \n
\n \n 9 | \n Granulocyte | \n Erythrocyte | \n [({'GATA1': True, 'EKLF': True, 'PU1': False, ... | \n [({'GATA2': True, 'GATA1': True, 'EKLF': True}... | \n [({'GATA1': True, 'EKLF': True, 'PU1': False},... | \n
\n \n 10 | \n Granulocyte | \n Megakaryocyte | \n [({'CEBPa': False, 'Fli1': True, 'PU1': False,... | \n [({'PU1': False, 'Fli1': True}, ColorSet(cardi... | \n [({'Fli1': True, 'PU1': False}, ColorSet(cardi... | \n
\n \n 11 | \n Granulocyte | \n Monocyte | \n [({'CEBPa': False}, ColorSet(cardinality=1))] | \n [({'CEBPa': False}, ColorSet(cardinality=1))] | \n [({'CEBPa': False}, ColorSet(cardinality=1))] | \n
\n \n
\n
"
},
- "execution_count": 67,
+ "execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
@@ -367,15 +367,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.716881Z",
- "start_time": "2024-04-03T13:44:41.714913Z"
+ "end_time": "2024-04-03T13:47:13.948593Z",
+ "start_time": "2024-04-03T13:47:13.924951Z"
}
},
"id": "e33b15bc38ab2ef"
},
{
"cell_type": "code",
- "execution_count": 68,
+ "execution_count": 13,
"outputs": [
{
"name": "stdout",
@@ -383,15 +383,15 @@
"text": [
"Erythrocyte -> Megakaryocyte : [{'EKLF': False}, {'Fli1': True}]\n",
"Erythrocyte -> Monocyte : [{'PU1': True}]\n",
- "Erythrocyte -> Granulocyte : [{'CEBPa': True, 'EgrNab': False}, {'Gfi1': True, 'CEBPa': True}, {'cJun': False, 'CEBPa': True}]\n",
+ "Erythrocyte -> Granulocyte : [{'CEBPa': True, 'EgrNab': False}, {'Gfi1': True, 'CEBPa': True}, {'CEBPa': True, 'cJun': False}]\n",
"Megakaryocyte -> Erythrocyte : [{'EKLF': True}, {'Fli1': False}]\n",
"Megakaryocyte -> Monocyte : [{'PU1': True}]\n",
- "Megakaryocyte -> Granulocyte : [{'EgrNab': False, 'CEBPa': True}, {'CEBPa': True, 'Gfi1': True}, {'cJun': False, 'CEBPa': True}]\n",
- "Monocyte -> Erythrocyte : [{'GATA1': True, 'PU1': False, 'EKLF': True}, {'Fli1': False, 'GATA1': True, 'PU1': False}]\n",
+ "Megakaryocyte -> Granulocyte : [{'CEBPa': True, 'EgrNab': False}, {'Gfi1': True, 'CEBPa': True}, {'cJun': False, 'CEBPa': True}]\n",
+ "Monocyte -> Erythrocyte : [{'GATA1': True, 'PU1': False, 'EKLF': True}, {'PU1': False, 'GATA1': True, 'Fli1': False}]\n",
"Monocyte -> Megakaryocyte : [{'Fli1': True, 'PU1': False}]\n",
- "Monocyte -> Granulocyte : [{'CEBPa': True, 'EgrNab': False}, {'Gfi1': True, 'CEBPa': True}, {'CEBPa': True, 'cJun': False}]\n",
- "Granulocyte -> Erythrocyte : [{'GATA1': True, 'EKLF': True, 'PU1': False}, {'Fli1': False, 'GATA1': True, 'PU1': False}]\n",
- "Granulocyte -> Megakaryocyte : [{'PU1': False, 'Fli1': True}]\n",
+ "Monocyte -> Granulocyte : [{'CEBPa': True, 'EgrNab': False}, {'CEBPa': True, 'Gfi1': True}, {'CEBPa': True, 'cJun': False}]\n",
+ "Granulocyte -> Erythrocyte : [{'GATA1': True, 'EKLF': True, 'PU1': False}, {'PU1': False, 'Fli1': False, 'GATA1': True}]\n",
+ "Granulocyte -> Megakaryocyte : [{'Fli1': True, 'PU1': False}]\n",
"Granulocyte -> Monocyte : [{'CEBPa': False}]\n"
]
}
@@ -403,8 +403,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.726989Z",
- "start_time": "2024-04-03T13:44:41.718346Z"
+ "end_time": "2024-04-03T13:47:13.952702Z",
+ "start_time": "2024-04-03T13:47:13.949151Z"
}
},
"id": "657408a776cdc2c"
@@ -423,7 +423,7 @@
},
{
"cell_type": "code",
- "execution_count": 69,
+ "execution_count": 14,
"outputs": [],
"source": [
"df['min_onestep_size'] = df['onestep'].apply(lambda x: len(x[0][0]))\n",
@@ -436,22 +436,22 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.749837Z",
- "start_time": "2024-04-03T13:44:41.724630Z"
+ "end_time": "2024-04-03T13:47:13.958079Z",
+ "start_time": "2024-04-03T13:47:13.956793Z"
}
},
"id": "ba3e6537eb9844c2"
},
{
"cell_type": "code",
- "execution_count": 70,
+ "execution_count": 15,
"outputs": [
{
"data": {
"text/plain": " source target min_onestep_size min_onestep_options \\\n0 Erythrocyte Megakaryocyte 2 1 \n1 Erythrocyte Monocyte 1 1 \n2 Erythrocyte Granulocyte 3 1 \n3 Megakaryocyte Erythrocyte 2 1 \n4 Megakaryocyte Monocyte 1 1 \n5 Megakaryocyte Granulocyte 4 3 \n6 Monocyte Erythrocyte 3 1 \n7 Monocyte Megakaryocyte 3 1 \n8 Monocyte Granulocyte 3 1 \n9 Granulocyte Erythrocyte 4 1 \n10 Granulocyte Megakaryocyte 4 1 \n11 Granulocyte Monocyte 1 1 \n\n min_temporary_size min_temporary_options min_permanent_size \\\n0 1 2 1 \n1 1 1 1 \n2 2 3 2 \n3 1 2 1 \n4 1 1 1 \n5 2 3 2 \n6 3 6 3 \n7 2 1 2 \n8 2 4 2 \n9 3 6 3 \n10 2 1 2 \n11 1 1 1 \n\n min_permanent_options \n0 2 \n1 1 \n2 3 \n3 2 \n4 1 \n5 3 \n6 2 \n7 1 \n8 3 \n9 2 \n10 1 \n11 1 ",
"text/html": "\n\n
\n \n \n | \n source | \n target | \n min_onestep_size | \n min_onestep_options | \n min_temporary_size | \n min_temporary_options | \n min_permanent_size | \n min_permanent_options | \n
\n \n \n \n 0 | \n Erythrocyte | \n Megakaryocyte | \n 2 | \n 1 | \n 1 | \n 2 | \n 1 | \n 2 | \n
\n \n 1 | \n Erythrocyte | \n Monocyte | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n
\n \n 2 | \n Erythrocyte | \n Granulocyte | \n 3 | \n 1 | \n 2 | \n 3 | \n 2 | \n 3 | \n
\n \n 3 | \n Megakaryocyte | \n Erythrocyte | \n 2 | \n 1 | \n 1 | \n 2 | \n 1 | \n 2 | \n
\n \n 4 | \n Megakaryocyte | \n Monocyte | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n
\n \n 5 | \n Megakaryocyte | \n Granulocyte | \n 4 | \n 3 | \n 2 | \n 3 | \n 2 | \n 3 | \n
\n \n 6 | \n Monocyte | \n Erythrocyte | \n 3 | \n 1 | \n 3 | \n 6 | \n 3 | \n 2 | \n
\n \n 7 | \n Monocyte | \n Megakaryocyte | \n 3 | \n 1 | \n 2 | \n 1 | \n 2 | \n 1 | \n
\n \n 8 | \n Monocyte | \n Granulocyte | \n 3 | \n 1 | \n 2 | \n 4 | \n 2 | \n 3 | \n
\n \n 9 | \n Granulocyte | \n Erythrocyte | \n 4 | \n 1 | \n 3 | \n 6 | \n 3 | \n 2 | \n
\n \n 10 | \n Granulocyte | \n Megakaryocyte | \n 4 | \n 1 | \n 2 | \n 1 | \n 2 | \n 1 | \n
\n \n 11 | \n Granulocyte | \n Monocyte | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n
\n \n
\n
"
},
- "execution_count": 70,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
@@ -462,15 +462,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.763749Z",
- "start_time": "2024-04-03T13:44:41.729724Z"
+ "end_time": "2024-04-03T13:47:13.964002Z",
+ "start_time": "2024-04-03T13:47:13.961910Z"
}
},
"id": "6ff8cdacaf3a933e"
},
{
"cell_type": "code",
- "execution_count": 71,
+ "execution_count": 16,
"outputs": [],
"source": [
"# In a similar manner, we can compute phenotype control, even though this time, only target attractor (or phenotype, but in this case we consider attractor to be phenotype) is known\n",
@@ -486,15 +486,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.823070Z",
- "start_time": "2024-04-03T13:44:41.758511Z"
+ "end_time": "2024-04-03T13:47:14.027431Z",
+ "start_time": "2024-04-03T13:47:13.983381Z"
}
},
"id": "d59e4afbb48c9154"
},
{
"cell_type": "code",
- "execution_count": 72,
+ "execution_count": 17,
"outputs": [],
"source": [
"df['min_phenotype_size'] = df['phenotype'].apply(lambda x: len(x[0][0]))\n",
@@ -503,22 +503,22 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.841374Z",
- "start_time": "2024-04-03T13:44:41.800438Z"
+ "end_time": "2024-04-03T13:47:14.027618Z",
+ "start_time": "2024-04-03T13:47:14.023403Z"
}
},
"id": "3a63fa0825ea5b5d"
},
{
"cell_type": "code",
- "execution_count": 73,
+ "execution_count": 18,
"outputs": [
{
"data": {
"text/plain": " source target min_onestep_size min_onestep_options \\\n0 Erythrocyte Megakaryocyte 2 1 \n1 Erythrocyte Monocyte 1 1 \n2 Erythrocyte Granulocyte 3 1 \n3 Megakaryocyte Erythrocyte 2 1 \n4 Megakaryocyte Monocyte 1 1 \n5 Megakaryocyte Granulocyte 4 3 \n6 Monocyte Erythrocyte 3 1 \n7 Monocyte Megakaryocyte 3 1 \n8 Monocyte Granulocyte 3 1 \n9 Granulocyte Erythrocyte 4 1 \n10 Granulocyte Megakaryocyte 4 1 \n11 Granulocyte Monocyte 1 1 \n\n min_temporary_size min_temporary_options min_permanent_size \\\n0 1 2 1 \n1 1 1 1 \n2 2 3 2 \n3 1 2 1 \n4 1 1 1 \n5 2 3 2 \n6 3 6 3 \n7 2 1 2 \n8 2 4 2 \n9 3 6 3 \n10 2 1 2 \n11 1 1 1 \n\n min_permanent_options min_phenotype_size min_phenotype_options \n0 2 2 1 \n1 1 2 1 \n2 3 2 3 \n3 2 3 2 \n4 1 2 1 \n5 3 2 3 \n6 2 3 2 \n7 1 2 1 \n8 3 2 3 \n9 2 3 2 \n10 1 2 1 \n11 1 2 1 ",
"text/html": "\n\n
\n \n \n | \n source | \n target | \n min_onestep_size | \n min_onestep_options | \n min_temporary_size | \n min_temporary_options | \n min_permanent_size | \n min_permanent_options | \n min_phenotype_size | \n min_phenotype_options | \n
\n \n \n \n 0 | \n Erythrocyte | \n Megakaryocyte | \n 2 | \n 1 | \n 1 | \n 2 | \n 1 | \n 2 | \n 2 | \n 1 | \n
\n \n 1 | \n Erythrocyte | \n Monocyte | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 2 | \n 1 | \n
\n \n 2 | \n Erythrocyte | \n Granulocyte | \n 3 | \n 1 | \n 2 | \n 3 | \n 2 | \n 3 | \n 2 | \n 3 | \n
\n \n 3 | \n Megakaryocyte | \n Erythrocyte | \n 2 | \n 1 | \n 1 | \n 2 | \n 1 | \n 2 | \n 3 | \n 2 | \n
\n \n 4 | \n Megakaryocyte | \n Monocyte | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 2 | \n 1 | \n
\n \n 5 | \n Megakaryocyte | \n Granulocyte | \n 4 | \n 3 | \n 2 | \n 3 | \n 2 | \n 3 | \n 2 | \n 3 | \n
\n \n 6 | \n Monocyte | \n Erythrocyte | \n 3 | \n 1 | \n 3 | \n 6 | \n 3 | \n 2 | \n 3 | \n 2 | \n
\n \n 7 | \n Monocyte | \n Megakaryocyte | \n 3 | \n 1 | \n 2 | \n 1 | \n 2 | \n 1 | \n 2 | \n 1 | \n
\n \n 8 | \n Monocyte | \n Granulocyte | \n 3 | \n 1 | \n 2 | \n 4 | \n 2 | \n 3 | \n 2 | \n 3 | \n
\n \n 9 | \n Granulocyte | \n Erythrocyte | \n 4 | \n 1 | \n 3 | \n 6 | \n 3 | \n 2 | \n 3 | \n 2 | \n
\n \n 10 | \n Granulocyte | \n Megakaryocyte | \n 4 | \n 1 | \n 2 | \n 1 | \n 2 | \n 1 | \n 2 | \n 1 | \n
\n \n 11 | \n Granulocyte | \n Monocyte | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 1 | \n 2 | \n 1 | \n
\n \n
\n
"
},
- "execution_count": 73,
+ "execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
@@ -529,8 +529,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.852680Z",
- "start_time": "2024-04-03T13:44:41.809360Z"
+ "end_time": "2024-04-03T13:47:14.045977Z",
+ "start_time": "2024-04-03T13:47:14.029291Z"
}
},
"id": "3eed11a720075285"
@@ -547,16 +547,16 @@
},
{
"cell_type": "code",
- "execution_count": 74,
+ "execution_count": 19,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Erythrocyte [{'PU1': False, 'Fli1': False, 'GATA1': True}, {'PU1': False, 'GATA1': True, 'EKLF': True}]\n",
+ "Erythrocyte [{'PU1': False, 'Fli1': False, 'GATA1': True}, {'EKLF': True, 'GATA1': True, 'PU1': False}]\n",
"Megakaryocyte [{'Fli1': True, 'PU1': False}]\n",
- "Monocyte [{'CEBPa': False, 'PU1': True}]\n",
- "Granulocyte [{'cJun': False, 'CEBPa': True}, {'CEBPa': True, 'Gfi1': True}, {'EgrNab': False, 'CEBPa': True}]\n"
+ "Monocyte [{'PU1': True, 'CEBPa': False}]\n",
+ "Granulocyte [{'cJun': False, 'CEBPa': True}, {'CEBPa': True, 'Gfi1': True}, {'CEBPa': True, 'EgrNab': False}]\n"
]
}
],
@@ -568,8 +568,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.852838Z",
- "start_time": "2024-04-03T13:44:41.814554Z"
+ "end_time": "2024-04-03T13:47:14.046134Z",
+ "start_time": "2024-04-03T13:47:14.033681Z"
}
},
"id": "4f62a27affb31f06"
@@ -618,7 +618,7 @@
},
{
"cell_type": "code",
- "execution_count": 75,
+ "execution_count": 20,
"outputs": [],
"source": [
"# Load the model and create a Perturbation Graph\n",
@@ -629,21 +629,21 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.912607Z",
- "start_time": "2024-04-03T13:44:41.862722Z"
+ "end_time": "2024-04-03T13:47:14.116532Z",
+ "start_time": "2024-04-03T13:47:14.080516Z"
}
},
"id": "f7c8237823b3721a"
},
{
"cell_type": "code",
- "execution_count": 76,
+ "execution_count": 21,
"outputs": [
{
"data": {
"text/plain": "2963088.0"
},
- "execution_count": 76,
+ "execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
@@ -658,15 +658,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:41.939469Z",
- "start_time": "2024-04-03T13:44:41.883847Z"
+ "end_time": "2024-04-03T13:47:14.122890Z",
+ "start_time": "2024-04-03T13:47:14.120196Z"
}
},
"id": "65b4a118960ff54c"
},
{
"cell_type": "code",
- "execution_count": 77,
+ "execution_count": 22,
"outputs": [],
"source": [
"# We need to reassign attractor configuration to the new graph\n",
@@ -697,15 +697,15 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:45.781458Z",
- "start_time": "2024-04-03T13:44:45.780022Z"
+ "end_time": "2024-04-03T13:47:18.009942Z",
+ "start_time": "2024-04-03T13:47:18.007410Z"
}
},
"id": "ee72658ed1ee4e83"
},
{
"cell_type": "code",
- "execution_count": 78,
+ "execution_count": 23,
"outputs": [
{
"name": "stdout",
@@ -722,7 +722,7 @@
"Cardinality of control map: 237920256\n",
">>> {}: 116172; rho = 0.039\n",
"Best robustness 0.03920639549011032 observed in 1 perturbations.\n",
- ">>>>>> Elapsed: 310ms\n",
+ ">>>>>> Elapsed: 315ms\n",
">>> {}: 116172; rho = 0.039\n",
"Best robustness 0.03920639549011032 observed in 1 perturbations.\n",
"Robustness 0 achieved for perturbation size 0.\n",
@@ -772,7 +772,7 @@
">>> {\"CEBPa\": false}: 2963088; rho = 1.000\n",
">>> {\"CEBPa\": true}: 106932; rho = 0.036\n",
"Best robustness 1 observed in 2 perturbations.\n",
- ">>>>>> Elapsed: 1898ms\n",
+ ">>>>>> Elapsed: 1909ms\n",
">>> {\"cJun\": false}: 2962296; rho = 1.000\n",
">>> {\"cJun\": true}: 107730; rho = 0.036\n",
">>> {\"SCL\": false}: 58482; rho = 0.020\n",
@@ -813,16 +813,25 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
- "end_time": "2024-04-03T13:44:47.996454Z",
- "start_time": "2024-04-03T13:44:47.994381Z"
+ "end_time": "2024-04-03T13:47:20.244730Z",
+ "start_time": "2024-04-03T13:47:20.237935Z"
}
},
"id": "12731ca169477a75"
},
{
"cell_type": "code",
- "execution_count": null,
- "outputs": [],
+ "execution_count": 24,
+ "outputs": [
+ {
+ "data": {
+ "text/plain": "1.0"
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"# We can find out the robustness of previously computed perturbations\n",
"mega_phen = pstg_unknown.ceiled_phenotype_permanent_control(\n",
@@ -835,7 +844,10 @@
],
"metadata": {
"collapsed": false,
- "is_executing": true
+ "ExecuteTime": {
+ "end_time": "2024-04-03T13:47:27.002067Z",
+ "start_time": "2024-04-03T13:47:27.000452Z"
+ }
},
"id": "af65f16f17f1600b"
},
@@ -849,23 +861,46 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "outputs": [],
+ "execution_count": 25,
+ "outputs": [
+ {
+ "data": {
+ "text/plain": "0.0"
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"# We can find out the robustness of previously computed perturbations\n",
"mega_erythro = pstg_unknown.permanent_control(megakaryocyte_att, erythrocyte_att, verbose=False)\n",
- "mega_erythro.perturbation_working_colors({\"EKLF\": True}).cardinality() / CARDINALITY"
+ "mega_erythro.perturbation_working_colors({\"EKLF\": True}).cardinality() / CARDINALITY\n",
+ "\n",
+ "# WTF"
],
"metadata": {
"collapsed": false,
- "is_executing": true
+ "ExecuteTime": {
+ "end_time": "2024-04-03T13:47:27.166551Z",
+ "start_time": "2024-04-03T13:47:27.164827Z"
+ }
},
"id": "9a2f8ee50f53c90a"
},
{
"cell_type": "code",
- "execution_count": null,
- "outputs": [],
+ "execution_count": 26,
+ "outputs": [
+ {
+ "data": {
+ "text/plain": "[({'Fli1': False, 'CEBPa': False, 'GATA2': False, 'PU1': False},\n ColorSet(cardinality=2963088))]"
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"mega_erythro.working_perturbations(min_robustness=0.99, \n",
" verbose=False,\n",
@@ -873,33 +908,12 @@
],
"metadata": {
"collapsed": false,
- "is_executing": true
+ "ExecuteTime": {
+ "end_time": "2024-04-03T13:47:30.527297Z",
+ "start_time": "2024-04-03T13:47:30.525400Z"
+ }
},
"id": "8d08832afedafc1e"
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "outputs": [],
- "source": [
- "mega_erythro.perturbation_working_colors({\"EKLF\": True})"
- ],
- "metadata": {
- "collapsed": false,
- "is_executing": true
- },
- "id": "1a2df3e0b8550c78"
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "outputs": [],
- "source": [],
- "metadata": {
- "collapsed": false,
- "is_executing": true
- },
- "id": "5fb7feea7f57dd4e"
}
],
"metadata": {