aboutsummaryrefslogtreecommitdiff
path: root/notebooks/Outline.ipynb
blob: 207cf77516c5ca75b899f76194b7daf9f38225d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ebfce4c6",
   "metadata": {
    "heading_collapsed": true
   },
   "source": [
    "# Imports and Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "ff590465",
   "metadata": {
    "hidden": true
   },
   "outputs": [],
   "source": [
    "from sunlab.environment.base.cpu import *\n",
    "from sunlab.environment.base.extras import *\n",
    "from sunlab.globals import FILES\n",
    "from sunlab.sunflow import *"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb02bc7e",
   "metadata": {
    "heading_collapsed": true
   },
   "source": [
    "# Setup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a2bab12d",
   "metadata": {
    "hidden": true
   },
   "outputs": [],
   "source": [
    "XYM = np.load(DIR_ROOT + \"extra_data/OutlineXYM.npy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "a860112e",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4, 800, 800)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "XYM.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b2e37fd3",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False,  True])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "base_nt = np.zeros((XYM.shape[1],XYM.shape[2]))\n",
    "base_nt = XYM[2,:,:]\n",
    "base_nt = base_nt + 1\n",
    "base_nt[base_nt != 1] = 0\n",
    "base_nt = base_nt.astype(np.bool_)\n",
    "np.unique(base_nt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "58229165",
   "metadata": {
    "hidden": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False,  True])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "base_wt = np.zeros((XYM.shape[1],XYM.shape[2]))\n",
    "base_wt = XYM[3,:,:]\n",
    "base_wt = base_wt + 1\n",
    "base_wt[base_wt != 1] = 0\n",
    "base_wt = base_wt.astype(np.bool_)\n",
    "np.unique(base_wt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "b6e2ceaf",
   "metadata": {
    "hidden": true
   },
   "outputs": [],
   "source": [
    "exclude = (base_nt ^ base_wt) & base_nt\n",
    "overlap = base_nt & base_wt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "3230e8e7",
   "metadata": {
    "hidden": true
   },
   "outputs": [],
   "source": [
    "outline = np.ones((XYM.shape[1],XYM.shape[2],4))\n",
    "outline[...,0] -= exclude.astype(np.float32)\n",
    "outline[...,1] -= base_nt.astype(np.float32)\n",
    "outline[...,2] -= base_nt.astype(np.float32)\n",
    "outline[...,3] = base_nt.astype(np.float32)\n",
    "SemanticOutline = outline.copy()\n",
    "SemanticExtent = [np.min(XYM[0,...]),np.max(XYM[0,...]),np.min(XYM[1,...]),np.max(XYM[1,...])]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "001c1fbb",
   "metadata": {},
   "source": [
    "# Runtime Parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5ce1ed49",
   "metadata": {},
   "outputs": [],
   "source": [
    "SAVE_EXTRAS = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "a85a22d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "g_Base = lambda *args: DIR_ROOT + \"Figures/\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27e84e37",
   "metadata": {},
   "source": [
    "# Plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "34b9e2bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.apply_boundary()\n",
    "if SAVE_EXTRAS:\n",
    "    plt.save(g_Base() + \"Model/Theory/PhenotypeBoundaries\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "71519985",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGlCAYAAAAmgoiGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABsVElEQVR4nO3deZzN1R/H8dd3xsxYZ4w1oWTLmqRShCJSIpRCKaVFKUmJIkkkiVJp0UKpiDZb1iylUipliYRk3xnMPvee3x+f3xjKMpiZO3fm/Xw8PObeO3fGKXd533M+53M855xDRERERDJMSKAHICIiIpLTKGCJiIiIZDAFLBEREZEMpoAlIiIiksEUsEREREQymAKWiIiISAZTwBIRERHJYHnScye/38/WrVspVKgQnudl9phEREREsh3nHAcPHuTss88mJOTEc1TpClhbt26lbNmyGTI4ERERkWC2adMmypQpc8L7pCtgFSpU6PAvjIyMPPORiYiIiASZAwcOULZs2cO56ETSFbBSlwUjIyMVsERERCRXS0+5lIrcRURERDKYApaIiIhIBlPAEhEREclgClgiIiIiGUwBS0RERCSDKWCJiIiIZDAFLBEREZEMpoAlIiIiksEUsEREREQymAKWiIiISAZTwBIRERHJYApYIiIiIhlMAUtEREQkgylgiYiIiGQwBSwRERGRDKaAJSIiIpLBFLBEREREMpgCloiIiEgGU8ASERERyWAKWCIiIiIZTAFLREREJIMpYImIiIhkMAUsERERkQymgCUiIiKSwRSwRERERDJYnkAPQM6Ac4EeQfbjeYEegYiIiAJWtuYc7NsHhw7993u7dsGgQVk/puzsqqugdesT38fzoEyZY98uIiKSQTznTj4NcuDAAaKiooiJiSEyMjIrxpV7OWeBav16eOYZWLTIwlRoKIQcY0U3f37o3z93B4R582DWrJPfLyXFvl53HYSHp91+111Qq1ba9QIFIDr66J/Nzf9/RUQEOLU8pIAVSKn/6/1+2LYN4uPhiSdgyRLYuNFCVf788NRTcMMNcM45x/49efNm3ZizI58PkpNPfJ/kZHj77aNve+cdWLs27brfb7+raFFo2DDt9vvug+rVj/+7S5aEPCeYDFY4ExHJERSwspsj/xdv3WpfY2JgwAC7vHMnLFxob8QhIfbnqaegRQuoVk0BKrMkJ6fN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WCIiIpkjNXCBbTSLjbUVpd9/t9u2b7fynbJlrYbrllvsIOtSpSyIQYa8TytgZYU5c6yze0gIrFhhOyFEREQka6TWcgEsWWLnCI8bB998Y8f/xMRAoUIWsEqVgkGDLGRdfHFa2DrF0KWAlRVSUqyZWkwMXHYZzJplqVlEREQCI7VNxM6d8MsvdgLLiy/ae/aOHRaoqlWzyZFnn7XgBVbPldpE/AShSwErKzhnXd0vv9zqsp54wv6xQkMDPTIRERGBtMDl89lESGpvrtjYtCAGtgoVHm49LytUgMqV0yZNjghcClhZxTkYOhSefNIuf/UVNG+ueiwREZHsyuezr34/zJxpX596ysLW/v02aVK6NJQoAVddBR07WtiqWNHyUOHCClhZwu+HGjVg1SrbVfjHH3DWWYEelYiIiKSX328TJStW2JE/s2dbr8uEBCsFypcPqlThQIECRC1alK48pFOLz1RICCxcaFtF9+2D7t3tH0RERESCQ0iIlfjUqmWNxEeNsnYQf/0FzZrZCS4XXQTXXZf+X5l5o81FihWDiROt+eikSTB69NG7G0RERCR4pHaL//prWLrUCuS//daK5dNJASsjeJ6dU3jbbXa5Rw+47760nh0iIiISHJyzZcEOHaz+avduK3r/6itbpUonBayM4nk2c/XUU/aP89FHMHeuQpaIiEiwcM5mrapXt5Wp8HDbyLZkie0uPIVNbApYGSlPHujdG1q1gvh4OxV89+5Aj0pEREROxjl46y3rBrBlizUo/ekna8EUFnbKv04BK6Plzw8vv2wFcdu2WUGcZrFERESyL78fPvgA+vWzNg533mndAS644LRbLylgZYbzzrOQBdZJdvhwhSwREZHsxjnrAHDDDdC5sx23U6+e9bhMPTT6NClgZZabb4auXe0fb9AgWLZMIUskh3DOndYfEclGnINp06zeato0iIiAgQOt9VLx4mf86/NkwBDlWEJCYPBgO05n8WJo29YamOXLF+iRichx/DsE7dy5k3379v3nfrt376Zfv36n9LvLlClzwp85//zz/3Obp1MhRDKec3ZUziOPwLvv2vXKleGLL6Bq1Qw7jUWd3DPbL79AgwZW9H7NNTB+vHV8F5GAS335i42NZevWraxatYqXU5f3geXLl7Nnzx4iIiIIDw//z8/nzZuXIUOGEHqCM0hXrVrFG2+8cczv+f1+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K/sPP1gxezZuIqyAlZ1ERlp/LM+z85NefdXWl0Vyqbi4OO666y5atGjB9u3bqV69OsuWLaNPnz7kyZMn0MPLFUJDQylYsCCjRo3iwIEDjBgxAs/zmDdvHtWqVePWW29l9erVClqS8VJ31196KQwbZrd17Ah//AF162b7MhoFrOzE86BBA3jySbvcq5f18tALl+RCPp+Pp556irFjx+J5Ht26deOXX36hRo0aqgEKAM/zyJ8/Pw8//DArV65k4MCBxMXFMX78eC688EJuvfVW5s+fr6AlGeezz6BOHQtZUVEwcyZ88AEULBjokaWLarCyo+Rka5S2cSNER8M//0ChQoEelUiW8fv9NGnShAULFuB5Hq+//jr33XefglU2s2PHDt58803Gjh3LP//8A0Dbtm1p164dV111FcWLF9e/mZw652DePLjzTqtHbtHCmnFngz53KnLPCTZutL5YzlkTtXffBS2JSC6QmJjIs88+y3PPPQfAyJEjuf/++7UkmI3FxcUxfPhwZs6cyQ8//IBzjtDQUJ577jnuuOMOSpQooaAl6RMfD48+ajsDPQ8qVID586FMmUCPDFDAyhmcg08+sfVm5+Djj6F9+2y/5ixyJvx+PyNHjqRnz554nke7du0YP348IQE6S0xOTXJyMvv37+fuu+9m6tSpgG1SaN26NS1btuT666/XrJYcm3NWEnP77bBqlb3X3XWX1SLnyxfo0R2mgJVT+HwWsCZNsgff33/brJZIDuSc49Zbb2X8+PF4nkefPn0YNGiQwlUQ8vl8xMXF8eqrrzJnzhwWLlx4+Hu9e/fmkUceoVixYvq3FZOUZO0W+ve397rixe19r2HDbDepoICVk8TG2oMtPh6qV4eff860M5ZEAiUlJYW3336bhx9+mOTkZB5//HGeffZZwrPxFmxJn5SUFA4ePEjXrl2ZNGkSYGG6RYsWNG/enFtuuYVixYppVis3cs56WrVvb+9tngc33GBd2gsXDvTojkkBKydxDn79FS65xC4//bSlfH3ykxwiJSWFxo0b8+233+J5Hk2bNmXatGmEhYUFemiSgfx+P7Gxsbz11lvMnTuX2bNnAxa2br75Zlq3bk3Tpk0pWrSowlZuMWMGtGljPR/z5bPu7DfckK3f3xSwchq/H0aMgMcft5A1f741XNOLkAS5hIQE+vTpw8iRIwkNDeWdd96hU6dO6hCew/l8Pg4dOsSIESP4+uuv+f7773HO4XkeAwcO5P777yc6OlpLiDmVc9Yo9I47YO1aaNwYxo2Ds88O9MhOSgErJ0pOhssus9mssDDYscNaOIgEqf3799OwYUOWL1+O53l06tTpcM8ryT2OVxjfpk0bWrRoQevWrSlSpIgeFzlFYqKtwgwbZkGrbFk7Iq58+UCPLF10VE5OFBYGX31ls1bJybaNVSRIOee44447WL58OUWLFmXWrFmMGTNGb6K5UFhYGMWLF+eLL75g3759DBw4kMaNG/Pll19y9913U6xYMXr37s3evXvx62SL4OWcdWC//HIraAe4+Wa7LUjC1alSwAomJUrAlCl2eeZM+OuvwI5H5DSNGTOGqVOn4nkeffv2pWnTploOyuVCQkKIioqiX79+zJo1i927d9OhQwc8z2PYsGEULVqUG264gVdeeYW9e/eqY3wwSUmxdgsXXABLl9rqy/TpMH580HRlPx1aIgw2O3bAlVfC6tU2rdqoUaBHJHJK1qxZw5VXXsm2bdu49tprmTZtmsKVHJPf7+fgwYO8/fbbzJs3j5kzZx4OVnfffTdDhw4lKipKNXvZ2aZN0KEDfPedXb/mGvjww2zRlf10aIkwJytZ0goDRYKQc46FCxeybds2qlSpwpgxYxSu5LhSZ7Uee+wxpk6dyp49e7j33nsBeOeddyhatCjXXXcdzz//PPv27dMSYnaTkAD161u4ioiA99+3masgDVenSq9sIpJlDh06dPgN8q677qJkyZIBHpEEi9DQUKKjo3nzzTfZt28fo0aNolWrVsyePZsnnniCIkWK0KFDB/bs2UNKSkqgh5u7OWdLgRddZDNYYH2uOnWCXDTbqIAVbHbssE8BIkEotYi9ZMmSPPjggwEejQQjz/MoXLgwDzzwAF988QV79+6lV69eAEycOJFixYrRtGlTnnnmGRITEwM82lwoORmefx7q1LEjb0qWhNmzrVF2LtvEooAVbPbssfqr0qWDomeIyJG2bNkCQEREBHl1IoGcoZCQEKKjoxk6dCh79+5lzJgxtGvXjgULFjBgwADq1KlDr1692LlzJ8nJyYEebs7mHKxbZ8fbPPmkXW/Rwt6vmjbNdeEKFLCCV7NmUKlSoEchkm7OOZo1axboYUgO5Hke0dHRdO7cmQkTJjBz5ky6dOnCH3/8wYsvvshZZ53FlVdeybp160hISAj0cHMen89WVqpWhcWLoUABO0twypRse+RNVlDACibOwYYNdlmFwSIi/xESEsI111zD22+/ze7duxk/fjz58+fn+++/p1KlStSsWZMlS5YQGxsb6KHmDCkpcN11cNddtjzYoAH8+SfcdFOuf5/K3f/1wcbng+uvt8vaLSNBqHnz5oEeguQSnudRpEgR2rdvz+bNm5k/fz5ly5Zl7dq11K1bl1KlStG7d29WrVqlnlqnKykJnnrKaqxCQmDUKJg3z0pYRH2wgsrOnXDWWZAnj47KkaB08OBBIiMjOeecc9iwYYM6t0uWio2NZcOGDbzyyit89tln7NmzB8/z6NGjB23atOGKK67QYzI9nLPaqltvhd9+s+vt28PHH+f4Wiv1wcqpbrnFHsghIbl6XVuCX3JyMklJSYEehuQyBQoUoHr16rz11lusWrWKu+++m0qVKvHSSy/RqFEjunTpwqeffsrBgwc1q3U8KSnw2mu2K3DpUihSBCZPho8+yvHh6lQpYAWLFStg+XK7PGNGYMcicpryAR2B7du388orrwR6OJKLFS9enLfffpulS5fyyCOPcMkllzBmzBhuvvlmoqKiGDJkCIcOHVLz0lTOwebNtiPw4Yft+pVXWiuGVq1yfb3Vsej/SLD44w9r0VC1KtSurU8KEpTyFCxI21GjcM6xetw42LUr0EOSXC5//vyMGDGCRYsWsXXrVq677jqcc/Tr14/IyEjuvPNOYmJi8Pl8gR5q4Ph88NlnULGiHdGWNy+MGQNz50Lx4oEeXbalgBUMDh2C1E/7fftqeVCCl+dR7aqrKFmyJF8tX86apUvtk7BIgIWFhVGqVCmmTJnCjh076NGjBwDjxo0jOjqa6667jq1bt+a+flrOwVdfwc03Q2IiXHoprFwJnTvnqq7sp0MBK7tzDtautbOcChWC884L9IhETptzjnPOOYe6deuyHdh14ECghyRylJCQEEqUKMHw4cPZtm0bo0aNIjw8nNmzZ1OmTBkuueQS/vjjj9zRTyslxbqy33CDvRe1bg2LFul9KJ0UsIJBw4b2tWZNqFcvsGMROQ1+v5/Y2Fj69OlDoUKFmDp1KgDzV69G81eSHXmeR8mSJenatSubNm1i8uTJFCtWjN9//50aNWpQrlw5Fi1aRFxcXM4riHcO/v7baqz69rXr115ry4JhYYEeXdBQwMrupk2DuDi7PG5cYMcichoOHDhAhw4diIqKYtiwYTjnaNeuHVu3bqVPnz7aFi/Zmud5FC9enFatWvHXX3+xePFiKlWqxI4dO2jYsCGFCxfmk08+yTlBy+eDDz6wk0K++w4iI639wtSpKk85RQpY2d2sWfaAv/RSOPfcQI9GJF2cc8TFxfHdd99RuXJlJk6ciN/v56mnnmLr1q2MHz+eUqVKkSdPnkAPVSTdoqKiqFu3Lr/99htr1qzhkksuITk5mY4dOxIZGckzzzxDXFxc8O483LkTWraEO++0953LLrN6qw4dVG91GhSwsrPNm2HOHLs8erQe4BI0Zs6cSZEiRWjQoAE7duygcuXKfP/99wwYMIBSpUoRoi3dEsTy5ctHpUqVWLRoEZs2baJFixb4fD4GDhxIZGQknTt3Dr6dhz/8AOXLWxugPHlsY9U336gr+xnQq1x2tnEjrFljl7WMIkHAOceyZcvo0aMHiYmJ1KlThz///JOlS5dy2WWXaTlQcpSwsDDKlCnD5MmT2bx5M48++ih+v58PP/yQokWLBsfOQ+fsfaZbN4iNtVrf336DBx9UvdUZUsASkQyzdetWLrroItasWUPp0qWZNGkSlStXJn/+/IEemkimCQkJoXTp0rzwwgts2rSJ119//fDOw3POOYc6derwxx9/kJiYGOihHs3ns/MDq1WzruxFi8L48XZdH4bOmAJWdlanDrRoYZeHDLEng0g25Zzj6quvxufzER0dzYoVKyhXrlyghyWSZTzPo3Tp0tx33338/fffTJ48mRIlSrB8+XIuuOACypYty7fffkt8fHxgC+Kdgy1boHlz6N7d3lsaNbKG1tWqBW5cOYwCVnYWEWEBy/NgwgSIiQn0iESOy+fzEff/Ha/Tpk0jKioqwCMSCYzUFg8tW7bkjz/+4IcffqBChQrs2rWLRo0aER0dzfjx40lISMj6oOX3w5dfQoUK1ok9f36r8Z07F0qU0MxVBlLAyu66drUnAEDbtoEdi8gJxMfHH641qV69uuqtJNfzPI/ChQtz2WWXsXTpUv7880/q1KlDYmIit912G5GRkfTv3z/rarT27YP27eHGG60re+3a8PvvcPfdVtguGUoBKxh89pl9/eMPWL06sGMROY4DBw6QlJQU6GGIZEv58+c/vJt2w4YN3HDDDSQnJzN48GDq1avH2rVrM3c2KyXF2v1MmmRhavBgWLzYZrL0YShTKGBld54Hdeva9tldu2wLbU5oZic5ztlnn03RokUB2Lt3b4BHI5I9hYWFce655/LZZ5/xySefUKRIEX7++WeqVKnCW2+9lfGtHZyDf/6Bxo1h3Tq7bd48eOIJCA/P2L9LjqKAFQyiouzTBkCvXrB9e2DHI3IS9evXz95b00UCLCQkhHbt2rFy5Urq16+Pz+fjgQceoEWLFmzbti3jZrP8fuvK/u231pV97Fg7ck2zVplOASsYeJ51161e3XZ7DBumWSzJdjzP48MPPwRg+/btPPnkk8Hb0VokC6QWwy9YsIDXX3+d/PnzM2vWLCpUqMDkyZNJTEzMmKCVkmJfr70Wbr8d1Og3S+j/crAoUACuvtrC1uuvW4GiSDZTp04dRowYgXOOl156iYULF+aM89lEMlGePHno2rUrv/32GzVr1iQ+Pp62bdsSHR3NsGHDzmzZ0PPggguOvi5ZQgErmAwbZl+TkmzXh2YHJJsJCQmha9euNGvWDJ/PxzXXXHN4VktEjs/zPCpWrMiSJUtYs2YNTZo0IT4+nj59+tCkSRM2btx4eh9WQkLgk08yfsByUgpYwSRPHutX4pz1xZoyRUuFku3ky5ePMWPGEBERQXJyMm+99VaghyQSNCIiIqhUqRIzZ87k3XffJTIykoULF1K5cmU+/vjj01t215JgQOj/ejDxPFs/79DBarFuvhleekkd3iVb8fv9LF++XPVXImcgNDSUO++8kxUrVlC7dm0SExPp1KkTN910E7t379bSexBQwAo24eHw6qu25TY5GR57DAYN0kyWZAsHDx6kS5cutGjRguTkZKpUqcLo0aMDPSyRoOR5HmXKlOHHH39k2LBh5M2bly+++ILy5cszevRo1q1bd2pBKy5OpSVZSAErGBUtCrNnw7PPWrAaPBh69NATRwLK5/NRt25dxo4dC8Djjz/Or7/+SjWdbSZyRsLCwnj00Uf58ccfadSoEeHh4XTt2pXq1avz1ltvpX+2ePp0mD8/cwcrhylgBavQUOjZ04rdU1JsVmvSJIUsCYgDBw7QsmVLVv//pIEZM2bw/PPPky9fvgCPTCRn8DyPmjVrMn/+fFauXEm9evVITEzkgQce4Prrr2f79u3H32147rnQubOVk6ikJMsoYAWz/PnhrbdsC65zcOutMG6clgslSyUmJtK/f39mzJhBwYIFGTVqFI0bN9ZZhCKZILV31sKFC3n11VfJnz8/M2bMoHz58tSqVYs1a9b8d9kwPNzOHZQspYAV7EJC4KefoFs3+2Ry3322ZJjaWE4kk3Xq1IlXXnkFz/N48MEHuf/++wkNDQ30sERytDx58tCtWzdWrVrFZ599RmRkJCtXruSCCy44ce+ssWOtflcynQJWThAeboXu115rDUj797eaLM1kSSbbvHkzS5YswTnHe++9x+DBgzVzJZJFPM+jbNmytGnThpUrV3L11VeTmJhInz59uPrqq9m8eXPabNZZZ0FYGIwfb8XukukUsHKKwoVh2jQYMcKC1ejR8NBDWm+XTJOYmMijjz7Khg0bKFmyJM2bN1e4EgkAz/MoWrQoM2fO5O233yYyMpIFCxYc3TurXTurxQL44AN9AM8CClg5SUgIdO0K3btbsfuoUfD++yp8l0xx6NAhJk6cSFhYGK+//jolS5YM9JBEcrXQ0FC6dOnC8uXLqV27NvHx8XTq1In27duze/dufKnvBQUKBHaguYQCVk6TLx+8/DLUrWvX774bbroJdu3SJxbJFNWqVaNNmzaavRLJBlKXDRcvXsyQIUPImzcvkyZNomKFCuz/+2+706efBnaQuYQCVk7kebBgAbzwgu00/OILqFAB5s0L9Mgkh3DO8cEHHwB2/qDClUj2Eh4eTu/evfnpp58oX748eQ4exEv9kP3hhzr0OQsoYOVUYWHW5f2nn6BiRTh40JYP//5bM1mSIZ599lkAypUrF9iBiMgxeZ5H9erVWb58OT906EB06je0yzdLKGDlZJ4H1arB119b9/e1a6FmTavNUl2WZJC333470EMQkePwPI/8+fNT6bLL8AB69YKCBQM9rFxBASs3KFsWVqyA+vUhNtaK4K+/Hnbs0GyWnLGbbrop0EMQkROJjYWZM+3y1VdrBiuLKGDlBp5nPVAWLICRI+3Ty4wZcP75cOhQoEcnQer1118HYNeuXad24KyIZK2tW+01P18+KFQo0KPJNRSwcpM8eaw31tKl9kSLibHdhuvWaSZLTonneTRt2hSA1atXM2HChACPSERO6vrr4bLLAj2KXEMBK7fxPChf3s4sLF4cVq2CWrXgxRfVlFROSVRUFN26dcPn8zFp0iT279+vmSyR7MY52zUItjSo3YNZRgErN/I8aNvW6rKaNbNjE3r3hiZNYPfuQI9OgkSePHlo27YtERERfPHFF1SuXJkffvhBIUskO/H74dln7XW/VKlAjyZXUcDKrTwPSpSAr76yXYWRkbBwIfTtC/HxgR6dBImrrrqKb7/9ltKlS7Nr1y6uvPJKHnvsMVJ02LhI9pD6XAwJsd6IkmUUsHK70FDrj/Xii3Z59GioUcNaOoichOd5XHzxxaxatYquXbvi9/sZMWIEH330kWayRLKDe+9Nuxyit/yspP/bYrNZXbrAlClWl7V+Pdx/P+zdq+J3OSnP8yhUqBCvv/469erVA6Bbt26sX78+wCMTkcOv4y++qPqrLKaAJcbz4Npr4csvbYfh3LlQubK1dhBJB8/zmD59OkWLFiU2NpYHHniAQ2oDIhI4u3alrUa0bauAlcUUsCSN58Hll8PixdacdM8e6NwZNm/WTJakS8GCBZk8eTL58uVj9uzZvPjii/h1aoBIYHz/PaxeHehR5FoKWHI0z4MLLoAffoCoKNi40Wqy3ntPIUtOyvM86tWrx0MPPYTneTzzzDMsXLgw0MMSEclyClhybGefbW0cLrvMGpLedx8sW6aQJSfleR7PPfcc5557LgCdO3dm586dAR6VSC5Urx5UqWKXP/9cr99ZzHPp2Opz4MABoqKiiImJITIyMivGJdlFQgKUKWPLhfnywRNPwJNP6iwrOanNmzdTrVo1Dh48yO23384999yTrp+rVq0ahQsXBiyseaobETl9d94J779vOwgTEuxEDzltp5KHFLDkxJyDffugWzf45BO7/vnn0Lq1CiblhBITE7n99tuZOHEiYGGpTJkyxw1Mu3btIj4+npIlS1KkSBEAunfvzgUXXABAaGgol1xyyVE/r/AlchKJifbhGKBHDxgxIqDDCXYKWJLx/H646CL4/XebvbrnHnuipj5xRY7g9/sZO3YsXbp0ITQ0lC5dunDjjTfSuHFjQo7Ti+fPP/9k48aNADz//POsW7cOgJSUFLZt24bneVRJXe4AmjdvTrt27Y75uwoUKEDNmjUVwEScg4EDYcAAaNfOPijreXHaFLAkc8THQ//+MHIkJCfD0KHw6KNaLpSjOOfo378/gwcPxjnHNddcw4wZM04p7By58zA5OZn58+cfvj5t2jSmTJlyzJ+Li4tjz549hIWF0aNHD5555hny6UOA5HZ//WVtd1Jb8Py/X52cOgUsyTzOwQMPwFtv2fWmTWH8ePj/ko7kbqmd3AcMGEBsbCy9evVi0KBBhIeHZ9jf4Zw7buuHuLg4evbsyZgxY/D5fJQvX55p06YdnvnSjJbkSrGxcMstMH069OxpR+bog/FpOZU8pF2Ecmo8D157zZ6g+fPD7NnQr58VT0quN3fuXHr16kVcXBytWrWiX79+GRquwEJSaGjoMf8UKlSI0aNHM3XqVKKioli/fj2XXHIJtWvXZs6cOTjn/vNHJMcrUADatLHX7xEjYP/+QI8oV9AMlpwe52xnyt13g89nW4G/+grOOy/QI5MA2bFjBzVr1mTXrl1UrlyZVatWHbfeKrM559i9ezfff/893bt3Z+PGjYSGhlKjRo2j7hcWFsarr75K1apVD7+2aZZLciS/HypVsqPQLrvMmpDqsX7KtEQoWcM5mDwZbr8dDh6EK6+064UK6YmbizjniI+Pp0uXLkyYMIECBQqwbt06SpYsGeihAbZsOGfOnKNu279/P71792b//v0kJiZSunRpSpQowVVXXUXHjh2pXbv24aClwCU5xkcfwW23QcmSsG2bXqdPgwKWZB3n4McfLVwlJtoROx9/DFdcEeiRSRZJSUmhUqVKbNiwgbCwMD799FNatmyZrYNJah3XihUrWL9+PbNnz2bSpEns3bsXgAsuuIDQ0FCeeuopLr74YkqXLg0obEmQi4uz5cLQUBg1yhpIyylRwJKs5RwsXQrXX2+fikqWtHYOJUroE1IO55yjW7duvPnmmwDMmTOHxo0bB10Qcc6RnJzM9OnTcc7Rt29fNm3aRGxsLFFRUVSqVImiRYvy/PPPU6VKFSIiIgAFLgkyPp9tUho9Glq1ggkT1GrnFClgSWBs2wYVKlg7h6JFrZ1Dx44KWTmUc4558+bRsmVL4uPj6devHwMHDswRocPn87F9+3YWL17M+vXrGTp0KPv378fn81GxYkUKFy5Mhw4daNKkCcWLF6dUqVKAApcEgZ9+shWG5GT7IPz/Rr6SPgpYEhjOwYYNcNNNNqMF9gSuUUMhKwfau3cvNWrUYNu2bbRo0YKJEyeSP3/+QA8rwznn8Pl8LFq0iN27d/PRRx/x7bffkpCQQGxsLNHR0VSqVIkXX3yRyMhIqlSpQnh4uMKWZE/OwV13wdixMHw4PPKIXp9PgQKWBFZioi0TxsTY9PPAgXZEg87AyhGcc2zZsoVWrVqxdOlSihcvzuLFiylfvnygh5Yl/H4/fr+frVu3snDhQh599FFSUlI4cOAAPp+PKlWqUL9+fR5++GHCwsI4//zzD/+sQpdkC716Wbhyzlrs/H/JW05OAUsCyznYvdsKKL/80q5/+aWt+esNJqj5fD7GjBnD448/zr59+8iXLx/vvvsuHTp0CPTQAiJ1dgtg3rx5zJkzh3fffZeUlBQOHjxIaGgodevWBWDEiBGcf/75REVFAQpbEkDJyRAVZeUcnTvDmDGBHlHQUMCS7MHvh7p14eefbddKt27w/PMqqgxCiYmJrF27lp49ezJ79mw8z6Nhw4Z8+OGHlC5dWmHh/1IDV3x8PFOnTiUhIYHHH3+cQ4cOHW4HUa5cOS688EIeeOABzj///MO9wvT/ULKMczBokB19VrEiLFkChQsHelRBQQFLso+4ODuv8O23bQfLiBHw8MMQoAaUkn6pLw3r16+nZcuWrFq1itDQUAoWLEifPn3o1asXoTpu44Scc6SkpPDnn3+ydOlSfvrpJ8aNG8eBAwdwznHRRRdRoEABunfvTvXq1SldujSFChVS2JLMt2uXtdVJTIQPP4Rbbw30iIKCApZkL85ZIeUrr9jla6+1Xln6xJQtOefYtWsXy5cv59lnn+XXX3/l4MGD5MuXj48++ojrr7+ePHnyKASchtR2EF988QWJiYmMGDGC9evXk5CQQHJyMueccw5VqlRhxIgRhIaGUrlyZTzP0/9ryXjOwRtv2MqCAla6KWBJ9pOSYucXDhhg6/9du1obhww+p05Oj3OOmJgY/vzzT3r37s2KFSvYs2cPERERlChRgmeffZZmzZpx1lln6c0+A/l8Pvx+PytXrmTevHkMGDAAgEOHDuGc49JLL6V169a0bduWypUrH/45/RvIGXEO5syxo842bVLAOgUKWJI9OWdP5DvusMs1a8LUqXDuuYEeWa6U+tTfvn07v/zyC127dmXLli2EhYVRsGBBhg4dSpMmTTjnnHPIox2gmS51OdE5x6RJk5gyZQrTp08nLi4OgCuuuILQ0FCefvppqlevTrFixRS05NQ5B1u2WO1VYiKUKwdz51oPQzkpBSzJvvx++PRTO78wMRHq1YNZs+z4Br1ZZJrUp7lzjnXr1uGco3fv3hw6dIglS5YQExNDREQEZcuW5YsvvuD888/XMmCA+f1+EhISGD9+PM45+vfvz+7du0lOTqZ48eLUqlWL559/nsjISMqVK6d/Lzk552D5cjvabN8+a8+wY4ftKJR0UcCS7M056yZcv74Vvpcvb4eQ1q2rkJXB4uPj2bJlCxs2bGDo0KEkJiayaNEiAPLmzUtISAi9e/emVKlSXHPNNZQqVUqzVdlUcnIy//zzD3PmzOGJJ54gJSWFuLg4nHPUrl2bhg0b8uCDD3LeeecREhKisCX/tXQptG8Pa9bApZfCxIlwzjl63T0FCliS/aWGrJYtbTdLVBT89RcUK6Yn+0k45zhw4ACRkZEkJCQQFhZ23N18ixYtomHDhoSGhhIeHk7x4sXp168fISEh3HrrrYSEhBAWFqY34yCSWigPMH36dGbPns37779PQkICzjkuu+wyWrRoQa9evdRRXoxzsH8/VK9uR5pFR9vKwSWXBHpkQUcBS4LHjh22VTg52bq/jxoFbdsqZB2Hc45Zs2Zx7733UqFCBbZv305kZCTR0dHHvP8///zD6tWrefjhh3nhhRfwPI+wsLAsHrVkJuccSUlJfPLJJ8yYMYNPPvkE5xw1a9bk0ksv5YknnuDcc8/VzGRutnkzXHaZ1V6FhcHatTZzJadMAUuCh3M2c3XzzbBsmV1fuRKqVlXI+hfnHBs3bqRChQr4/X4qVKhAz549j3vf/v37s2fPHgD69+/PgAEDNJuRw/n9fmbOnMns2bMZPXr04VmtevXqMXbsWMqUKUPevHn1OMhN/vkHbrjBzoUtXx6mTIFq1fT6epoUsCT4/Pv8whdfhHvv1fmF/+f3+xk3bhwPP/wwMTExhIWFsXfvXgoWLHjcn4mJieHee+9l4sSJlCxZku+//z7XnBeY26XOao0ZM4YePXqQkpKCz+ejatWqXHTRRYwaNYrIyEgFrZwuLg4aNIBff7WC9kmTrCxDTtup5CG105bsITwc/vzTmpAmJFjzu6++shmtXM45x6JFi+jcuTMHDhygUaNGrF27lgIFCpzw56Kionj55ZepWrUqO3bsoHXr1qSkpGTRqCWQPM8jIiKC++67j5iYGGbPns3jjz/OmjVr+Oijj6hZsyatWrVi1apVh9tASA7j88HQoRauQkPhu+/g+usDPapcRTNYkr34fNCokb0YeB489hgMHAh58wZ6ZAHhnGPfvn2UL1+emJgYKleuzMqVK0+pnmbOnDlce+21+Hw+unfvzsiRIzNxxJJdOedYtmwZM2bMYMCAAYdntSpXrszYsWOpUqUKhQsX1qxWTuAczJ8PTZrY6+jQofZaqn/bM6YZLAleoaG2u+X22+36sGHw+uvWPysX+vvvv6lRowYxMTGEhoayYMGCUy5Wvvrqq+nevTsAs2fPJjY2NjOGKtmc53nUqlWL3r17s3//fhYuXEjx4sVZt24d9erVo2rVqkyePJlt27aRjs/dkt21bWtfa9SAnj0VrgJAAUuynwIFYMwY6NXLXhQefRTatLH6rFz0wr9u3Tpuuukmtm3bRpUqVVi2bBlnnXXWKf8ez/Po06cPoaGhrF69moEDB+Lz+TJhxBIMPM8jb9681K9fn02bNrFixQpq1arF7t27adOmDRUqVODNN99k8+bNClrByDl7/Tx0yK7PnWsfXCXLKWBJ9hQSAoMGQf/+9uIwZYodrXPjjdYkLy4uR4etuLg4rrvuOpYuXUpERASvvPIK1apVO+3lm+LFi/Pyyy/jeR4vvPACs2bN0punEBERQZUqVViyZAmbNm3immuuISUlhW7dunHOOefw2GOPER8fr8dKMFm3Dp580sot2rWDokUDPaJcSzVYkr05Z+0bpk61WqyUFLutcmXr/P7++zlu6jslJYW+ffse7lu1bNkyqlevfsa1MT6fjyuuuILFixcTERFBXFwcISH6jCVpfD4fsbGxPPTQQ4wbNw7nHNWrV6dOnTq88sorROlIlezNOXjnHduBXb06fP217c6WDKMaLMk5PA9q1YK+fW2J8JtvoE8fm8X6+GN4991AjzBDOedo2rTp4XD12muvZUi4AggNDWX69Ol4nkdSUhKjRo3KgBFLThIaGkpkZCRjxoxh7ty5PPbYY/zxxx988MEHVK9e/fDMp2a0sqnERAtXnmftGBSuAkoBS4KD51l/rCuusKXDdu1sCnzqVEhKCvToMsxrr73GwoUL8TyPV155hfvuuy9Dd3UVLlyYW265Becczz77LH/88UeG/W7JOUJCQmjcuDEvvPACS5cupUqVKmzdupXmzZvTqlUr3n//fdXxZTfOWTE7QMGCMGBAQIcjClgSjEJDbUbL86w265dfAj2iM+b3+/niiy949tlncc5xyy238MADDxz3jMHTFRISwquvvkrt2rXZtWsXX3/9Nf5cukNTTi515+HS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NW3alGnTpjF16tRMDVipO+U6dOjA5s2bcc4RHR3Ne++9R8OGDYmOjsbzvKNmroYMGYIvHZ32P/74Y1asWAHA/v370z2mO+64A4DevXtnWDsNBadTExISwuTJk2nVqhV79+4lJSUl6J5DWcLngyeesHB14432oVCyLc1giQBcdZX1k9myBc4++5R//I4LL+SD338nOjqaPXv2BN2b65YtWyhTpgzFixdn3rx51KhRI0N/v9/vZ/LkyUyfPv1w7VHFihV5//33qV69uvqECX/99ReVK1fG8zxmzpxJs2bNAj2k7CU5GZ57zlozhIbC++/DrbcGelS5jmawRLKQW7KEhevXAzBjxowAj+b05M+fn+rVq7Ny5UrmzJlDtWrVzrgWy+/3Exsby9ixY5k7dy5Tp07FOcfFF19M/fr1ee6558ifP38G/RdIsCtfvjwPP/wwI0eOZOPGjYeXW3O92Fh44QWYOROWLLHbWraEjh0DOy45KbVpEDlS6vT7Kdj5228cOniQWrVqUb169aB8U4iOjqZ3794APProo+zevfu0f5fP5yMmJoYuXboQFRXFww8/zJQpU2jatCkvvPAC3333HS+//LLClRwlNDSU8v/f0Xvvvfdy4MCBAI8owLZtg6eegmrV4NlnLVzdcgt8+qkVuQfh60xuo4AlAtCokb1gffLJqf2c389HW7awB3j22WcpWLBgpgwvK7Rr144qVargnKNv377p3lmXuhNvxowZDBgwgJYtWxIdHc3777+Pc45u3bqxY8cOvvrqK3r16pWr2hDIqbn77rspXbp0huzqDErOwcqV8PTTUKECDBoEO3ZAp052KP3HH1vtVTZuXixptEQoAtCvH5xO36pNm1g2cCB5gcIZPaYsljdvXlq1asXq1asZM2YMrVq1omXLlv+5n8/nIyEhgT179jBmzBhiY2N58cUXAQtbtWrVolOnTlxyySW0a9eOEiVKBOWsnmS9fPnyUaBAgUAPI+s5B998A9OmwfDhdr1kSTvIuW9fqFRJM1ZBSAFL5AzsBL52jnqXXcYVOaAod/DgwXzzzTcsXryYnj17UqZMGSpXrszWrVv5+OOPAfj555+ZPn06YIGqQIEC3HbbbXiex6BBgyhRokSOaxAqkil8PlvymznTitadgypV4LLLLGgVKRLoEcoZUMASOZLfD3Fxdr7XyTjH0qeeYjMw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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(SemanticOutline, extent=SemanticExtent, origin='lower')\n",
    "if SAVE_EXTRAS:\n",
    "    plt.save(g_Base() + \"Model/Theory/PhenotypeBoundariesNonPhysicalBoundaryRed\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae236fe1",
   "metadata": {},
   "source": [
    "# END"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f3b5ed0b",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tfnb",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}