diff --git a/notebooks/geffception.ipynb b/notebooks/geffception.ipynb
new file mode 100644
index 0000000..5f35a4f
--- /dev/null
+++ b/notebooks/geffception.ipynb
@@ -0,0 +1,12020 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "3433417a",
+ "metadata": {},
+ "source": [
+ "# Geffception"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "dad3a567",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import geff\n",
+ "\n",
+ "import pycellin\n",
+ "from pycellin.io.geff.loader import load_GEFF"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "c63bc1e5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Yohsuke's file for geffception\n",
+ "folder = \"/media/lxenard/data/Janelia_Cell_Trackathon/cell_segmentation.zarr/\"\n",
+ "geff_file = folder + \"tree.geff\"\n",
+ "geff_file_lineage = folder + \"tree.geff/linage_tree.geff\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "6ab721ac",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "geff_version='0.5.1.dev1+ge6d3dc6' directed=True axes=[Axis(name='frame', type='time', unit='frame', min=0.0, max=9.0), Axis(name='y', type='space', unit='px', min=6.381818181818182, max=185.05172413793105), Axis(name='x', type='space', unit='px', min=3.3793103448275863, max=229.0625)] node_props_metadata=None edge_props_metadata=None sphere=None ellipsoid=None track_node_props=None related_objects=[RelatedObject(type='image', path='../image', label_prop=None), RelatedObject(type='labels', path='../labels', label_prop='seg_id')] affine=None display_hints=None extra={}\n",
+ "lin_id_key: None\n",
+ "Axis frame not in props_md\n",
+ "Axis y not in props_md\n",
+ "Axis x not in props_md\n",
+ "Number of lineages: 12\n",
+ "Model named 'tree' with 12 lineages, built from geff.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/lxenard/miniforge3/envs/pycellin_dev/lib/python3.11/site-packages/pydantic/_internal/_validators.py:52: UserWarning: Temporal unit frame not in valid OME-Zarr units [None, 'attosecond', 'centisecond', 'day', 'decisecond', 'exasecond', 'femtosecond', 'gigasecond', 'hectosecond', 'hour', 'kilosecond', 'megasecond', 'microsecond', 'millisecond', 'minute', 'nanosecond', 'petasecond', 'picosecond', 'second', 'terasecond', 'yoctosecond', 'yottasecond', 'zeptosecond', 'zettasecond']. Reader applications may not know what to do with this information.\n",
+ " v_list = validator(input_value)\n",
+ "/home/lxenard/miniforge3/envs/pycellin_dev/lib/python3.11/site-packages/pydantic/_internal/_validators.py:52: UserWarning: Spatial unit px not in valid OME-Zarr units [None, 'angstrom', 'attometer', 'centimeter', 'decimeter', 'exameter', 'femtometer', 'foot', 'gigameter', 'hectometer', 'inch', 'kilometer', 'megameter', 'meter', 'micrometer', 'mile', 'millimeter', 'nanometer', 'parsec', 'petameter', 'picometer', 'terameter', 'yard', 'yoctometer', 'yottameter', 'zeptometer', 'zettameter']. Reader applications may not know what to do with this information.\n",
+ " v_list = validator(input_value)\n"
+ ]
+ }
+ ],
+ "source": [
+ "model = load_GEFF(geff_file)\n",
+ "print(model)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "fb21ee79",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of lineages: 12\n"
+ ]
+ }
+ ],
+ "source": [
+ "lineages = model.get_cell_lineages()\n",
+ "print(f\"Number of lineages: {len(lineages)}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f3b83715",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 0,
+ 1,
+ null,
+ 4,
+ 5,
+ null,
+ 7,
+ 8,
+ null,
+ 1,
+ 2,
+ null,
+ 5,
+ 6,
+ null,
+ 2,
+ 3,
+ null,
+ 8,
+ 9,
+ null,
+ 6,
+ 7,
+ null,
+ 3,
+ 4,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 0",
+ "text": [
+ "cell_ID: 0
frame: 0",
+ "cell_ID: 32
frame: 4",
+ "cell_ID: 99
frame: 9",
+ "cell_ID: 69
frame: 7",
+ "cell_ID: 8
frame: 1",
+ "cell_ID: 48
frame: 5",
+ "cell_ID: 19
frame: 2",
+ "cell_ID: 85
frame: 8",
+ "cell_ID: 56
frame: 6",
+ "cell_ID: 27
frame: 3"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 0,
+ 4,
+ 9,
+ 7,
+ 1,
+ 5,
+ 2,
+ 8,
+ 6,
+ 3
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 0,
+ 1,
+ null,
+ 4,
+ 5,
+ null,
+ 7,
+ 8,
+ null,
+ 1,
+ 2,
+ null,
+ 5,
+ 6,
+ null,
+ 8,
+ 9,
+ null,
+ 2,
+ 3,
+ null,
+ 6,
+ 7,
+ null,
+ 3,
+ 4,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 1",
+ "text": [
+ "cell_ID: 1
frame: 0",
+ "cell_ID: 37
frame: 4",
+ "cell_ID: 72
frame: 7",
+ "cell_ID: 9
frame: 1",
+ "cell_ID: 46
frame: 5",
+ "cell_ID: 84
frame: 8",
+ "cell_ID: 21
frame: 2",
+ "cell_ID: 55
frame: 6",
+ "cell_ID: 91
frame: 9",
+ "cell_ID: 28
frame: 3"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 0,
+ 4,
+ 7,
+ 1,
+ 5,
+ 8,
+ 2,
+ 6,
+ 9,
+ 3
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 0,
+ 1,
+ null,
+ 4,
+ 5,
+ null,
+ 1,
+ 2,
+ null,
+ 7,
+ 8,
+ null,
+ 5,
+ 6,
+ null,
+ 8,
+ 9,
+ null,
+ 2,
+ 3,
+ null,
+ 6,
+ 7,
+ null,
+ 3,
+ 4,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 2",
+ "text": [
+ "cell_ID: 2
frame: 0",
+ "cell_ID: 38
frame: 4",
+ "cell_ID: 10
frame: 1",
+ "cell_ID: 75
frame: 7",
+ "cell_ID: 47
frame: 5",
+ "cell_ID: 83
frame: 8",
+ "cell_ID: 22
frame: 2",
+ "cell_ID: 54
frame: 6",
+ "cell_ID: 90
frame: 9",
+ "cell_ID: 29
frame: 3"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 0,
+ 4,
+ 1,
+ 7,
+ 5,
+ 8,
+ 2,
+ 6,
+ 9,
+ 3
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 0,
+ 1,
+ null,
+ 7,
+ 8,
+ null,
+ 4,
+ 5,
+ null,
+ 1,
+ 2,
+ null,
+ 5,
+ 6,
+ null,
+ 2,
+ 3,
+ null,
+ 8,
+ 9,
+ null,
+ 3,
+ 4,
+ null,
+ 6,
+ 7,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 3",
+ "text": [
+ "cell_ID: 97
frame: 9",
+ "cell_ID: 3
frame: 0",
+ "cell_ID: 68
frame: 7",
+ "cell_ID: 39
frame: 4",
+ "cell_ID: 11
frame: 1",
+ "cell_ID: 45
frame: 5",
+ "cell_ID: 16
frame: 2",
+ "cell_ID: 81
frame: 8",
+ "cell_ID: 26
frame: 3",
+ "cell_ID: 60
frame: 6"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 9,
+ 0,
+ 7,
+ 4,
+ 1,
+ 5,
+ 2,
+ 8,
+ 3,
+ 6
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 7,
+ 8,
+ null,
+ 0,
+ 1,
+ null,
+ 4,
+ 5,
+ null,
+ 5,
+ 6,
+ null,
+ 1,
+ 2,
+ null,
+ 8,
+ 9,
+ null,
+ 2,
+ 3,
+ null,
+ 3,
+ 4,
+ null,
+ 6,
+ 7,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 4",
+ "text": [
+ "cell_ID: 66
frame: 7",
+ "cell_ID: 4
frame: 0",
+ "cell_ID: 40
frame: 4",
+ "cell_ID: 43
frame: 5",
+ "cell_ID: 12
frame: 1",
+ "cell_ID: 80
frame: 8",
+ "cell_ID: 17
frame: 2",
+ "cell_ID: 25
frame: 3",
+ "cell_ID: 62
frame: 6",
+ "cell_ID: 95
frame: 9"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 7,
+ 0,
+ 4,
+ 5,
+ 1,
+ 8,
+ 2,
+ 3,
+ 6,
+ 9
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 7,
+ 8,
+ null,
+ 0,
+ 1,
+ null,
+ 4,
+ 5,
+ null,
+ 5,
+ 6,
+ null,
+ 1,
+ 2,
+ null,
+ 8,
+ 9,
+ null,
+ 2,
+ 3,
+ null,
+ 3,
+ 4,
+ null,
+ 6,
+ 7,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 5",
+ "text": [
+ "cell_ID: 65
frame: 7",
+ "cell_ID: 5
frame: 0",
+ "cell_ID: 41
frame: 4",
+ "cell_ID: 44
frame: 5",
+ "cell_ID: 13
frame: 1",
+ "cell_ID: 78
frame: 8",
+ "cell_ID: 18
frame: 2",
+ "cell_ID: 24
frame: 3",
+ "cell_ID: 61
frame: 6",
+ "cell_ID: 94
frame: 9"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 7,
+ 0,
+ 4,
+ 5,
+ 1,
+ 8,
+ 2,
+ 3,
+ 6,
+ 9
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ -0.5,
+ -0.5,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ 0,
+ 0,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0,
+ 0,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0,
+ 0,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0,
+ -0.5,
+ null,
+ 0,
+ 0.5,
+ null
+ ],
+ "y": [
+ 4,
+ 5,
+ null,
+ 4,
+ 5,
+ null,
+ 0,
+ 1,
+ null,
+ 7,
+ 8,
+ null,
+ 7,
+ 8,
+ null,
+ 1,
+ 2,
+ null,
+ 5,
+ 6,
+ null,
+ 2,
+ 3,
+ null,
+ 5,
+ 7,
+ null,
+ 8,
+ 9,
+ null,
+ 8,
+ 9,
+ null,
+ 6,
+ 7,
+ null,
+ 3,
+ 4,
+ null,
+ 3,
+ 4,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 6",
+ "text": [
+ "cell_ID: 33
frame: 4",
+ "cell_ID: 34
frame: 4",
+ "cell_ID: 101
frame: 9",
+ "cell_ID: 6
frame: 0",
+ "cell_ID: 70
frame: 7",
+ "cell_ID: 71
frame: 7",
+ "cell_ID: 102
frame: 9",
+ "cell_ID: 14
frame: 1",
+ "cell_ID: 49
frame: 5",
+ "cell_ID: 20
frame: 2",
+ "cell_ID: 53
frame: 5",
+ "cell_ID: 88
frame: 8",
+ "cell_ID: 89
frame: 8",
+ "cell_ID: 58
frame: 6",
+ "cell_ID: 30
frame: 3"
+ ],
+ "type": "scatter",
+ "x": [
+ -0.5,
+ 0.5,
+ -0.5,
+ 0,
+ 0.5,
+ -0.5,
+ 0.5,
+ 0,
+ -0.5,
+ 0,
+ 0.5,
+ 0.5,
+ -0.5,
+ -0.5,
+ 0
+ ],
+ "y": [
+ 4,
+ 4,
+ 9,
+ 0,
+ 7,
+ 7,
+ 9,
+ 1,
+ 5,
+ 2,
+ 5,
+ 8,
+ 8,
+ 6,
+ 3
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ -0.5,
+ -0.5,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ 0,
+ 0,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ 0,
+ 0,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0,
+ 0,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ 0,
+ -0.5,
+ null,
+ 0,
+ 0.5,
+ null
+ ],
+ "y": [
+ 4,
+ 5,
+ null,
+ 4,
+ 5,
+ null,
+ 0,
+ 1,
+ null,
+ 7,
+ 8,
+ null,
+ 7,
+ 8,
+ null,
+ 1,
+ 2,
+ null,
+ 5,
+ 6,
+ null,
+ 5,
+ 6,
+ null,
+ 2,
+ 3,
+ null,
+ 8,
+ 9,
+ null,
+ 6,
+ 7,
+ null,
+ 6,
+ 7,
+ null,
+ 3,
+ 4,
+ null,
+ 3,
+ 4,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 7",
+ "text": [
+ "cell_ID: 35
frame: 4",
+ "cell_ID: 100
frame: 9",
+ "cell_ID: 36
frame: 4",
+ "cell_ID: 7
frame: 0",
+ "cell_ID: 73
frame: 7",
+ "cell_ID: 74
frame: 7",
+ "cell_ID: 15
frame: 1",
+ "cell_ID: 50
frame: 5",
+ "cell_ID: 51
frame: 5",
+ "cell_ID: 23
frame: 2",
+ "cell_ID: 86
frame: 8",
+ "cell_ID: 87
frame: 8",
+ "cell_ID: 57
frame: 6",
+ "cell_ID: 59
frame: 6",
+ "cell_ID: 31
frame: 3"
+ ],
+ "type": "scatter",
+ "x": [
+ -0.5,
+ -0.5,
+ 0.5,
+ 0,
+ -0.5,
+ 0.5,
+ 0,
+ 0.5,
+ -0.5,
+ 0,
+ 0.5,
+ -0.5,
+ -0.5,
+ 0.5,
+ 0
+ ],
+ "y": [
+ 4,
+ 9,
+ 4,
+ 0,
+ 7,
+ 7,
+ 1,
+ 5,
+ 5,
+ 2,
+ 8,
+ 8,
+ 6,
+ 6,
+ 3
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 7,
+ 8,
+ null,
+ 5,
+ 6,
+ null,
+ 8,
+ 9,
+ null,
+ 6,
+ 7,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 8",
+ "text": [
+ "cell_ID: 98
frame: 9",
+ "cell_ID: 67
frame: 7",
+ "cell_ID: 42
frame: 5",
+ "cell_ID: 79
frame: 8",
+ "cell_ID: 63
frame: 6"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 9,
+ 7,
+ 5,
+ 8,
+ 6
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 7,
+ 8,
+ null,
+ 8,
+ 9,
+ null,
+ 5,
+ 7,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 9",
+ "text": [
+ "cell_ID: 64
frame: 7",
+ "cell_ID: 77
frame: 8",
+ "cell_ID: 52
frame: 5",
+ "cell_ID: 93
frame: 9"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 7,
+ 8,
+ 5,
+ 9
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ null,
+ 0,
+ 0,
+ null
+ ],
+ "y": [
+ 8,
+ 9,
+ null,
+ 7,
+ 8,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 10",
+ "text": [
+ "cell_ID: 82
frame: 8",
+ "cell_ID: 76
frame: 7",
+ "cell_ID: 92
frame: 9"
+ ],
+ "type": "scatter",
+ "x": [
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 8,
+ 7,
+ 9
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [],
+ "y": []
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: -96",
+ "text": [
+ "cell_ID: 96
frame: 9"
+ ],
+ "type": "scatter",
+ "x": [
+ 0
+ ],
+ "y": [
+ 9
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "for lin in lineages:\n",
+ " lin.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "dc07d526",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ },
+ "data": [
+ {
+ "mode": "lines",
+ "name": "Edges",
+ "text": [],
+ "type": "scatter",
+ "x": [
+ -0.5,
+ -0.5,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ 0,
+ 0,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ 0,
+ 0,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0,
+ 0,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ -0.5,
+ -0.5,
+ null,
+ 0.5,
+ 0.5,
+ null,
+ 0,
+ -0.5,
+ null,
+ 0,
+ 0.5,
+ null
+ ],
+ "y": [
+ 4,
+ 5,
+ null,
+ 4,
+ 5,
+ null,
+ 0,
+ 1,
+ null,
+ 7,
+ 8,
+ null,
+ 7,
+ 8,
+ null,
+ 1,
+ 2,
+ null,
+ 5,
+ 6,
+ null,
+ 5,
+ 6,
+ null,
+ 2,
+ 3,
+ null,
+ 8,
+ 9,
+ null,
+ 6,
+ 7,
+ null,
+ 6,
+ 7,
+ null,
+ 3,
+ 4,
+ null,
+ 3,
+ 4,
+ null
+ ]
+ },
+ {
+ "hoverinfo": "text",
+ "hovertemplate": "%{text}",
+ "mode": "markers",
+ "name": "lineage_ID: 7",
+ "text": [
+ "cell_ID: 35
frame: 4",
+ "cell_ID: 100
frame: 9",
+ "cell_ID: 36
frame: 4",
+ "cell_ID: 7
frame: 0",
+ "cell_ID: 73
frame: 7",
+ "cell_ID: 74
frame: 7",
+ "cell_ID: 15
frame: 1",
+ "cell_ID: 50
frame: 5",
+ "cell_ID: 51
frame: 5",
+ "cell_ID: 23
frame: 2",
+ "cell_ID: 86
frame: 8",
+ "cell_ID: 87
frame: 8",
+ "cell_ID: 57
frame: 6",
+ "cell_ID: 59
frame: 6",
+ "cell_ID: 31
frame: 3"
+ ],
+ "type": "scatter",
+ "x": [
+ -0.5,
+ -0.5,
+ 0.5,
+ 0,
+ -0.5,
+ 0.5,
+ 0,
+ 0.5,
+ -0.5,
+ 0,
+ 0.5,
+ -0.5,
+ -0.5,
+ 0.5,
+ 0
+ ],
+ "y": [
+ 4,
+ 9,
+ 4,
+ 0,
+ 7,
+ 7,
+ 1,
+ 5,
+ 5,
+ 2,
+ 8,
+ 8,
+ 6,
+ 6,
+ 3
+ ]
+ }
+ ],
+ "layout": {
+ "hovermode": "closest",
+ "showlegend": true,
+ "template": {
+ "data": {
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "#E5ECF6",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "white",
+ "linecolor": "white",
+ "minorgridcolor": "white",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "#E5ECF6",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "white"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "#E5ECF6",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "radialaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "yaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ },
+ "zaxis": {
+ "backgroundcolor": "#E5ECF6",
+ "gridcolor": "white",
+ "gridwidth": 2,
+ "linecolor": "white",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "white"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ },
+ "bgcolor": "#E5ECF6",
+ "caxis": {
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "white",
+ "linecolor": "white",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "white",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "title": {},
+ "xaxis": {
+ "showgrid": false,
+ "showticklabels": false,
+ "zeroline": false
+ },
+ "yaxis": {
+ "autorange": "reversed",
+ "showgrid": true,
+ "title": {
+ "text": "Time (frames)"
+ },
+ "zeroline": true
+ }
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "model.get_cell_lineage_from_ID(7).plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "8ae94ad1",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "geff_version='0.5.1.dev1+ge6d3dc6' directed=True axes=[] node_props_metadata=None edge_props_metadata=None sphere=None ellipsoid=None track_node_props=None related_objects=None affine=None display_hints=None extra={}\n",
+ "lin_id_key: None\n",
+ "Number of lineages: 12\n",
+ "Model named 'linage_tree' with 11 lineages, built from geff.\n"
+ ]
+ }
+ ],
+ "source": [
+ "model_lin = load_GEFF(geff_file_lineage)\n",
+ "print(model_lin)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4598fa80",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of lineages: 11\n",
+ "CellLineage of ID -0.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID 1 with 3 cells and 2 links.\n",
+ "CellLineage of ID -1.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID -2.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID -3.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID -4.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID -5.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID -12.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID -13.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID -14.0 with 1 cells and 0 links.\n",
+ "CellLineage of ID -15.0 with 1 cells and 0 links.\n"
+ ]
+ }
+ ],
+ "source": [
+ "lineages_lin = model_lin.get_cell_lineages()\n",
+ "print(f\"Number of lineages: {len(lineages_lin)}\")\n",
+ "# model_lin.get_cell_lineage_from_ID(7).plot()\n",
+ "for lin in lineages_lin:\n",
+ " print(lin)\n",
+ " # lin.plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "f7beae53",
+ "metadata": {},
+ "source": [
+ "Need an identifier for the lineages, otherwise we cannot map from the different geff level: I don't know how to link a lineage in tree.geff to its lineage node in lineage.geff.\n",
+ "\n",
+ "But I can identify the lineage 7 by the number of divisions."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "43c5ed8b",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "KeyError",
+ "evalue": "'Attribute does not exist'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
+ "\u001b[31mKeyError\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[10]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mmodel_lin\u001b[49m\u001b[43m.\u001b[49m\u001b[43mget_cell_lineage_from_ID\u001b[49m\u001b[43m(\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m/media/lxenard/data/Code/pycellin/pycellin/pycellin/classes/lineage.py:1154\u001b[39m, in \u001b[36mCellLineage.plot\u001b[39m\u001b[34m(self, ID_prop, y_prop, y_legend, title, node_text, node_text_font, node_marker_style, node_colormap_prop, node_color_scale, node_hover_props, edge_line_style, edge_hover_props, plot_bgcolor, show_horizontal_grid, showlegend, width, height)\u001b[39m\n\u001b[32m 1081\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 1082\u001b[39m \u001b[33;03mPlot the cell lineage as a tree using Plotly.\u001b[39;00m\n\u001b[32m 1083\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 1151\u001b[39m \u001b[33;03m)\u001b[39;00m\n\u001b[32m 1152\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 1153\u001b[39m \u001b[38;5;66;03m# TODO: and if we want to plot in time units instead of frames?\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m1154\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 1155\u001b[39m \u001b[43m \u001b[49m\u001b[43mID_prop\u001b[49m\u001b[43m=\u001b[49m\u001b[43mID_prop\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1156\u001b[39m \u001b[43m \u001b[49m\u001b[43my_prop\u001b[49m\u001b[43m=\u001b[49m\u001b[43my_prop\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1157\u001b[39m \u001b[43m \u001b[49m\u001b[43my_legend\u001b[49m\u001b[43m=\u001b[49m\u001b[43my_legend\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1158\u001b[39m \u001b[43m \u001b[49m\u001b[43mtitle\u001b[49m\u001b[43m=\u001b[49m\u001b[43mtitle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1159\u001b[39m \u001b[43m \u001b[49m\u001b[43mnode_text\u001b[49m\u001b[43m=\u001b[49m\u001b[43mnode_text\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1160\u001b[39m \u001b[43m \u001b[49m\u001b[43mnode_text_font\u001b[49m\u001b[43m=\u001b[49m\u001b[43mnode_text_font\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1161\u001b[39m \u001b[43m \u001b[49m\u001b[43mnode_marker_style\u001b[49m\u001b[43m=\u001b[49m\u001b[43mnode_marker_style\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1162\u001b[39m \u001b[43m \u001b[49m\u001b[43mnode_colormap_prop\u001b[49m\u001b[43m=\u001b[49m\u001b[43mnode_colormap_prop\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1163\u001b[39m \u001b[43m \u001b[49m\u001b[43mnode_color_scale\u001b[49m\u001b[43m=\u001b[49m\u001b[43mnode_color_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1164\u001b[39m \u001b[43m \u001b[49m\u001b[43mnode_hover_props\u001b[49m\u001b[43m=\u001b[49m\u001b[43mnode_hover_props\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1165\u001b[39m \u001b[43m \u001b[49m\u001b[43medge_line_style\u001b[49m\u001b[43m=\u001b[49m\u001b[43medge_line_style\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1166\u001b[39m \u001b[43m \u001b[49m\u001b[43medge_hover_props\u001b[49m\u001b[43m=\u001b[49m\u001b[43medge_hover_props\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1167\u001b[39m \u001b[43m \u001b[49m\u001b[43mplot_bgcolor\u001b[49m\u001b[43m=\u001b[49m\u001b[43mplot_bgcolor\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1168\u001b[39m \u001b[43m \u001b[49m\u001b[43mshow_horizontal_grid\u001b[49m\u001b[43m=\u001b[49m\u001b[43mshow_horizontal_grid\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1169\u001b[39m \u001b[43m \u001b[49m\u001b[43mshowlegend\u001b[49m\u001b[43m=\u001b[49m\u001b[43mshowlegend\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1170\u001b[39m \u001b[43m \u001b[49m\u001b[43mwidth\u001b[49m\u001b[43m=\u001b[49m\u001b[43mwidth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1171\u001b[39m \u001b[43m \u001b[49m\u001b[43mheight\u001b[49m\u001b[43m=\u001b[49m\u001b[43mheight\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1172\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m/media/lxenard/data/Code/pycellin/pycellin/pycellin/classes/lineage.py:422\u001b[39m, in \u001b[36mLineage.plot\u001b[39m\u001b[34m(self, ID_prop, y_prop, y_legend, title, node_text, node_text_font, node_marker_style, node_colormap_prop, node_color_scale, node_hover_props, edge_line_style, edge_hover_props, plot_bgcolor, show_horizontal_grid, showlegend, width, height)\u001b[39m\n\u001b[32m 419\u001b[39m layout = G.layout(\u001b[33m\"\u001b[39m\u001b[33mrt\u001b[39m\u001b[33m\"\u001b[39m) \u001b[38;5;66;03m# Basic tree layout.\u001b[39;00m\n\u001b[32m 420\u001b[39m \u001b[38;5;66;03m# Updating the layout so the y position of the nodes is given\u001b[39;00m\n\u001b[32m 421\u001b[39m \u001b[38;5;66;03m# by the value of y_prop.\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m422\u001b[39m layout = \u001b[43m[\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlayout\u001b[49m\u001b[43m[\u001b[49m\u001b[43mk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[32;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mG\u001b[49m\u001b[43m.\u001b[49m\u001b[43mvs\u001b[49m\u001b[43m[\u001b[49m\u001b[43my_prop\u001b[49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[43mk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mnodes_count\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[32m 424\u001b[39m \u001b[38;5;66;03m# Computing the exact positions of nodes and edges.\u001b[39;00m\n\u001b[32m 425\u001b[39m positions = {k: layout[k] \u001b[38;5;28;01mfor\u001b[39;00m k \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(nodes_count)}\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m/media/lxenard/data/Code/pycellin/pycellin/pycellin/classes/lineage.py:422\u001b[39m, in \u001b[36m\u001b[39m\u001b[34m(.0)\u001b[39m\n\u001b[32m 419\u001b[39m layout = G.layout(\u001b[33m\"\u001b[39m\u001b[33mrt\u001b[39m\u001b[33m\"\u001b[39m) \u001b[38;5;66;03m# Basic tree layout.\u001b[39;00m\n\u001b[32m 420\u001b[39m \u001b[38;5;66;03m# Updating the layout so the y position of the nodes is given\u001b[39;00m\n\u001b[32m 421\u001b[39m \u001b[38;5;66;03m# by the value of y_prop.\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m422\u001b[39m layout = [(layout[k][\u001b[32m0\u001b[39m], \u001b[43mG\u001b[49m\u001b[43m.\u001b[49m\u001b[43mvs\u001b[49m\u001b[43m[\u001b[49m\u001b[43my_prop\u001b[49m\u001b[43m]\u001b[49m[k]) \u001b[38;5;28;01mfor\u001b[39;00m k \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(nodes_count)]\n\u001b[32m 424\u001b[39m \u001b[38;5;66;03m# Computing the exact positions of nodes and edges.\u001b[39;00m\n\u001b[32m 425\u001b[39m positions = {k: layout[k] \u001b[38;5;28;01mfor\u001b[39;00m k \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(nodes_count)}\n",
+ "\u001b[31mKeyError\u001b[39m: 'Attribute does not exist'"
+ ]
+ }
+ ],
+ "source": [
+ "model_lin.get_cell_lineage_from_ID(1).plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "f53115e3",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(10.0, {'length': 6, 'cell_ID': 10.0})\n",
+ "(11.0, {'length': 5, 'cell_ID': 11.0})\n",
+ "(7.0, {'length': 4, 'cell_ID': 7.0})\n"
+ ]
+ }
+ ],
+ "source": [
+ "for n in model_lin.get_cell_lineage_from_ID(1).nodes(data=True):\n",
+ " print(n)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "pycellin_dev",
+ "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.11.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/pycellin/io/geff/exporter.py b/pycellin/io/geff/exporter.py
index 00136fd..bc2af3f 100644
--- a/pycellin/io/geff/exporter.py
+++ b/pycellin/io/geff/exporter.py
@@ -13,10 +13,12 @@
"""
import copy
+from pathlib import Path
+from typing import Literal
import networkx as nx
from geff import write_nx
-from geff.metadata_schema import Axis, DisplayHint, GeffMetadata, PropMetadata
+from geff.metadata_schema import Axis, DisplayHint, GeffMetadata, PropMetadata, RelatedObject
from pycellin.classes import CellLineage, Model, Property
@@ -100,7 +102,7 @@ def _relabel_nodes(
next_available_id += 1
-def _solve_node_overlaps(lineages: list[CellLineage]) -> None:
+def _solve_node_overlaps(lineages: list[CellLineage]) -> bool:
"""
Detect and resolve overlapping node IDs across lineages by reassigning unique IDs.
@@ -108,6 +110,11 @@ def _solve_node_overlaps(lineages: list[CellLineage]) -> None:
----------
lineages : list[CellLineage]
List of lineage graphs to check and modify in place.
+
+ Returns
+ -------
+ bool
+ True if overlaps were found and resolved, False otherwise.
"""
overlaps = _find_node_overlaps(lineages)
if overlaps:
@@ -115,19 +122,10 @@ def _solve_node_overlaps(lineages: list[CellLineage]) -> None:
for nid, lids in overlaps.items():
print(f" Node ID {nid} in lineages {lids}")
_relabel_nodes(lineages, overlaps)
-
- # Verify no more overlaps
- # TODO: remove this, it's only for debug, or put in verbose
- overlaps = _find_node_overlaps(lineages)
- if overlaps:
- print("Overlapping node IDs found after relabeling:")
- for nid, lids in overlaps.items():
- print(f" Node ID {nid} in lineages {lids}")
- else:
- print("No overlapping node IDs found after relabeling.")
-
+ return True
else:
print("No overlapping node IDs found.")
+ return False
def _build_axes(
@@ -135,8 +133,9 @@ def _build_axes(
has_y: bool,
has_z: bool,
has_t: bool,
- space_unit: str | None,
- time_unit: str | None,
+ space_unit: str | None = None,
+ time_unit: str | None = None,
+ graph_level: Literal["cell", "tracklet"] = "cell",
) -> list[Axis]:
"""
Build a list of Axis objects for GEFF metadata.
@@ -151,10 +150,14 @@ def _build_axes(
Whether the z-axis is present.
has_t : bool
Whether the time axis is present.
- space_unit : str | None
- Unit for spatial axes (e.g., "micrometer").
- time_unit : str | None
- Unit for time axis (e.g., "second").
+ space_unit : str | None, optional
+ Unit for spatial axes (e.g., "micrometer"). Required if has_x or has_y is True.
+ time_unit : str | None, optional
+ Unit for the time axis (e.g., "second" or "level"). Required if has_t is True.
+ graph_level : {"cell", "tracklet"}, default "cell"
+ The level of graph representation:
+ - "cell": Individual cell-level data with spatial and temporal coordinates
+ - "tracklet": Cell cycle/division data with level-based temporal structure
Returns
-------
@@ -169,7 +172,10 @@ def _build_axes(
if has_z:
axes.append(Axis(name="cell_z", type="space", unit=space_unit))
if has_t:
- axes.append(Axis(name="frame", type="time", unit=time_unit))
+ if graph_level == "cell":
+ axes.append(Axis(name="frame", type="time", unit=time_unit))
+ elif graph_level == "tracklet":
+ axes.append(Axis(name="level", type="time", unit=time_unit))
return axes
@@ -211,6 +217,7 @@ def _build_display_hints(
def _build_props_metadata(
properties: dict[str, Property],
+ lineage_geff: bool = False,
) -> tuple[dict[str, PropMetadata], dict[str, PropMetadata]]:
"""
Build property metadata for GEFF from a pycellin model.
@@ -219,6 +226,9 @@ def _build_props_metadata(
----------
properties : dict[str, Property]
Dictionary of property identifiers to Property objects.
+ lineage_geff : bool, default False
+ Whether the metadata is for a lineage GEFF file. If True, lineage properties
+ are included as node properties.
Returns
-------
@@ -249,56 +259,148 @@ def _build_props_metadata(
case "edge":
edge_props_md[prop_id] = prop_md
case "lineage":
- pass # not supported in GEFF 0.5.0
+ if lineage_geff:
+ node_props_md[prop_id] = prop_md
case _:
raise ValueError(f"Unknown property type: {prop.prop_type}")
+ # In pycellin, lineage_ID is a lineage property, not a node one, so we need to add it
+ # manually for lineage GEFF files.
+ if lineage_geff and "lineage_ID" not in node_props_md:
+ node_props_md["lineage_ID"] = PropMetadata(
+ identifier="lineage_ID",
+ dtype="int",
+ unit=None,
+ name="lineage ID",
+ description="Unique identifier of the lineage",
+ )
+
return node_props_md, edge_props_md
-def _build_geff_metadata(model: Model) -> GeffMetadata:
+def _build_geff_metadata(
+ model: Model,
+ cell_geff_out: str,
+ graph_level: Literal["cell", "tracklet", "lineage"] = "cell",
+ export_tracklet_geff: bool | None = None,
+ export_lineage_geff: bool | None = None,
+) -> GeffMetadata:
"""
Build GEFF metadata from a pycellin model.
+ This function constructs the metadata object required for GEFF export based on the
+ specified graph level and model properties. It handles different graph representations
+ (cell, tracklet, lineage) and configures appropriate axes, display hints, property
+ metadata, and related objects for "geffception" (hierarchical GEFF files).
+
Parameters
----------
model : Model
- The pycellin model to extract metadata from.
+ The pycellin model to extract metadata from. Must contain the appropriate
+ data structures and properties for the specified graph level.
+ cell_geff_out : str
+ Path to the main cell-level GEFF file. Used to reference related GEFF files
+ for tracklets and lineages in "geffception" setups.
+ graph_level : {"cell", "tracklet", "lineage"}, default "cell"
+ The level of graph representation to build metadata for:
+ - "cell": Individual cell-level data with spatial and temporal coordinates
+ - "tracklet": Cell cycle/division data with level-based temporal structure
+ - "lineage": Lineage-level data without spatial coordinates
+ export_tracklet_geff : bool, optional
+ Whether to include tracklet GEFF as a related object. Only relevant when
+ graph_level is "cell". If None, no tracklet GEFF reference is added.
+ export_lineage_geff : bool, optional
+ Whether to include lineage GEFF as a related object. Only relevant when
+ graph_level is "cell". If None, no lineage GEFF reference is added.
Returns
-------
GeffMetadata
- The GEFF metadata object.
+ A GEFF metadata object containing:
+ - Directed graph specification (always True)
+ - Axis definitions (spatial x/y/z and temporal frame/level)
+ - Display hints for visualization
+ - Track node properties (lineage_ID and optionally cycle_ID)
+ - Node and edge property metadata
+ - Related objects for hierarchical GEFF structures
+
+ Notes
+ -----
+ The function automatically detects available spatial coordinates (cell_x, cell_y,
+ cell_z) and temporal information (frame, level) from the model to configure
+ appropriate axes. For cell-level graphs, spatial units and time units are
+ extracted from the model. For tracklet-level graphs, only level-based temporal
+ axis is considered. Lineage-level graphs have no axis information.
+
+ The "geffception" feature allows for hierarchical GEFF files where a main
+ cell-level GEFF can reference related tracklet and lineage GEFF files.
"""
+ # TODO: refactor
# Generic metadata
- has_x = model.has_property("cell_x")
- has_y = model.has_property("cell_y")
- has_z = model.has_property("cell_z")
- has_t = model.has_property("frame")
- axes = _build_axes(
- has_x=has_x,
- has_y=has_y,
- has_z=has_z,
- has_t=has_t,
- space_unit=model.get_space_unit(),
- time_unit=model.get_time_unit(),
- )
- display_hints = _build_display_hints(
- has_x=has_x,
- has_y=has_y,
- has_z=has_z,
- has_t=has_t,
- )
+ if graph_level == "cell":
+ has_x = model.has_property("cell_x")
+ has_y = model.has_property("cell_y")
+ has_z = model.has_property("cell_z")
+ has_t = model.has_property("frame")
+ axes = _build_axes(
+ has_x=has_x,
+ has_y=has_y,
+ has_z=has_z,
+ has_t=has_t,
+ space_unit=model.get_space_unit(),
+ time_unit=model.get_time_unit(),
+ )
+ display_hints = _build_display_hints(
+ has_x=has_x,
+ has_y=has_y,
+ has_z=has_z,
+ has_t=has_t,
+ )
+ elif graph_level == "tracklet":
+ has_t = model.has_property("level")
+ axes = _build_axes(
+ has_x=False,
+ has_y=False,
+ has_z=False,
+ has_t=has_t,
+ time_unit="level",
+ graph_level="tracklet",
+ )
+ display_hints = None
+ elif graph_level == "lineage":
+ axes = None
+ display_hints = None
# Property metadata
- props = model.get_cell_lineage_properties()
- node_props_md, edge_props_md = _build_props_metadata(props)
+ if graph_level == "cell":
+ props = model.get_cell_lineage_properties()
+ node_props_md, edge_props_md = _build_props_metadata(props)
+ elif graph_level == "tracklet":
+ props = model.get_cycle_lineage_properties()
+ node_props_md, edge_props_md = _build_props_metadata(props)
+ elif graph_level == "lineage":
+ props = model.get_lineage_properties()
+ node_props_md, edge_props_md = _build_props_metadata(props, lineage_geff=True)
# Define identifiers of lineage and cell cycle
track_node_props = {"lineage": "lineage_ID"}
if model.has_cycle_data():
track_node_props["tracklet"] = "cycle_ID"
+ # Define related objects for geffception
+ if graph_level == "cell":
+ related_objects = []
+ if export_tracklet_geff:
+ path = str(Path(cell_geff_out, "tracklets.geff"))
+ related_objects.append(RelatedObject(type="tracklet_geff", path=path))
+ if export_lineage_geff:
+ path = str(Path(cell_geff_out, "lineages.geff"))
+ related_objects.append(RelatedObject(type="lineage_geff", path=path))
+ if not related_objects:
+ related_objects = None
+ elif graph_level in ["tracklet", "lineage"]:
+ related_objects = [RelatedObject(type="main_geff", path=cell_geff_out)]
+
return GeffMetadata(
directed=True,
axes=axes,
@@ -306,6 +408,7 @@ def _build_geff_metadata(model: Model) -> GeffMetadata:
track_node_props=track_node_props,
node_props_metadata=node_props_md,
edge_props_metadata=edge_props_md,
+ related_objects=related_objects,
)
@@ -329,51 +432,126 @@ def export_GEFF(model: Model, geff_out: str) -> None:
RuntimeError
If the GEFF export process fails.
"""
- # Validate that model has data to export
+ # Validate that the model has data to export
if not model.data.cell_data:
raise ValueError("Model contains no lineage data to export")
-
- try:
- # We don't want to modify the original model.
- model_copy = copy.deepcopy(model)
- lineages = list(model_copy.data.cell_data.values())
-
- for graph in lineages:
- print(len(graph.nodes), len(graph.edges))
-
+ # We don't want to modify the original model.
+ model_copy = copy.deepcopy(model)
+ lineages = list(model_copy.data.cell_data.values())
+ for lin in lineages:
+ print(lin)
# TODO: remove when GEFF can handle variable length properties
if model_copy.has_property("ROI_coords"):
model_copy.remove_property("ROI_coords")
+ #### GEFFCEPTION ####
+ # Do we have cell cycle data?
+ if model_copy.has_cycle_data():
+ export_tracklet_geff = True
+ for lin in model_copy.data.cycle_data.values():
+ print(lin)
+ else:
+ export_tracklet_geff = False
+ # Do we have lineage properties?
+ lin_props = list(model_copy.get_lineage_properties().keys())
+ lin_props.remove("lineage_ID")
+ if len(lin_props) > 0:
+ export_lineage_geff = True
+ else:
+ export_lineage_geff = False
+ print(f"Geffception with tracklets: {export_tracklet_geff}")
+ print(f"Geffception with lineages: {export_lineage_geff}")
+
+ try:
# For GEFF compatibility, we need to put all the lineages in the same graph,
# but some nodes can have the same identifier across different lineages.
- _solve_node_overlaps(lineages)
+ has_overlap = _solve_node_overlaps(lineages)
+ if export_tracklet_geff and has_overlap:
+ model_copy.update() # needed to propagate the change of IDs to cycle data
geff_graph = nx.compose_all(lineages)
- print(len(geff_graph))
- metadata = _build_geff_metadata(model_copy)
- print(metadata)
+ if export_tracklet_geff and model_copy.data.cycle_data is not None:
+ cycle_lineages = list(model_copy.data.cycle_data.values())
+ # We need the lineage_ID prop on cycle nodes
+ for lin in cycle_lineages:
+ for nid in lin.nodes:
+ lin.nodes[nid]["lineage_ID"] = lin.graph["lineage_ID"]
+ tracklet_geff_graph = nx.compose_all(cycle_lineages)
+ # TODO: variable length properties are not supported in GEFF yet
+ for node in tracklet_geff_graph.nodes:
+ tracklet_geff_graph.nodes[node].pop("cells")
+
+ if export_lineage_geff:
+ # In a GEFF lineage file, each node is a lineage. So we need to create a new
+ # graph with lone nodes, each representing a lineage and on which are stored
+ # the lineage properties.
+ lineage_geff_graph = nx.Graph()
+ for lin in lineages:
+ lineage_id = lin.graph["lineage_ID"]
+ lineage_geff_graph.add_node(lineage_id, **lin.graph)
+
+ metadata = _build_geff_metadata(
+ model_copy,
+ export_tracklet_geff=export_tracklet_geff,
+ export_lineage_geff=export_lineage_geff,
+ cell_geff_out=geff_out,
+ )
+
+ tracklet_metadata = _build_geff_metadata(
+ model_copy, graph_level="tracklet", cell_geff_out=geff_out
+ )
+ # TODO: variable length properties are not supported in GEFF yet
+ tracklet_metadata.node_props_metadata.pop("cells")
+ lineage_metadata = _build_geff_metadata(
+ model_copy, graph_level="lineage", cell_geff_out=geff_out
+ )
+
+ except Exception as e:
+ raise RuntimeError(f"Failed to prepare data for GEFF export: {e}") from e
+
+ try:
write_nx(
geff_graph,
geff_out,
metadata=metadata,
)
+ if export_tracklet_geff:
+ tracklet_geff_out = Path(geff_out, "tracklets.geff")
+ write_nx(
+ tracklet_geff_graph,
+ tracklet_geff_out,
+ metadata=tracklet_metadata,
+ )
+
+ if export_lineage_geff:
+ lineage_geff_out = Path(geff_out, "lineages.geff")
+ write_nx(
+ geff_graph,
+ lineage_geff_out,
+ metadata=lineage_metadata,
+ )
except Exception as e:
raise RuntimeError(f"Failed to export GEFF file to '{geff_out}': {e}") from e
if __name__ == "__main__":
- xml_in = "sample_data/Ecoli_growth_on_agar_pad.xml"
+ # xml_in = "sample_data/Ecoli_growth_on_agar_pad.xml"
# xml_in = "sample_data/Celegans-5pc-17timepoints.xml"
- # xml_in = "sample_data/FakeTracks.xml"
+ xml_in = "sample_data/FakeTracks.xml"
# ctc_in = "sample_data/FakeTracks_TMtoCTC.txt"
# ctc_in = "sample_data/Ecoli_growth_on_agar_pad_TMtoCTC.txt"
# geff_out = "E:/Janelia_Cell_Trackathon/test_pycellin_geff/test.geff"
- geff_out = (
- "/media/lxenard/data/Janelia_Cell_Trackathon/test_pycellin_geff/pycellin_to_geff.geff"
- )
+ geff_out = "E:/Janelia_Cell_Trackathon/test_geffception/FakeTracks.geff"
+ # geff_out = (
+ # "/media/lxenard/data/Janelia_Cell_Trackathon/test_pycellin_geff/pycellin_to_geff.geff"
+ # )
+
+ import plotly.io as pio
+
+ # Plotly: set the default renderer to browser so I can visualize plots
+ pio.renderers.default = "browser"
# Remove existing folder
import os
@@ -386,17 +564,18 @@ def export_GEFF(model: Model, geff_out: str) -> None:
from pycellin.io.cell_tracking_challenge.loader import load_CTC_file
from pycellin.io.trackmate.loader import load_TrackMate_XML
- model = load_TrackMate_XML(xml_in)
+ model = load_TrackMate_XML(xml_in, keep_all_spots=True, keep_all_tracks=True)
# model = load_CTC_file(ctc_in)
- # model.add_cycle_data()
print(model)
- print(model.get_cell_lineage_properties().keys())
- print(model.data.cell_data.keys())
- # To test overlapping node IDs
- prop_values = {"cell_x": 10, "cell_y": 15, "cell_z": 20}
- model.add_cell(lid=0, cid=9510, frame=0, prop_values=prop_values)
- model.add_cell(lid=1, cid=9510, frame=0, prop_values=prop_values)
- model.add_cell(lid=1, cid=9509, frame=0, prop_values=prop_values)
- model.add_cell(lid=2, cid=9498, frame=0, prop_values=prop_values)
+ # print(model.get_lineage_properties().keys())
+ # exit()
+
+ # Enrich the model
+ print(len(model.get_properties().keys()))
+ model.add_pycellin_properties(["relative_age", "absolute_age"])
+ model.add_cycle_data()
+ model.add_pycellin_properties(["division_time", "cycle_completeness"])
+ model.update()
+ print(len(model.get_properties().keys()))
export_GEFF(model, geff_out)
diff --git a/pycellin/io/geff/loader.py b/pycellin/io/geff/loader.py
index 8ad5545..38b64f1 100644
--- a/pycellin/io/geff/loader.py
+++ b/pycellin/io/geff/loader.py
@@ -358,6 +358,7 @@ def _extract_props_metadata(
md: dict[str, geff.metadata_schema.PropMetadata],
props_dict: dict[str, Property],
prop_type: PropertyType,
+ lin_type: str,
) -> None:
"""
Extract properties metadata from a given dictionary and update the props_dict.
@@ -387,7 +388,7 @@ def _extract_props_metadata(
description=prop.description or prop.name or key,
provenance="geff",
prop_type=prop_type,
- lin_type="CellLineage",
+ lin_type=lin_type,
dtype=prop.dtype,
unit=prop.unit or None,
)
@@ -413,7 +414,7 @@ def _extract_props_metadata(
description=prop.description or prop.name or key,
provenance="geff",
prop_type=prop_type,
- lin_type="CellLineage",
+ lin_type=lin_type,
dtype=prop.dtype,
unit=prop.unit or None,
)
@@ -500,23 +501,69 @@ def _build_props_metadata(geff_md: geff.metadata_schema.GeffMetadata) -> dict[st
"""
props_dict: dict[str, Property] = {}
if geff_md.node_props_metadata is not None:
- _extract_props_metadata(geff_md.node_props_metadata, props_dict, "node")
+ _extract_props_metadata(geff_md.node_props_metadata, props_dict, "node", "CellLineage")
if geff_md.edge_props_metadata is not None:
- _extract_props_metadata(geff_md.edge_props_metadata, props_dict, "edge")
+ _extract_props_metadata(geff_md.edge_props_metadata, props_dict, "edge", "CellLineage")
# TODO: for now lineage properties are not associated to a specific tag but stored
# somewhere in the "extra" field. We need to check recursively if there is a dict
# key called "lineage_props_metadata" in the "extra" field.
- if geff_md.extra is not None:
- # Recursive search for the "lineage_props_metadata" key through the "extra"
- # field dict of dicts of dicts...
- lin_props_metadata = _recursive_dict_search(geff_md.extra, "lineage_props_metadata")
- if lin_props_metadata is not None:
- _extract_lin_props_metadata(lin_props_metadata, props_dict)
+ # => No need for this anymore, thanks to geffception. Lineage properties are now
+ # extracted directly from the lineage GEFF.
+ # if geff_md.extra is not None:
+ # # Recursive search for the "lineage_props_metadata" key through the "extra"
+ # # field dict of dicts of dicts...
+ # lin_props_metadata = _recursive_dict_search(geff_md.extra, "lineage_props_metadata")
+ # if lin_props_metadata is not None:
+ # _extract_lin_props_metadata(lin_props_metadata, props_dict)
return props_dict
+def _update_props_metadata(
+ metadata: dict[str, Property],
+ geff_md: GeffMetadata,
+ graph_level: Literal["tracklet", "lineage"],
+) -> None:
+ """
+ Update properties metadata with additional geff metadata.
+
+ This function extracts and merges properties metadata from tracklet or lineage
+ geff metadata into the main properties metadata dictionary.
+
+ Parameters
+ ----------
+ metadata : dict[str, Property]
+ The main properties metadata dictionary to update.
+ geff_md : GeffMetadata
+ The GEFF metadata to use for updating.
+ graph_level : Literal["tracklet", "lineage"]
+ The graph level that defines the scope of the update ("tracklet" or "lineage").
+ """
+ if geff_md.node_props_metadata is not None:
+ if graph_level == "tracklet":
+ prop_type = "node"
+ lin_type = "CycleLineage"
+ elif graph_level == "lineage":
+ prop_type = "lineage"
+ lin_type = "CellLineage"
+ _extract_props_metadata(
+ md=geff_md.node_props_metadata,
+ props_dict=metadata,
+ prop_type=prop_type,
+ lin_type=lin_type,
+ )
+ if geff_md.edge_props_metadata is not None:
+ # We cannot have edge properties for lineages, so it must be tracklet.
+ # TODO: Should I enforce this?
+ _extract_props_metadata(
+ md=geff_md.edge_props_metadata,
+ props_dict=metadata,
+ prop_type="edge",
+ lin_type="CycleLineage",
+ )
+
+
def _extract_units_from_axes(geff_md: GeffMetadata) -> dict[str, Any]:
"""
Extract and validate space and time units from geff metadata axes.
@@ -741,6 +788,8 @@ def load_GEFF(
cell_z_key: str | None = None,
time_key: str | None = None,
validate_geff: bool = True,
+ load_tracklet_geff: bool = False,
+ load_lineage_geff: bool = False,
) -> Model:
"""
Load a geff file and return a pycellin model containing the data.
@@ -768,26 +817,50 @@ def load_GEFF(
validate_geff : bool, optional
Whether to validate the GEFF file against its schema, i.e. is the GEFF
file well-formed and compliant with the GEFF specification. Default is True.
+ load_tracklet_geff : bool, optional
+ Whether to load the tracklet GEFF file if available. Default is False.
+ load_lineage_geff : bool, optional
+ Whether to load the lineage GEFF file if available. Default is False.
Returns
-------
Model
A pycellin model containing the data from the geff file.
"""
-
- # Read the geff file
+ # Read the GEFF file(s)
geff_graph, geff_md = geff.read_nx(geff_file, validate=validate_geff)
if not geff_md.directed:
raise ValueError(
"The geff graph is undirected: pycellin does not support undirected graphs."
)
- for node in geff_graph.nodes:
- print(geff_graph.nodes[node])
- break
+ if load_tracklet_geff:
+ tracklet_geff = Path(geff_file, "tracklets.geff")
+ if tracklet_geff.exists():
+ print(f"Loading tracklet GEFF from {tracklet_geff}")
+ tracklet_geff_graph, tracklet_geff_md = geff.read_nx(
+ tracklet_geff, validate=validate_geff
+ )
+ else:
+ # TODO: should this be a warning instead of an error?
+ # So the main GEFF can still be loaded?
+ raise FileNotFoundError(f"Tracklet GEFF file not found: {tracklet_geff}")
+ if load_lineage_geff:
+ lineage_geff = Path(geff_file, "lineages.geff")
+ if lineage_geff.exists():
+ print(f"Loading lineage GEFF from {lineage_geff}")
+ lineage_geff_graph, lineage_geff_md = geff.read_nx(lineage_geff, validate=validate_geff)
+ else:
+ # TODO: should this be a warning instead of an error?
+ # So the main GEFF can still be loaded?
+ raise FileNotFoundError(f"Lineage GEFF file not found: {lineage_geff}")
# Extract and dispatch metadata
generic_md = _build_generic_metadata(geff_file, geff_md)
props_md = _build_props_metadata(geff_md)
+ if load_tracklet_geff:
+ _update_props_metadata(metadata=props_md, geff_md=tracklet_geff_md, graph_level="tracklet")
+ if load_lineage_geff:
+ _update_props_metadata(metadata=props_md, geff_md=lineage_geff_md, graph_level="lineage")
# Identify specific props keys
lin_id_key = _identify_lin_id_key(lineage_id_key, geff_md.track_node_props, geff_graph)
@@ -802,12 +875,46 @@ def load_GEFF(
# print("cell_z_key:", cell_z_key)
# Split the graph into lineages
+ # TODO: what if there are no lin_id_key? It is dealt with below but there is also
+ # a case where _split_graph_into_lineages creates the lineage_ID itself
lineages = _split_graph_into_lineages(geff_graph, lineage_ID_key=lin_id_key)
# print(f"Number of lineages: {len(lineages)}")
if lin_id_key is None:
_set_lineage_id(lineages)
lin_id_key = "lineage_ID"
+ # Integrate the lineage properties from the lineage GEFF into the pycellin model
+ # TODO: this is wonky. We can generate lineage IDs based on the node IDs of
+ # the lineage GEFF but then the lineage IDs won't match the ones in the main GEFF.
+ # And if no lineage_IDs in any of the GEFFs, there is no way to match them.
+ # Wait for geffception and see if the presence of lineage IDs is enforced.
+ # TODO: apparently I have cell props on lineage GEFF nodes...?!
+ if load_lineage_geff:
+ if len(lineage_geff_graph) != len(lineages):
+ warnings.warn(
+ f"Inconsistency between the number of lineages in the main GEFF ({len(lineages)}) "
+ f"and in the lineage GEFF ({len(lineage_geff_graph)})."
+ "Some lineages might not be updated with their lineage properties.",
+ stacklevel=2,
+ )
+ for lin_node, lin_data in lineage_geff_graph.nodes(data=True):
+ print(lin_data)
+ lin_id = lin_data.get("lineage_ID")
+ if lin_id is None:
+ continue
+ try:
+ lin = next(l for l in lineages if l.graph["lineage_ID"] == lin_id)
+ except StopIteration:
+ warnings.warn(
+ f"Lineage with lineage_ID '{lin_id}' found in the lineage GEFF "
+ "but not in the main GEFF. Skipping.",
+ stacklevel=2,
+ )
+ continue
+ for prop_key, prop_value in lin_data.items():
+ if prop_key != "lineage_ID":
+ lin.graph[prop_key] = prop_value
+
# Rename properties to match pycellin conventions
_normalize_properties_data(
lineages, lin_id_key, cell_x_key, cell_y_key, cell_z_key, time_key, cell_id_key
@@ -830,6 +937,8 @@ def load_GEFF(
if __name__ == "__main__":
geff_file = "/media/lxenard/data/Janelia_Cell_Trackathon/reader_test_graph.geff"
geff_file = "E:/Janelia_Cell_Trackathon/reader_test_graph.geff"
+ geff_file = "E:/Janelia_Cell_Trackathon/test_geffception/FakeTracks.geff"
+ geff_file = "/media/lxenard/data/Janelia_Cell_Trackathon/test_geffception/FakeTracks.geff"
# geff_file = "/media/lxenard/data/Janelia_Cell_Trackathon/mouse-20250719.zarr/tracks"
# geff_file = "/media/lxenard/data/Janelia_Cell_Trackathon/test_pycellin_geff/test.zarr"
# geff_file = (
@@ -851,8 +960,17 @@ def load_GEFF(
pio.renderers.default = "browser"
print(geff_file)
- model = load_GEFF(geff_file) # , cell_x_key="x", cell_y_key="y")
+ model = load_GEFF(
+ geff_file,
+ validate_geff=True,
+ load_tracklet_geff=True,
+ load_lineage_geff=True,
+ # cell_x_key="x",
+ # cell_y_key="y",
+ )
# print(model)
+ for prop_key, prop in model.props_metadata.props.items():
+ print(f"{prop_key}: {prop.prop_type}, {prop.lin_type}")
# print("props_dict", model.props_metadata.props)
# for k in model.props_metadata.props.keys():
# print(f"{k}")
@@ -861,6 +979,7 @@ def load_GEFF(
# for lin in lineages:
# print(lin)
lin0 = lineages[0]
+ print(lin0.graph)
# lin7 = model.get_cell_lineage_from_ID(7)
# lin7.plot(
# node_hover_props=[
@@ -875,10 +994,10 @@ def load_GEFF(
# ]
# )
# print(lin0.nodes(data=True))
- for node in lin0.nodes(data=True):
- print(node)
- break
- lin0.plot()
+ # for node in lin0.nodes(data=True):
+ # print(node)
+ # break
+ # lin0.plot()
# cell_id_key
# lineage_id_key
diff --git a/sample_data/FakeTracks.xml b/sample_data/FakeTracks.xml
index ed81f7a..e53bfad 100644
--- a/sample_data/FakeTracks.xml
+++ b/sample_data/FakeTracks.xml
@@ -1,311 +1,309 @@
-
- 0.1101/2021.09.03.458852
-and / or:
-Tinevez, JY.; Perry, N. & Schindelin, J. et al. (2017), 'TrackMate: An open and extensible platform for single-particle tracking.', Methods 115: 80-90, PMID 27713081.
-https://www.sciencedirect.com/science/article/pii/S1046202316303346
-
-Numerical feature analyzers:
-Spot feature analyzers:
- - Manual spot color provides: Spot color; is manual.
- - Spot intensity provides: Mean ch1, Median ch1, Min ch1, Max ch1, Sum ch1, Std ch1.
- - Spot contrast and SNR provides: Ctrst ch1, SNR ch1.
- - Spot fit 2D ellipse provides: El. x0, El. y0, El. long axis, El. sh. axis, El. angle, El. a.r.
- - Spot 2D shape descriptors provides: Area, Perim., Circ., Solidity.
-Edge feature analyzers:
- - Directional change provides: γ rate.
- - Edge speed provides: Speed, Disp.
- - Edge target provides: Source ID, Target ID, Cost.
- - Edge location provides: Edge T, Edge X, Edge Y, Edge Z.
- - Manual edge color provides: Edge color; is manual.
-Track feature analyzers:
- - Branching analyzer provides: N spots, N gaps, N splits, N merges, N complex, Lgst gap.
- - Track duration provides: Duration, Track start, Track stop, Track disp.
- - Track index provides: Index, ID.
- - Track location provides: Track X, Track Y, Track Z.
- - Track speed provides: Mean sp., Max speed, Min speed, Med. speed, Std speed.
- - Track quality provides: Mean Q.
- - Track motility analysis provides: Total dist., Max dist., Cfn. ratio, Mn. v. line, Fwd. progr., Mn. γ rate.
-
-Image region of interest:
-Image data:
-For the image named: FakeTracks.tif.
-Matching file FakeTracks.tif in current folder.
-Geometry:
- X = 0 - 127, dx = 1.00000
- Y = 0 - 127, dy = 1.00000
- Z = 0 - 0, dz = 1.00000
- T = 0 - 49, dt = 1.00000
-
-Configured detector StarDist detector with settings:
- - target channel: 1
-
-Starting detection process using 24 threads.
-Detection processes 1 frame simultaneously and allocates 24 threads per frame.
-Found 107 spots.
-Detection done in 2.3 s.
-
-Computing spot quality histogram...
-Initial thresholding with a quality threshold above 0.4 ...
-Starting initial filtering process.
-Retained 107 spots out of 107.
-
-Adding morphology analyzers...
- - Spot fit 2D ellipse provides: El. x0, El. y0, El. long axis, El. sh. axis, El. angle, El. a.r.
- - Spot 2D shape descriptors provides: Area, Perim., Circ., Solidity.
-
-Calculating spot features...
-Calculating features done in 0.1 s.
-
-Performing spot filtering on the following features:
- - on Area below 49.9
-Kept 106 spots out of 107.
-
-Configured tracker LAP Tracker with settings:
- - max frame gap: 2
- - alternative linking cost factor: 1.05
- - linking feature penalties:
- - linking max distance: 5.0
- - gap closing max distance: 5.0
- - merging feature penalties:
- - splitting max distance: 5.0
- - blocking value: Infinity
- - allow gap closing: true
- - allow track splitting: true
- - allow track merging: true
- - merging max distance: 5.0
- - splitting feature penalties:
- - cutoff percentile: 0.9
- - gap closing feature penalties:
-
-Starting tracking process.
-Tracking done in 0.0 s.
-Found 17 tracks.
- - avg size: 5.1 spots.
- - min size: 2 spots.
- - max size: 12 spots.
-
-Configured tracker LAP Tracker with settings:
- - max frame gap: 2
- - alternative linking cost factor: 1.05
- - linking feature penalties:
- - linking max distance: 8.0
- - gap closing max distance: 5.0
- - merging feature penalties:
- - splitting max distance: 5.0
- - blocking value: Infinity
- - allow gap closing: true
- - allow track splitting: true
- - allow track merging: true
- - merging max distance: 5.0
- - splitting feature penalties:
- - cutoff percentile: 0.9
- - gap closing feature penalties:
-
-Starting tracking process.
-Tracking done in 0.0 s.
-Found 9 tracks.
- - avg size: 10.7 spots.
- - min size: 2 spots.
- - max size: 42 spots.
-
-Calculating features done in 0.0 s.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 23.9
-Kept 4 spots out of 9.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 23.9
-Kept 4 spots out of 9.
-
-Configured tracker LAP Tracker with settings:
- - max frame gap: 2
- - alternative linking cost factor: 1.05
- - linking feature penalties:
- - linking max distance: 8.0
- - gap closing max distance: 5.0
- - merging feature penalties:
- - splitting max distance: 8.0
- - blocking value: Infinity
- - allow gap closing: true
- - allow track splitting: true
- - allow track merging: true
- - merging max distance: 8.0
- - splitting feature penalties:
- - cutoff percentile: 0.9
- - gap closing feature penalties:
-
-Starting tracking process.
-Tracking done in 0.0 s.
-Found 7 tracks.
- - avg size: 13.7 spots.
- - min size: 2 spots.
- - max size: 74 spots.
-
-Calculating features done in 0.0 s.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 20.8
-Kept 2 spots out of 7.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 20.8
-Kept 2 spots out of 7.
-
-Configured tracker LAP Tracker with settings:
- - max frame gap: 2
- - alternative linking cost factor: 1.05
- - linking feature penalties:
- - linking max distance: 10.0
- - gap closing max distance: 5.0
- - merging feature penalties:
- - splitting max distance: 8.0
- - blocking value: Infinity
- - allow gap closing: true
- - allow track splitting: true
- - allow track merging: true
- - merging max distance: 8.0
- - splitting feature penalties:
- - cutoff percentile: 0.9
- - gap closing feature penalties:
-
-Starting tracking process.
-Tracking done in 0.0 s.
-Found 7 tracks.
- - avg size: 13.7 spots.
- - min size: 2 spots.
- - max size: 74 spots.
-
-Calculating features done in 0.0 s.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 20.8
-Kept 2 spots out of 7.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 20.8
-Kept 2 spots out of 7.
-
-Configured tracker LAP Tracker with settings:
- - max frame gap: 2
- - alternative linking cost factor: 1.05
- - linking feature penalties:
- - linking max distance: 10.0
- - gap closing max distance: 8.0
- - merging feature penalties:
- - splitting max distance: 8.0
- - blocking value: Infinity
- - allow gap closing: true
- - allow track splitting: true
- - allow track merging: true
- - merging max distance: 8.0
- - splitting feature penalties:
- - cutoff percentile: 0.9
- - gap closing feature penalties:
-
-Starting tracking process.
-Tracking done in 0.0 s.
-Found 7 tracks.
- - avg size: 13.7 spots.
- - min size: 2 spots.
- - max size: 74 spots.
-
-Calculating features done in 0.0 s.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 20.8
-Kept 2 spots out of 7.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 20.8
-Kept 2 spots out of 7.
-
-Configured tracker LAP Tracker with settings:
- - max frame gap: 2
- - alternative linking cost factor: 1.05
- - linking feature penalties:
- - linking max distance: 10.0
- - gap closing max distance: 10.0
- - merging feature penalties:
- - splitting max distance: 10.0
- - blocking value: Infinity
- - allow gap closing: true
- - allow track splitting: true
- - allow track merging: true
- - merging max distance: 10.0
- - splitting feature penalties:
- - cutoff percentile: 0.9
- - gap closing feature penalties:
-
-Starting tracking process.
-Tracking done in 0.0 s.
-Found 7 tracks.
- - avg size: 13.7 spots.
- - min size: 2 spots.
- - max size: 74 spots.
-
-Calculating features done in 0.0 s.
-
-Performing track filtering on the following features:
- - on Track start below 78.0
- - on Total distance traveled above 20.8
-Kept 2 spots out of 7.
-Saving data...
-Computing edge features:
- - Directional change in 2 ms.
- - Edge speed in 0 ms.
- - Edge target in 1 ms.
- - Edge location in 1 ms.
-Computation done in 4 ms.
-Computing track features:
- - Branching analyzer in 0 ms.
- - Track duration in 0 ms.
- - Track index in 0 ms.
- - Track location in 4 ms.
- - Track speed in 0 ms.
- - Track quality in 1 ms.
- - Track motility analysis in 0 ms.
-Computation done in 6 ms.
---------------------
-Warnings occurred during reading the file:
---------------------
-Cannot read image file: /mnt/data/Code/pycellin/sample_data/FakeTracks.tif.
---------------------
-File loaded on Tue, 17 Oct 2023 18:15:18
-TrackMate v8.0.0-SNAPSHOT-f411154ed1a4b9de350bbfe91c230cf3ae7639a3
-Please note that TrackMate is available through Fiji, and is based on a publication. If you use it successfully for your research please be so kind to cite our work:
-Ershov, D., Phan, MS., Pylvänäinen, J.W., Rigaud S.U., et al. TrackMate 7: integrating state-of-the-art segmentation algorithms into tracking pipelines. Nat Methods (2022). https://doi.org/10.1038/s41592-022-01507-1
-https://doi.org/10.1038/s41592-022-01507-1
-and / or:
-Tinevez, JY.; Perry, N. & Schindelin, J. et al. (2017), 'TrackMate: An open and extensible platform for single-particle tracking.', Methods 115: 80-90, PMID 27713081.
-https://www.sciencedirect.com/science/article/pii/S1046202316303346
-Saving data...
-Warning: The source image does not match a file on the system.TrackMate won't be able to reload it when opening this XML file.
-To fix this, save the source image to a TIF file before saving the TrackMate session.
-Computing edge features:
- - Directional change in 4 ms.
- - Edge speed in 14 ms.
- - Edge target in 11 ms.
- - Edge location in 5 ms.
-Computation done in 34 ms.
-Computing track features:
- - Branching analyzer in 0 ms.
- - Track duration in 3 ms.
- - Track index in 0 ms.
- - Track location in 0 ms.
- - Track speed in 1 ms.
- - Track quality in 0 ms.
- - Track motility analysis in 1 ms.
-Computation done in 5 ms.
+
+ red detector StarDist detector with settings:
+ - target channel: 1
+
+Starting detection process using 24 threads.
+Detection processes 1 frame simultaneously and allocates 24 threads per frame.
+Found 107 spots.
+Detection done in 2.3 s.
+
+Computing spot quality histogram...
+Initial thresholding with a quality threshold above 0.4 ...
+Starting initial filtering process.
+Retained 107 spots out of 107.
+
+Adding morphology analyzers...
+ - Spot fit 2D ellipse provides: El. x0, El. y0, El. long axis, El. sh. axis, El. angle, El. a.r.
+ - Spot 2D shape descriptors provides: Area, Perim., Circ., Solidity.
+
+Calculating spot features...
+Calculating features done in 0.1 s.
+
+Performing spot filtering on the following features:
+ - on Area below 49.9
+Kept 106 spots out of 107.
+
+Configured tracker LAP Tracker with settings:
+ - max frame gap: 2
+ - alternative linking cost factor: 1.05
+ - linking feature penalties:
+ - linking max distance: 5.0
+ - gap closing max distance: 5.0
+ - merging feature penalties:
+ - splitting max distance: 5.0
+ - blocking value: Infinity
+ - allow gap closing: true
+ - allow track splitting: true
+ - allow track merging: true
+ - merging max distance: 5.0
+ - splitting feature penalties:
+ - cutoff percentile: 0.9
+ - gap closing feature penalties:
+
+Starting tracking process.
+Tracking done in 0.0 s.
+Found 17 tracks.
+ - avg size: 5.1 spots.
+ - min size: 2 spots.
+ - max size: 12 spots.
+
+Configured tracker LAP Tracker with settings:
+ - max frame gap: 2
+ - alternative linking cost factor: 1.05
+ - linking feature penalties:
+ - linking max distance: 8.0
+ - gap closing max distance: 5.0
+ - merging feature penalties:
+ - splitting max distance: 5.0
+ - blocking value: Infinity
+ - allow gap closing: true
+ - allow track splitting: true
+ - allow track merging: true
+ - merging max distance: 5.0
+ - splitting feature penalties:
+ - cutoff percentile: 0.9
+ - gap closing feature penalties:
+
+Starting tracking process.
+Tracking done in 0.0 s.
+Found 9 tracks.
+ - avg size: 10.7 spots.
+ - min size: 2 spots.
+ - max size: 42 spots.
+
+Calculating features done in 0.0 s.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 23.9
+Kept 4 spots out of 9.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 23.9
+Kept 4 spots out of 9.
+
+Configured tracker LAP Tracker with settings:
+ - max frame gap: 2
+ - alternative linking cost factor: 1.05
+ - linking feature penalties:
+ - linking max distance: 8.0
+ - gap closing max distance: 5.0
+ - merging feature penalties:
+ - splitting max distance: 8.0
+ - blocking value: Infinity
+ - allow gap closing: true
+ - allow track splitting: true
+ - allow track merging: true
+ - merging max distance: 8.0
+ - splitting feature penalties:
+ - cutoff percentile: 0.9
+ - gap closing feature penalties:
+
+Starting tracking process.
+Tracking done in 0.0 s.
+Found 7 tracks.
+ - avg size: 13.7 spots.
+ - min size: 2 spots.
+ - max size: 74 spots.
+
+Calculating features done in 0.0 s.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 20.8
+Kept 2 spots out of 7.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 20.8
+Kept 2 spots out of 7.
+
+Configured tracker LAP Tracker with settings:
+ - max frame gap: 2
+ - alternative linking cost factor: 1.05
+ - linking feature penalties:
+ - linking max distance: 10.0
+ - gap closing max distance: 5.0
+ - merging feature penalties:
+ - splitting max distance: 8.0
+ - blocking value: Infinity
+ - allow gap closing: true
+ - allow track splitting: true
+ - allow track merging: true
+ - merging max distance: 8.0
+ - splitting feature penalties:
+ - cutoff percentile: 0.9
+ - gap closing feature penalties:
+
+Starting tracking process.
+Tracking done in 0.0 s.
+Found 7 tracks.
+ - avg size: 13.7 spots.
+ - min size: 2 spots.
+ - max size: 74 spots.
+
+Calculating features done in 0.0 s.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 20.8
+Kept 2 spots out of 7.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 20.8
+Kept 2 spots out of 7.
+
+Configured tracker LAP Tracker with settings:
+ - max frame gap: 2
+ - alternative linking cost factor: 1.05
+ - linking feature penalties:
+ - linking max distance: 10.0
+ - gap closing max distance: 8.0
+ - merging feature penalties:
+ - splitting max distance: 8.0
+ - blocking value: Infinity
+ - allow gap closing: true
+ - allow track splitting: true
+ - allow track merging: true
+ - merging max distance: 8.0
+ - splitting feature penalties:
+ - cutoff percentile: 0.9
+ - gap closing feature penalties:
+
+Starting tracking process.
+Tracking done in 0.0 s.
+Found 7 tracks.
+ - avg size: 13.7 spots.
+ - min size: 2 spots.
+ - max size: 74 spots.
+
+Calculating features done in 0.0 s.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 20.8
+Kept 2 spots out of 7.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 20.8
+Kept 2 spots out of 7.
+
+Configured tracker LAP Tracker with settings:
+ - max frame gap: 2
+ - alternative linking cost factor: 1.05
+ - linking feature penalties:
+ - linking max distance: 10.0
+ - gap closing max distance: 10.0
+ - merging feature penalties:
+ - splitting max distance: 10.0
+ - blocking value: Infinity
+ - allow gap closing: true
+ - allow track splitting: true
+ - allow track merging: true
+ - merging max distance: 10.0
+ - splitting feature penalties:
+ - cutoff percentile: 0.9
+ - gap closing feature penalties:
+
+Starting tracking process.
+Tracking done in 0.0 s.
+Found 7 tracks.
+ - avg size: 13.7 spots.
+ - min size: 2 spots.
+ - max size: 74 spots.
+
+Calculating features done in 0.0 s.
+
+Performing track filtering on the following features:
+ - on Track start below 78.0
+ - on Total distance traveled above 20.8
+Kept 2 spots out of 7.
+Saving data...
+Computing edge features:
+ - Directional change in 2 ms.
+ - Edge speed in 0 ms.
+ - Edge target in 1 ms.
+ - Edge location in 1 ms.
+Computation done in 4 ms.
+Computing track features:
+ - Branching analyzer in 0 ms.
+ - Track duration in 0 ms.
+ - Track index in 0 ms.
+ - Track location in 4 ms.
+ - Track speed in 0 ms.
+ - Track quality in 1 ms.
+ - Track motility analysis in 0 ms.
+Computation done in 6 ms.
+--------------------
+Warnings occurred during reading the file:
+--------------------
+Cannot read image file: /mnt/data/Code/pycellin/sample_data/FakeTracks.tif.
+--------------------
+File loaded on Tue, 17 Oct 2023 18:15:18
+TrackMate v8.0.0-SNAPSHOT-f411154ed1a4b9de350bbfe91c230cf3ae7639a3
+Please note that TrackMate is available through Fiji, and is based on a publication. If you use it successfully for your research please be so kind to cite our work:
+Ershov, D., Phan, MS., Pylvänäinen, J.W., Rigaud S.U., et al. TrackMate 7: integrating state-of-the-art segmentation algorithms into tracking pipelines. Nat Methods (2022). https://doi.org/10.1038/s41592-022-01507-1
+https://doi.org/10.1038/s41592-022-01507-1
+and / or:
+Tinevez, JY.; Perry, N. & Schindelin, J. et al. (2017), 'TrackMate: An open and extensible platform for single-particle tracking.', Methods 115: 80-90, PMID 27713081.
+https://www.sciencedirect.com/science/article/pii/S1046202316303346
+Saving data...
+Warning: The source image does not match a file on the system.TrackMate won't be able to reload it when opening this XML file.
+To fix this, save the source image to a TIF file before saving the TrackMate session.
+Computing edge features:
+ - Directional change in 4 ms.
+ - Edge speed in 14 ms.
+ - Edge target in 11 ms.
+ - Edge location in 5 ms.
+Computation done in 34 ms.
+Computing track features:
+ - Branching analyzer in 0 ms.
+ - Track duration in 3 ms.
+ - Track index in 0 ms.
+ - Track location in 0 ms.
+ - Track speed in 1 ms.
+ - Track quality in 0 ms.
+ - Track motility analysis in 1 ms.
+Computation done in 5 ms.
+--------------------
+Warnings occured during reading the file:
+--------------------
+Cannot read image file: E:\Code\pycellin\pycellin\sample_data\FakeTracks.tif.
+The detector identified by the key STARDIST_DETECTOR is unknown to TrackMate.
+--------------------
+File loaded on jeu., 18 sept. 2025 12:14:00
+TrackMate v7.14.0
+Please note that TrackMate is available through Fiji, and is based on a publication. If you use it successfully for your research please be so kind to cite our work:
+Ershov, D., Phan, MS., Pylvänäinen, J.W., Rigaud S.U., et al. TrackMate 7: integrating state-of-the-art segmentation algorithms into tracking pipelines. Nat Methods (2022). https://doi.org/10.1038/s41592-022-01507-1
+https://doi.org/10.1038/s41592-022-01507-1
+and / or:
+Tinevez, JY.; Perry, N. & Schindelin, J. et al. (2017), 'TrackMate: An open and extensible platform for single-particle tracking.', Methods 115: 80-90, PMID 27713081.
+https://www.sciencedirect.com/science/article/pii/S1046202316303346
+Some errors occurred while reading file:
+Cannot read image file: E:\Code\pycellin\pycellin\sample_data\FakeTracks.tif.
+The detector identified by the key STARDIST_DETECTOR is unknown to TrackMate.
+Saving data...
+Warning: The source image does not match a file on the system.TrackMate won't be able to reload it when opening this XML file.
+To fix this, save the source image to a TIF file before saving the TrackMate session.
+Computing edge features:
+ - Directional change in 2 ms.
+ - Edge speed in 3 ms.
+ - Edge target in 4 ms.
+ - Edge location in 1 ms.
+Computation done in 10 ms.
+Computing track features:
+ - Branching analyzer in 0 ms.
+ - Track duration in 0 ms.
+ - Track index in 0 ms.
+ - Track location in 1 ms.
+ - Track speed in 0 ms.
+ - Track quality in 0 ms.
+ - Track motility analysis in 0 ms.
+Computation done in 1 ms.
@@ -381,16 +379,14 @@ Computation done in 5 ms.
-
+
3.2307692307692335 0.11538461538461542 3.2307692307692335 1.1153846153846154 2.2307692307692335 1.1153846153846154 2.2307692307692335 2.1153846153846154 2.2307692307692335 2.1153846153846154 1.2307692307692335 2.1153846153846154 1.2307692307692335 2.1153846153846154 0.2307692307692335 3.1153846153846154 0.2307692307692335 3.1153846153846154 -0.7692307692307665 3.1153846153846154 -0.7692307692307665 3.1153846153846154 -1.7692307692307665 2.1153846153846154 -1.7692307692307665 2.1153846153846154 -1.7692307692307665 2.1153846153846154 -2.7692307692307665 1.1153846153846154 -2.7692307692307665 1.1153846153846154 -2.7692307692307665 0.11538461538461542 -2.7692307692307665 0.11538461538461542 -2.7692307692307665 -0.8846153846153846 -2.7692307692307665 -1.8846153846153846 -1.7692307692307665 -1.8846153846153846 -1.7692307692307665 -1.8846153846153846 -0.7692307692307665 -2.8846153846153846 -0.7692307692307665 -2.8846153846153846 0.2307692307692335 -2.8846153846153846 1.2307692307692335 -2.8846153846153846 1.2307692307692335 -2.8846153846153846 2.2307692307692335 -1.8846153846153846 2.2307692307692335 -1.8846153846153846 2.2307692307692335 -1.8846153846153846 2.2307692307692335 -0.8846153846153846 3.2307692307692335 0.11538461538461542
2.4841269841269877 0.5952380952380949 2.4841269841269877 0.5952380952380949 2.4841269841269877 1.595238095238095 1.4841269841269877 1.595238095238095 1.4841269841269877 2.595238095238095 1.4841269841269877 1.595238095238095 0.48412698412698774 2.595238095238095 0.48412698412698774 2.595238095238095 -0.5158730158730123 2.595238095238095 -0.5158730158730123 2.595238095238095 -0.5158730158730123 2.595238095238095 -1.5158730158730123 2.595238095238095 -1.5158730158730123 2.595238095238095 -1.5158730158730123 1.595238095238095 -2.5158730158730123 1.595238095238095 -2.5158730158730123 0.5952380952380949 -2.5158730158730123 0.5952380952380949 -2.5158730158730123 -0.4047619047619051 -2.5158730158730123 -0.4047619047619051 -2.5158730158730123 -1.404761904761905 -2.5158730158730123 -1.404761904761905 -1.5158730158730123 -1.404761904761905 -1.5158730158730123 -2.404761904761905 -0.5158730158730123 -2.404761904761905 -0.5158730158730123 -2.404761904761905 0.48412698412698774 -2.404761904761905 1.4841269841269877 -2.404761904761905 1.4841269841269877 -2.404761904761905 2.4841269841269877 -1.404761904761905 2.4841269841269877 -1.404761904761905 2.4841269841269877 -0.4047619047619051 2.4841269841269877 -0.4047619047619051
- 1.6091954022988517 -0.39655172413793593 2.6091954022988517 0.6034482758620641 1.6091954022988517 0.6034482758620641 2.6091954022988517 1.603448275862064 2.6091954022988517 2.603448275862064 1.6091954022988517 3.603448275862064 1.6091954022988517 3.603448275862064 0.6091954022988517 3.603448275862064 -0.3908045977011483 3.603448275862064 -0.3908045977011483 3.603448275862064 -1.3908045977011483 2.603448275862064 -1.3908045977011483 2.603448275862064 -2.3908045977011483 2.603448275862064 -2.3908045977011483 1.603448275862064 -2.3908045977011483 0.6034482758620641 -2.3908045977011483 0.6034482758620641 -2.3908045977011483 -0.39655172413793593 -2.3908045977011483 -0.39655172413793593 -1.3908045977011483 -0.39655172413793593 -2.3908045977011483 -1.396551724137936 -2.3908045977011483 -2.396551724137936 -1.3908045977011483 -2.396551724137936 -1.3908045977011483 -3.396551724137936 -0.3908045977011483 -3.396551724137936 -0.3908045977011483 -4.396551724137936 0.6091954022988517 -4.396551724137936 1.6091954022988517 -3.396551724137936 1.6091954022988517 -2.396551724137936 1.6091954022988517 -2.396551724137936 1.6091954022988517 -1.396551724137936 1.6091954022988517 -0.39655172413793593 1.6091954022988517 -0.39655172413793593
- 1.7708333333333286 -1.3125 1.7708333333333286 -1.3125 1.7708333333333286 -1.3125 2.7708333333333286 -0.3125 2.7708333333333286 0.6875 1.7708333333333286 1.6875 1.7708333333333286 2.6875 0.7708333333333286 4.6875 -0.2291666666666714 4.6875 -1.2291666666666714 3.6875 -1.2291666666666714 2.6875 -2.2291666666666714 1.6875 -2.2291666666666714 0.6875 -2.2291666666666714 -0.3125 -2.2291666666666714 -1.3125 -2.2291666666666714 -1.3125 -2.2291666666666714 -1.3125 -2.2291666666666714 -2.3125 -2.2291666666666714 -2.3125 -2.2291666666666714 -2.3125 -2.2291666666666714 -3.3125 -1.2291666666666714 -3.3125 -1.2291666666666714 -4.3125 -0.2291666666666714 -4.3125 -0.2291666666666714 -4.3125 0.7708333333333286 -4.3125 0.7708333333333286 -3.3125 1.7708333333333286 -3.3125 1.7708333333333286 -3.3125 1.7708333333333286 -2.3125 1.7708333333333286 -2.3125 1.7708333333333286 -2.3125
2.385185185185186 0.2296296296296294 2.385185185185186 1.2296296296296294 2.385185185185186 1.2296296296296294 2.385185185185186 1.2296296296296294 2.385185185185186 2.2296296296296294 1.3851851851851862 2.2296296296296294 1.3851851851851862 2.2296296296296294 0.3851851851851862 2.2296296296296294 0.3851851851851862 3.2296296296296294 -0.6148148148148138 3.2296296296296294 -0.6148148148148138 2.2296296296296294 -1.6148148148148138 2.2296296296296294 -1.6148148148148138 2.2296296296296294 -1.6148148148148138 1.2296296296296294 -2.614814814814814 1.2296296296296294 -2.614814814814814 1.2296296296296294 -2.614814814814814 0.2296296296296294 -2.614814814814814 -0.7703703703703706 -2.614814814814814 -0.7703703703703706 -2.614814814814814 -1.7703703703703706 -1.6148148148148138 -1.7703703703703706 -1.6148148148148138 -1.7703703703703706 -0.6148148148148138 -2.7703703703703706 -0.6148148148148138 -2.7703703703703706 0.3851851851851862 -2.7703703703703706 0.3851851851851862 -2.7703703703703706 1.3851851851851862 -2.7703703703703706 1.3851851851851862 -1.7703703703703706 2.385185185185186 -1.7703703703703706 2.385185185185186 -0.7703703703703706 2.385185185185186 -0.7703703703703706 2.385185185185186 -0.7703703703703706
@@ -400,7 +396,6 @@ Computation done in 5 ms.
3.407960199004968 -0.21393034825870672 3.407960199004968 0.7860696517412933 2.407960199004968 0.7860696517412933 3.407960199004968 1.7860696517412933 2.407960199004968 2.7860696517412933 1.4079601990049682 3.7860696517412933 0.40796019900496816 2.7860696517412933 0.40796019900496816 2.7860696517412933 -0.5920398009950318 2.7860696517412933 -1.5920398009950318 2.7860696517412933 -1.5920398009950318 2.7860696517412933 -2.592039800995032 1.7860696517412933 -2.592039800995032 1.7860696517412933 -2.592039800995032 0.7860696517412933 -2.592039800995032 0.7860696517412933 -3.592039800995032 -0.21393034825870672 -3.592039800995032 -0.21393034825870672 -3.592039800995032 -1.2139303482587067 -3.592039800995032 -1.2139303482587067 -2.592039800995032 -2.2139303482587067 -2.592039800995032 -2.2139303482587067 -2.592039800995032 -2.2139303482587067 -1.5920398009950318 -3.2139303482587067 -1.5920398009950318 -3.2139303482587067 -0.5920398009950318 -3.2139303482587067 -0.5920398009950318 -3.2139303482587067 0.40796019900496816 -3.2139303482587067 1.4079601990049682 -3.2139303482587067 1.4079601990049682 -2.2139303482587067 2.407960199004968 -2.2139303482587067 2.407960199004968 -1.2139303482587067 2.407960199004968 -1.2139303482587067
- 1.6236559139784958 0.29032258064516725 1.6236559139784958 0.29032258064516725 1.6236559139784958 0.29032258064516725 2.623655913978496 1.2903225806451672 2.623655913978496 2.2903225806451672 1.6236559139784958 3.2903225806451672 1.6236559139784958 3.2903225806451672 0.6236559139784958 4.290322580645167 -0.37634408602150415 4.290322580645167 -1.3763440860215042 3.2903225806451672 -1.3763440860215042 3.2903225806451672 -2.376344086021504 2.2903225806451672 -2.376344086021504 2.2903225806451672 -2.376344086021504 1.2903225806451672 -1.3763440860215042 0.29032258064516725 -2.376344086021504 0.29032258064516725 -2.376344086021504 0.29032258064516725 -2.376344086021504 -0.7096774193548328 -1.3763440860215042 -0.7096774193548328 -2.376344086021504 -1.7096774193548328 -2.376344086021504 -1.7096774193548328 -1.3763440860215042 -2.7096774193548328 -1.3763440860215042 -3.7096774193548328 -1.3763440860215042 -3.7096774193548328 -0.37634408602150415 -4.709677419354833 0.6236559139784958 -4.709677419354833 1.6236559139784958 -3.7096774193548328 1.6236559139784958 -2.7096774193548328 1.6236559139784958 -2.7096774193548328 1.6236559139784958 -1.7096774193548328 1.6236559139784958 -0.7096774193548328 1.6236559139784958 -0.7096774193548328
2.2222222222222214 -0.08333333333333215 2.2222222222222214 0.9166666666666679 2.2222222222222214 0.9166666666666679 2.2222222222222214 0.9166666666666679 2.2222222222222214 1.9166666666666679 1.2222222222222214 1.9166666666666679 1.2222222222222214 1.9166666666666679 1.2222222222222214 2.916666666666668 0.22222222222222143 2.916666666666668 0.22222222222222143 2.916666666666668 0.22222222222222143 2.916666666666668 -0.7777777777777786 2.916666666666668 -1.7777777777777786 2.916666666666668 -1.7777777777777786 1.9166666666666679 -1.7777777777777786 1.9166666666666679 -2.7777777777777786 0.9166666666666679 -2.7777777777777786 -0.08333333333333215 -2.7777777777777786 -0.08333333333333215 -1.7777777777777786 -1.0833333333333321 -2.7777777777777786 -2.083333333333332 -1.7777777777777786 -2.083333333333332 -0.7777777777777786 -2.083333333333332 -0.7777777777777786 -2.083333333333332 0.22222222222222143 -3.083333333333332 0.22222222222222143 -3.083333333333332 1.2222222222222214 -3.083333333333332 2.2222222222222214 -2.083333333333332 2.2222222222222214 -2.083333333333332 3.2222222222222214 -2.083333333333332 2.2222222222222214 -1.0833333333333321 2.2222222222222214 -0.08333333333333215 2.2222222222222214 -0.08333333333333215
@@ -415,7 +410,6 @@ Computation done in 5 ms.
2.9464285714285694 0.19642857142857295 2.9464285714285694 1.196428571428573 1.9464285714285694 1.196428571428573 1.9464285714285694 2.196428571428573 1.9464285714285694 2.196428571428573 0.9464285714285694 3.196428571428573 -0.0535714285714306 3.196428571428573 -0.0535714285714306 3.196428571428573 -1.0535714285714306 3.196428571428573 -1.0535714285714306 3.196428571428573 -1.0535714285714306 2.196428571428573 -2.0535714285714306 2.196428571428573 -2.0535714285714306 2.196428571428573 -2.0535714285714306 1.196428571428573 -3.0535714285714306 1.196428571428573 -3.0535714285714306 1.196428571428573 -3.0535714285714306 0.19642857142857295 -3.0535714285714306 0.19642857142857295 -3.0535714285714306 -0.803571428571427 -3.0535714285714306 -0.803571428571427 -3.0535714285714306 -1.803571428571427 -2.0535714285714306 -1.803571428571427 -2.0535714285714306 -1.803571428571427 -1.0535714285714306 -2.803571428571427 -1.0535714285714306 -2.803571428571427 -0.0535714285714306 -2.803571428571427 0.9464285714285694 -2.803571428571427 1.9464285714285694 -2.803571428571427 1.9464285714285694 -1.803571428571427 2.9464285714285694 -1.803571428571427 2.9464285714285694 -0.803571428571427 2.9464285714285694 0.19642857142857295
2.3687943262411366 0.2269503546099294 2.3687943262411366 1.2269503546099294 2.3687943262411366 1.2269503546099294 2.3687943262411366 1.2269503546099294 2.3687943262411366 2.2269503546099294 1.3687943262411366 2.2269503546099294 1.3687943262411366 2.2269503546099294 1.3687943262411366 3.2269503546099294 0.3687943262411366 3.2269503546099294 0.3687943262411366 3.2269503546099294 -0.6312056737588634 2.2269503546099294 -0.6312056737588634 2.2269503546099294 -1.6312056737588634 2.2269503546099294 -1.6312056737588634 2.2269503546099294 -1.6312056737588634 1.2269503546099294 -2.6312056737588634 1.2269503546099294 -2.6312056737588634 0.2269503546099294 -2.6312056737588634 0.2269503546099294 -2.6312056737588634 -0.7730496453900706 -2.6312056737588634 -1.7730496453900706 -1.6312056737588634 -1.7730496453900706 -1.6312056737588634 -2.7730496453900706 -0.6312056737588634 -2.7730496453900706 0.3687943262411366 -2.7730496453900706 0.3687943262411366 -2.7730496453900706 1.3687943262411366 -2.7730496453900706 1.3687943262411366 -1.7730496453900706 2.3687943262411366 -1.7730496453900706 2.3687943262411366 -1.7730496453900706 2.3687943262411366 -0.7730496453900706 2.3687943262411366 -0.7730496453900706 2.3687943262411366 0.2269503546099294
- 1.6815920398010036 -1.507462686567166 1.6815920398010036 -1.507462686567166 1.6815920398010036 -0.5074626865671661 2.6815920398010036 0.4925373134328339 2.6815920398010036 0.4925373134328339 2.6815920398010036 2.492537313432834 1.6815920398010036 3.492537313432834 0.6815920398010036 4.492537313432834 -0.3184079601989964 4.492537313432834 -1.3184079601989964 3.492537313432834 -1.3184079601989964 2.492537313432834 -2.3184079601989964 1.492537313432834 -2.3184079601989964 0.4925373134328339 -2.3184079601989964 -0.5074626865671661 -2.3184079601989964 -0.5074626865671661 -2.3184079601989964 -1.507462686567166 -2.3184079601989964 -1.507462686567166 -2.3184079601989964 -1.507462686567166 -2.3184079601989964 -2.507462686567166 -2.3184079601989964 -2.507462686567166 -2.3184079601989964 -3.507462686567166 -1.3184079601989964 -3.507462686567166 -1.3184079601989964 -4.507462686567166 -0.3184079601989964 -4.507462686567166 -0.3184079601989964 -4.507462686567166 0.6815920398010036 -4.507462686567166 0.6815920398010036 -3.507462686567166 1.6815920398010036 -3.507462686567166 1.6815920398010036 -3.507462686567166 1.6815920398010036 -2.507462686567166 1.6815920398010036 -2.507462686567166 1.6815920398010036 -1.507462686567166
3.0 0.3717948717948687 2.0 1.3717948717948687 2.0 1.3717948717948687 2.0 2.3717948717948687 2.0 3.3717948717948687 1.0 2.3717948717948687 0.0 2.3717948717948687 0.0 2.3717948717948687 -1.0 3.3717948717948687 -1.0 3.3717948717948687 -1.0 2.3717948717948687 -2.0 2.3717948717948687 -2.0 2.3717948717948687 -2.0 1.3717948717948687 -3.0 1.3717948717948687 -3.0 1.3717948717948687 -3.0 0.3717948717948687 -3.0 0.3717948717948687 -3.0 -0.6282051282051313 -3.0 -0.6282051282051313 -3.0 -1.6282051282051313 -2.0 -1.6282051282051313 -2.0 -1.6282051282051313 -1.0 -2.6282051282051313 -1.0 -2.6282051282051313 0.0 -2.6282051282051313 1.0 -2.6282051282051313 2.0 -2.6282051282051313 2.0 -1.6282051282051313 3.0 -1.6282051282051313 3.0 -0.6282051282051313 3.0 0.3717948717948687
@@ -503,7 +497,6 @@ Computation done in 5 ms.
3.0 -0.959064327485379 3.0 0.040935672514621047 2.0 1.040935672514621 3.0 2.040935672514621 2.0 2.040935672514621 2.0 3.040935672514621 1.0 3.040935672514621 0.0 3.040935672514621 -1.0 3.040935672514621 -1.0 2.040935672514621 -2.0 2.040935672514621 -2.0 2.040935672514621 -3.0 2.040935672514621 -3.0 1.040935672514621 -3.0 0.040935672514621047 -3.0 0.040935672514621047 -3.0 -0.959064327485379 -3.0 -0.959064327485379 -3.0 -0.959064327485379 -2.0 -0.959064327485379 -2.0 -1.959064327485379 -2.0 -1.959064327485379 -2.0 -2.959064327485379 -1.0 -2.959064327485379 -1.0 -2.959064327485379 0.0 -2.959064327485379 0.0 -2.959064327485379 1.0 -2.959064327485379 2.0 -2.959064327485379 2.0 -1.959064327485379 2.0 -1.959064327485379 3.0 -0.959064327485379
- 2.5774647887323994 -1.3802816901408477 2.5774647887323994 -1.3802816901408477 1.5774647887323994 -0.3802816901408477 2.5774647887323994 0.6197183098591523 2.5774647887323994 0.6197183098591523 2.5774647887323994 2.6197183098591523 1.5774647887323994 3.6197183098591523 0.5774647887323994 4.619718309859152 -0.42253521126760063 4.619718309859152 -1.4225352112676006 3.6197183098591523 -1.4225352112676006 2.6197183098591523 -2.4225352112676006 1.6197183098591523 -2.4225352112676006 0.6197183098591523 -2.4225352112676006 -0.3802816901408477 -2.4225352112676006 -0.3802816901408477 -2.4225352112676006 -1.3802816901408477 -2.4225352112676006 -1.3802816901408477 -2.4225352112676006 -2.3802816901408477 -2.4225352112676006 -2.3802816901408477 -2.4225352112676006 -2.3802816901408477 -2.4225352112676006 -3.3802816901408477 -1.4225352112676006 -3.3802816901408477 -1.4225352112676006 -4.380281690140848 -0.42253521126760063 -4.380281690140848 -0.42253521126760063 -4.380281690140848 0.5774647887323994 -4.380281690140848 0.5774647887323994 -4.380281690140848 1.5774647887323994 -3.3802816901408477 1.5774647887323994 -3.3802816901408477 1.5774647887323994 -3.3802816901408477 1.5774647887323994 -2.3802816901408477 2.5774647887323994 -2.3802816901408477
3.006535947712422 0.16339869281044628 3.006535947712422 1.1633986928104463 2.006535947712422 1.1633986928104463 2.006535947712422 2.1633986928104463 2.006535947712422 2.1633986928104463 1.0065359477124218 2.1633986928104463 1.0065359477124218 2.1633986928104463 1.0065359477124218 3.1633986928104463 0.00653594771242183 3.1633986928104463 0.00653594771242183 3.1633986928104463 -0.9934640522875782 2.1633986928104463 -0.9934640522875782 2.1633986928104463 -1.9934640522875782 2.1633986928104463 -1.9934640522875782 2.1633986928104463 -1.9934640522875782 1.1633986928104463 -2.993464052287578 1.1633986928104463 -2.993464052287578 0.16339869281044628 -2.993464052287578 0.16339869281044628 -2.993464052287578 -0.8366013071895537 -2.993464052287578 -1.8366013071895537 -1.9934640522875782 -1.8366013071895537 -1.9934640522875782 -2.8366013071895537 -0.9934640522875782 -1.8366013071895537 0.00653594771242183 -2.8366013071895537 0.00653594771242183 -2.8366013071895537 1.0065359477124218 -2.8366013071895537 1.0065359477124218 -1.8366013071895537 2.006535947712422 -1.8366013071895537 3.006535947712422 -1.8366013071895537 3.006535947712422 -0.8366013071895537 3.006535947712422 -0.8366013071895537 3.006535947712422 0.16339869281044628
@@ -516,20 +509,15 @@ Computation done in 5 ms.
3.4303030303030297 0.04242424242423226 3.4303030303030297 0.04242424242423226 2.4303030303030297 1.0424242424242323 2.4303030303030297 1.0424242424242323 2.4303030303030297 2.0424242424242323 2.4303030303030297 2.0424242424242323 1.4303030303030297 2.0424242424242323 1.4303030303030297 3.0424242424242323 0.43030303030302974 3.0424242424242323 0.43030303030302974 3.0424242424242323 -0.5696969696969703 3.0424242424242323 -1.5696969696969703 3.0424242424242323 -1.5696969696969703 2.0424242424242323 -2.5696969696969703 2.0424242424242323 -2.5696969696969703 1.0424242424242323 -2.5696969696969703 0.04242424242423226 -2.5696969696969703 0.04242424242423226 -2.5696969696969703 -0.9575757575757677 -2.5696969696969703 -0.9575757575757677 -2.5696969696969703 -1.9575757575757677 -1.5696969696969703 -2.9575757575757677 -1.5696969696969703 -2.9575757575757677 -0.5696969696969703 -2.9575757575757677 0.43030303030302974 -2.9575757575757677 0.43030303030302974 -2.9575757575757677 1.4303030303030297 -2.9575757575757677 1.4303030303030297 -1.9575757575757677 1.4303030303030297 -1.9575757575757677 2.4303030303030297 -1.9575757575757677 2.4303030303030297 -0.9575757575757677 2.4303030303030297 -0.9575757575757677 2.4303030303030297 -0.9575757575757677
- 2.376068376068389 -1.2606837606837615 2.376068376068389 -0.26068376068376153 2.376068376068389 -0.26068376068376153 3.376068376068389 0.7393162393162385 2.376068376068389 1.7393162393162385 2.376068376068389 2.7393162393162385 1.376068376068389 3.7393162393162385 0.37606837606838894 4.7393162393162385 -0.6239316239316111 4.7393162393162385 -1.623931623931611 3.7393162393162385 -1.623931623931611 2.7393162393162385 -2.623931623931611 1.7393162393162385 -2.623931623931611 0.7393162393162385 -2.623931623931611 -0.26068376068376153 -2.623931623931611 -0.26068376068376153 -2.623931623931611 -1.2606837606837615 -2.623931623931611 -1.2606837606837615 -2.623931623931611 -2.2606837606837615 -2.623931623931611 -2.2606837606837615 -2.623931623931611 -2.2606837606837615 -2.623931623931611 -3.2606837606837615 -1.623931623931611 -3.2606837606837615 -1.623931623931611 -4.2606837606837615 -0.6239316239316111 -4.2606837606837615 -0.6239316239316111 -4.2606837606837615 0.37606837606838894 -4.2606837606837615 0.37606837606838894 -4.2606837606837615 1.376068376068389 -4.2606837606837615 1.376068376068389 -3.2606837606837615 2.376068376068389 -3.2606837606837615 2.376068376068389 -2.2606837606837615 2.376068376068389 -2.2606837606837615
3.3580246913580254 -0.9382716049382793 3.3580246913580254 0.061728395061720676 3.3580246913580254 0.061728395061720676 2.3580246913580254 1.0617283950617207 2.3580246913580254 2.0617283950617207 2.3580246913580254 2.0617283950617207 1.3580246913580254 2.0617283950617207 1.3580246913580254 2.0617283950617207 0.3580246913580254 3.0617283950617207 0.3580246913580254 3.0617283950617207 -0.6419753086419746 3.0617283950617207 -1.6419753086419746 3.0617283950617207 -1.6419753086419746 2.0617283950617207 -2.6419753086419746 2.0617283950617207 -2.6419753086419746 1.0617283950617207 -2.6419753086419746 0.061728395061720676 -2.6419753086419746 -0.9382716049382793 -2.6419753086419746 -0.9382716049382793 -2.6419753086419746 -1.9382716049382793 -1.6419753086419746 -1.9382716049382793 -1.6419753086419746 -2.9382716049382793 -0.6419753086419746 -2.9382716049382793 -0.6419753086419746 -2.9382716049382793 0.3580246913580254 -2.9382716049382793 0.3580246913580254 -2.9382716049382793 1.3580246913580254 -2.9382716049382793 1.3580246913580254 -2.9382716049382793 1.3580246913580254 -1.9382716049382793 2.3580246913580254 -1.9382716049382793 2.3580246913580254 -1.9382716049382793 2.3580246913580254 -0.9382716049382793 3.3580246913580254 -0.9382716049382793
- 1.6614583333333286 -1.3333333333333286 1.6614583333333286 -1.3333333333333286 1.6614583333333286 -0.3333333333333286 2.6614583333333286 0.6666666666666714 2.6614583333333286 0.6666666666666714 2.6614583333333286 1.6666666666666714 1.6614583333333286 3.6666666666666714 0.6614583333333286 4.666666666666671 -0.3385416666666714 3.6666666666666714 -1.3385416666666714 3.6666666666666714 -1.3385416666666714 2.6666666666666714 -2.3385416666666714 1.6666666666666714 -2.3385416666666714 0.6666666666666714 -2.3385416666666714 -0.3333333333333286 -2.3385416666666714 -0.3333333333333286 -2.3385416666666714 -1.3333333333333286 -2.3385416666666714 -1.3333333333333286 -2.3385416666666714 -2.3333333333333286 -2.3385416666666714 -2.3333333333333286 -2.3385416666666714 -2.3333333333333286 -1.3385416666666714 -3.3333333333333286 -1.3385416666666714 -3.3333333333333286 -1.3385416666666714 -4.333333333333329 -0.3385416666666714 -4.333333333333329 -0.3385416666666714 -4.333333333333329 0.6614583333333286 -4.333333333333329 0.6614583333333286 -4.333333333333329 1.6614583333333286 -3.3333333333333286 1.6614583333333286 -3.3333333333333286 1.6614583333333286 -2.3333333333333286 1.6614583333333286 -2.3333333333333286 1.6614583333333286 -2.3333333333333286
3.4303030303030297 0.04242424242423226 3.4303030303030297 0.04242424242423226 2.4303030303030297 1.0424242424242323 2.4303030303030297 1.0424242424242323 2.4303030303030297 2.0424242424242323 2.4303030303030297 2.0424242424242323 1.4303030303030297 2.0424242424242323 1.4303030303030297 3.0424242424242323 0.43030303030302974 3.0424242424242323 0.43030303030302974 3.0424242424242323 -0.5696969696969703 3.0424242424242323 -1.5696969696969703 3.0424242424242323 -1.5696969696969703 2.0424242424242323 -2.5696969696969703 2.0424242424242323 -2.5696969696969703 1.0424242424242323 -2.5696969696969703 0.04242424242423226 -2.5696969696969703 0.04242424242423226 -2.5696969696969703 -0.9575757575757677 -2.5696969696969703 -1.9575757575757677 -2.5696969696969703 -1.9575757575757677 -1.5696969696969703 -2.9575757575757677 -0.5696969696969703 -2.9575757575757677 -0.5696969696969703 -2.9575757575757677 0.43030303030302974 -2.9575757575757677 0.43030303030302974 -2.9575757575757677 1.4303030303030297 -2.9575757575757677 1.4303030303030297 -1.9575757575757677 1.4303030303030297 -1.9575757575757677 2.4303030303030297 -1.9575757575757677 2.4303030303030297 -0.9575757575757677 2.4303030303030297 -0.9575757575757677 2.4303030303030297 -0.9575757575757677
- 1.8434343434343532 -1.4848484848484844 1.8434343434343532 -1.4848484848484844 1.8434343434343532 -0.4848484848484844 2.843434343434353 0.5151515151515156 2.843434343434353 0.5151515151515156 1.8434343434343532 1.5151515151515156 1.8434343434343532 2.5151515151515156 0.8434343434343532 4.515151515151516 -0.1565656565656468 5.515151515151516 -1.1565656565656468 4.515151515151516 -1.1565656565656468 2.5151515151515156 -2.156565656565647 1.5151515151515156 -2.156565656565647 0.5151515151515156 -2.156565656565647 -0.4848484848484844 -2.156565656565647 -0.4848484848484844 -2.156565656565647 -1.4848484848484844 -2.156565656565647 -1.4848484848484844 -2.156565656565647 -1.4848484848484844 -2.156565656565647 -2.4848484848484844 -2.156565656565647 -2.4848484848484844 -2.156565656565647 -3.4848484848484844 -1.1565656565656468 -3.4848484848484844 -1.1565656565656468 -4.484848484848484 -0.1565656565656468 -4.484848484848484 -0.1565656565656468 -4.484848484848484 0.8434343434343532 -4.484848484848484 0.8434343434343532 -4.484848484848484 1.8434343434343532 -3.4848484848484844 1.8434343434343532 -3.4848484848484844 1.8434343434343532 -2.4848484848484844 1.8434343434343532 -2.4848484848484844 1.8434343434343532 -2.4848484848484844
2.2847222222222214 -0.125 2.2847222222222214 0.875 2.2847222222222214 0.875 2.2847222222222214 1.875 2.2847222222222214 2.875 1.2847222222222214 1.875 1.2847222222222214 2.875 1.2847222222222214 2.875 0.28472222222222143 2.875 0.28472222222222143 2.875 -0.7152777777777786 2.875 -0.7152777777777786 2.875 -1.7152777777777786 2.875 -1.7152777777777786 1.875 -1.7152777777777786 0.875 -2.7152777777777786 0.875 -2.7152777777777786 -0.125 -2.7152777777777786 -0.125 -2.7152777777777786 -1.125 -2.7152777777777786 -1.125 -1.7152777777777786 -2.125 -1.7152777777777786 -2.125 -0.7152777777777786 -2.125 -0.7152777777777786 -3.125 0.28472222222222143 -3.125 1.2847222222222214 -3.125 1.2847222222222214 -2.125 2.2847222222222214 -2.125 2.2847222222222214 -2.125 2.2847222222222214 -1.125 2.2847222222222214 -0.125 2.2847222222222214 -0.125
- 2.414285714285711 -0.48571428571428044 2.414285714285711 0.5142857142857196 2.414285714285711 0.5142857142857196 2.414285714285711 1.5142857142857196 2.414285714285711 2.5142857142857196 2.414285714285711 3.5142857142857196 1.414285714285711 3.5142857142857196 0.41428571428571104 4.51428571428572 -0.585714285714289 4.51428571428572 -0.585714285714289 3.5142857142857196 -1.585714285714289 2.5142857142857196 -1.585714285714289 2.5142857142857196 -2.585714285714289 2.5142857142857196 -2.585714285714289 1.5142857142857196 -2.585714285714289 0.5142857142857196 -2.585714285714289 0.5142857142857196 -2.585714285714289 -0.48571428571428044 -2.585714285714289 -0.48571428571428044 -2.585714285714289 -0.48571428571428044 -2.585714285714289 -1.4857142857142804 -2.585714285714289 -2.4857142857142804 -1.585714285714289 -2.4857142857142804 -1.585714285714289 -3.4857142857142804 -1.585714285714289 -3.4857142857142804 -0.585714285714289 -4.48571428571428 0.41428571428571104 -4.48571428571428 1.414285714285711 -3.4857142857142804 1.414285714285711 -2.4857142857142804 2.414285714285711 -2.4857142857142804 2.414285714285711 -1.4857142857142804 2.414285714285711 -0.48571428571428044 2.414285714285711 -0.48571428571428044
- 2.4761904761904674 0.05442176870748483 2.4761904761904674 0.05442176870748483 2.4761904761904674 1.0544217687074848 2.4761904761904674 1.0544217687074848 2.4761904761904674 2.054421768707485 1.4761904761904674 2.054421768707485 1.4761904761904674 2.054421768707485 0.4761904761904674 3.054421768707485 0.4761904761904674 3.054421768707485 -0.5238095238095326 3.054421768707485 -1.5238095238095326 2.054421768707485 -1.5238095238095326 2.054421768707485 -2.5238095238095326 2.054421768707485 -2.5238095238095326 1.0544217687074848 -2.5238095238095326 1.0544217687074848 -2.5238095238095326 0.05442176870748483 -2.5238095238095326 0.05442176870748483 -2.5238095238095326 -0.9455782312925152 -2.5238095238095326 -0.9455782312925152 -2.5238095238095326 -1.9455782312925152 -1.5238095238095326 -1.9455782312925152 -1.5238095238095326 -1.9455782312925152 -0.5238095238095326 -2.945578231292515 -0.5238095238095326 -2.945578231292515 0.4761904761904674 -2.945578231292515 0.4761904761904674 -2.945578231292515 0.4761904761904674 -2.945578231292515 1.4761904761904674 -2.945578231292515 1.4761904761904674 -1.9455782312925152 2.4761904761904674 -1.9455782312925152 2.4761904761904674 -0.9455782312925152 2.4761904761904674 -0.9455782312925152
3.35220125786163 -0.03144654088050913 3.35220125786163 -0.03144654088050913 2.35220125786163 0.9685534591194909 2.35220125786163 0.9685534591194909 2.35220125786163 1.9685534591194909 2.35220125786163 1.9685534591194909 1.3522012578616298 1.9685534591194909 1.3522012578616298 2.968553459119491 0.3522012578616298 2.968553459119491 0.3522012578616298 2.968553459119491 -0.6477987421383702 2.968553459119491 -1.6477987421383702 2.968553459119491 -1.6477987421383702 1.9685534591194909 -2.64779874213837 1.9685534591194909 -2.64779874213837 0.9685534591194909 -2.64779874213837 -0.03144654088050913 -2.64779874213837 -0.03144654088050913 -2.64779874213837 -1.0314465408805091 -2.64779874213837 -1.0314465408805091 -1.6477987421383702 -2.031446540880509 -1.6477987421383702 -3.031446540880509 -0.6477987421383702 -3.031446540880509 -0.6477987421383702 -3.031446540880509 0.3522012578616298 -3.031446540880509 0.3522012578616298 -3.031446540880509 1.3522012578616298 -3.031446540880509 1.3522012578616298 -3.031446540880509 1.3522012578616298 -2.031446540880509 2.35220125786163 -2.031446540880509 2.35220125786163 -1.0314465408805091 2.35220125786163 -1.0314465408805091 2.35220125786163 -1.0314465408805091
@@ -539,12 +527,9 @@ Computation done in 5 ms.
2.56944444444445 -0.6666666666666714 3.56944444444445 0.3333333333333286 2.56944444444445 0.3333333333333286 2.56944444444445 1.3333333333333286 2.56944444444445 1.3333333333333286 1.56944444444445 1.3333333333333286 1.56944444444445 2.3333333333333286 1.56944444444445 2.3333333333333286 0.56944444444445 3.3333333333333286 0.56944444444445 2.3333333333333286 -0.43055555555555003 2.3333333333333286 -1.43055555555555 3.3333333333333286 -1.43055555555555 2.3333333333333286 -2.43055555555555 2.3333333333333286 -2.43055555555555 1.3333333333333286 -2.43055555555555 0.3333333333333286 -2.43055555555555 -0.6666666666666714 -2.43055555555555 -0.6666666666666714 -2.43055555555555 -1.6666666666666714 -2.43055555555555 -1.6666666666666714 -1.43055555555555 -2.6666666666666714 -0.43055555555555003 -2.6666666666666714 -0.43055555555555003 -2.6666666666666714 0.56944444444445 -2.6666666666666714 0.56944444444445 -2.6666666666666714 1.56944444444445 -2.6666666666666714 1.56944444444445 -2.6666666666666714 1.56944444444445 -1.6666666666666714 2.56944444444445 -1.6666666666666714 2.56944444444445 -1.6666666666666714 2.56944444444445 -0.6666666666666714 2.56944444444445 -0.6666666666666714
- 2.9666666666666686 -0.98888888888888 2.9666666666666686 0.011111111111119953 2.9666666666666686 1.01111111111112 2.9666666666666686 2.01111111111112 1.9666666666666686 2.01111111111112 1.9666666666666686 3.01111111111112 0.9666666666666686 3.01111111111112 -0.03333333333333144 3.01111111111112 -1.0333333333333314 3.01111111111112 -1.0333333333333314 2.01111111111112 -2.0333333333333314 2.01111111111112 -2.0333333333333314 2.01111111111112 -3.0333333333333314 2.01111111111112 -3.0333333333333314 1.01111111111112 -3.0333333333333314 0.011111111111119953 -3.0333333333333314 0.011111111111119953 -3.0333333333333314 -0.98888888888888 -3.0333333333333314 -0.98888888888888 -3.0333333333333314 -1.98888888888888 -2.0333333333333314 -1.98888888888888 -2.0333333333333314 -1.98888888888888 -2.0333333333333314 -1.98888888888888 -1.0333333333333314 -2.98888888888888 -1.0333333333333314 -2.98888888888888 -1.0333333333333314 -2.98888888888888 -0.03333333333333144 -2.98888888888888 -0.03333333333333144 -2.98888888888888 0.9666666666666686 -2.98888888888888 1.9666666666666686 -2.98888888888888 1.9666666666666686 -1.98888888888888 1.9666666666666686 -1.98888888888888 2.9666666666666686 -0.98888888888888
- 2.6309523809523796 -0.6547619047619122 2.6309523809523796 -0.6547619047619122 1.6309523809523796 0.3452380952380878 2.6309523809523796 1.3452380952380878 2.6309523809523796 1.3452380952380878 2.6309523809523796 2.345238095238088 1.6309523809523796 3.345238095238088 0.6309523809523796 3.345238095238088 -0.3690476190476204 3.345238095238088 -0.3690476190476204 3.345238095238088 -1.3690476190476204 2.345238095238088 -2.3690476190476204 2.345238095238088 -2.3690476190476204 1.3452380952380878 -2.3690476190476204 0.3452380952380878 -2.3690476190476204 0.3452380952380878 -2.3690476190476204 -0.6547619047619122 -2.3690476190476204 -0.6547619047619122 -2.3690476190476204 -1.6547619047619122 -2.3690476190476204 -1.6547619047619122 -2.3690476190476204 -1.6547619047619122 -2.3690476190476204 -2.654761904761912 -1.3690476190476204 -2.654761904761912 -1.3690476190476204 -3.654761904761912 -0.3690476190476204 -3.654761904761912 -0.3690476190476204 -3.654761904761912 0.6309523809523796 -3.654761904761912 0.6309523809523796 -2.654761904761912 1.6309523809523796 -2.654761904761912 1.6309523809523796 -2.654761904761912 1.6309523809523796 -1.6547619047619122 1.6309523809523796 -1.6547619047619122 2.6309523809523796 -1.6547619047619122
3.1886792452830193 0.12578616352202232 3.1886792452830193 1.1257861635220223 2.1886792452830193 1.1257861635220223 2.1886792452830193 1.1257861635220223 2.1886792452830193 2.1257861635220223 1.1886792452830193 2.1257861635220223 1.1886792452830193 2.1257861635220223 1.1886792452830193 3.1257861635220223 0.18867924528301927 3.1257861635220223 0.18867924528301927 3.1257861635220223 -0.8113207547169807 3.1257861635220223 -0.8113207547169807 2.1257861635220223 -1.8113207547169807 3.1257861635220223 -1.8113207547169807 2.1257861635220223 -1.8113207547169807 1.1257861635220223 -2.8113207547169807 1.1257861635220223 -2.8113207547169807 0.12578616352202232 -2.8113207547169807 0.12578616352202232 -2.8113207547169807 -0.8742138364779777 -2.8113207547169807 -1.8742138364779777 -1.8113207547169807 -1.8742138364779777 -1.8113207547169807 -2.8742138364779777 -0.8113207547169807 -2.8742138364779777 0.18867924528301927 -2.8742138364779777 0.18867924528301927 -2.8742138364779777 1.1886792452830193 -2.8742138364779777 1.1886792452830193 -1.8742138364779777 2.1886792452830193 -1.8742138364779777 3.1886792452830193 -1.8742138364779777 2.1886792452830193 -0.8742138364779777 2.1886792452830193 -0.8742138364779777 3.1886792452830193 0.12578616352202232
- 1.7384615384615358 -1.3589743589743506 2.738461538461536 -1.3589743589743506 1.7384615384615358 -0.3589743589743506 2.738461538461536 0.6410256410256494 2.738461538461536 0.6410256410256494 2.738461538461536 1.6410256410256494 1.7384615384615358 2.6410256410256494 0.7384615384615358 4.641025641025649 -0.26153846153846416 4.641025641025649 -1.2615384615384642 3.6410256410256494 -1.2615384615384642 2.6410256410256494 -2.261538461538464 1.6410256410256494 -2.261538461538464 0.6410256410256494 -2.261538461538464 -0.3589743589743506 -2.261538461538464 -0.3589743589743506 -2.261538461538464 -1.3589743589743506 -2.261538461538464 -1.3589743589743506 -2.261538461538464 -2.3589743589743506 -2.261538461538464 -2.3589743589743506 -2.261538461538464 -2.3589743589743506 -2.261538461538464 -3.3589743589743506 -1.2615384615384642 -3.3589743589743506 -1.2615384615384642 -4.358974358974351 -0.26153846153846416 -4.358974358974351 -0.26153846153846416 -4.358974358974351 0.7384615384615358 -4.358974358974351 0.7384615384615358 -3.3589743589743506 1.7384615384615358 -3.3589743589743506 1.7384615384615358 -3.3589743589743506 1.7384615384615358 -2.3589743589743506 1.7384615384615358 -2.3589743589743506 1.7384615384615358 -2.3589743589743506
3.1695906432748515 -0.1169590643274887 3.1695906432748515 -0.1169590643274887 2.1695906432748515 -0.1169590643274887 3.1695906432748515 0.8830409356725113 3.1695906432748515 1.8830409356725113 2.1695906432748515 1.8830409356725113 2.1695906432748515 1.8830409356725113 1.1695906432748515 2.8830409356725113 0.16959064327485152 2.8830409356725113 0.16959064327485152 2.8830409356725113 -0.8304093567251485 2.8830409356725113 -1.8304093567251485 2.8830409356725113 -1.8304093567251485 1.8830409356725113 -2.8304093567251485 1.8830409356725113 -2.8304093567251485 0.8830409356725113 -2.8304093567251485 -0.1169590643274887 -2.8304093567251485 -0.1169590643274887 -2.8304093567251485 -1.1169590643274887 -1.8304093567251485 -2.1169590643274887 -1.8304093567251485 -2.1169590643274887 -1.8304093567251485 -3.1169590643274887 -0.8304093567251485 -3.1169590643274887 0.16959064327485152 -3.1169590643274887 0.16959064327485152 -3.1169590643274887 0.16959064327485152 -3.1169590643274887 1.1695906432748515 -3.1169590643274887 1.1695906432748515 -2.1169590643274887 2.1695906432748515 -2.1169590643274887 2.1695906432748515 -2.1169590643274887 2.1695906432748515 -2.1169590643274887 2.1695906432748515 -1.1169590643274887 3.1695906432748515 -1.1169590643274887
@@ -553,7 +538,6 @@ Computation done in 5 ms.
3.0961538461538467 -0.0448717948717956 3.0961538461538467 0.9551282051282044 2.0961538461538467 0.9551282051282044 2.0961538461538467 0.9551282051282044 2.0961538461538467 1.9551282051282044 2.0961538461538467 1.9551282051282044 1.0961538461538467 1.9551282051282044 1.0961538461538467 2.9551282051282044 1.0961538461538467 2.9551282051282044 0.0961538461538467 2.9551282051282044 0.0961538461538467 2.9551282051282044 -0.9038461538461533 2.9551282051282044 -1.9038461538461533 2.9551282051282044 -1.9038461538461533 1.9551282051282044 -1.9038461538461533 1.9551282051282044 -2.9038461538461533 0.9551282051282044 -2.9038461538461533 -0.0448717948717956 -2.9038461538461533 -0.0448717948717956 -1.9038461538461533 -1.0448717948717956 -2.9038461538461533 -2.0448717948717956 -1.9038461538461533 -2.0448717948717956 -1.9038461538461533 -3.0448717948717956 -0.9038461538461533 -2.0448717948717956 0.0961538461538467 -3.0448717948717956 1.0961538461538467 -3.0448717948717956 1.0961538461538467 -3.0448717948717956 2.0961538461538467 -2.0448717948717956 2.0961538461538467 -2.0448717948717956 3.0961538461538467 -2.0448717948717956 2.0961538461538467 -1.0448717948717956 3.0961538461538467 -0.0448717948717956 3.0961538461538467 -0.0448717948717956
3.054421768707485 0.5238095238095255 2.054421768707485 1.5238095238095255 2.054421768707485 1.5238095238095255 1.0544217687074848 2.5238095238095255 1.0544217687074848 2.5238095238095255 0.05442176870748483 2.5238095238095255 0.05442176870748483 2.5238095238095255 0.05442176870748483 2.5238095238095255 -0.9455782312925152 2.5238095238095255 -0.9455782312925152 2.5238095238095255 -0.9455782312925152 2.5238095238095255 -1.9455782312925152 2.5238095238095255 -1.9455782312925152 2.5238095238095255 -1.9455782312925152 1.5238095238095255 -2.945578231292515 1.5238095238095255 -2.945578231292515 1.5238095238095255 -2.945578231292515 0.5238095238095255 -2.945578231292515 0.5238095238095255 -2.945578231292515 -0.4761904761904745 -2.945578231292515 -0.4761904761904745 -2.945578231292515 -1.4761904761904745 -1.9455782312925152 -1.4761904761904745 -1.9455782312925152 -1.4761904761904745 -0.9455782312925152 -2.4761904761904745 -0.9455782312925152 -2.4761904761904745 0.05442176870748483 -2.4761904761904745 1.0544217687074848 -2.4761904761904745 2.054421768707485 -2.4761904761904745 2.054421768707485 -1.4761904761904745 3.054421768707485 -1.4761904761904745 3.054421768707485 -0.4761904761904745 3.054421768707485 0.5238095238095255
- 1.7704918032786878 -1.207650273224047 1.7704918032786878 -1.207650273224047 1.7704918032786878 -0.20765027322404706 2.770491803278688 0.792349726775953 2.770491803278688 0.792349726775953 1.7704918032786878 1.792349726775953 1.7704918032786878 2.792349726775953 0.7704918032786878 4.792349726775953 -0.22950819672131217 4.792349726775953 -1.2295081967213122 3.792349726775953 -1.2295081967213122 1.792349726775953 -2.229508196721312 0.792349726775953 -2.229508196721312 0.792349726775953 -2.229508196721312 -0.20765027322404706 -2.229508196721312 -0.20765027322404706 -2.229508196721312 -1.207650273224047 -2.229508196721312 -1.207650273224047 -2.229508196721312 -2.207650273224047 -2.229508196721312 -2.207650273224047 -2.229508196721312 -2.207650273224047 -2.229508196721312 -3.207650273224047 -1.2295081967213122 -3.207650273224047 -1.2295081967213122 -4.207650273224047 -0.22950819672131217 -4.207650273224047 -0.22950819672131217 -4.207650273224047 0.7704918032786878 -4.207650273224047 0.7704918032786878 -4.207650273224047 1.7704918032786878 -3.207650273224047 1.7704918032786878 -3.207650273224047 1.7704918032786878 -2.207650273224047 1.7704918032786878 -2.207650273224047 1.7704918032786878 -2.207650273224047
3.0 1.2666666666666693 2.0 1.2666666666666693 2.0 2.2666666666666693 2.0 2.2666666666666693 2.0 3.2666666666666693 1.0 2.2666666666666693 0.0 2.2666666666666693 0.0 3.2666666666666693 0.0 3.2666666666666693 -1.0 3.2666666666666693 -1.0 2.2666666666666693 -2.0 2.2666666666666693 -2.0 2.2666666666666693 -2.0 2.2666666666666693 -3.0 1.2666666666666693 -3.0 1.2666666666666693 -3.0 1.2666666666666693 -3.0 0.26666666666666927 -3.0 0.26666666666666927 -3.0 -0.7333333333333307 -3.0 -1.7333333333333307 -2.0 -1.7333333333333307 -2.0 -1.7333333333333307 -1.0 -2.7333333333333307 0.0 -2.7333333333333307 0.0 -2.7333333333333307 1.0 -2.7333333333333307 2.0 -2.7333333333333307 2.0 -1.7333333333333307 3.0 -1.7333333333333307 3.0 -0.7333333333333307 3.0 0.26666666666666927
@@ -561,7 +545,6 @@ Computation done in 5 ms.
2.3115942028985472 0.4782608695652186 2.3115942028985472 1.4782608695652186 2.3115942028985472 1.4782608695652186 2.3115942028985472 2.4782608695652186 2.3115942028985472 2.4782608695652186 1.3115942028985472 2.4782608695652186 0.3115942028985472 2.4782608695652186 0.3115942028985472 2.4782608695652186 -0.6884057971014528 2.4782608695652186 -0.6884057971014528 2.4782608695652186 -0.6884057971014528 2.4782608695652186 -1.6884057971014528 2.4782608695652186 -1.6884057971014528 2.4782608695652186 -1.6884057971014528 1.4782608695652186 -2.6884057971014528 1.4782608695652186 -2.6884057971014528 1.4782608695652186 -2.6884057971014528 0.4782608695652186 -2.6884057971014528 0.4782608695652186 -2.6884057971014528 -0.5217391304347814 -2.6884057971014528 -0.5217391304347814 -2.6884057971014528 -1.5217391304347814 -1.6884057971014528 -1.5217391304347814 -1.6884057971014528 -2.5217391304347814 -0.6884057971014528 -2.5217391304347814 -0.6884057971014528 -2.5217391304347814 0.3115942028985472 -2.5217391304347814 1.3115942028985472 -2.5217391304347814 1.3115942028985472 -2.5217391304347814 2.3115942028985472 -1.5217391304347814 3.3115942028985472 -1.5217391304347814 2.3115942028985472 -0.5217391304347814 2.3115942028985472 0.4782608695652186
- 1.6145833333333286 -0.515625 2.6145833333333286 0.484375 2.6145833333333286 0.484375 2.6145833333333286 1.484375 2.6145833333333286 2.484375 1.6145833333333286 3.484375 1.6145833333333286 3.484375 0.6145833333333286 4.484375 -0.3854166666666714 3.484375 -1.3854166666666714 3.484375 -1.3854166666666714 2.484375 -2.3854166666666714 2.484375 -2.3854166666666714 1.484375 -2.3854166666666714 1.484375 -2.3854166666666714 0.484375 -2.3854166666666714 0.484375 -2.3854166666666714 -0.515625 -2.3854166666666714 -0.515625 -2.3854166666666714 -0.515625 -2.3854166666666714 -1.515625 -2.3854166666666714 -2.515625 -1.3854166666666714 -2.515625 -1.3854166666666714 -3.515625 -1.3854166666666714 -3.515625 -0.3854166666666714 -4.515625 0.6145833333333286 -4.515625 1.6145833333333286 -3.515625 1.6145833333333286 -2.515625 1.6145833333333286 -2.515625 1.6145833333333286 -1.515625 1.6145833333333286 -1.515625 1.6145833333333286 -0.515625
3.0493827160493936 0.2839506172839492 2.0493827160493936 1.2839506172839492 2.0493827160493936 2.283950617283949 2.0493827160493936 2.283950617283949 2.0493827160493936 3.283950617283949 1.0493827160493936 2.283950617283949 0.049382716049393593 2.283950617283949 0.049382716049393593 2.283950617283949 0.049382716049393593 3.283950617283949 -0.9506172839506064 3.283950617283949 -0.9506172839506064 2.283950617283949 -1.9506172839506064 2.283950617283949 -1.9506172839506064 2.283950617283949 -1.9506172839506064 2.283950617283949 -2.9506172839506064 1.2839506172839492 -2.9506172839506064 1.2839506172839492 -2.9506172839506064 0.2839506172839492 -2.9506172839506064 0.2839506172839492 -2.9506172839506064 -0.7160493827160508 -2.9506172839506064 -0.7160493827160508 -2.9506172839506064 -1.7160493827160508 -1.9506172839506064 -1.7160493827160508 -1.9506172839506064 -1.7160493827160508 -0.9506172839506064 -2.716049382716051 0.049382716049393593 -2.716049382716051 0.049382716049393593 -2.716049382716051 1.0493827160493936 -2.716049382716051 2.0493827160493936 -2.716049382716051 2.0493827160493936 -1.7160493827160508 3.0493827160493936 -1.7160493827160508 3.0493827160493936 -0.7160493827160508 3.0493827160493936 0.2839506172839492
@@ -569,7 +552,6 @@ Computation done in 5 ms.
3.038461538461533 0.3653846153846132 2.038461538461533 1.3653846153846132 2.038461538461533 1.3653846153846132 2.038461538461533 2.365384615384613 2.038461538461533 2.365384615384613 1.038461538461533 2.365384615384613 0.038461538461532996 2.365384615384613 0.038461538461532996 2.365384615384613 0.038461538461532996 3.365384615384613 -0.961538461538467 3.365384615384613 -0.961538461538467 2.365384615384613 -1.961538461538467 2.365384615384613 -1.961538461538467 2.365384615384613 -1.961538461538467 1.3653846153846132 -2.961538461538467 1.3653846153846132 -2.961538461538467 1.3653846153846132 -2.961538461538467 0.3653846153846132 -2.961538461538467 0.3653846153846132 -2.961538461538467 -0.6346153846153868 -2.961538461538467 -0.6346153846153868 -2.961538461538467 -1.6346153846153868 -1.961538461538467 -1.6346153846153868 -1.961538461538467 -1.6346153846153868 -0.961538461538467 -2.634615384615387 0.038461538461532996 -2.634615384615387 0.038461538461532996 -2.634615384615387 1.038461538461533 -2.634615384615387 2.038461538461533 -2.634615384615387 2.038461538461533 -1.6346153846153868 3.038461538461533 -1.6346153846153868 3.038461538461533 -0.6346153846153868 3.038461538461533 0.3653846153846132
- 1.8797814207650276 -1.3060109289617543 1.8797814207650276 -1.3060109289617543 1.8797814207650276 -0.3060109289617543 2.8797814207650276 0.6939890710382457 1.8797814207650276 0.6939890710382457 1.8797814207650276 1.6939890710382457 1.8797814207650276 2.6939890710382457 0.8797814207650276 4.693989071038246 -0.12021857923497237 4.693989071038246 -1.1202185792349724 3.6939890710382457 -1.1202185792349724 2.6939890710382457 -2.1202185792349724 1.6939890710382457 -2.1202185792349724 0.6939890710382457 -2.1202185792349724 -0.3060109289617543 -2.1202185792349724 -0.3060109289617543 -2.1202185792349724 -1.3060109289617543 -2.1202185792349724 -1.3060109289617543 -2.1202185792349724 -1.3060109289617543 -2.1202185792349724 -2.3060109289617543 -2.1202185792349724 -2.3060109289617543 -2.1202185792349724 -3.3060109289617543 -1.1202185792349724 -3.3060109289617543 -1.1202185792349724 -4.306010928961754 -0.12021857923497237 -4.306010928961754 -0.12021857923497237 -4.306010928961754 0.8797814207650276 -4.306010928961754 0.8797814207650276 -3.3060109289617543 1.8797814207650276 -3.3060109289617543 1.8797814207650276 -3.3060109289617543 1.8797814207650276 -2.3060109289617543 1.8797814207650276 -2.3060109289617543 1.8797814207650276 -1.3060109289617543
3.0 0.3717948717948758 2.0 1.3717948717948758 2.0 2.371794871794876 2.0 2.371794871794876 2.0 3.371794871794876 1.0 2.371794871794876 0.0 2.371794871794876 0.0 2.371794871794876 -1.0 3.371794871794876 -1.0 3.371794871794876 -1.0 2.371794871794876 -2.0 2.371794871794876 -2.0 2.371794871794876 -2.0 1.3717948717948758 -3.0 1.3717948717948758 -3.0 1.3717948717948758 -3.0 0.3717948717948758 -3.0 0.3717948717948758 -3.0 -0.6282051282051242 -3.0 -0.6282051282051242 -3.0 -1.6282051282051242 -2.0 -1.6282051282051242 -2.0 -1.6282051282051242 -1.0 -2.628205128205124 -1.0 -2.628205128205124 0.0 -2.628205128205124 1.0 -2.628205128205124 2.0 -2.628205128205124 2.0 -1.6282051282051242 3.0 -1.6282051282051242 3.0 -0.6282051282051242 3.0 0.3717948717948758
@@ -580,118 +562,97 @@ Computation done in 5 ms.
2.962962962962962 0.2654320987654373 1.962962962962962 1.2654320987654373 1.962962962962962 2.2654320987654373 1.962962962962962 2.2654320987654373 1.962962962962962 3.2654320987654373 0.9629629629629619 3.2654320987654373 -0.03703703703703809 2.2654320987654373 -0.03703703703703809 2.2654320987654373 -1.037037037037038 3.2654320987654373 -1.037037037037038 3.2654320987654373 -1.037037037037038 2.2654320987654373 -2.037037037037038 2.2654320987654373 -2.037037037037038 2.2654320987654373 -2.037037037037038 1.2654320987654373 -3.037037037037038 1.2654320987654373 -3.037037037037038 1.2654320987654373 -3.037037037037038 0.2654320987654373 -3.037037037037038 0.2654320987654373 -3.037037037037038 0.2654320987654373 -3.037037037037038 -0.7345679012345627 -3.037037037037038 -1.7345679012345627 -2.037037037037038 -1.7345679012345627 -2.037037037037038 -1.7345679012345627 -1.037037037037038 -2.7345679012345627 -1.037037037037038 -2.7345679012345627 -0.03703703703703809 -2.7345679012345627 0.9629629629629619 -2.7345679012345627 1.962962962962962 -2.7345679012345627 1.962962962962962 -1.7345679012345627 2.962962962962962 -1.7345679012345627 2.962962962962962 -0.7345679012345627 2.962962962962962 0.2654320987654373
- 3.1773049645390046 0.21985815602836567 3.1773049645390046 0.21985815602836567 2.1773049645390046 1.2198581560283657 2.1773049645390046 1.2198581560283657 2.1773049645390046 2.2198581560283657 2.1773049645390046 2.2198581560283657 1.1773049645390046 2.2198581560283657 0.17730496453900457 2.2198581560283657 0.17730496453900457 3.2198581560283657 -0.8226950354609954 2.2198581560283657 -0.8226950354609954 2.2198581560283657 -1.8226950354609954 2.2198581560283657 -1.8226950354609954 2.2198581560283657 -2.8226950354609954 1.2198581560283657 -2.8226950354609954 1.2198581560283657 -2.8226950354609954 0.21985815602836567 -2.8226950354609954 0.21985815602836567 -2.8226950354609954 -0.7801418439716343 -2.8226950354609954 -0.7801418439716343 -1.8226950354609954 -1.7801418439716343 -1.8226950354609954 -1.7801418439716343 -1.8226950354609954 -1.7801418439716343 -0.8226950354609954 -2.7801418439716343 -0.8226950354609954 -2.7801418439716343 0.17730496453900457 -2.7801418439716343 0.17730496453900457 -2.7801418439716343 1.1773049645390046 -1.7801418439716343 1.1773049645390046 -2.7801418439716343 2.1773049645390046 -1.7801418439716343 2.1773049645390046 -1.7801418439716343 2.1773049645390046 -0.7801418439716343 3.1773049645390046 -0.7801418439716343
- 1.8955223880597032 -1.507462686567166 2.895522388059703 -1.507462686567166 1.8955223880597032 -0.5074626865671661 2.895522388059703 0.4925373134328339 2.895522388059703 0.4925373134328339 1.8955223880597032 1.492537313432834 1.8955223880597032 2.492537313432834 0.8955223880597032 4.492537313432834 -0.10447761194029681 4.492537313432834 -1.1044776119402968 4.492537313432834 -2.104477611940297 2.492537313432834 -2.104477611940297 1.492537313432834 -2.104477611940297 0.4925373134328339 -2.104477611940297 -0.5074626865671661 -2.104477611940297 -0.5074626865671661 -2.104477611940297 -1.507462686567166 -2.104477611940297 -1.507462686567166 -2.104477611940297 -1.507462686567166 -2.104477611940297 -2.507462686567166 -2.104477611940297 -2.507462686567166 -2.104477611940297 -3.507462686567166 -1.1044776119402968 -3.507462686567166 -1.1044776119402968 -4.507462686567166 -0.10447761194029681 -4.507462686567166 -0.10447761194029681 -4.507462686567166 0.8955223880597032 -4.507462686567166 0.8955223880597032 -3.507462686567166 1.8955223880597032 -3.507462686567166 1.8955223880597032 -3.507462686567166 1.8955223880597032 -2.507462686567166 1.8955223880597032 -2.507462686567166 1.8955223880597032 -2.507462686567166
3.02873563218391 0.09195402298851008 2.02873563218391 1.09195402298851 2.02873563218391 2.09195402298851 2.02873563218391 2.09195402298851 2.02873563218391 3.09195402298851 1.0287356321839098 3.09195402298851 0.028735632183909843 3.09195402298851 0.028735632183909843 3.09195402298851 0.028735632183909843 3.09195402298851 -0.9712643678160902 3.09195402298851 -0.9712643678160902 3.09195402298851 -1.9712643678160902 2.09195402298851 -1.9712643678160902 2.09195402298851 -1.9712643678160902 2.09195402298851 -2.97126436781609 1.09195402298851 -2.97126436781609 1.09195402298851 -2.97126436781609 0.09195402298851008 -2.97126436781609 0.09195402298851008 -2.97126436781609 -0.9080459770114899 -2.97126436781609 -0.9080459770114899 -2.97126436781609 -1.90804597701149 -1.9712643678160902 -1.90804597701149 -1.9712643678160902 -1.90804597701149 -0.9712643678160902 -2.90804597701149 0.028735632183909843 -2.90804597701149 0.028735632183909843 -2.90804597701149 1.0287356321839098 -2.90804597701149 2.02873563218391 -2.90804597701149 2.02873563218391 -1.90804597701149 3.02873563218391 -1.90804597701149 3.02873563218391 -0.9080459770114899 3.02873563218391 0.09195402298851008
- 2.9354838709677438 -0.9139784946236631 2.9354838709677438 0.0860215053763369 2.9354838709677438 1.086021505376337 2.9354838709677438 1.086021505376337 2.9354838709677438 2.086021505376337 1.9354838709677438 3.086021505376337 0.9354838709677438 2.086021505376337 0.9354838709677438 3.086021505376337 -0.06451612903225623 3.086021505376337 -1.0645161290322562 3.086021505376337 -1.0645161290322562 2.086021505376337 -2.0645161290322562 2.086021505376337 -3.0645161290322562 2.086021505376337 -3.0645161290322562 1.086021505376337 -3.0645161290322562 0.0860215053763369 -3.0645161290322562 0.0860215053763369 -3.0645161290322562 -0.9139784946236631 -3.0645161290322562 -0.9139784946236631 -3.0645161290322562 -1.913978494623663 -2.0645161290322562 -1.913978494623663 -2.0645161290322562 -2.913978494623663 -1.0645161290322562 -2.913978494623663 -1.0645161290322562 -2.913978494623663 -1.0645161290322562 -2.913978494623663 -0.06451612903225623 -2.913978494623663 -0.06451612903225623 -2.913978494623663 0.9354838709677438 -2.913978494623663 0.9354838709677438 -2.913978494623663 1.9354838709677438 -2.913978494623663 1.9354838709677438 -1.913978494623663 2.9354838709677438 -1.913978494623663 2.9354838709677438 -0.9139784946236631
- 2.6568627450980387 -1.25 2.6568627450980387 -1.25 1.6568627450980387 -0.25 2.6568627450980387 0.75 2.6568627450980387 1.75 2.6568627450980387 1.75 1.6568627450980387 2.75 0.6568627450980387 4.75 -0.34313725490196134 4.75 -1.3431372549019613 3.75 -1.3431372549019613 2.75 -2.3431372549019613 1.75 -2.3431372549019613 0.75 -2.3431372549019613 -0.25 -2.3431372549019613 -0.25 -2.3431372549019613 -1.25 -2.3431372549019613 -1.25 -2.3431372549019613 -1.25 -2.3431372549019613 -2.25 -2.3431372549019613 -2.25 -2.3431372549019613 -3.25 -1.3431372549019613 -3.25 -1.3431372549019613 -4.25 -0.34313725490196134 -4.25 -0.34313725490196134 -4.25 0.6568627450980387 -4.25 0.6568627450980387 -4.25 1.6568627450980387 -3.25 1.6568627450980387 -3.25 1.6568627450980387 -2.25 1.6568627450980387 -2.25 2.6568627450980387 -2.25
-
@@ -702,7 +663,7 @@ Computation done in 5 ms.
-
+