{
"cells": [
{
"cell_type": "markdown",
"id": "bef9ccd1-1c69-4013-a3e7-03ee90819ea6",
"metadata": {},
"source": [
"# Drawing annotations using stackivew\n",
"In this notebook we use `stackview.annotate` to create a label image with manual annotations."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "3b1a7dbd-0bc5-438f-abe2-4149aab93339",
"metadata": {},
"outputs": [],
"source": [
"import stackview\n",
"\n",
"import numpy as np\n",
"from skimage.data import cells3d"
]
},
{
"cell_type": "markdown",
"id": "edef71e8-999e-457f-b6b4-3b8b265a37c4",
"metadata": {},
"source": [
"The cells3d dataset from scikit-image serves as example image. One of the two channels shown nuclei."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "cedf8811-7ef3-478f-908b-b32738b96dc7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"\n",
" \n",
" | \n",
"\n",
"\n",
"\n",
"| shape | (60, 256, 256) | \n",
"| dtype | uint16 | \n",
"| size | 7.5 MB | \n",
"| min | 0 | | max | 65535 | \n",
" \n",
" \n",
" | \n",
"
\n",
"
"
],
"text/plain": [
"StackViewNDArray([[[5311, 4458, 5880, ..., 4220, 6497, 4932],\n",
" [4078, 4552, 3557, ..., 4552, 4884, 5169],\n",
" [3414, 5074, 4363, ..., 4078, 6117, 5406],\n",
" ...,\n",
" [3983, 3983, 2750, ..., 4410, 4600, 5880],\n",
" [3604, 4173, 4600, ..., 5548, 5690, 4268],\n",
" [4078, 4268, 4220, ..., 5359, 6686, 7492]],\n",
"\n",
" [[4220, 4932, 5074, ..., 6449, 6117, 4932],\n",
" [3082, 4979, 4505, ..., 4505, 6971, 5880],\n",
" [4695, 4315, 4695, ..., 4742, 5785, 5074],\n",
" ...,\n",
" [3414, 3841, 3462, ..., 5169, 4742, 5027],\n",
" [4173, 3319, 2798, ..., 5406, 4600, 4837],\n",
" [3225, 3557, 3651, ..., 5453, 5406, 4837]],\n",
"\n",
" [[4552, 4505, 4742, ..., 4458, 4979, 4647],\n",
" [3367, 4268, 4647, ..., 6402, 6022, 5738],\n",
" [3509, 3272, 4647, ..., 5264, 4220, 6259],\n",
" ...,\n",
" [3841, 3936, 3888, ..., 4884, 5169, 4789],\n",
" [3604, 3225, 2798, ..., 4552, 6117, 5690],\n",
" [4126, 4458, 4837, ..., 5928, 6734, 5027]],\n",
"\n",
" ...,\n",
"\n",
" [[5121, 5833, 5738, ..., 5406, 3983, 4220],\n",
" [5311, 5453, 5453, ..., 5169, 5027, 4884],\n",
" [6544, 5121, 5264, ..., 4363, 5406, 4695],\n",
" ...,\n",
" [4884, 2324, 3130, ..., 4552, 4979, 6070],\n",
" [3225, 2513, 2513, ..., 4742, 3035, 2418],\n",
" [3272, 2798, 3888, ..., 3604, 4268, 3746]],\n",
"\n",
" [[5359, 5928, 5738, ..., 4268, 4505, 4031],\n",
" [7445, 6829, 4268, ..., 4884, 5596, 3082],\n",
" [6497, 6544, 4932, ..., 3604, 5359, 4410],\n",
" ...,\n",
" [5833, 2703, 3367, ..., 3177, 4220, 4220],\n",
" [4031, 3509, 5216, ..., 4268, 3604, 4932],\n",
" [3557, 2987, 3936, ..., 3604, 3462, 5264]],\n",
"\n",
" [[6402, 6781, 4789, ..., 5928, 6022, 3651],\n",
" [4363, 4837, 6307, ..., 4315, 3651, 4126],\n",
" [4979, 4695, 4742, ..., 4789, 4837, 4552],\n",
" ...,\n",
" [4078, 2513, 3035, ..., 1849, 3888, 4363],\n",
" [3936, 3888, 4315, ..., 5216, 4031, 5643],\n",
" [4173, 4505, 3794, ..., 4979, 6781, 4031]]],\n",
" dtype=uint16)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"image = cells3d()[:,1]\n",
"\n",
"stackview.insight(image)"
]
},
{
"cell_type": "markdown",
"id": "d827461d-0e08-4975-b66f-b18256e02085",
"metadata": {},
"source": [
"Before annotating the nuclei, we create an empty label image of type unsigned 32-bit integer. This type is necessary so that stackview views the image correctly as labels. Compatible types are: `int32`,`uint32`,`int64`,`uint64`."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "afb31fa6-55d5-4a1d-aee3-f5044f074e42",
"metadata": {},
"outputs": [],
"source": [
"labels = np.zeros(image.shape).astype(np.uint32)"
]
},
{
"cell_type": "markdown",
"id": "df242616-4f39-4bd4-b44b-53fcc85fe81f",
"metadata": {},
"source": [
"The function `stackview.annotate` creates a user interface where we can draw labels on top of the original image. Click and drag for drawing. Hold the `ALT` key for erasing."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "dff17db0-f777-46a0-a0c6-22eb933a8048",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9eedc7dd19034648b409e436fb9df936",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox(children=(HBox(children=(HBox(children=(VBox(children=(ImageWidget(height=256, width=256),)),)), VBox(chiā¦"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stackview.annotate(image, labels)"
]
},
{
"cell_type": "markdown",
"id": "6e6450c7-598c-4570-b752-6022cd264cfb",
"metadata": {},
"source": [
"You can also annotate in a different plane than the Z-plane by providing an axis (0=z,1=y,2=x)."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6a879f47-d14b-4903-8d32-2d1131161837",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"stackview.annotate(image, labels, axis=1)"
]
},
{
"cell_type": "markdown",
"id": "27282508-e7e8-479b-afb5-5c42cf09c742",
"metadata": {},
"source": [
"Once annotations are drawn, we can view them as usual using the `insight()` function."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f78fbc93-9d4b-4104-bd2c-3f5cfea406ec",
"metadata": {},
"outputs": [],
"source": [
"stackview.insight(labels)"
]
},
{
"cell_type": "markdown",
"id": "723802ea-901b-4b36-8533-886001f4760d",
"metadata": {},
"source": [
"Just for fun we use the [apoc](https://github.com/haesleinhuepf/apoc) library to create an instance segmentation of nuclei from our annotation."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e8710645-7a5d-4e6f-843e-16fe63b7c659",
"metadata": {},
"outputs": [],
"source": [
"import apoc\n",
"\n",
"segmenter = apoc.ObjectSegmenter(positive_class_identifier=1)\n",
"features = apoc.PredefinedFeatureSet.small_quick.value\n",
"\n",
"segmenter.train(image=image, ground_truth=labels, features=features)\n",
"result = segmenter.predict(image)\n",
"\n",
"stackview.insight(result[30])"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3ee3fbdd-41fe-4f34-912f-7b39f6e9cca1",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.15"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {
"022f0cf6afad4cb3ad212fd9a549bc74": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_ff1606ca36da47c1a2c48307ea5bec28",
"IPY_MODEL_d9c20a6f09204583b1472d6b89e1b8fc",
"IPY_MODEL_463322bc68694ec6815c5b33cdab9b98"
],
"layout": "IPY_MODEL_32a4ceef1d6747269046bea8bf3945e5"
}
},
"038c13b1ead74af48489380ebe1d5eca": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {
"max_width": "30px",
"min_width": "10px"
}
},
"0a19a672319f49b887a5065729e09be1": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"0eb51cea9f544daebe6e7c6b8802335e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelStyleModel",
"state": {
"description_width": "",
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"129392e9d36940d0a969917f62e39a65": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"13e45a27d526406cb17e1407e21ab2f0": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonStyleModel",
"state": {
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"14eb17673653472c8f78e0a672ea26d7": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_d666b881d22f4fa4bb0894b685f334e6"
],
"layout": "IPY_MODEL_2a4a9db12e624aa99131d90fffd83487"
}
},
"15b109eddbc04b839c0f0e2f19baec2d": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"197be31bf19b47ceae049b17e1560963": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelModel",
"state": {
"layout": "IPY_MODEL_20ca7e3e401d474ca986c3e7065cbda7",
"style": "IPY_MODEL_5f77dbaa00564456aefa9b666d0f09b0",
"value": "Eraser radius:"
}
},
"20ca7e3e401d474ca986c3e7065cbda7": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"26c71af86b5c4e789416d0b9721cd70e": {
"model_module": "ipycanvas",
"model_module_version": "^0.13",
"model_name": "CanvasModel",
"state": {
"_canvas_manager": "IPY_MODEL_b9aa54164d7643308e756addc507773a",
"_model_module_version": "^0.13",
"_view_count": 1,
"_view_module_version": "^0.13",
"height": 256,
"layout": "IPY_MODEL_da84c306fc794ffc826b025b76854d67",
"width": 256
}
},
"2a4a9db12e624aa99131d90fffd83487": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"2a542e300ae44e6ca9195490f5346a59": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"32a4ceef1d6747269046bea8bf3945e5": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"401f1ec663f94c518e91c6152d1c44b1": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"463322bc68694ec6815c5b33cdab9b98": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonModel",
"state": {
"description": "+",
"layout": "IPY_MODEL_038c13b1ead74af48489380ebe1d5eca",
"style": "IPY_MODEL_d228e350037d4b8b9090b509f6fef20b",
"tooltip": null
}
},
"4baac408208e48eaaae2ede43b2e90fb": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonModel",
"state": {
"description": "-",
"layout": "IPY_MODEL_ed43b7f2439942c68ed83aa23ae3d517",
"style": "IPY_MODEL_e9ba42241fa2412799c171b8a0a804c1",
"tooltip": null
}
},
"54c6da5bf8e547568647a845013af33c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"5c29f0375b0b45cdbfdd721f85d93b64": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelModel",
"state": {
"layout": "IPY_MODEL_0a19a672319f49b887a5065729e09be1",
"style": "IPY_MODEL_fca1cc851b0045339182f0db3de50ad2",
"value": "2"
}
},
"5f77dbaa00564456aefa9b666d0f09b0": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelStyleModel",
"state": {
"description_width": "",
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"676dac06718e453594023bd62cb76e46": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelStyleModel",
"state": {
"description_width": "",
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"6b51ceb5e4c6424b8d0d9add6757d1a8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonStyleModel",
"state": {
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"73f6cd1e20dc42d9ae16b3ac8e5be110": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"7f17288bd70f4f36b281155d30be0bac": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"children": [
"IPY_MODEL_ca1c2f5eb5d14f71a5ceeeaeb39afd01",
"IPY_MODEL_022f0cf6afad4cb3ad212fd9a549bc74",
"IPY_MODEL_84e8479161044c74b8f066ee55ccfa7d",
"IPY_MODEL_9a8b13a47db040e097573894d77919e9",
"IPY_MODEL_197be31bf19b47ceae049b17e1560963",
"IPY_MODEL_b177918e39ac491eaf94089e98b8e91d"
],
"layout": "IPY_MODEL_8a06d332fe0f4a7f88981c0c7d0e2e93"
}
},
"81480b58ff6f42ed9e553d4e143410b1": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonModel",
"state": {
"description": "+",
"layout": "IPY_MODEL_d9e7863139234da5bbd8e53ab7fbbcad",
"style": "IPY_MODEL_f4c6e5a3f5ab4e8584438522c7e9883d",
"tooltip": null
}
},
"84b8bd8d4f09486a994f3071ad3f9c37": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"84e8479161044c74b8f066ee55ccfa7d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelModel",
"state": {
"layout": "IPY_MODEL_cf9babcae86041d48e9b6f168a46f7cc",
"style": "IPY_MODEL_676dac06718e453594023bd62cb76e46",
"value": "Draw radius:"
}
},
"8a06d332fe0f4a7f88981c0c7d0e2e93": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"8cb992c3d714450088f1c0611975c46f": {
"model_module": "ipyevents",
"model_module_version": "2.0.1",
"model_name": "EventModel",
"state": {
"_supported_key_events": [
"keydown",
"keyup"
],
"_supported_mouse_events": [
"click",
"auxclick",
"dblclick",
"mouseenter",
"mouseleave",
"mousedown",
"mouseup",
"mousemove",
"wheel",
"contextmenu",
"dragstart",
"drag",
"dragend",
"dragenter",
"dragover",
"dragleave",
"drop"
],
"_supported_touch_events": [
"touchstart",
"touchend",
"touchmove",
"touchcancel"
],
"_view_module": "@jupyter-widgets/controls",
"source": "IPY_MODEL_26c71af86b5c4e789416d0b9721cd70e",
"throttle_or_debounce": "",
"watched_events": [
"mousemove"
],
"xy_coordinate_system": ""
}
},
"94e415ef5eaf4767b1f0a0b80c5c002c": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonModel",
"state": {
"description": "+",
"layout": "IPY_MODEL_ed43b7f2439942c68ed83aa23ae3d517",
"style": "IPY_MODEL_b42e68838c344d8a82f1fe42fcaccb83",
"tooltip": null
}
},
"9a8b13a47db040e097573894d77919e9": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_f0471834559040c2b52e46816e905d57",
"IPY_MODEL_5c29f0375b0b45cdbfdd721f85d93b64",
"IPY_MODEL_81480b58ff6f42ed9e553d4e143410b1"
],
"layout": "IPY_MODEL_73f6cd1e20dc42d9ae16b3ac8e5be110"
}
},
"9d6b6047f26d4de3a7b60dd6b4f0e579": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"9eedc7dd19034648b409e436fb9df936": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"children": [
"IPY_MODEL_d0a4cb4d4d214f749488bbea9793947f",
"IPY_MODEL_b166256ab10842c7860862c4175d2399"
],
"layout": "IPY_MODEL_2a542e300ae44e6ca9195490f5346a59"
}
},
"b166256ab10842c7860862c4175d2399": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "IntSliderModel",
"state": {
"behavior": "drag-tap",
"continuous_update": false,
"description": "Slice",
"layout": "IPY_MODEL_f0453a59baf24895b9bc7ad914fac03e",
"max": 59,
"style": "IPY_MODEL_f9a0171ff7d7417ea4522aef68c20c19",
"value": 30
}
},
"b177918e39ac491eaf94089e98b8e91d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_4baac408208e48eaaae2ede43b2e90fb",
"IPY_MODEL_c7f0d86817dc4d31b2d05004a461deab",
"IPY_MODEL_94e415ef5eaf4767b1f0a0b80c5c002c"
],
"layout": "IPY_MODEL_401f1ec663f94c518e91c6152d1c44b1"
}
},
"b42e68838c344d8a82f1fe42fcaccb83": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonStyleModel",
"state": {
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"b5681c775ef54b658f484a534a8bd4fc": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelStyleModel",
"state": {
"description_width": "",
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"b9aa54164d7643308e756addc507773a": {
"model_module": "ipycanvas",
"model_module_version": "^0.13",
"model_name": "CanvasManagerModel",
"state": {
"_model_module_version": "^0.13",
"_view_module": null,
"_view_module_version": ""
}
},
"c7f0d86817dc4d31b2d05004a461deab": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelModel",
"state": {
"layout": "IPY_MODEL_15b109eddbc04b839c0f0e2f19baec2d",
"style": "IPY_MODEL_0eb51cea9f544daebe6e7c6b8802335e",
"value": "10"
}
},
"ca1c2f5eb5d14f71a5ceeeaeb39afd01": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelModel",
"state": {
"layout": "IPY_MODEL_9d6b6047f26d4de3a7b60dd6b4f0e579",
"style": "IPY_MODEL_b5681c775ef54b658f484a534a8bd4fc",
"value": "Label ID:"
}
},
"cf9babcae86041d48e9b6f168a46f7cc": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"d0a4cb4d4d214f749488bbea9793947f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_14eb17673653472c8f78e0a672ea26d7",
"IPY_MODEL_7f17288bd70f4f36b281155d30be0bac"
],
"layout": "IPY_MODEL_84b8bd8d4f09486a994f3071ad3f9c37"
}
},
"d228e350037d4b8b9090b509f6fef20b": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonStyleModel",
"state": {
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"d666b881d22f4fa4bb0894b685f334e6": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"children": [
"IPY_MODEL_26c71af86b5c4e789416d0b9721cd70e"
],
"layout": "IPY_MODEL_54c6da5bf8e547568647a845013af33c"
}
},
"d6802c356eb348c2849077a59d50ad30": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelStyleModel",
"state": {
"description_width": "",
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"d9c20a6f09204583b1472d6b89e1b8fc": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelModel",
"state": {
"layout": "IPY_MODEL_129392e9d36940d0a969917f62e39a65",
"style": "IPY_MODEL_d6802c356eb348c2849077a59d50ad30",
"value": "2"
}
},
"d9e7863139234da5bbd8e53ab7fbbcad": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {
"max_width": "30px",
"min_width": "10px"
}
},
"da84c306fc794ffc826b025b76854d67": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"e9ba42241fa2412799c171b8a0a804c1": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonStyleModel",
"state": {
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"ed43b7f2439942c68ed83aa23ae3d517": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {
"max_width": "30px",
"min_width": "10px"
}
},
"f0453a59baf24895b9bc7ad914fac03e": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"f0471834559040c2b52e46816e905d57": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonModel",
"state": {
"description": "-",
"layout": "IPY_MODEL_d9e7863139234da5bbd8e53ab7fbbcad",
"style": "IPY_MODEL_6b51ceb5e4c6424b8d0d9add6757d1a8",
"tooltip": null
}
},
"f4c6e5a3f5ab4e8584438522c7e9883d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonStyleModel",
"state": {
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"f9a0171ff7d7417ea4522aef68c20c19": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": ""
}
},
"fca1cc851b0045339182f0db3de50ad2": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "LabelStyleModel",
"state": {
"description_width": "",
"font_family": null,
"font_size": null,
"font_style": null,
"font_variant": null,
"font_weight": null,
"text_color": null,
"text_decoration": null
}
},
"ff1606ca36da47c1a2c48307ea5bec28": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ButtonModel",
"state": {
"description": "-",
"layout": "IPY_MODEL_038c13b1ead74af48489380ebe1d5eca",
"style": "IPY_MODEL_13e45a27d526406cb17e1407e21ab2f0",
"tooltip": null
}
}
},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}