{
"cells": [
{
"cell_type": "markdown",
"id": "f43cd6af-d772-43f7-a4da-30bcc41c7e50",
"metadata": {},
"source": [
"## A transient concentration inside an organelle can \"escape\" from it by passive transport across the membranes, only it if diffuses quicky - before a reaction transforms it into a chemical unable to cross membranes.\n",
"### The \"window of opportunity to escape\" closes fast!\n",
"\n",
"#### SCENARIO 1 : `A`, the chemical injected into the organelle, diffuses slowly - and gets converted into `C` (which cannot cross the membranes) by the reaction `A + B <-> C` , before it has a chance to leave the organelle. Trapped! \n",
"\n",
"#### SCENARIO 2 : `A` diffuses fast enough to \"escape\" out of the organelle before getting completely trapped there\n",
"\n",
"Note: `B` is plentiful everywhere\n",
"\n",
"**Recommended background:** \n",
"\n",
"* experiment `1D/diffusion/membrane_gradient_diffusion_1`\n",
"* experiment `1D/reaction_diffusion/transient_getting_mopped_up`"
]
},
{
"cell_type": "markdown",
"id": "6398f935-72f9-458e-90ab-f02a05132302",
"metadata": {},
"source": [
"### TAGS : \"reactions 1D\", \"diffusion 1D\", \"membranes 1D\""
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "2b6f0de7-d66f-4f4e-8850-8a092fca20b8",
"metadata": {},
"outputs": [],
"source": [
"LAST_REVISED = \"Aug. 28, 2025\"\n",
"LIFE123_VERSION = \"1.0.0rc6\" # Library version this experiment is based on"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "806647d0-4c0b-4abf-8d86-53460378d93e",
"metadata": {},
"outputs": [],
"source": [
"#import set_path # Using MyBinder? Uncomment this before running the next cell!"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f6e0f263",
"metadata": {},
"outputs": [],
"source": [
"#import sys\n",
"#sys.path.append(\"C:/some_path/my_env_or_install\") # CHANGE to the folder containing your venv or libraries installation!\n",
"# NOTE: If any of the imports below can't find a module, uncomment the lines above, or try: import set_path \n",
"\n",
"from life123 import BioSim1D, ChemData, ReactionRegistry, PlotlyHelper, check_version"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "fe26e828-4428-4754-af9b-b54739b3a109",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"OK\n"
]
}
],
"source": [
"check_version(LIFE123_VERSION)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "79045ff7-ed3f-4c3a-be79-9f8a4476f3de",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "e9c62aaf-525f-46ef-b923-ec3083f8a4c0",
"metadata": {},
"source": [
"## Initialize the Chemical Data and the Reactions. They will be re-used in both scenarios"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "aeb04519-513f-4509-b7e0-5d42f1196613",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1\n",
"0: A + B <-> C (Elementary Synthesis reaction) (kF = 0.1 / kR = 0.02 / K = 5)\n",
"Chemicals involved in the above reactions: {\"A\" (red), \"B\" (turquoise), \"C\" (green)}\n"
]
}
],
"source": [
"# Initialize the chemical data\n",
"chem_data = ChemData(names=[\"A\", \"B\", \"C\"], \n",
" diffusion_rates=[100., 800., 500.], # The diffusion rate of `A` will later be increased in scenario 2\n",
" plot_colors=[\"red\", \"turquoise\", \"green\"]) \n",
"\n",
"rxns = ReactionRegistry(chem_data=chem_data)\n",
"\n",
"# Reaction A + B <-> C , with 1st-order kinetics for each species\n",
"# Note that the reaction is mostly in the forward direction\n",
"rxns.add_reaction(reactants=[\"A\", \"B\"], products=\"C\", kF=0.1, kR=0.02)\n",
"rxns.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "409e1d41-2a65-4668-8b44-f5c0c36f1a35",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "a8832e6c-cf7f-4d88-a303-3c80d9218e6e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "8221d2c0-4b6c-49b5-b24d-97c153e2a892",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "1369e74e-3ef3-4adf-b2f7-65ecce2d3183",
"metadata": {
"tags": []
},
"source": [
"# SCENARIO 1 - `A` diffuses slowly, relatively to the reaction `A + B <-> C`"
]
},
{
"cell_type": "markdown",
"id": "d233bc62-72ce-400c-9d66-0c91900ea6ab",
"metadata": {},
"source": [
"### Initialize the 1D System, including Membranes"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "5afedbcc-a438-4c84-9b3c-22460c3a1904",
"metadata": {},
"outputs": [],
"source": [
"bio = BioSim1D(n_bins=30, chem_data=chem_data, reactions=rxns)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e17e8404-cc7e-45d2-a644-9e33c43f7e7c",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"[(2, 18)]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bio.membranes().set_membranes(membranes=[ (2, 18) ])\n",
"bio.membranes().membrane_list"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "eba727ae-f919-490a-ace7-133871c85e66",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# We'll use 1/2 of the diffusion rate of `A` and `B` \n",
"# as their respective membrane permeability (by passive transport)\n",
"# `C`, by constrast, keeps the default 0 permeability (i.e., can't cross membranes)\n",
"bio.membranes().change_permeability(\"A\", 50.)\n",
"bio.membranes().change_permeability(\"B\", 400.)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "afff430b-e1b0-40c9-aab9-c2d039af4a9e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "9c980cca-f504-4be4-aa91-2814e646eea1",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "57fd3bb1-8d35-438c-8caa-d2ce5fe4f4e1",
"metadata": {},
"source": [
"### Initialize the initial concentrations"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "c984f746-d373-4a8a-89a4-9c3f0a3fca69",
"metadata": {},
"outputs": [],
"source": [
"# Set up the initial bell-shape concentration of `A`, with a narrow peak close to one end of the system,\n",
"# centered at 20% of the width of the system, i.e. at bin 6\n",
"bio.inject_bell_curve(chem_label=\"A\", center=0.2, sd=0.05, max_amplitude=200., bias=0., clip=(2,17))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "cd5b5823-d0d0-47be-a4d3-0f636def4d6b",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# Chemical `B`, by contrast, is uniformly distributed\n",
"bio.set_uniform_concentration(chem_label=\"B\", conc=80.)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "98c74ccd-f9b9-4c5b-8697-8f9d07e0f6bc",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"colorbar": {
"len": 0.346,
"title": {
"text": "Conc."
},
"x": 1.02,
"y": 0.8558333333333333
},
"colorscale": [
[
0,
"white"
],
[
1,
"red"
]
],
"hovertemplate": "Conc.: %{z}
Bin #: %{x}
CHEM: %{y}
Bin #: %{x}
CHEM: %{y}
Bin #: %{x}
CHEM: %{y}
System snapshot at time t=0"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
-0.7,
29.5
]
},
"xaxis2": {
"anchor": "y2",
"autorange": true,
"domain": [
0,
1
],
"range": [
-0.7,
29.5
]
},
"xaxis3": {
"anchor": "y3",
"autorange": true,
"domain": [
0,
1
],
"range": [
-0.7,
29.5
],
"title": {
"text": "Bin number"
}
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0.7116666666666667,
1
],
"range": [
-0.5,
0.5
],
"type": "category"
},
"yaxis2": {
"anchor": "x2",
"autorange": true,
"domain": [
0.35583333333333333,
0.6441666666666667
],
"range": [
-0.5,
0.5
],
"type": "category"
},
"yaxis3": {
"anchor": "x3",
"autorange": true,
"domain": [
0,
0.28833333333333333
],
"range": [
-0.5,
0.5
],
"type": "category"
}
}
},
"image/png": "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",
"text/html": [
"
| \n", " | Species | \n", "Diff rate | \n", "Bin 0 | \n", "Bin 1 | \n", "Bin 2 | \n", "Bin 3 | \n", "Bin 4 | \n", "Bin 5 | \n", "Bin 6 | \n", "Bin 7 | \n", "... | \n", "Bin 20 | \n", "Bin 21 | \n", "Bin 22 | \n", "Bin 23 | \n", "Bin 24 | \n", "Bin 25 | \n", "Bin 26 | \n", "Bin 27 | \n", "Bin 28 | \n", "Bin 29 | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "A | \n", "100.0 | \n", "0.0 | \n", "0.0 | \n", "6.451484 | \n", "30.996376 | \n", "92.555278 | \n", "171.763341 | \n", "198.106523 | \n", "142.0058 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
| 1 | \n", "B | \n", "800.0 | \n", "80.0 | \n", "80.0 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.0000 | \n", "... | \n", "80.0 | \n", "80.0 | \n", "80.0 | \n", "80.0 | \n", "80.0 | \n", "80.0 | \n", "80.0 | \n", "80.0 | \n", "80.0 | \n", "80.0 | \n", "
| 2 | \n", "C | \n", "500.0 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.0000 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
3 rows × 32 columns
\n", "| \n", " | Bin 0 | \n", "Bin 1 | \n", "Bin 2 | \n", "Bin 3 | \n", "Bin 4 | \n", "Bin 5 | \n", "Bin 6 | \n", "Bin 7 | \n", "Bin 8 | \n", "Bin 9 | \n", "Bin 10 | \n", "Bin 11 | \n", "Bin 12 | \n", "Bin 13 | \n", "Bin 14 | \n", "Bin 15 | \n", "Bin 16 | \n", "Bin 17 | \n", "Bin 18 | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "0.0 | \n", "0.0 | \n", "6.451484 | \n", "30.996376 | \n", "92.555278 | \n", "171.763341 | \n", "198.106523 | \n", "142.0058 | \n", "63.263381 | \n", "17.516112 | \n", "3.014131 | \n", "0.322348 | \n", "0.021425 | \n", "0.000885 | \n", "0.000023 | \n", "3.625508e-07 | \n", "3.595235e-09 | \n", "2.215770e-11 | \n", "0.0 | \n", "
| 1 | \n", "80.0 | \n", "80.0 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.0000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "80.000000 | \n", "8.000000e+01 | \n", "8.000000e+01 | \n", "8.000000e+01 | \n", "80.0 | \n", "
| 2 | \n", "0.0 | \n", "0.0 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.0000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000e+00 | \n", "0.000000e+00 | \n", "0.000000e+00 | \n", "0.0 | \n", "