diff --git a/jupyter_notebooks/diagrams.ipynb b/jupyter_notebooks/diagrams.ipynb index 2891741..cc44a5b 100644 --- a/jupyter_notebooks/diagrams.ipynb +++ b/jupyter_notebooks/diagrams.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 170, "id": "7538b3a8-e11c-4771-87ab-d83b077b70ed", "metadata": {}, "outputs": [], @@ -42,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 171, "id": "e87c3aa6-acb0-452c-8256-268eb583400a", "metadata": {}, "outputs": [ @@ -74,10 +74,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 97, + "execution_count": 171, "metadata": {}, "output_type": "execute_result" } @@ -93,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 172, "id": "6712dec8-7a5f-4c4d-b9db-763bf401e57c", "metadata": {}, "outputs": [ @@ -137,10 +137,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 98, + "execution_count": 172, "metadata": {}, "output_type": "execute_result" } @@ -160,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 173, "id": "731e6c49-cd43-4246-a4e5-f8267fbfefdf", "metadata": {}, "outputs": [ @@ -262,10 +262,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 99, + "execution_count": 173, "metadata": {}, "output_type": "execute_result" } @@ -296,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 174, "id": "b2f091b4-82df-4dc5-936c-bfddbf807a50", "metadata": {}, "outputs": [ @@ -468,10 +468,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 100, + "execution_count": 174, "metadata": {}, "output_type": "execute_result" } @@ -503,7 +503,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 175, "id": "8166389b-a006-490a-8e84-9e67e49591ed", "metadata": {}, "outputs": [ @@ -511,7 +511,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Initializing experiment tumor_tcell_20231018.085645\n" + "Initializing experiment tumor_tcell_20231022.130955\n" ] }, { @@ -569,7 +569,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 176, "id": "589648aa-b5b8-497c-b937-366c87dae3de", "metadata": {}, "outputs": [], @@ -580,13 +580,27 @@ "del abm_experiment_spec['tumor_environment']['death_log']\n", "del abm_experiment_spec['tumor_environment']['log']\n", "del abm_experiment_spec['tumor_environment']['clock']\n", - "del abm_experiment_spec['tumor_environment']['global_time']" + "del abm_experiment_spec['tumor_environment']['global_time']\n", + "\n", + "node_groups = [\n", + " [\n", + " ('tumor_environment',), \n", + " ('in_transit',), ('lymph_node',), \n", + " ('lymph_node_transfer',)],\n", + " [\n", + " ('tumor_environment', 'dimensions',), \n", + " ('tumor_environment', 'fields',), \n", + " ('tumor_environment', 'agents',), \n", + " ('tumor_environment', 'diffusion_field',), \n", + " ('tumor_environment', 'neighbors_multibody',), \n", + " ],\n", + "]" ] }, { "cell_type": "code", - "execution_count": 103, - "id": "122b14d5-bed9-4502-94bd-1ad27ac0e16b", + "execution_count": 177, + "id": "10df1f44-fd56-46b9-8806-a959c071978f", "metadata": {}, "outputs": [ { @@ -684,10 +698,6 @@ "neighbors_multibody\n", "\n", "\n", - "\n", - "('tumor_environment',)->('tumor_environment', 'neighbors_multibody')\n", - "\n", - "\n", "\n", "\n", "('tumor_environment', 'diffusion_field')\n", @@ -695,10 +705,6 @@ "diffusion_field\n", "\n", "\n", - "\n", - "('tumor_environment',)->('tumor_environment', 'diffusion_field')\n", - "\n", - "\n", "\n", "\n", "('tumor_environment',)->('lymph_node_transfer',)\n", @@ -872,10 +878,6 @@ "t_cell\n", "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'tcell_0')->('tumor_environment', 'agents', 'tcell_0', 't_cell')\n", - "\n", - "\n", "\n", "\n", "('tumor_environment', 'agents', 'tcell_0', 'local_field')\n", @@ -883,20 +885,8 @@ "local_field\n", "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'tcell_0')->('tumor_environment', 'agents', 'tcell_0', 'local_field')\n", - "\n", - "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'tcell_0')->('tumor_environment', 'agents', 'tcell_0', 'division')\n", - "\n", - "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'tcell_0')->('tumor_environment', 'agents', 'tcell_0', 'death')\n", - "\n", - "\n", "\n", "\n", "('tumor_environment', 'agents', 'tcell_0', 'boundary', 'death')\n", @@ -1026,10 +1016,6 @@ "tumor\n", "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'tumor_0')->('tumor_environment', 'agents', 'tumor_0', 'tumor')\n", - "\n", - "\n", "\n", "\n", "('tumor_environment', 'agents', 'tumor_0', 'local_field')\n", @@ -1037,20 +1023,8 @@ "local_field\n", "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'tumor_0')->('tumor_environment', 'agents', 'tumor_0', 'local_field')\n", - "\n", - "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'tumor_0')->('tumor_environment', 'agents', 'tumor_0', 'division')\n", - "\n", - "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'tumor_0')->('tumor_environment', 'agents', 'tumor_0', 'death')\n", - "\n", - "\n", "\n", "\n", "('tumor_environment', 'agents', 'tumor_0', 'boundary', 'death')\n", @@ -1180,10 +1154,6 @@ "dendritic_cell\n", "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'dendritic_0')->('tumor_environment', 'agents', 'dendritic_0', 'dendritic_cell')\n", - "\n", - "\n", "\n", "\n", "('tumor_environment', 'agents', 'dendritic_0', 'local_field')\n", @@ -1191,20 +1161,8 @@ "local_field\n", "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'dendritic_0')->('tumor_environment', 'agents', 'dendritic_0', 'local_field')\n", - "\n", - "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'dendritic_0')->('tumor_environment', 'agents', 'dendritic_0', 'division')\n", - "\n", - "\n", "\n", - "\n", - "('tumor_environment', 'agents', 'dendritic_0')->('tumor_environment', 'agents', 'dendritic_0', 'death')\n", - "\n", - "\n", "\n", "\n", "('tumor_environment', 'agents', 'dendritic_0', 'boundary', 'death')\n", @@ -1357,62 +1315,37 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 103, + "execution_count": 177, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# plot full bigraph\n", - "node_groups = [\n", - " [\n", - " ('tumor_environment',), \n", - " ('in_transit',), ('lymph_node',), \n", - " ('lymph_node_transfer',)],\n", - " [\n", - " ('tumor_environment', 'dimensions',), \n", - " ('tumor_environment', 'fields',), \n", - " ('tumor_environment', 'agents',), \n", - " ('tumor_environment', 'diffusion_field',), \n", - " ('tumor_environment', 'neighbors_multibody',), \n", - " ],\n", - "]\n", "plot_bigraph(abm_experiment_spec, \n", " **plot_settings,\n", " node_groups=node_groups,\n", - " filename='abm_experiment',\n", + " remove_process_place_edges=True,\n", + " filename='abm_experiment_full',\n", " )" ] }, - { - "cell_type": "markdown", - "id": "4c0863ec-d4d0-48a1-8af4-39899bbc314d", - "metadata": {}, - "source": [ - "## Environment composite" - ] - }, { "cell_type": "code", - "execution_count": 104, - "id": "b3ac3d11-c31c-4ad7-9353-bb7092cfdc3c", - "metadata": {}, - "outputs": [], - "source": [ - "tumor_environment_spec = copy.deepcopy(abm_experiment_spec['tumor_environment'])\n", - "tumor_agents_spec = copy.deepcopy(abm_experiment_spec['tumor_environment']['agents'])\n", - "tumor_environment_spec['agents'] = {}" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "id": "b2bc6fd1-e992-409b-8a9d-ccb98254f296", + "execution_count": 193, + "id": "122b14d5-bed9-4502-94bd-1ad27ac0e16b", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "node ('agents',) not in graph\n", + "node ('fields',) not in graph\n" + ] + }, { "data": { "image/svg+xml": [ @@ -1422,446 +1355,419 @@ "\n", "\n", - "\n", - "\n", + "\n", + "\n", "bigraph\n", - "\n", - "\n", + "\n", + "\n", "\n", - "('lymph_node_transfer',)\n", - "\n", - "lymph_node_transfer\n", + "('in_transit',)\n", + "\n", + "in_transit\n", "\n", - "\n", - "\n", - "('tumor_environment',)\n", - "\n", - "tumor_environment\n", + "\n", + "\n", + "('lymph_node_transfer',)\n", + "\n", + "lymph_node_transfer\n", "\n", - "\n", - "\n", - "('tumor_environment',)->('lymph_node_transfer',)\n", - "\n", - "\n", - "cells\n", + "\n", + "\n", + "('in_transit',)->('lymph_node_transfer',)\n", + "\n", + "\n", + "in_transit\n", "\n", "\n", - "\n", + "\n", "('lymph_node',)\n", - "\n", - "lymph_node\n", + "\n", + "lymph_node\n", "\n", "\n", - "\n", + "\n", "('lymph_node',)->('lymph_node_transfer',)\n", - "\n", - "\n", - "lymph_node\n", + "\n", + "\n", + "lymph_node\n", "\n", - "\n", - "\n", - "('in_transit',)\n", - "\n", - "in_transit\n", + "\n", + "\n", + "('tumor_environment',)\n", + "\n", + "tumor_environment\n", "\n", - "\n", - "\n", - "('in_transit',)->('lymph_node_transfer',)\n", - "\n", - "\n", - "in_transit\n", + "\n", + "\n", + "('tumor_environment', 'agents')\n", + "\n", + "agents\n", "\n", + "\n", + "\n", + "('tumor_environment',)->('tumor_environment', 'agents')\n", + "\n", "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 105, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "plot_bigraph(lymph_node_transfer, \n", - " **plot_settings,\n", - " filename='lymph_node_transfer',\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "id": "f2909500-ef91-459f-9d29-56ceb3a44223", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "bigraph\n", - "\n", - "\n", - "\n", - "('agents',)\n", - "\n", - "agents\n", + "\n", + "\n", + "('tumor_environment', 'dimensions')\n", + "\n", + "dimensions\n", "\n", - "\n", - "\n", - "('neighbors_multibody',)\n", - "\n", - "neighbors_multibody\n", + "\n", + "\n", + "('tumor_environment',)->('tumor_environment', 'dimensions')\n", + "\n", "\n", - "\n", - "\n", - "('agents',)->('neighbors_multibody',)\n", - "\n", - "\n", - "cells\n", + "\n", + "\n", + "('tumor_environment', 'fields')\n", + "\n", + "fields\n", "\n", - "\n", - "\n", - "('diffusion_field',)\n", - "\n", - "diffusion_field\n", + "\n", + "\n", + "('tumor_environment',)->('tumor_environment', 'fields')\n", + "\n", "\n", - "\n", - "\n", - "('agents',)->('diffusion_field',)\n", - "\n", - "\n", - "cells\n", + "\n", + "\n", + "('tumor_environment', 'neighbors_multibody')\n", + "\n", + "neighbors_multibody\n", "\n", - "\n", - "\n", - "('dimensions',)\n", - "\n", - "dimensions\n", + "\n", + "\n", + "\n", + "('tumor_environment', 'diffusion_field')\n", + "\n", + "diffusion_field\n", "\n", - "\n", - "\n", - "('dimensions',)->('diffusion_field',)\n", - "\n", - "\n", - "dimensions\n", + "\n", + "\n", + "\n", + "('tumor_environment',)->('lymph_node_transfer',)\n", + "\n", + "\n", + "cells\n", "\n", - "\n", - "\n", - "('fields',)\n", - "\n", - "fields\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0')\n", + "\n", + "tcell_0\n", "\n", - "\n", - "\n", - "('fields',)->('diffusion_field',)\n", - "\n", - "\n", - "fields\n", + "\n", + "\n", + "('tumor_environment', 'agents')->('tumor_environment', 'agents', 'tcell_0')\n", + "\n", "\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tumor_0')\n", + "\n", + "tumor_0\n", "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "plot_bigraph(tumor_environment_spec, \n", - " **plot_settings,\n", - " filename='tumor_environment',\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "08950018-fe70-4f90-bd63-1aa3f4ebabad", - "metadata": {}, - "source": [ - "## Cell Agent composites" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "id": "b759be45-60a0-47b6-8622-571e0af6f18f", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "bigraph\n", - "\n", - "\n", - "\n", - "('agents',)\n", - "\n", - "agents\n", + "\n", + "\n", + "('tumor_environment', 'agents')->('tumor_environment', 'agents', 'tumor_0')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 't_cell')\n", - "\n", - "t_cell\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'dendritic_0')\n", + "\n", + "dendritic_0\n", "\n", - "\n", - "\n", - "('agents',)->('agents', 't_cell')\n", - "\n", + "\n", + "\n", + "('tumor_environment', 'agents')->('tumor_environment', 'agents', 'dendritic_0')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'division')\n", - "\n", - "division\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'division')\n", + "\n", + "division\n", "\n", - "\n", - "\n", - "('agents',)->('agents', 't_cell', 'division')\n", - "\n", - "\n", - "agents\n", + "\n", + "\n", + "('tumor_environment', 'agents')->('tumor_environment', 'agents', 'tcell_0', 'division')\n", + "\n", + "\n", + "agents\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'death')\n", - "\n", - "death\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'death')\n", + "\n", + "death\n", "\n", - "\n", - "\n", - "('agents',)->('agents', 't_cell', 'death')\n", - "\n", - "\n", - "agents\n", + "\n", + "\n", + "('tumor_environment', 'agents')->('tumor_environment', 'agents', 'tcell_0', 'death')\n", + "\n", + "\n", + "agents\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary')\n", - "\n", - "boundary\n", + "\n", + "\n", + "('tumor_environment', 'agents')->('tumor_environment', 'neighbors_multibody')\n", + "\n", + "\n", + "cells\n", "\n", - "\n", - "\n", - "('agents', 't_cell')->('agents', 't_cell', 'boundary')\n", - "\n", + "\n", + "\n", + "('tumor_environment', 'agents')->('tumor_environment', 'diffusion_field')\n", + "\n", + "\n", + "cells\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'neighbors')\n", - "\n", - "neighbors\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary')\n", + "\n", + "boundary\n", "\n", - "\n", + "\n", "\n", - "('agents', 't_cell')->('agents', 't_cell', 'neighbors')\n", - "\n", + "('tumor_environment', 'agents', 'tcell_0')->('tumor_environment', 'agents', 'tcell_0', 'boundary')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'internal')\n", - "\n", - "internal\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'neighbors')\n", + "\n", + "neighbors\n", "\n", - "\n", + "\n", "\n", - "('agents', 't_cell')->('agents', 't_cell', 'internal')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 't_cell', 't_cell')\n", - "\n", - "t_cell\n", - "\n", - "\n", - "\n", - "('agents', 't_cell')->('agents', 't_cell', 't_cell')\n", - "\n", + "('tumor_environment', 'agents', 'tcell_0')->('tumor_environment', 'agents', 'tcell_0', 'neighbors')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'local_field')\n", - "\n", - "local_field\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'internal')\n", + "\n", + "internal\n", "\n", - "\n", - "\n", - "('agents', 't_cell')->('agents', 't_cell', 'local_field')\n", - "\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0')->('tumor_environment', 'agents', 'tcell_0', 'internal')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 't_cell')->('agents', 't_cell', 'division')\n", - "\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 't_cell')\n", + "\n", + "t_cell\n", "\n", - "\n", - "\n", - "('agents', 't_cell')->('agents', 't_cell', 'death')\n", - "\n", + "\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'local_field')\n", + "\n", + "local_field\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary', 'death')\n", - "\n", - "death\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary', 'death')\n", + "\n", + "death\n", "\n", - "\n", + "\n", "\n", - "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'death')\n", - "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary')->('tumor_environment', 'agents', 'tcell_0', 'boundary', 'death')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary', 'location')\n", - "\n", - "location\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary', 'location')\n", + "\n", + "location\n", "\n", - "\n", + "\n", "\n", - "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'location')\n", - "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary')->('tumor_environment', 'agents', 'tcell_0', 'boundary', 'location')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary', 'exchange')\n", - "\n", - "exchange\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary', 'exchange')\n", + "\n", + "exchange\n", "\n", - "\n", + "\n", "\n", - "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'exchange')\n", - "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary')->('tumor_environment', 'agents', 'tcell_0', 'boundary', 'exchange')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary')->('agents', 't_cell', 't_cell')\n", - "\n", - "\n", - "boundary\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary')->('tumor_environment', 'agents', 'tcell_0', 't_cell')\n", + "\n", + "\n", + "boundary\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary')->('agents', 't_cell', 't_cell')\n", - "\n", - "\n", - "globals\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary')->('tumor_environment', 'agents', 'tcell_0', 't_cell')\n", + "\n", + "\n", + "globals\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'division')\n", - "\n", - "\n", - "global\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary')->('tumor_environment', 'agents', 'tcell_0', 'division')\n", + "\n", + "\n", + "global\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary', 'death')->('agents', 't_cell', 'death')\n", - "\n", - "\n", - "trigger\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary', 'death')->('tumor_environment', 'agents', 'tcell_0', 'death')\n", + "\n", + "\n", + "trigger\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary', 'location')->('agents', 't_cell', 'local_field')\n", - "\n", - "\n", - "location\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary', 'location')->('tumor_environment', 'agents', 'tcell_0', 'local_field')\n", + "\n", + "\n", + "location\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'boundary', 'exchange')->('agents', 't_cell', 'local_field')\n", - "\n", - "\n", - "exchanges\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'boundary', 'exchange')->('tumor_environment', 'agents', 'tcell_0', 'local_field')\n", + "\n", + "\n", + "exchanges\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'neighbors')->('agents', 't_cell', 't_cell')\n", - "\n", - "\n", - "neighbors\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'neighbors')->('tumor_environment', 'agents', 'tcell_0', 't_cell')\n", + "\n", + "\n", + "neighbors\n", "\n", - "\n", - "\n", - "('agents', 't_cell', 'internal')->('agents', 't_cell', 't_cell')\n", - "\n", - "\n", - "internal\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'internal', 'cell_state')\n", + "\n", + "cell_state\n", "\n", - "\n", - "\n", - "('fields',)\n", - "\n", - "fields\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'internal')->('tumor_environment', 'agents', 'tcell_0', 'internal', 'cell_state')\n", + "\n", "\n", - "\n", - "\n", - "('fields',)->('agents', 't_cell', 'local_field')\n", - "\n", - "\n", - "fields\n", + "\n", + "\n", + "('tumor_environment', 'agents', 'tcell_0', 'internal')->('tumor_environment', 'agents', 'tcell_0', 't_cell')\n", + "\n", + "\n", + "internal\n", "\n", - "\n", - "\n", - "('dimensions',)\n", - "\n", - "dimensions\n", + "\n", + "\n", + "('tumor_environment', 'dimensions')->('tumor_environment', 'agents', 'tcell_0', 'local_field')\n", + "\n", + "\n", + "dimensions\n", "\n", - "\n", - "\n", - "('dimensions',)->('agents', 't_cell', 'local_field')\n", - "\n", - "\n", - "dimensions\n", + "\n", + "\n", + "('tumor_environment', 'dimensions')->('tumor_environment', 'diffusion_field')\n", + "\n", + "\n", + "dimensions\n", + "\n", + "\n", + "\n", + "('tumor_environment', 'fields')->('tumor_environment', 'agents', 'tcell_0', 'local_field')\n", + "\n", + "\n", + "fields\n", + "\n", + "\n", + "\n", + "('tumor_environment', 'fields')->('tumor_environment', 'diffusion_field')\n", + "\n", + "\n", + "fields\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 107, + "execution_count": 193, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "plot_bigraph({'agents': {'t_cell': tumor_agents_spec['tcell_0']}}, \n", + "abm_experiment_spec2 = copy.deepcopy(abm_experiment_spec)\n", + "\n", + "# remove some cells for simplicity\n", + "abm_experiment_spec2['tumor_environment']['agents']['dendritic_0'] = {}\n", + "abm_experiment_spec2['tumor_environment']['agents']['tumor_0'] = {}\n", + "internal_spec = {'cell_state': {}}\n", + "boundary_spec = {}\n", + "abm_experiment_spec2['tumor_environment']['agents']['tcell_0']['internal'] = internal_spec\n", + "abm_experiment_spec2['tumor_environment']['agents']['tcell_0']['boundary'].update(boundary_spec)\n", + "\n", + "# plot full bigraph\n", + "node_fill_colors = {\n", + " ('tumor_environment', 'agents', 'tcell_0', 'boundary', 'location'): 'cyan',\n", + " ('tumor_environment', 'agents', 'tcell_0', 'internal', 'cell_state'): 'cyan',\n", + "}\n", + "node_border_colors = {\n", + " # ('tumor_environment', 'agents', 'tcell_0', 't_cell'): 'blue',\n", + "}\n", + "plot_bigraph(abm_experiment_spec2, \n", " **plot_settings,\n", - " filename='tcell_composite',\n", + " node_groups=node_groups,\n", + " node_fill_colors=node_fill_colors,\n", + " node_border_colors=node_border_colors,\n", + " filename='abm_experiment_tailored',\n", + " remove_process_place_edges=True,\n", + " # **{'out_dir': 'out','dpi': '250'}\n", " )" ] }, + { + "cell_type": "markdown", + "id": "4c0863ec-d4d0-48a1-8af4-39899bbc314d", + "metadata": {}, + "source": [ + "## Environment composite" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "id": "b3ac3d11-c31c-4ad7-9353-bb7092cfdc3c", + "metadata": {}, + "outputs": [], + "source": [ + "tumor_environment_spec = copy.deepcopy(abm_experiment_spec['tumor_environment'])\n", + "tumor_agents_spec = copy.deepcopy(abm_experiment_spec['tumor_environment']['agents'])\n", + "tumor_environment_spec['agents'] = {}" + ] + }, { "cell_type": "code", - "execution_count": 108, - "id": "e004998a-6df6-4727-8808-e57934745baa", + "execution_count": 180, + "id": "b2bc6fd1-e992-409b-8a9d-ccb98254f296", "metadata": {}, "outputs": [ { @@ -1873,257 +1779,184 @@ "\n", "\n", - "\n", - "\n", + "\n", + "\n", "bigraph\n", - "\n", - "\n", + "\n", + "\n", "\n", - "('agents',)\n", - "\n", - "agents\n", + "('lymph_node_transfer',)\n", + "\n", + "lymph_node_transfer\n", "\n", - "\n", + "\n", "\n", - "('agents', 'tumor')\n", - "\n", - "tumor\n", - "\n", - "\n", - "\n", - "('agents',)->('agents', 'tumor')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'division')\n", - "\n", - "division\n", - "\n", - "\n", - "\n", - "('agents',)->('agents', 'tumor', 'division')\n", - "\n", - "\n", - "agents\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'death')\n", - "\n", - "death\n", + "('tumor_environment',)\n", + "\n", + "tumor_environment\n", "\n", - "\n", - "\n", - "('agents',)->('agents', 'tumor', 'death')\n", - "\n", - "\n", - "agents\n", + "\n", + "\n", + "('tumor_environment',)->('lymph_node_transfer',)\n", + "\n", + "\n", + "cells\n", "\n", - "\n", + "\n", "\n", - "('agents', 'tumor', 'boundary')\n", - "\n", - "boundary\n", - "\n", - "\n", - "\n", - "('agents', 'tumor')->('agents', 'tumor', 'boundary')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'neighbors')\n", - "\n", - "neighbors\n", - "\n", - "\n", - "\n", - "('agents', 'tumor')->('agents', 'tumor', 'neighbors')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'internal')\n", - "\n", - "internal\n", - "\n", - "\n", - "\n", - "('agents', 'tumor')->('agents', 'tumor', 'internal')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'tumor')\n", - "\n", - "tumor\n", + "('lymph_node',)\n", + "\n", + "lymph_node\n", "\n", - "\n", - "\n", - "('agents', 'tumor')->('agents', 'tumor', 'tumor')\n", - "\n", + "\n", + "\n", + "('lymph_node',)->('lymph_node_transfer',)\n", + "\n", + "\n", + "lymph_node\n", "\n", - "\n", - "\n", - "('agents', 'tumor', 'local_field')\n", - "\n", - "local_field\n", + "\n", + "\n", + "('in_transit',)\n", + "\n", + "in_transit\n", "\n", - "\n", - "\n", - "('agents', 'tumor')->('agents', 'tumor', 'local_field')\n", - "\n", + "\n", + "\n", + "('in_transit',)->('lymph_node_transfer',)\n", + "\n", + "\n", + "in_transit\n", "\n", - "\n", - "\n", - "('agents', 'tumor')->('agents', 'tumor', 'division')\n", - "\n", "\n", - "\n", - "\n", - "('agents', 'tumor')->('agents', 'tumor', 'death')\n", - "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 180, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot_bigraph(lymph_node_transfer, \n", + " **plot_settings,\n", + " filename='lymph_node_transfer',\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "id": "f2909500-ef91-459f-9d29-56ceb3a44223", + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "bigraph\n", + "\n", + "\n", + "\n", + "('agents',)\n", + "\n", + "agents\n", "\n", - "\n", + "\n", "\n", - "('agents', 'tumor', 'boundary', 'death')\n", - "\n", - "death\n", + "('neighbors_multibody',)\n", + "\n", + "neighbors_multibody\n", "\n", - "\n", + "\n", "\n", - "('agents', 'tumor', 'boundary')->('agents', 'tumor', 'boundary', 'death')\n", - "\n", + "('agents',)->('neighbors_multibody',)\n", + "\n", + "\n", + "cells\n", "\n", - "\n", + "\n", "\n", - "('agents', 'tumor', 'boundary', 'location')\n", - "\n", - "location\n", + "('diffusion_field',)\n", + "\n", + "diffusion_field\n", "\n", - "\n", + "\n", "\n", - "('agents', 'tumor', 'boundary')->('agents', 'tumor', 'boundary', 'location')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'boundary', 'exchange')\n", - "\n", - "exchange\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'boundary')->('agents', 'tumor', 'boundary', 'exchange')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'boundary')->('agents', 'tumor', 'tumor')\n", - "\n", - "\n", - "boundary\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'boundary')->('agents', 'tumor', 'tumor')\n", - "\n", - "\n", - "globals\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'boundary')->('agents', 'tumor', 'division')\n", - "\n", - "\n", - "global\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'boundary', 'death')->('agents', 'tumor', 'death')\n", - "\n", - "\n", - "trigger\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'boundary', 'location')->('agents', 'tumor', 'local_field')\n", - "\n", - "\n", - "location\n", - "\n", - "\n", - "\n", - "('agents', 'tumor', 'boundary', 'exchange')->('agents', 'tumor', 'local_field')\n", - "\n", - "\n", - "exchanges\n", + "('agents',)->('diffusion_field',)\n", + "\n", + "\n", + "cells\n", "\n", - "\n", - "\n", - "('agents', 'tumor', 'neighbors')->('agents', 'tumor', 'tumor')\n", - "\n", - "\n", - "neighbors\n", + "\n", + "\n", + "('dimensions',)\n", + "\n", + "dimensions\n", "\n", - "\n", - "\n", - "('agents', 'tumor', 'internal')->('agents', 'tumor', 'tumor')\n", - "\n", - "\n", - "internal\n", + "\n", + "\n", + "('dimensions',)->('diffusion_field',)\n", + "\n", + "\n", + "dimensions\n", "\n", "\n", - "\n", + "\n", "('fields',)\n", - "\n", - "fields\n", - "\n", - "\n", - "\n", - "('fields',)->('agents', 'tumor', 'local_field')\n", - "\n", - "\n", - "fields\n", - "\n", - "\n", - "\n", - "('dimensions',)\n", - "\n", - "dimensions\n", + "\n", + "fields\n", "\n", - "\n", - "\n", - "('dimensions',)->('agents', 'tumor', 'local_field')\n", - "\n", - "\n", - "dimensions\n", + "\n", + "\n", + "('fields',)->('diffusion_field',)\n", + "\n", + "\n", + "fields\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 108, + "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "plot_bigraph({'agents': {'tumor': tumor_agents_spec['tumor_0']}}, \n", + "plot_bigraph(tumor_environment_spec, \n", " **plot_settings,\n", - " filename='tumor_composite',\n", + " filename='tumor_environment',\n", " )" ] }, + { + "cell_type": "markdown", + "id": "08950018-fe70-4f90-bd63-1aa3f4ebabad", + "metadata": {}, + "source": [ + "## Cell Agent composites" + ] + }, { "cell_type": "code", - "execution_count": 109, - "id": "67302bc0-1cff-43f3-adca-e632c0fde508", + "execution_count": 182, + "id": "b759be45-60a0-47b6-8622-571e0af6f18f", "metadata": {}, "outputs": [ { @@ -2135,250 +1968,294 @@ "\n", "\n", - "\n", - "\n", + "\n", + "\n", "bigraph\n", - "\n", + "\n", "\n", "\n", "('agents',)\n", - "\n", - "agents\n", + "\n", + "agents\n", "\n", - "\n", + "\n", "\n", - "('agents', 'dendritic_cell')\n", - "\n", - "dendritic_cell\n", + "('agents', 't_cell')\n", + "\n", + "t_cell\n", "\n", - "\n", - "\n", - "('agents',)->('agents', 'dendritic_cell')\n", - "\n", + "\n", + "\n", + "('agents',)->('agents', 't_cell')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'division')\n", - "\n", - "division\n", + "\n", + "\n", + "('fields',)\n", + "\n", + "fields\n", "\n", - "\n", - "\n", - "('agents',)->('agents', 'dendritic_cell', 'division')\n", - "\n", - "\n", - "agents\n", + "\n", + "\n", + "\n", + "('agents', 't_cell', 'division')\n", + "\n", + "division\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'death')\n", - "\n", - "death\n", + "\n", + "\n", + "('agents',)->('agents', 't_cell', 'division')\n", + "\n", + "\n", + "agents\n", "\n", - "\n", - "\n", - "('agents',)->('agents', 'dendritic_cell', 'death')\n", - "\n", - "\n", + "\n", + "\n", + "('agents', 't_cell', 'death')\n", + "\n", + "death\n", + "\n", + "\n", + "\n", + "('agents',)->('agents', 't_cell', 'death')\n", + "\n", + "\n", "agents\n", "\n", - "\n", + "\n", "\n", - "('agents', 'dendritic_cell', 'boundary')\n", - "\n", - "boundary\n", - "\n", - "\n", - "\n", - "('agents', 'dendritic_cell')->('agents', 'dendritic_cell', 'boundary')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'neighbors')\n", - "\n", - "neighbors\n", - "\n", - "\n", - "\n", - "('agents', 'dendritic_cell')->('agents', 'dendritic_cell', 'neighbors')\n", - "\n", - "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'internal')\n", - "\n", - "internal\n", + "('agents', 't_cell', 'boundary')\n", + "\n", + "boundary\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell')->('agents', 'dendritic_cell', 'internal')\n", - "\n", + "\n", + "\n", + "('agents', 't_cell')->('agents', 't_cell', 'boundary')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'dendritic_cell')\n", - "\n", - "dendritic_cell\n", + "\n", + "\n", + "('agents', 't_cell', 'neighbors')\n", + "\n", + "neighbors\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell')->('agents', 'dendritic_cell', 'dendritic_cell')\n", - "\n", + "\n", + "\n", + "('agents', 't_cell')->('agents', 't_cell', 'neighbors')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'local_field')\n", - "\n", - "local_field\n", + "\n", + "\n", + "('agents', 't_cell', 'internal')\n", + "\n", + "internal\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell')->('agents', 'dendritic_cell', 'local_field')\n", - "\n", + "\n", + "\n", + "('agents', 't_cell')->('agents', 't_cell', 'internal')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell')->('agents', 'dendritic_cell', 'division')\n", - "\n", + "\n", + "\n", + "('agents', 't_cell', 't_cell')\n", + "\n", + "t_cell\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell')->('agents', 'dendritic_cell', 'death')\n", - "\n", + "\n", + "\n", + "\n", + "('agents', 't_cell', 'local_field')\n", + "\n", + "local_field\n", "\n", - "\n", + "\n", + "\n", + "\n", + "\n", "\n", - "('agents', 'dendritic_cell', 'boundary', 'death')\n", - "\n", - "death\n", + "('agents', 't_cell', 'boundary', 'death')\n", + "\n", + "death\n", "\n", - "\n", + "\n", "\n", - "('agents', 'dendritic_cell', 'boundary')->('agents', 'dendritic_cell', 'boundary', 'death')\n", - "\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'death')\n", + "\n", "\n", - "\n", + "\n", "\n", - "('agents', 'dendritic_cell', 'boundary', 'location')\n", - "\n", - "location\n", + "('agents', 't_cell', 'boundary', 'location')\n", + "\n", + "location\n", "\n", - "\n", + "\n", "\n", - "('agents', 'dendritic_cell', 'boundary')->('agents', 'dendritic_cell', 'boundary', 'location')\n", - "\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'location')\n", + "\n", "\n", - "\n", + "\n", "\n", - "('agents', 'dendritic_cell', 'boundary', 'exchange')\n", - "\n", - "exchange\n", + "('agents', 't_cell', 'boundary', 'exchange')\n", + "\n", + "exchange\n", "\n", - "\n", + "\n", "\n", - "('agents', 'dendritic_cell', 'boundary')->('agents', 'dendritic_cell', 'boundary', 'exchange')\n", - "\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'exchange')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'boundary')->('agents', 'dendritic_cell', 'dendritic_cell')\n", - "\n", - "\n", - "boundary\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary', 'mass')\n", + "\n", + "mass\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'boundary')->('agents', 'dendritic_cell', 'dendritic_cell')\n", - "\n", - "\n", - "globals\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'mass')\n", + "\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'boundary')->('agents', 'dendritic_cell', 'division')\n", - "\n", - "\n", - "global\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary', 'diameter')\n", + "\n", + "diameter\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'boundary', 'death')->('agents', 'dendritic_cell', 'death')\n", - "\n", - "\n", - "trigger\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'diameter')\n", + "\n", "\n", - "\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary', 'velocity')\n", + "\n", + "velocity\n", + "\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'boundary', 'velocity')\n", + "\n", + "\n", + "\n", "\n", - "('agents', 'dendritic_cell', 'boundary', 'location')->('agents', 'dendritic_cell', 'local_field')\n", - "\n", - "\n", - "location\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 't_cell')\n", + "\n", + "\n", + "boundary\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'boundary', 'exchange')->('agents', 'dendritic_cell', 'local_field')\n", - "\n", - "\n", - "exchanges\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 't_cell')\n", + "\n", + "\n", + "globals\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'neighbors')->('agents', 'dendritic_cell', 'dendritic_cell')\n", - "\n", - "\n", - "neighbors\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary')->('agents', 't_cell', 'division')\n", + "\n", + "\n", + "global\n", "\n", - "\n", - "\n", - "('agents', 'dendritic_cell', 'internal')->('agents', 'dendritic_cell', 'dendritic_cell')\n", - "\n", - "\n", - "internal\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary', 'death')->('agents', 't_cell', 'death')\n", + "\n", + "\n", + "trigger\n", "\n", - "\n", - "\n", - "('fields',)\n", - "\n", - "fields\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary', 'location')->('agents', 't_cell', 'local_field')\n", + "\n", + "\n", + "location\n", "\n", - "\n", - "\n", - "('fields',)->('agents', 'dendritic_cell', 'local_field')\n", - "\n", - "\n", - "fields\n", + "\n", + "\n", + "('agents', 't_cell', 'boundary', 'exchange')->('agents', 't_cell', 'local_field')\n", + "\n", + "\n", + "exchanges\n", + "\n", + "\n", + "\n", + "('agents', 't_cell', 'neighbors')->('agents', 't_cell', 't_cell')\n", + "\n", + "\n", + "neighbors\n", + "\n", + "\n", + "\n", + "('agents', 't_cell', 'internal', 'cell_state')\n", + "\n", + "cell_state\n", + "\n", + "\n", + "\n", + "('agents', 't_cell', 'internal')->('agents', 't_cell', 'internal', 'cell_state')\n", + "\n", + "\n", + "\n", + "\n", + "('agents', 't_cell', 'internal')->('agents', 't_cell', 't_cell')\n", + "\n", + "\n", + "internal\n", + "\n", + "\n", + "\n", + "('fields',)->('agents', 't_cell', 'local_field')\n", + "\n", + "\n", + "fields\n", "\n", "\n", - "\n", + "\n", "('dimensions',)\n", - "\n", - "dimensions\n", + "\n", + "dimensions\n", "\n", - "\n", - "\n", - "('dimensions',)->('agents', 'dendritic_cell', 'local_field')\n", - "\n", - "\n", - "dimensions\n", + "\n", + "\n", + "('dimensions',)->('agents', 't_cell', 'local_field')\n", + "\n", + "\n", + "dimensions\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 109, + "execution_count": 182, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "plot_bigraph({'agents': {'dendritic_cell': tumor_agents_spec['dendritic_0']}}, \n", + "node_groups = [[('agents',), ('fields',)]]\n", + "tcell0 = tumor_agents_spec['tcell_0']\n", + "\n", + "internal_spec = {'cell_state': {}}\n", + "boundary_spec = {'mass': {}, 'diameter': {}, 'velocity': {}}\n", + "tcell0['boundary'].update(boundary_spec)\n", + "tcell0['internal'].update(internal_spec)\n", + "\n", + "node_border_colors = {\n", + " ('agents', 't_cell', 't_cell'): 'blue',\n", + "}\n", + "\n", + "plot_bigraph({'agents': {'t_cell': tcell0}, 'fields': {}}, \n", + " node_groups=node_groups,\n", + " node_border_colors=node_border_colors,\n", " **plot_settings,\n", - " filename='dendritic_composite',\n", + " filename='tcell_composite',\n", + " remove_process_place_edges=True,\n", " )" ] }, @@ -2392,7 +2269,7 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 183, "id": "9ed5943a-f5f9-48b9-875a-dc91014edc85", "metadata": {}, "outputs": [], @@ -2416,7 +2293,7 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 184, "id": "63ea9b11-c757-4728-8149-c991567ce7eb", "metadata": {}, "outputs": [ @@ -2476,10 +2353,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 111, + "execution_count": 184, "metadata": {}, "output_type": "execute_result" } @@ -2491,7 +2368,7 @@ }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 185, "id": "d1acbc97-e303-40fa-a6d2-4e47555e98ab", "metadata": {}, "outputs": [ @@ -2551,10 +2428,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 112, + "execution_count": 185, "metadata": {}, "output_type": "execute_result" } @@ -2566,7 +2443,7 @@ }, { "cell_type": "code", - "execution_count": 113, + "execution_count": 186, "id": "569ccfea-ec94-4e8d-8af8-5be0e509a044", "metadata": {}, "outputs": [ @@ -2626,10 +2503,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 113, + "execution_count": 186, "metadata": {}, "output_type": "execute_result" } @@ -2649,7 +2526,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 187, "id": "88451f47-8c93-4143-9289-40198968b3f5", "metadata": {}, "outputs": [ @@ -2709,10 +2586,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 114, + "execution_count": 187, "metadata": {}, "output_type": "execute_result" } @@ -2724,7 +2601,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 188, "id": "05697c8e-cd0d-4a4c-b291-d867d5205532", "metadata": {}, "outputs": [ @@ -2768,10 +2645,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 115, + "execution_count": 188, "metadata": {}, "output_type": "execute_result" } @@ -2783,7 +2660,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 189, "id": "8bd9c850-5b79-4676-88e0-b8218762a03d", "metadata": {}, "outputs": [ @@ -2827,10 +2704,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 116, + "execution_count": 189, "metadata": {}, "output_type": "execute_result" } @@ -2850,7 +2727,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 190, "id": "e911f343-f60f-4a4f-a8f4-a38550d305e0", "metadata": { "scrolled": true @@ -2888,10 +2765,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 117, + "execution_count": 190, "metadata": {}, "output_type": "execute_result" } @@ -2903,7 +2780,7 @@ }, { "cell_type": "code", - "execution_count": 118, + "execution_count": 191, "id": "b0207969-ccdf-4e36-ac9c-e3d61754eb55", "metadata": {}, "outputs": [ @@ -2955,10 +2832,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 118, + "execution_count": 191, "metadata": {}, "output_type": "execute_result" } @@ -2970,7 +2847,7 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": 192, "id": "4ed30164-8d6a-490b-be7a-a7fd490878b6", "metadata": {}, "outputs": [ @@ -3022,10 +2899,10 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 119, + "execution_count": 192, "metadata": {}, "output_type": "execute_result" }