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. - +