Skip to content

Instantly share code, notes, and snippets.

@ketch
Last active September 15, 2021 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ketch/01a71b96a4a136985cdc67bf179d7c24 to your computer and use it in GitHub Desktop.
Save ketch/01a71b96a4a136985cdc67bf179d7c24 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "b1a76220",
"metadata": {},
"outputs": [],
"source": [
"from BSeries import trees\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "c001a4a3",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([0,1,2,1,2])\n",
"t.plot()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "74257efb",
"metadata": {},
"outputs": [],
"source": [
"def tree_from_subtrees(subtrees):\n",
" # Input: list of level sequences\n",
" ls_list = [t._level_sequence for t in subtrees]\n",
" output = [0]\n",
" for ls in ls_list:\n",
" root_rank = ls[0]\n",
" seq = list(np.array(ls)-root_rank+1)\n",
" output += seq\n",
" return trees.RootedTree(output)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "10d46974",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"tt = tree_from_subtrees([t,t])\n",
"tt.plot()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "419c4b05",
"metadata": {},
"outputs": [],
"source": [
"l = [0,1,2,1,2,3,1]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "8de058d8",
"metadata": {},
"outputs": [],
"source": [
"def subtrees(tree):\n",
" ls = tree._level_sequence\n",
" subtree_root_rank = ls[1]\n",
" subtree_root_indices = np.where(np.array(ls)==subtree_root_rank)[0]\n",
" subtrees = []\n",
" for i in range(len(subtree_root_indices)-1):\n",
" subtree = ls[subtree_root_indices[i]:subtree_root_indices[i+1]]\n",
" subtrees.append(trees.RootedTree(subtree))\n",
" subtrees.append(trees.RootedTree(ls[subtree_root_indices[-1]:]))\n",
" return subtrees"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "fc1dca69",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[1, 2, 3, 2, 3], [1, 2, 3, 2, 3]]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"subtrees(tt)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "c9178a65",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"numpy.int64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(tt._level_sequence[2])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "821c881b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[1, 2], [1, 2]]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"subtrees(t)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "a6b7e06f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 1, 2]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trees.RootedTree([0,1,2])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "0a59431b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1, 2, 3, 2, 3]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trees.RootedTree([1, 2, 3, 2, 3])"
]
},
{
"cell_type": "code",
"execution_count": 121,
"id": "8ea8291b",
"metadata": {},
"outputs": [],
"source": [
"def partition_forest(tree,edge_set):\n",
" # Form partition forest where edges marked with '0' in edge_set are removed\n",
" # The ith value in edge_set corresponds to the edge connecting node i+1 in the level sequence to its parent\n",
" forest = []\n",
" ls = tree._level_sequence.copy()\n",
" edge_set = edge_set.copy()\n",
" while 0 in edge_set:\n",
" # Find next removed edge\n",
" subtree_root_index = edge_set.index(0)+1\n",
" # Detach corresponding subtree and add its partition forest\n",
" # subtree goes up to the next node that has the same (or lower) rank as its root\n",
" subtree_size = 1\n",
" while subtree_root_index+subtree_size<len(ls):\n",
" if ls[subtree_root_index+subtree_size]>ls[subtree_root_index]:\n",
" subtree_size += 1\n",
" else:\n",
" break\n",
" # Extract subtree\n",
" subtree = trees.RootedTree(ls[subtree_root_index:subtree_root_index+subtree_size])\n",
" subtree_edge_set = edge_set[subtree_root_index:subtree_root_index+subtree_size-1]\n",
" # Remove subtree from base tree\n",
" ls = ls[:subtree_root_index]+ls[subtree_root_index+subtree_size:]\n",
" edge_set = edge_set[:subtree_root_index-1]+edge_set[subtree_root_index+subtree_size-1:]\n",
" forest += partition_forest(subtree,subtree_edge_set)\n",
" #print(forest, ls)\n",
" forest += [trees.RootedTree(ls)]\n",
" return forest"
]
},
{
"cell_type": "code",
"execution_count": 122,
"id": "47cebbc8",
"metadata": {},
"outputs": [],
"source": [
"def partition_skeleton(tree,edge_set):\n",
" ls = tree._level_sequence.copy()\n",
" edge_set = edge_set.copy()\n",
" while 1 in edge_set:\n",
" # Find next edge to contract\n",
" subtree_root_index = edge_set.index(1)+1\n",
" # Contract corresponding edge by removing the subtree root and promoting the rest of the subtree\n",
" i = 1\n",
" while subtree_root_index+i<len(ls):\n",
" if ls[subtree_root_index+i]>ls[subtree_root_index]:\n",
" ls[subtree_root_index+i] -= 1\n",
" i += 1\n",
" else:\n",
" break\n",
" # Remove root node\n",
" del ls[subtree_root_index]\n",
" del edge_set[subtree_root_index-1]\n",
" return trees.RootedTree(ls)"
]
},
{
"cell_type": "markdown",
"id": "f8f749d1",
"metadata": {},
"source": [
"Test the functions above by reproducing examples from Table 2 of CHV2010:"
]
},
{
"cell_type": "code",
"execution_count": 123,
"id": "fa2ec79b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[4], [3], [1, 2, 3]]"
]
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,3,4,3])\n",
"edge_set = [1,1,0,0]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": 124,
"id": "29c60c6b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[3], [2, 3, 4], [1]]"
]
},
"execution_count": 124,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEh0lEQVR4nO3cMWpcVxSA4XOTVN6EvYx08jrcCwLOCryOFAb3XoeXInkRAoPt60JTiCCCpvlnHvm+ZpjzmlMMP497YdbeewBo/HbpBQD+T0QXICS6ACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLoez1nq31rpba/08fb679E7wUsu/jHEkp8B+mplXT8YPM3O79/58ma3g5USXQ1lr3c3M62ce3e+937TbwPlEl0NZa/2cmfXMo733dlzG1fMj5Wi+njmHqyK6HM2HeTzDferhNIerJ7ocyumy7HZmvp1G9+MSjQNxpsshrbW+zMzsvd9edhM4jzddgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkuhzOWuvdzPw5MzdrrbvTdziEtfe+9A7wYqfAfpqZV0/GDzNzu/f+fJmt4OVEl0NZa93NzOtnHt3vvd+028D5RJdDWWv9nJn1zKO993ZcxtXzI+Vovp45h6siuhzNh3k8w33q4TSHqye6HMrpsux2Zr6dRvfjEo0DcabLIa21vszM7L3fXnYTOI83XYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoczlrrn5m5mZmbtdb303c4BNHlUE6Bff9k9PvMvBdejmLtvS+9A7zYWuv7PIb2337svf+o94FzedPlaJ4L7n/N4aqILkfz48w5XBXR5Wg+njmHq+JMl8M5XZr9NY9HCj9m5uPe++/LbgUvI7oAIccLACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLkBIdAFCvwB8nYMyAFXytQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,3,4,3])\n",
"edge_set = [0,1,1,0]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": 125,
"id": "4afb0ad9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[4], [3], [2, 3], [1]]"
]
},
"execution_count": 125,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,3,4,3])\n",
"edge_set = [0,1,0,0]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": 126,
"id": "73acaf19",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[2], [2], [1, 2, 2]]"
]
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,2,2,2])\n",
"edge_set = [0,0,1,1]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": 127,
"id": "35af6e60",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[3], [2], [2], [1, 2]]"
]
},
"execution_count": 127,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,3,2,2])\n",
"edge_set = [0,0,0,1]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": 128,
"id": "3d49833d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[1, 2, 3, 2, 2]]"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAADpklEQVR4nO3ZsU0lMRRA0WfCbYKti5wmaGVz6gKKIMQETEBA8Enu/6M9J7FkJy8YXY3stfceABp31x4A4H8iugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDocjprrYe11sta6+NYH649E1xq7b2vPQNc7Ajsv5n58237fWYe997P15kKLie6nMpa62Vm7n84et17/22ngd8TXU5lrfUxM+uHo733dl3GzfORcjZvv9yHmyK6nM3TfN3hfvd+7MPNE11O5Xgse5yZ15nZx+oRjdNwpwsQ8qcLEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5A6BOqwDOxh/ESRAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,3,2,2])\n",
"edge_set = [1,1,1,1]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": 129,
"id": "f148c074",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[3], [2], [1, 2, 3]]"
]
},
"execution_count": 129,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEh0lEQVR4nO3cMWpcVxSA4XOTVN6EvYx08jrcCwLOCryOFAb3XoeXInkRAoPt60JTiCCCpvlnHvm+ZpjzmlMMP497YdbeewBo/HbpBQD+T0QXICS6ACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLoez1nq31rpba/08fb679E7wUsu/jHEkp8B+mplXT8YPM3O79/58ma3g5USXQ1lr3c3M62ce3e+937TbwPlEl0NZa/2cmfXMo733dlzG1fMj5Wi+njmHqyK6HM2HeTzDferhNIerJ7ocyumy7HZmvp1G9+MSjQNxpsshrbW+zMzsvd9edhM4jzddgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkuhzOWuvdzPw5MzdrrbvTdziEtfe+9A7wYqfAfpqZV0/GDzNzu/f+fJmt4OVEl0NZa93NzOtnHt3vvd+028D5RJdDWWv9nJn1zKO993ZcxtXzI+Vovp45h6siuhzNh3k8w33q4TSHqye6HMrpsux2Zr6dRvfjEo0DcabLIa21vszM7L3fXnYTOI83XYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoczlrrn5m5mZmbtdb303c4BNHlUE6Bff9k9PvMvBdejmLtvS+9A7zYWuv7PIb2337svf+o94FzedPlaJ4L7n/N4aqILkfz48w5XBXR5Wg+njmHq+JMl8M5XZr9NY9HCj9m5uPe++/LbgUvI7oAIccLACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLkBIdAFCvwB8nYMyAFXytQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,3,2,3])\n",
"edge_set = [1,1,0,0]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": 130,
"id": "be241254",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[2, 3], [3], [2], [1]]"
]
},
"execution_count": 130,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,3,2,3])\n",
"edge_set = [0,1,0,0]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": 131,
"id": "447aa04b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[3], [2, 3, 3], [1]]"
]
},
"execution_count": 131,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEh0lEQVR4nO3cMWpcVxSA4XOTVN6EvYx08jrcCwLOCryOFAb3XoeXInkRAoPt60JTiCCCpvlnHvm+ZpjzmlMMP497YdbeewBo/HbpBQD+T0QXICS6ACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLoez1nq31rpba/08fb679E7wUsu/jHEkp8B+mplXT8YPM3O79/58ma3g5USXQ1lr3c3M62ce3e+937TbwPlEl0NZa/2cmfXMo733dlzG1fMj5Wi+njmHqyK6HM2HeTzDferhNIerJ7ocyumy7HZmvp1G9+MSjQNxpsshrbW+zMzsvd9edhM4jzddgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkugAh0QUIiS5ASHQBQqILEBJdgJDoAoREFyAkuhzOWuvdzPw5MzdrrbvTdziEtfe+9A7wYqfAfpqZV0/GDzNzu/f+fJmt4OVEl0NZa93NzOtnHt3vvd+028D5RJdDWWv9nJn1zKO993ZcxtXzI+Vovp45h6siuhzNh3k8w33q4TSHqye6HMrpsux2Zr6dRvfjEo0DcabLIa21vszM7L3fXnYTOI83XYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoAIdEFCIkuQEh0AUKiCxASXYCQ6AKERBcgJLoczlrrn5m5mZmbtdb303c4BNHlUE6Bff9k9PvMvBdejmLtvS+9A7zYWuv7PIb2337svf+o94FzedPlaJ4L7n/N4aqILkfz48w5XBXR5Wg+njmHq+JMl8M5XZr9NY9HCj9m5uPe++/LbgUvI7oAIccLACHRBQiJLkBIdAFCogsQEl2AkOgChEQXICS6ACHRBQiJLkBIdAFCvwB8nYMyAFXytQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t = trees.RootedTree([1,2,3,3,3])\n",
"edge_set = [0,1,1,0]\n",
"partition_skeleton(t,edge_set).plot()\n",
"partition_forest(t,edge_set)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b3a9d1dc",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment