{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exploring Unification of Topological Deep Learning for Representation of Topological Domains, a DeepWalk Study Case\n", "\n", "Topological Deep Learning (TDL) has emerged as a powerful framework for representation learning, particularly for complex structures like cell or simplicial complexes. A fundamental aspect of TDL is its ability to effectively unify many algorithm in a single framework. In the context of rep learning, the capability of a single algorithm to embed elements within various topological domains. The terms topological domain is an umbrella term here that encompasses various domains : (hypergraph)graphs and simplicial/cell/combinatorial complexes.\n", "\n", "The purpose of this tutorial is to explore topological representation learning in TopoEmbedX and how it can be applied to represent elements of a topological domain in a Euclidian domain. We take DeepCell as a study case.\n", "\n", "We start by recalling the DeepWalk algorithm.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What is DeepWalk?\n", "DeepWalk is a popular technique for unsupervised representation learning of nodes in a network or graph. It was introduced by Perozzi et al. in 2014, aiming to generate continuous vector representations (embeddings) for nodes in a graph. These embeddings preserve structural information, allowing machine learning models to operate on graph data efficiently.\n", "\n", "DeepWalk is based on the skip-gram model, originally used in natural language processing. Instead of sentences and words, DeepWalk uses sequences of nodes obtained by random walks on the graph. The core idea is to treat each random walk as a sentence and each node in the walk as a word. By training a skip-gram model on these walks, DeepWalk learns embeddings that capture the graph's topological features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Embedding Cells of Different Dimensions using DeepCell\n", "\n", "**Introduction:**\n", "DeepCell, an extension of the DeepWalk concept for topological domains such as cell/simplicial/combinatorial complexes. In this example we provide an explanation of the topological rep learning algorithm by embedding a 2-dimensional cell complex whose. Understanding how DeepCell operates at these (0,1,2) is essential to appreciate its adaptability and effectiveness in capturing topological features.\n", "\n", "**1. Embedding 0-Dimensional Cells (Vertices):**\n", "In the context of cell or simplicial complexes, 0-dimensional cells correspond to vertices or zero-dimensional simplices. These vertices represent fundamental entities within the complex. DeepCell can embed vertices by treating them as nodes in a graph. Random walks within the complex then mimic traversing 'sentences' composed of 'words' (vertices). DeepCell learns embeddings for vertices by applying techniques similar to skip-gram models, capturing local and global topological relationships around each vertex.\n", "\n", "**2. Embedding 1-Dimensional Cells (Edges):**\n", "Edges within a cell complex form 1-dimensional cells, representing connections between vertices or one-dimensional simplices. DeepCell extends its embedding capability to edges by considering them as higher-order entities in the graph. Random walks traversing these edges simulate traversing 'sentences' composed of 'words' (vertices), connected by 'phrases' (edges). DeepCell's approach, akin to skip-gram models, learns embeddings for edges, capturing the topological relationships and connectivity patterns within the complex.\n", "\n", "**3. Embedding 2-Dimensional Cells (Faces):**\n", "Faces in a cell complex constitute 2-dimensional cells, representing enclosed regions or surfaces. DeepCell can embed these faces by considering them as complex entities. Random walks over these faces create 'sentences' made of 'words' (vertices) forming 'phrases' (edges) that define the face. The skip-gram model in DeepCell then learns embeddings that encode spatial relationships and geometric properties specific to these 2-dimensional structures within the topological domain.\n", "\n", "\n", "By applying DeepCell across different dimensions, we can generate embeddings that encapsulate essential topological information. These embeddings prove vital for a wide range of analysis, facilitating a deeper understanding of the complex's structure and function.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## In TopoEmbedX\n", "\n", "TopoEmbedX provides essential tools to perform topological representation learning on topological domains efficiently in Python. It simplifies the process of embedding topological domains, such as cell complexes or simplicial complexes, into a Euclidian space while preserving their topological features. Here's an overview of how using DeepCell in TopoEmbedX" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Embedding of vertices in a cell complex using DeepCell\n" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAK7CAYAAAAeM3W9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1qUlEQVR4nO3de3yP9f/H8efHjoaZ47ZYRpFTThtfI+TLSFKSUsoh1FfzDU0HooyKb6KQ+EaHpcJyiNQyCwtfiuaQoqKsRdvXqQxjm+36/bHfPt/ms80O166PbY/77bZbXe/P+3Nd7+u1T23PXe/rfdkMwzAEAAAAACiRSs4eAAAAAACUB4QrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsA17zIyEjZbDb7l6urq+rXr6+HH35Yx48fN/VYgYGBGj58uKn7/KuFCxcqMjLSoT0hIUE2my3P164lUVFRatGihSpXriybzaZ9+/bl2zcjI0PTpk1TYGCgPDw81LRpU73++uslHsPw4cMVGBiYq81msykiIqLE+y6MrKwsvf/+++rZs6dq164tNzc31a1bV3fccYfWr1+vrKysIu/zys9dUT8P//3vfzVx4kTdfPPNqlq1qjw9PdW4cWONGzdOhw8fLvJ4rBQRESGbzWb5cfP6HJXETz/9pCeffFJBQUHy8fFRzZo11blzZ61atcqhb84553x5eXmpfv366t27t15//XWdO3fOtHEBsJarswcAAIX17rvvqmnTprp48aK2bt2qmTNn6ssvv9SBAwdUpUoVU47x8ccfy9vb25R95WXhwoWqXbu2Q4Dz9/fXzp07dcMNN5TasUvq5MmTGjJkiG677TYtXLhQHh4eatKkSb79w8LC9P777+uFF15Q+/btFRMTo3HjxuncuXN69tlnTR3bzp07Vb9+fVP3mZdLly6pf//+2rhxo+6//34tWrRIfn5+OnnypDZs2KB7771XUVFRuuuuu0p9LDl27dqlO+64Q4Zh6J///KdCQkLk7u6uH3/8UR988IE6dOigP/74w7LxlBXPPfecxo0bZ9r+Nm7cqM8++0xDhgxR+/btdfnyZUVFRenee+/VtGnT9Pzzzzu8Z8OGDapevbrS09P1+++/a9OmTXr66af1yiuvaP369WrdurVp4wNgEQMArnHvvvuuIcnYvXt3rvbnnnvOkGR88MEH+b73woULpT28ImnRooXRrVs3Zw+jWLZv325IMqKioq7a97vvvjNsNpsxY8aMXO2PPPKIUblyZeP06dPFHsewYcOMBg0aFPv9JfHYY48Zkoz33nsvz9d/+uknY//+/UXeb4MGDYxhw4bZt48ePWpIMt59990C33f27FnDz8/PCAgIMH777bc8+6xcubLI47HS1KlTjfLw68jJkyeNrKwsh/a+ffsaXl5exqVLl+xtOed88uRJh/779u0zqlevblx//fW53gOgbGBaIIAyq2PHjpKkX3/9VVL2NJ+qVavqwIED6tWrl6pVq6YePXpIks6cOaOwsDDVq1dP7u7uatSokSZPnqy0tLRc+8xrWmBKSoqefPJJNWzYUO7u7qpXr57Gjx+vCxcu5OqXlZWl119/XW3atFHlypXl4+Ojjh076pNPPrHv+/vvv9eXX35pnw6UMy0pv2lg27dvV48ePVStWjV5eXmpU6dO+uyzz3L1yZk2uWXLFj322GOqXbu2atWqpQEDBuj3338vVC0/+eQThYSEyMvLS9WqVVNoaKh27txpf3348OG65ZZbJEmDBg2SzWbTrbfemu/+1q5dK8Mw9PDDD+dqf/jhh3Xx4kVt2LChUOOKjIzUTTfdJA8PDzVr1kxLly7Ns9+V0wJzarJ582Y98sgjqlWrlry9vTV06FBduHBBycnJuu++++Tj4yN/f389+eSTysjIKHAsycnJeuutt9S7d28NHTo0zz6NGzdWq1at7NuF/ewU15IlS5ScnKxZs2ble+Vu4MCBubav9r2W/jdt7dtvv9W9996r6tWrq2bNmgoPD9fly5f1448/6rbbblO1atUUGBioWbNm5Xp/XFycbDabPvjgA4WHh8vPz0+VK1dWt27dtHfv3kKdW1RUlEJCQlSlShVVrVpVvXv3zvXe7du3y83NTU8++WSu9+V8799+++0C95/f9NJ//vOfev/999WsWTN5eXmpdevW+vTTT6863tq1a+c5vbFDhw5KTU3VmTNnrroPSWrdurUmT56sxMRERUVFFeo9AK4dhCsAZdaRI0ckSXXq1LG3paen684779Tf//53rVu3TtOmTdOlS5fUvXt3LV26VOHh4frss8/00EMPadasWRowYECBx0hNTVW3bt303nvvaezY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vvlmrVixQsnJybl+wT5w4IAkqWXLlpKkfv36affu3fmOKzk52eG1vNqs0L17d7m5uWnt2rUaPXr0VfsX9rNTEr1799bGjRu1fv163X///QX2La3vdUHy+/7lFWBy5NRl1apVatCgwVWPERsbq0WLFqlDhw76+OOPtXr1aoer11aKiYlR//791a1bN61evdoe6Isi5x6yghaNAXBtYloggHKvR48eOn/+vNauXZurPWfluZwVBfNyxx136Oeff1atWrUUHBzs8JWz2ljONKlFixYVOJbC/gW8SpUq+tvf/qY1a9bk6p+VlaUPPvhA9evXL/AZU4V10003qV69elq2bFmuqUgXLlzQ6tWr7avKFdVdd90lm82m9957L1d7ZGSkKleurNtuu02S8qxrzrj8/f21fPnyXOP69ddftWPHjuKcaon5+flp1KhRiomJyXfVwp9//lnffvutpMJ/dkpi5MiR8vPz09NPP53vA7VzFpoore91QfL7/hUUGnr37i1XV1f9/PPPedbtr39gSUpK0kMPPaRu3bppx44duvPOOzVy5MhCX10028aNG9W/f3/dcsstWrt2rf3qcVHs379fM2bMUGBgoO67775SGCWA0sSVKwDl3tChQ/XGG29o2LBhSkhI0M0336zt27drxowZuv3229WzZ8983zt+/HitXr1aXbt21RNPPKFWrVopKytLiYmJ2rhxoyZMmKC//e1v6tKli4YMGaIXX3xR//3vf3XHHXfIw8NDe/fulZeXl/2ei5wrOlFRUWrUqJE8PT3zncY0c+ZMhYaGqnv37nryySfl7u6uhQsX6rvvvtPy5cuLPNUoL5UqVdKsWbP04IMP6o477tA//vEPpaWl6ZVXXtGff/6pf/3rX8Xab4sWLTRy5EhNnTpVLi4uat++vTZu3KjFixfrxRdfdJhulte4XnjhBY0aNUp33323HnnkEf3555+KiIgwbeplcbz66qv65ZdfNHz4cMXExOjuu++Wr6+vTp06pdjYWL377rtasWKFWrVqVejPTklUr15d69at0x133KG2bdvmeojw4cOH9cEHH2j//v0aMGBAqX2vC3LixAn79+/s2bOaOnWqPD09NWnSpHzfExgYqOnTp2vy5Mn65ZdfdNttt6lGjRr673//q127dqlKlSqaNm2aMjMz9cADD8hms2nZsmVycXFRZGSk2rRpo0GDBmn79u3FumpUXNu3b1f//v3l5+enZ5991mFabPPmzR2mLMfHx6t69erKyMiwP0T4/fffV926dbV+/XpLxw/AHIQrAOWep6entmzZosmTJ+uVV17RyZMnVa9ePT355JOaOnWqQ/+/hpYqVapo27Zt+te//qXFixfr6NGjqly5sq6//nr17Nkz19WHyMhItWvXTm+//bb9Ck3z5s317LPP2vtMmzZNSUlJeuSRR3Tu3Dk1aNAg3/uHunXrps2bN2vq1KkaPny4srKy1Lp1a33yyScOCw2UxODBg1WlShXNnDlTgwYNkouLizp27KgtW7YUafGIKy1cuFD16tXT66+/ruTkZAUGBmrevHmFvrk/Zyntl19+WQMGDFBgYKCeffZZffnll5YvBpHD09NTn332mT788EO99957+sc//qGUlBTVqFFDwcHBeuedd+zLohfls1MSHTp00IEDB/Taa6/po48+0ssvv6zMzEwFBASoR48eWrBggb1vaX2v8zNjxgzt3r1bDz/8sFJSUtShQwetWLFCN9xwQ4HvmzRpkpo3b6558+Zp+fLlSktLk5+fn9q3b2+fkjl16lRt27ZNsbGx9sBdo0YNrVixQl27dtXTTz+tuXPnmn5O+fniiy908eJFJSQk6O9//7vD61u2bHG4YpdzBdfDw0M1a9bUzTffrJdfflkPP/xwrkU1AJQdNoMlaQDArmbNmhoxYoRmz57t7KEAZVZcXJy6d++ulStXOqzSCQDlGVeuAEDSt99+q+joaP3xxx8KCQlx9nAAAEAZRLgCAEnjxo3TDz/8oCeffFIDBgxw9nAAAEAZxLRAAAAAADABS7EDAAAAgAkIVwAAAABgAsIVAAAAAJiABS3ykJWVpd9//13VqlUz5SGdAAAAAMomwzB07tw5XXfddapUqeBrU4SrPPz+++8KCAhw9jAAAAAAXCN+++031a9fv8A+hKs85DwV/bfffpO3t7eTR1M+ZGRkaOPGjerVq5fc3NycPZxyjVpbgzpbgzpbgzpbgzpbgzpboyLVOSUlRQEBAfaMUBDCVR5ypgJ6e3sTrkySkZEhLy8veXt7l/v/AJ2NWluDOluDOluDOluDOluDOlujIta5MLcLsaAFAAAAgGtKRESE2rRpY98ePny4+vfv77TxFBbhCgAAAIBpkpOT9fjjj6tRo0by8PBQQECA+vXrp02bNpXaMX/88Ud1795dvr6+8vT0VKNGjTRlyhRlZGSU2jHzwrRAAAAAAKZISEhQ586d5ePjo1mzZqlVq1bKyMhQTEyMxowZox9++KFUjuvm5qahQ4eqXbt28vHx0f79+/XII48oKytLM2bMKJVj5oVwVUyGYejy5cvKzMx09lDKhIyMDLm6uurSpUvUrIRcXFzk6urKYwIAAMA1JywsTDabTbt27VKVKlXs7S1atNCIESPs22fPntVTTz2ltWvX6tKlSwoODtZrr72m1q1bF+u4jRo1UqNGjezbDRo0UFxcnLZt21b8kykGwlUxpKenKykpSampqc4eSplhGIb8/Pz022+/EQpM4OXlJX9/f7m7uzt7KAAAAJKkM2fOaMOGDXrppZdyBascPj4+krJ/L+zbt69q1qyp6OhoVa9eXW+++aZ69Oihn376STVr1izxWI4cOaINGzZowIABJd5XURCuiigrK0tHjx6Vi4uLrrvuOrm7uxMWCiErK0vnz59X1apVr/rwNeTPMAylp6fr5MmTOnr0qBo3bkw9AQDANeHIkSMyDENNmzYtsN+WLVt04MABnThxQh4eHpKk2bNna+3atVq1apUeffTRYo+hU6dO2rNnj9LS0vToo49q+vTpxd5XcRCuiig9PV1ZWVkKCAiQl5eXs4dTZmRlZSk9PV2enp6EgRKqXLmy3Nzc9Ouvv9prCgAA4GyGYUi6+pLl8fHxOn/+vGrVqpWr/eLFi/r5559LNIaoqCidO3dO+/fv11NPPaXZs2fr6aefLtE+i4JwVUwEBDgTnz8AAHCtady4sWw2mw4dOlTgsulZWVny9/dXXFycw2s5UweLKyAgQJLUvHlzZWZm6tFHH9WECRPk4uJSov0WFuEKAAAAQInVrFlTvXv31htvvKGxY8c63Hf1559/ysfHR+3atVNycrJcXV0VGBhYauMxDEMZGRn2K2pW4M/fAAAAAEyxcOFCZWZmqkOHDlq9erUOHz6sQ4cOaf78+QoJCZEk9ezZUyEhIerfv79iYmKUkJCgHTt2aMqUKfrmm2+KddwPP/xQH330kQ4dOqRffvlFK1eu1KRJkzRo0CC5ulp3PYlwhRKLjIws8SXc0mLF2MrKE8MBAABKW8OGDbVnzx51795dEyZMUMuWLRUaGqpNmzZp0aJFkrLvyYqOjlbXrl01YsQINWnSRPfff78SEhLk6+tbrOO6urrq5ZdfVocOHdSqVStFRERozJgxeuutt8w8vasiXFUgw4cPl81mk81mk5ubmxo1aqQnn3xSFy5cKNF+Bw0apJ9++smkUVof1nJqYrPZVK1aNQUHB2vNmjWFfv+8efMUGRlZ5GOuXbu2aAMFAAAoA/z9/bVgwQIlJCQoLS1Nx44d07p163Trrbfa+1SrVk3z58/X8ePHlZ6ersTERH3wwQf2e6YiIiK0b98+e//IyMgCf3caNGiQ4uPjde7cOZ0/f17ff/+9Jk2aZPnCX4QrJ8rMlOLipOXLs/9pxbN1b7vtNiUlJemXX37Riy++qIULF+rJJ5/Ms29GRkah9lm5cmXVrVvXzGFa7t1331VSUpJ2796t1q1b695779XOnTsL9d7q1atfs1fuAAAAYB3ClZOsWSMFBkrdu0uDB2f/MzAwu700eXh4yM/PTwEBARo8eLAefPBB+18BIiIi1KZNG73zzjtq1KiRPDw8ZBiGEhMTddddd6lq1ary9vbWfffdp//+97/2feZ1pWn9+vUKCgqSp6enGjVqpOnTp+vy5cv21//88089+uij8vX1laenp1q2bKlPP/1UcXFxevjhh3X27Fn71aSIiAhJ2cvgP/3006pXr56qVKmiv/3tbw6rzERGRur666+Xl5eX7r77bp0+fbpQdfHx8ZGfn5+aNm2qf//73/L09NQnn3wiSTpw4ID+/ve/q3LlyqpVq5YeffRRnT9/3v7eK6cF3nrrrRo7dqyefvpp1axZU35+fvZzkGS/cfPuu++WzWazb+/fv1/du3dXtWrV5O3traCgoGLPOwYAAID1CFdOsGaNNHCgdOxY7vbjx7PbSztg/VXlypVzXaE6cuSIPvroI61evdp+KbZ///46c+aMvvzyS8XGxurnn3/WoEGD8t1nTEyMHnroIY0dO1YHDx7Um2++qffee09z5syRlL38Zp8+fbRjxw598MEHOnjwoP71r3/JxcVFnTp10ty5c+Xt7a2kpCQlJSXZr6w9/PDD+s9//qMVK1bo22+/1b333qvbbrtNhw8fliR9/fXXGjFihMLCwrRv3z51795dL774YpFr4ubmJldXV2VkZCg1NVW33XabatSood27d2vlypX64osv9M9//rPAfbz33nuqUqWKvv76a82aNUvTp09XbGysJGn37t2Scl8tk6QHH3xQ9evX1+7duxUfH6+JEyfKzc2tyOMHAACAc7AUu8UyM6Vx46S8VoQ0DMlmk8aPl+66Syrt5fh37dqlZcuWqUePHva29PR0vf/++6pTp44kKTY2Vt9++62OHj1qnwP7/vvvq0WLFtq9e7fat2/vsN+XXnpJEydO1LBhwyRJjRo10rRp0/TMM8/opZde0hdffKFdu3bp0KFDatKkib1PjurVq8tms8nPz8/e9vPPP2v58uU6duyYrrvuOknSk08+qQ0bNujdd9/VjBkzNG/ePPXu3VsTJ06UJDVp0kQ7duzQhg0bCl2TtLQ0vfLKK0pJSVGPHj304Ycf6uLFi1q6dKl9OdEFCxaoX79+evnll/O96bJVq1aaOnWqpOxnPixYsECbNm1SaGiovbY5V8tyJCYm6qmnnrI/1bxx48aFHjcAAACcj3BlsW3bHK9Y/ZVhSL/9lt3vL/f8mebTTz9V1apVdfnyZWVkZOiuu+7S66+/bn+9QYMG9l/+JenQoUMKCAiwBysp+6FsPj4+OnToUJ7hKj4+Xrt379ZLL71kb8vMzNSlS5eUmpqqffv2qX79+vZgVRh79uyRYRgO70lLS7M/3fvQoUO6++67c70eEhJSqHD1wAMPyMXFRRcvXlT16tU1e/Zs9enTR+Hh4WrdunWu5zR07txZWVlZ+vHHHwsMV3/l7++vEydOFDiG8PBwjRo1Su+//7569uype++9VzfccMNVxw4AAIBrA+HKYklJ5vYrqu7du2vRokVyc3PTdddd5zDt7MqHvRmGIZvN5rCf/Nql7Gl/06ZN04ABA3K1nT9/Xp6enqpcuXKRx52VlSUXFxfFx8c7PGG7atWq9jEV12uvvaaePXvK29s71+IcBZ1nfu2SHOpqs9mUlZVV4BgiIiI0ePBgffbZZ/r88881depUrVixwiEwAgAA4NpEuLKYv7+5/YqqSpUquvHGGwvdv3nz5kpMTNRvv/1mv3p18OBBnT17Vs2aNcvzPe3atdOPP/6Y6zhZWVlKSUlRpUqV1KpVKx07dkw//fRTnlev3N3dlXnF0olt27ZVZmamTpw4oS5duuQ71q+++ipX25Xb+fHz88uzLs2bN9d7772nCxcu2IPnf/7zH1WqVKlIV96u5Obm5nCOUvZUxiZNmuiJJ57QAw88oHfffZdwBQAAUEY4fUGLhQsXqmHDhvL09FRQUJC2bduWb981a9bY71nx9vZWSEiIYmJi8u2/YsUK2Wy2a+oBr126SPXrZ99blRebTQoIyO53LejZs6datWqlBx98UHv27NGuXbs0dOhQdevWTcHBwXm+5/nnn9fSpUsVERGh77//XocOHVJUVJR9cYlu3bqpa9euuueeexQbG6ujR4/q888/t0/fCwwM1Pnz57Vp0yadOnVKqampatKkiR588EENHTpUa9as0dGjR7V79269/PLLio6OliSNHTtWGzZs0KxZs/TTTz9pwYIFRbrfKi8PPvigPD09NWzYMH333XfasmWLHn/8cQ0ZMqTYD7nLOcdNmzYpOTlZf/zxhy5evKh//vOfiouL06+//qr//Oc/2r17d74BFgAAANcep4arqKgojR8/XpMnT9bevXvVpUsX9enTR4mJiXn237p1q0JDQxUdHa34+Hh1795d/fr10969ex36/vrrr3ryySfzvcrhLC4u0rx52f9+ZcDK2Z47t/QXsyisnIfd1qhRQ127dlXPnj3VqFEjRUVF5fue3r1769NPP1VsbKzat2+vjh07au7cubnu21q9erXat2+vBx54QM2bN9fTTz9tv5LTqVMnjR49WoMGDVKdOnU0a9YsSdmr6w0dOlQTJkzQTTfdpDvvvFNff/21fb8dO3bUW2+9pddff11t2rTRxo0bNWXKlBKdv5eXl2JiYnTmzBm1b99eAwcOVI8ePbRgwYIS7XfOnDmKjY1VQECA2rZtKxcXF50+fVpDhw5VkyZNdN9996lPnz6aNm1aiY4DAABQ1jjjWbCmMZyoQ4cOxujRo3O1NW3a1Jg4cWKh99G8eXNj2rRpudouX75sdO7c2XjrrbeMYcOGGXfddVeRxnX27FlDknH27FmH1y5evGgcPHjQuHjxYpH2eaXVqw2jfn3DyF7CIvsrICC7vaz597//bdSrV6/APpmZmcYff/xhZGZmWjSq8q2gz2F6erqxdu1aIz093QkjqzioszWoszWoszWoszWoszVKq855/Y5cv75zf0cuKBtcyWn3XKWnp9uf5fNXvXr10o4dOwq1j6ysLJ07d041a9bM1T59+nTVqVNHI0eOLHCaYY60tDSlpaXZt1NSUiRJGRkZuZ4BldNmGIaysrKuukBBQfr3l/r1y14VMCkp+x6rLl2yr1iVYLeW++233/TZZ5+pefPmBdbD+P/FJnJqh5LJysqSYRjKyMhwWOAj5zN75WcX5qLO1qDO1qDO1qDO1qDO1iiNOq9fLw0Zkh2p/rr+2Zkz2e1S9u/PVivKOTotXJ06dUqZmZkO9634+voqOTm5UPuYM2eOLly4oPvuu8/e9p///Edvv/22/QG4hTFz5sw8p19t3LhRXl5eudpcXV3l5+en8+fPKz09vdDHyE+7dv/79wsXSrw7ywUFBcnf318LFy60h9KCnDt3zoJRlX/p6em6ePGitm7dqsuXL+fZJ+ehxShd1Nka1Nka1Nka1Nka1NkaZtbZxUVatqzgPv9/q72lUlNTC93X6asFXrmctVHA0td/tXz5ckVERGjdunX2pbPPnTunhx56SEuWLFHt2rULPYZJkyYpPDzcvp2SkqKAgAD16tVL3t7eufpeunRJv/32m6pWrSpPT89CH6O8utqzm3IYhqFz586pWrVqhfr+omCXLl1S5cqV1bVrV4fPYUZGhmJjYxUaGuqwJDzMQ52tQZ2tQZ2tQZ2tQZ2tYXadt2+X+va9er/PPpNuuaXEhyuSwlxAyOG0cFW7dm25uLg4XKU6ceLEVVdhi4qK0siRI7Vy5Ur17NnT3v7zzz8rISFB/f5yvTBnCpqrq6t+/PHHPB/K6uHhIQ8PD4d2Nzc3hw9LZmambDabKlWqpEqVnL7YYpmR833IqR1KplKlSrLZbHl+RnMU9BrMQ52tQZ2tQZ2tQZ2tQZ2tYVadk5OlixcL18/qb2tRzs9pv+W6u7srKCjI4VJibGysOnXqlO/7li9fruHDh2vZsmXqe0W8bdq0qQ4cOKB9+/bZv+688051795d+/bty7VaXUkZJXhgLVBSfP4AAEB54uxnwZrFqdMCw8PDNWTIEAUHByskJESLFy9WYmKiRo8eLSl7ut7x48e1dOlSSdnBaujQoZo3b546duxov+pVuXJlVa9eXZ6enmrZsmWuY/j4+EiSQ3tx5STX1NRUVf7rnXaAhXLm/vIXOQAAUB7kPAv2+PHsBS2uZLNlv36NPWXJgVPD1aBBg3T69GlNnz5dSUlJatmypaKjo9WgQQNJUlJSUq5nXr355pu6fPmyxowZozFjxtjbhw0bpsjISEvG7OLiIh8fH/u9Rl5eXtxDVAhZWVlKT0/XpUuXmBZYAoZhKDU1VSdOnJCPj4/DSoEAAABlUc6zYAcOzA5Sfw1Y1+KzYPPj9AUtwsLCFBYWludrVwamuLi4Iu+/NEKXn5+fpMIv5oDsUHDx4kVVrlyZMGoCHx8f++cQAACgPBgwQFq1Sho3Tjp27H/t9etnB6sBA5w2tEJzergqi2w2m/z9/VW3bl2eoVBIGRkZ2rp1q7p27cpUthJyc3PjihUAACiXBgyQ7ror72fBlgWEqxJwcXHhl9xCcnFx0eXLl+Xp6Um4AgAAQL5cXKRbb3X2KIqHm18AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATOD1cLVy4UA0bNpSnp6eCgoK0bdu2fPuuWbNGoaGhqlOnjry9vRUSEqKYmBiHPsHBwfLx8VGVKlXUpk0bvf/++6V9GgAAAAAqOKeGq6ioKI0fP16TJ0/W3r171aVLF/Xp00eJiYl59t+6datCQ0MVHR2t+Ph4de/eXf369dPevXvtfWrWrKnJkydr586d+vbbb/Xwww/r4YcfdghhAAAAAGAmV2ce/NVXX9XIkSM1atQoSdLcuXMVExOjRYsWaebMmQ79586dm2t7xowZWrdundavX6+2bdtKkm699dZcfcaNG6f33ntP27dvV+/evUvlPAAAAADAaeEqPT1d8fHxmjhxYq72Xr16aceOHYXaR1ZWls6dO6eaNWvm+bphGNq8ebN+/PFHvfzyy/nuJy0tTWlpafbtlJQUSVJGRoYyMjIKNRYULKeO1LP0UWtrUGdrUGdrUGdrUGdrUGdrVKQ6F+UcnRauTp06pczMTPn6+uZq9/X1VXJycqH2MWfOHF24cEH33XdfrvazZ8+qXr16SktLk4uLixYuXKjQ0NB89zNz5kxNmzbNoX3jxo3y8vIq1FhQOLGxsc4eQoVBra1Bna1Bna1Bna1Bna1Bna1REeqcmppa6L5OnRYoSTabLde2YRgObXlZvny5IiIitG7dOtWtWzfXa9WqVdO+fft0/vx5bdq0SeHh4WrUqJHDlMEckyZNUnh4uH07JSVFAQEB6tWrl7y9vYt+UnCQkZGh2NhYhYaGys3NzdnDKdeotTWoszWoszWoszWoszWoszUqUp1zZrUVhtPCVe3ateXi4uJwlerEiRMOV7OuFBUVpZEjR2rlypXq2bOnw+uVKlXSjTfeKElq06aNDh06pJkzZ+Ybrjw8POTh4eHQ7ubmVu4/LFajptah1tagztagztagztagztagztaoCHUuyvk5bbVAd3d3BQUFOVxKjI2NVadOnfJ93/LlyzV8+HAtW7ZMffv2LdSxDMPIdU8VAAAAAJjNqdMCw8PDNWTIEAUHByskJESLFy9WYmKiRo8eLSl7ut7x48e1dOlSSdnBaujQoZo3b546duxov+pVuXJlVa9eXVL2/VPBwcG64YYblJ6erujoaC1dulSLFi1yzkkCAAAAqBCcGq4GDRqk06dPa/r06UpKSlLLli0VHR2tBg0aSJKSkpJyPfPqzTff1OXLlzVmzBiNGTPG3j5s2DBFRkZKki5cuKCwsDAdO3ZMlStXVtOmTfXBBx9o0KBBlp4bAAAAgIrF6QtahIWFKSwsLM/XcgJTjri4uKvu78UXX9SLL75owsgAAAAAoPCcds8VAAAAAJQnhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMIHTw9XChQvVsGFDeXp6KigoSNu2bcu375o1axQaGqo6derI29tbISEhiomJydVnyZIl6tKli2rUqKEaNWqoZ8+e2rVrV2mfBgAAAIAKzqnhKioqSuPHj9fkyZO1d+9edenSRX369FFiYmKe/bdu3arQ0FBFR0crPj5e3bt3V79+/bR37157n7i4OD3wwAPasmWLdu7cqeuvv169evXS8ePHrTotAAAAABWQqzMP/uqrr2rkyJEaNWqUJGnu3LmKiYnRokWLNHPmTIf+c+fOzbU9Y8YMrVu3TuvXr1fbtm0lSR9++GGuPkuWLNGqVau0adMmDR06NM9xpKWlKS0tzb6dkpIiScrIyFBGRkaxzw//k1NH6ln6qLU1qLM1qLM1qLM1qLM1qLM1KlKdi3KOTgtX6enpio+P18SJE3O19+rVSzt27CjUPrKysnTu3DnVrFkz3z6pqanKyMgosM/MmTM1bdo0h/aNGzfKy8urUGNB4cTGxjp7CBUGtbYGdbYGdbYGdbYGdbYGdbZGRahzampqofs6LVydOnVKmZmZ8vX1zdXu6+ur5OTkQu1jzpw5unDhgu677758+0ycOFH16tVTz5498+0zadIkhYeH27dTUlIUEBCgXr16ydvbu1BjQcEyMjIUGxur0NBQubm5OXs45Rq1tgZ1tgZ1tgZ1tgZ1tgZ1tkZFqnPOrLbCcOq0QEmy2Wy5tg3DcGjLy/LlyxUREaF169apbt26efaZNWuWli9frri4OHl6eua7Lw8PD3l4eDi0u7m5lfsPi9WoqXWotTWoszWoszWoszWoszWoszUqQp2Lcn5OC1e1a9eWi4uLw1WqEydOOFzNulJUVJRGjhyplStX5ntFavbs2ZoxY4a++OILtWrVyrRxAwAAAEBenLZaoLu7u4KCghzmacbGxqpTp075vm/58uUaPny4li1bpr59++bZ55VXXtELL7ygDRs2KDg42NRxAwAAAEBenDotMDw8XEOGDFFwcLBCQkK0ePFiJSYmavTo0ZKy74U6fvy4li5dKik7WA0dOlTz5s1Tx44d7Ve9KleurOrVq0vKngr43HPPadmyZQoMDLT3qVq1qqpWreqEswQAAABQETj1OVeDBg3S3LlzNX36dLVp00Zbt25VdHS0GjRoIElKSkrK9cyrN998U5cvX9aYMWPk7+9v/xo3bpy9z8KFC5Wenq6BAwfm6jN79mzLzw8AAABAxeH0BS3CwsIUFhaW52uRkZG5tuPi4q66v4SEhJIPCgAAAACKyKlXrgAAAACgvCBcAQAAAIAJCFcAAAAAYALCFQAAAACYgHAFAAAAACYgXAEAAACACQhXAAAAAGACwhUAAAAAmIBwBQAAAAAmIFwBAAAAgAkIVwAAAABgAsIVAAAAAJiAcAUAAAAAJiBcAQAAAIAJCFcAAAAAYALCFQAAAACYgHAFAAAAACYgXAEAAACACQhXAAAAAGACwhUAAAAAmIBwBQAAAAAmIFwBAAAAgAkIVwAAAABgAsIVAAAAAJiAcAUAAAAAJiBcAQAAAIAJCFcAAAAAYALCFQAAAACYgHAFVEARERFq06aNfXv48OHq37+/08YDAABQHhCugDImOTlZjz/+uBo1aiQPDw8FBASoX79+2rRpU6kdMyEhQTabzeFrw4YNpXZMAACAssbV2QMAUHgJCQnq3LmzfHx8NGvWLLVq1UoZGRmKiYnRmDFj9MMPP5Tq8b/44gu1aNHCvl2zZs1SPR4AAEBZQrgCypCwsDDZbDbt2rVLVapUsbe3aNFCI0aMsG9fuHBBjz32mD755BNdunRJwcHBeu2119S6desSHb9WrVry8/Mr0T4AAADKK6YFAmXEmTNntGHDBo0ZMyZXsMrh4+MjSTIMQy+++KKSk5MVHR2t+Ph4tWvXTj169NCZM2dKNIY777xTdevWVefOnbVq1aoS7QsAAKC8IVwBZcSRI0dkGIaaNm1aYL+4uDj9+uuvWrFihYKDg9W4cWPNnj1bPj4+xQ5EVatW1auvvqpVq1YpOjpaPXr00KBBg/TBBx8Ua38AAADlEdMCgTLCMAxJks1mK7Dfnj17dOnSJYfpexcvXtTPP/9crGPXrl1bTzzxhH07ODhYf/zxh2bNmqWHHnqoWPsEAAAobwhXQBnRuHFj2Ww2HTp0qMBl07OyslSjRg1t27ZNbm5uuV7LmTpoho4dO+qtt94ybX8AAABlHeEKKCNq1qyp3r1764033tDYsWMd7rv6888/5ePjo7Zt2+qPP/6Qq6urbrzxxlIbz969e+Xv719q+wcAAChruOcKKEMWLlyozMxMdejQQatXr9bhw4d16NAhzZ8/XyEhIZKkHj166KabbtLAgQMVExOjhIQE7dixQ1OmTNE333xTrOO+9957WrZsmQ4dOqQff/xRs2fP1vz58/X444+beXoAAABlGleugDKkYcOG2rNnj1566SVNmDBBSUlJqlOnjoKCgrRo0SJJ2fdkPf/889q+fbtGjBihkydPys/PT127dpWvr2+xj/3iiy/q119/lYuLi5o0aaJ33nmH+60AAAD+gnAFlDH+/v5asGCBFixYkG+fypUr67XXXsu3T0REhCIiIuzbkZGRBR5z2LBhGjZsWHGGCwAAUGEwLRAAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEPOcKqGAyM6Vt26SkJMnfX+rSRXJxcfaoAAAAyj7CFVCBrFkjjRsnHTv2v7b69aV586QBA5w3LgAAgPKAaYFABbFmjTRwYO5gJUnHj2e3r1njnHEBAACUF4QroALIzMy+YmUYjq/ltI0fn90PAAAAxUO4AiqAbdscr1j9lWFIv/2W3Q8AAADFQ7gCKoCkJHP7AQAAwBHhCqgA/P3N7QcAAABHhCugAujSJXtVQJst79dtNikgILsfAAAAiodwBVQALi7Zy61LjgErZ3vuXJ53BQAAUBKEK6CCGDBAWrVKqlcvd3v9+tntPOcKcBQREaE2bdrYt4cPH67+/fs7bTwAgGsb4QqoQAYMkBISpC1bpGXLsv959CjBCuVTcnKyHn/8cTVq1EgeHh4KCAhQv379tGnTJkuOf+TIEVWrVk0+Pj6WHA8A4Hyuzh4AAGu5uEi33ursUQClKyEhQZ07d5aPj49mzZqlVq1aKSMjQzExMRozZox++OGHUj1+RkaGHnjgAXXp0kU7duwo1WMBAK4dXLkqA5iWAgBFExYWJpvNpl27dmngwIFq0qSJWrRoofDwcH311Vf2fmfPntWjjz6qunXrytvbW3//+9+1f//+Eh9/ypQpatq0qe67774S7wsAUHYQrkqZs6alGIah2bNnq0mTJvbjzpgxo1SPCQDXgjNnzmjDhg0aM2aMqlSp4vB6zjQ9wzDUt29fJScnKzo6WvHx8WrXrp169OihM2fOFPv4mzdv1sqVK/XGG28Uex8AgLLJ6eFq4cKFatiwoTw9PRUUFKRt27bl23fNmjUKDQ1VnTp15O3trZCQEMXExOTq8/333+uee+5RYGCgbDab5s6dW8pnkL+EhAQFBQVp8+bNmjVrlg4cOKANGzaoe/fuGjNmTKkee9y4cXrrrbc0e/Zs/fDDD1q/fr06dOhQqscEgGvBkSNHZBiGmjZtWmC/LVu26MCBA1q5cqWCg4PVuHFjzZ49Wz4+Plq1alWxjn369GkNHz5ckZGR8vb2LtY+AABll1PvuYqKitL48eO1cOFCde7cWW+++ab69OmjgwcP6vrrr3fov3XrVoWGhmrGjBny8fHRu+++q379+unrr79W27ZtJUmpqalq1KiR7r33Xj3xxBNWn1Iuf52W8te/nrZo0UIjRoywb589e1ZPPfWU1q5dq0uXLik4OFivvfaaWrduXazjHjp0SIsWLdJ3332nm266qcTnAQBliWEYkiRbfg92+3/x8fE6f/68atWqlav94sWL+vnnn4t17EceeUSDBw9W165di/V+AEDZ5tRw9eqrr2rkyJEaNWqUJGnu3LmKiYnRokWLNHPmTIf+V16FmjFjhtatW6f169fbw1X79u3Vvn17SdLEiRNL9wQKkDMt5aWXXirUtJSaNWsqOjpa1atX15tvvqkePXrop59+Us2aNYt87PXr16tRo0b69NNPddttt8kwDPXs2VOzZs0q1v4AoCxp3LixbDabDh06VOD9qVlZWfL391dcXJzDa8Vd4W/z5s365JNPNHv2bEnZ/4/PysqSq6urFi9enOsPawCA8sdp4So9PV3x8fEOAahXr16FXlkpKytL586dK3FgSEtLU1pamn07JSVFUvZqTxkZGcXa5w8//CDDMHTjjTcWuI+caSnHjx+Xh4eHJGnmzJlau3atoqKiNGrU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agoAAABQNjAtEAAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADAB4QoAAAAATEC4AgAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExQ5HC1YcMGbd++3b79xhtvqE2bNho8eLD++OMPUwcHAAAAAGVFkcPVU089pZSUFEnSgQMHNGHCBN1+++365ZdfFB4ebvoAAQAAAKAscC3qG44eParmzZtLklavXq077rhDM2bM0J49e3T77bebPkAAAAAAKAuKfOXK3d1dqampkqQvvvhCvXr1kiTVrFnTfkULAAAAACqaIl+5uuWWWxQeHq7OnTtr165dioqKkiT99NNPql+/vukDBAAAAICyoMhXrhYsWCBXV1etWrVKixYtUr169SRJn3/+uW677TbTBwgAAAAAZUGRr1xdf/31+vTTTx3aX3vtNVMGBAAAAABlUaHCVUpKiry9ve3/XpCcfgAAAABQkRQqXNWoUUNJSUmqW7eufHx8ZLPZHPoYhiGbzabMzEzTBwkAAAAA17pChavNmzerZs2a9n/PK1wBAAAAQEVWqHDVrVs3+7/feuutpTUWAAAAACizirxa4HPPPZfn1L+zZ8/qgQceMGVQAAAAcK6IiAi1adPGvj18+HD179/faeMByoIih6ulS5eqc+fO+vnnn+1tcXFxuvnmm5WQkGDm2AAAAFAMycnJevzxx9WoUSN5eHgoICBA/fr106ZNm0rtmJcuXdLw4cN18803y9XVlSCGCqnI4erbb79VYGCg2rRpoyVLluipp55Sr169NHz4cG3fvr00xggAAIBCSkhIUFBQkDZv3qxZs2bpwIED2rBhg7p3764xY8aU2nEzMzNVuXJljR07Vj179iy14wDXsiI/56p69epasWKFJk+erH/84x9ydXXV559/rh49epTG+AAAAFAEYWFhstls2rVrl6pUqWJvb9GihUaMGGHfPnv2rJ566imtXbtWly5dUnBwsF577TW1bt26WMetUqWKFi1aJEn6z3/+oz///LNE5wGURUW+ciVJr7/+ul577TU98MADatSokcaOHav9+/ebPTYAAAAU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9OnTtW/fPvuXJH311Ve6//771adPH3366afau3evJk+erPT09Fz7TE1NVXx8vFxcXHT48OECjz9q1Cj98ssvGjJkiA4cOKDg4GC9/vrrpXW6AIBrBOEKAFCuXLx4UcOGDdM//vEP9ezZU2+99ZZ2796tN998U3Xr1tWNN95o/5Kk//znP2rQoIEmT56s4OBgNW7cWL/++qvDfidMmKBKlSrp888/1/z587V58+YCxxEQEKDRo0drzZo1mjBhgpYsWVIq5wsAuHYQrgAA5crEiROVlZWll19+WZJ0/fXXa86cOXrqqaeUkJDg0P/GG29UYmKiVqxYoZ9//lnz58/Xxx9/nKvPZ599pnfeeUcffvihQkNDNXHiRA0bNkx//PFHnmMYP368YmJidPToUe3Zs0ebN29Ws2bNTD9XAMC1hQUtAADlxpdffqkePXooLi5Ot9xyS67XevfurcuXL+uLL76QzWbL9drTTz+td955R2lpaerbt686duyoiIgI/fnnnzp58qRuvvlmjRs3TpMmTZIkXb58WZ07d1ZgYKCioqIcFrR4/PHH9fnnn+vYsWPy9vbWbbfdptdee021atWyrBYAAOsRrgAAAADABEwLBAAAAAATEK4AAAAAwASEKwAAAAAwAeEKAAAAAExAuAIAAAAAExCuAAAAAMAEhCsAAAAAMAHhCgAAAABMQLgCAAAAABMQrgAAAADABIQrAAAAADDB/wHuc+7vVZTeygAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import toponetx as tnx\n", "\n", "import topoembedx as tex\n", "\n", "# Create a cell complex object with a few cells\n", "cc = tnx.classes.CellComplex([[1, 2, 3, 4, 5], [4, 5, 6]], ranks=2)\n", "\n", "# Create a model\n", "model = tex.DeepCell(dimensions=2)\n", "\n", "# Fit the model to the cell complex\n", "model.fit(cc, neighborhood_type=\"adj\", neighborhood_dim={\"rank\": 0, \"via_rank\": 1})\n", "\n", "# Get the embeddings\n", "embedded_points = model.get_embedding(get_dict=True)\n", "\n", "# Prepare data for plotting\n", "x = [embedded_points[cell][0] for cell in embedded_points]\n", "y = [embedded_points[cell][1] for cell in embedded_points]\n", "cell_labels = [f\"Cell {cell}\" for cell in embedded_points]\n", "\n", "# Plotting\n", "plt.figure(figsize=(10, 8))\n", "plt.scatter(x, y, c=\"blue\", label=\"Projected Points\")\n", "\n", "# Annotate the points to correspond with cells\n", "for i, label in enumerate(cell_labels):\n", " plt.annotate(\n", " label, (x[i], y[i]), textcoords=\"offset points\", xytext=(0, 10), ha=\"center\"\n", " )\n", "\n", "# Label axes and add title\n", "plt.xlabel(\"X-axis\")\n", "plt.ylabel(\"Y-axis\")\n", "plt.title(\"Projection of 0-dim Cell Complex in 2D\")\n", "\n", "# Display the plot\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Preservation of Neighborhoodness:\n", "The neighborhoodness of the vertices in the original 0-dimensional cell complex is preserved in the projection. Vertices that were close to each other in the original cell complex will also be close to each other in the 2D projection. This is a key feature of topological embeddings - maintaining the topological relationships and structures in the lower-dimensional projection. The proximity of points (representing vertices) in the scatter plot reflects the neighborhood relationships of the vertices in the original 0-dimensional cell complex, as captured by the DeepCell projection algorithm." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Embedding of edges in a cell complex using DeepCell" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2AAAAK7CAYAAACUHOz8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBgUlEQVR4nOzdeVyVZf7/8fcREJBAU0BQcaE0zSUXXNAxNHdzSy0zczdzNLXIVp1Ea7TFcgmXb2WRZeq4jFNKKrk0OmKWS1o65QK5QYobKgoI9+8PfpzpdADhwLkRfD0fj/MYz3Vf931d5+Odw5vrPvdtMQzDEAAAAADA6coU9wQAAAAA4E5BAAMAAAAAkxDAAAAAAMAkBDAAAAAAMAkBDAAAAABMQgADAAAAAJMQwAAAAADAJAQwAAAAADAJAQwAAAAATEIAA1AqREVFyWKxWF+urq6qVq2ahg8frtOnTxfpWDVr1tSwYcOK9Jh/tGDBAkVFRdm1x8fHy2Kx5LjtdrJixQrVr19fnp6eslgs2r9/f659p0yZoh49eqhq1aqyWCxFVtdhw4apZs2aNm0Wi0URERFFcvxbyczM1GeffaaOHTvK19dXbm5u8vf3V48ePfTVV18pMzOzwMf883lX0PPh999/18svv6yGDRvqrrvukoeHh2rXrq2JEyfqyJEjBZ6PmSIiImSxWEwfN6fzqDB+/fVXTZo0Sc2aNVOFChVUsWJFtWnTRqtWrbLrm/2Zs1/lypVTtWrV1KVLF73//vu6cuVKkc0LgLlci3sCAFCUPvnkE9WtW1fXr1/Xv//9b82cOVPffvutDh48KC8vryIZ45///Kd8fHyK5Fg5WbBggXx9fe3CSGBgoGJjY3XPPfc4bezCOnfunAYPHqyuXbtqwYIFcnd3V506dXLtP3v2bDVq1Ei9evXSxx9/7NS5xcbGqlq1ak4dQ5Ju3LihPn36aNOmTXr88ce1cOFCBQQE6Ny5c9qwYYMeffRRrVixQr1793b6XLLt3r1bPXr0kGEYeuaZZxQaGqqyZcvql19+0eeff64WLVro4sWLps2npPjb3/6miRMnFtnxNm3apPXr12vw4MFq3ry5bt68qRUrVujRRx/VtGnT9Nprr9nts2HDBpUvX15paWk6c+aMNm/erBdffFHvvPOOvvrqKz3wwANFNj8A5iCAAShVGjRooJCQEElS+/btlZGRoddff11r167VoEGDctwnJSVF5cqVy/cYTZo0KZK5FpS7u7tatWpVLGPn16+//qr09HQ9+eSTCgsLu2X/K1euqEyZrIsxPvvsM6fOzazahYeHa+PGjfr00081ZMgQm219+/bVCy+8oOvXr5syF0lKTk5W79695eHhoZ07d9qE0Hbt2unpp5/OcQUGKvJfdjz++OMaN26czWpet27dlJSUpLfeeksvvfSS3N3dbfZp1qyZfH19bY7xzDPPKCwsTL169dKvv/5qtw+A2xuXIAIo1bJ/6P7tt98kZV1SdNddd+ngwYPq3LmzvL291aFDB0nShQsXNHbsWFWtWlVly5ZVcHCwJk+erNTUVJtj5nQJYnJysiZNmqRatWqpbNmyqlq1qp599lldu3bNpl9mZqbef/99NW7cWJ6enqpQoYJatWqlL7/80nrsn3/+Wd9++6310qPsS6Byu+Rsx44d6tChg7y9vVWuXDm1bt1a69evt+mTfYnm1q1b9de//lW+vr6qVKmS+vbtqzNnzuSrll9++aVCQ0NVrlw5eXt7q1OnToqNjbVuHzZsmP7yl79IkgYMGCCLxaJ27drleczs8FUYUVFRuu++++Tu7q569eppyZIlOfb78yWI2TXZsmWLnnrqKVWqVEk+Pj4aMmSIrl27psTERD322GOqUKGCAgMDNWnSJKWnp+c5l8TERH300Ufq0qWLXfjKVrt2bTVq1Mj6Pr/njqM+/PBDJSYm6u233851BbB///4272/1dy397xK5AwcO6NFHH1X58uVVsWJFhYeH6+bNm/rll1/UtWtXeXt7q2bNmnr77bdt9t+2bZssFos+//xzhYeHKyAgQJ6engoLC9O+ffvy9dlWrFih0NBQeXl56a677lKXLl1s9t2xY4fc3Nw0adIkm/2y/+4XL16c5/Fzu5T1mWee0WeffaZ69eqpXLlyeuCBB7Ru3bpbztfX1zfHSylbtGihlJQUXbhw4ZbHkKQHHnhAkydP1okTJ7RixYp87QPg9kEAA1CqHT16VJLk5+dnbUtLS1OvXr300EMP6V//+pemTZumGzduqH379lqyZInCw8O1fv16Pfnkk3r77bfVt2/fPMdISUlRWFiYPv30U02YMEFff/21XnrpJUVFRalXr14yDMPad9iwYZo4caKaN2+uFStWaPny5erVq5fi4+MlZV3eGBwcrCZNmig2NlaxsbH65z//mevY3377rR566CFdvnxZixcv1rJly+Tt7a2ePXvm+IPZqFGj5Obmpi+++EJvv/22tm3bpieffPKWdfziiy/Uu3dv+fj4aNmyZVq8eLEuXryodu3aaceOHZKyLteaP3++JGnGjBmKjY3VggULbnnswoiKitLw4cNVr149rV69WlOmTNHrr7+uLVu25PsYo0aNUvny5bV8+XJNmTJFX3zxhZ566ik9/PDDeuCBB7Rq1SoNHTpU7777rt5///08j7V161alp6erT58++Rq7IOeOozZt2iQXFxf17NkzX/3z83f9R4899pgeeOABrV69Wk899ZRmz56t5557Tn369NHDDz+sf/7zn3rooYf00ksvac2aNXb7v/rqqzp+/Lg++ugjffTRRzpz5ozatWun48eP5znPGTNmaODAgbr//vv1j3/8Q5999pmuXLmitm3b6tChQ5Kkv/zlL3rjjTf07rvvWn/J8fPPP2vcuHF68sknNXLkyHzV5M/Wr1+vyMhITZ8+XatXr1bFihX1yCOP3HLOudm6dav8/Pzk7++f73169eolSfr3v//t0JgAipEBAKXAJ598Ykgydu3aZaSnpxtXrlwx1q1bZ/j5+Rne3t5GYmKiYRiGMXToUEOS8fHHH9vsv2jRIkOS8Y9//MOm/a233jIkGZs2bbK21ahRwxg6dKj1/cyZM40yZcoY33//vc2+q1atMiQZ0dHRhmEYxr///W9DkjF58uQ8P0v9+vWNsLAwu/a4uDhDkvHJJ59Y21q1amX4+/sbV65csbbdvHnTaNCggVGtWjUjMzPTpj5jx461Oebbb79tSDISEhJynU9GRoZRpUoVo2HDhkZGRoa1/cqVK4a/v7/RunVra9vWrVsNScbKlSvz/Iw58fLysqnrrWTPq2nTptbPaRiGER8fb7i5uRk1atSw6S/JmDp1qvV9dk3Gjx9v069Pnz6GJOO9996zaW/cuLHRtGnTPOf05ptvGpKMDRs25Osz5PfcMQz78y6n8yEndevWNQICAvI1n4L8XU+dOtWQZLz77rs2x2jcuLEhyVizZo21LT093fDz8zP69u1rbcs+V3L7+xs1apTdWNlOnDhhuLq62v3dXblyxQgICDAee+wxa1tmZqbRvXt3o0KFCsZPP/1k3H///UbdunWNq1ev3rIeQ4cOzfE8qly5spGcnGxtS0xMNMqUKWPMnDnzlsf8sw8//NCQZMydO9emPfsznzt3Lsf9rl+/bkgyunXrVuAxARQvVsAAlCqtWrWSm5ubvL291aNHDwUEBOjrr79W5cqVbfr169fP5v2WLVvk5eVldylW9qWGmzdvznXMdevWqUGDBmrcuLFu3rxpfXXp0kUWi0Xbtm2TJH399deSpHHjxhXyU2a5du2avvvuO/Xv31933XWXtd3FxUWDBw/WqVOn9Msvv9jsk/1b82zZl8JlX6KZk19++UVnzpzR4MGDbS4ZvOuuu9SvXz/t2rVLKSkpRfGRcmQYhk1db968aTOvJ554wuayrho1aqh169b5Pn6PHj1s3terV0+S9PDDD9u151UnR+T33DGLI3/XOdXPYrGoW7du1jZXV1fde++9OdYvt7+/rVu35jrPjRs36ubNmxoyZIhN3Tw8PBQWFmZTN4vFoiVLlsjb21shISGKi4vTP/7xj0LdlKd9+/by9va2vq9cubL8/f0LfH58/fXXGjdunPr376/x48cXaF+jCFZHARQPbsIBoFRZsmSJ6tWrJ1dXV1WuXFmBgYF2fcqVK2d3F8Pz588rICDA7vsZ/v7+cnV11fnz53Md8/fff9fRo0fl5uaW4/akpCRJWXcIdHFxUUBAQEE/Vo4uXrwowzBy/IxVqlSRJLt5V6pUyeZ99pf387opRPYxchsnMzNTFy9eLNCNTAri008/1fDhw23aDMOwziunegYEBFgv67yVihUr2rwvW7Zsru03btzI81jVq1eXJMXFxeVr7PyeO4VRvXp1HTlyRNeuXbtl6HDk7zqnOpUrV04eHh527cnJyXbHze3v78cff8x1nr///rskqXnz5jlu//N3CytVqqRevXpp/vz5euSRR9SwYcNcj50ff/7vSMr6b6kgN1fZuHGj+vbtq06dOmnp0qUFvs1+dtjL/m8dQMlBAANQqtSrV896F8Tc5PSDTqVKlfTdd9/JMAyb7WfPntXNmzdt7kL2Z76+vvL09Mz1NurZ+/r5+SkjI0OJiYk5/oBbUHfffbfKlCmjhIQEu23ZN9bIa975lf3DZm7jlClTRnfffXehx8lNz5499f333+c6r8TERLttObWZoX379nJzc9PatWs1ZsyYW/bP77lTGF26dNGmTZv01Vdf6fHHH8+zb3H8Xef295dTyMmWXZdVq1apRo0atxwjJiZGCxcuVIsWLfTPf/5Tq1evtlsFN9PGjRvVp08fhYWFafXq1dbQXxDZ32m71Y1uANx+uAQRACR16NBBV69e1dq1a23as++ol32nxJz06NFDx44dU6VKlRQSEmL3yr6LWvYlWQsXLsxzLvn9TbqXl5datmypNWvW2PTPzMzU559/rmrVquX5DK78uu+++1S1alV98cUXNpc9Xbt2TatXr7beLc9Zcqpr9rwCAwO1bNkym3n99ttv2rlzp9Pmk5eAgACNGjVKGzduzPVujMeOHdOBAwck5f/cKYyRI0cqICBAL774Yq4PJc++OUZx/F3n9veXV7Do0qWLXF1ddezYsRzr9sdfwiQkJFgfi7Bz50716tVLI0eOzPcqZVHbtGmT+vTpo7/85S9au3atQ7eQ//HHHzVjxgzVrFlTjz32mBNmCcCZWAEDAElDhgzR/PnzNXToUMXHx6thw4basWOHZsyYoe7du6tjx4657vvss89q9erVevDBB/Xcc8+pUaNGyszM1IkTJ7Rp0yY9//zzatmypdq2bavBgwfrjTfe0O+//64ePXrI3d1d+/btU7ly5azfAWnYsKGWL1+uFStWKDg4WB4eHrleMjVz5kx16tRJ7du316RJk1S2bFktWLBAP/30k5YtW1bgy5pyUqZMGb399tsaNGiQevTooaefflqpqal65513dOnSJb355psOH/vbb7/VuXPnJEkZGRn67bffrM+kCgsLs7l7ZU7zev311zVq1Cg98sgjeuqpp3Tp0iVFREQU2WWejnjvvfd0/PhxDRs2TBs3btQjjzyiypUrKykpSTExMfrkk0+0fPlyNWrUKN/nTmGUL19e//rXv9SjRw81adLE5kHMR44c0eeff64ff/xRffv2derfdW7Onj1r/fu7fPmypk6dKg8PD73yyiu57lOzZk1Nnz5dkydP1vHjx9W1a1fdfffd+v3337V79255eXlp2rRpysjI0MCBA2WxWPTFF1/IxcVFUVFRaty4sQYMGKAdO3Y4tPrkqB07dqhPnz4KCAjQq6++qv3799tsv//+++0uj96zZ4/Kly+v9PR064OYP/vsM/n7++urr74ydf4AigYBDAAkeXh4aOvWrZo8ebLeeecdnTt3TlWrVtWkSZM0depUu/5/DDZeXl7avn273nzzTX3wwQeKi4uTp6enqlev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oHXr1mnbtm0aPny4Ll++bF2VioiIkJR1+/8XX3xRVatWlZeXl1q2bGl3R++oqCjVrFlTVapUUd++fXX+/Pl81aVChQoKCAhQ3bp1tWjRInl4eOjLL7+UJB08eFAPPfSQPD09ValSJY0ePVpXr1617vvnSxDbtWunCRMm6MUXX1TFihUVEBBg/QySVLNmTUnSI488IovFYn3/448/qn379vL29paPj4+aNWvm8L0Z8osABgAAgFJvzRrpsccsOnPG9hmpp09L/fs7P4T9kaenp81K19GjR/WPf/xDq1evtn4VpU+fPrpw4YK+/fZbxcTE6NixY3n+0nvjxo168sknNWHCBB06dEj/93//p6ioKP3973+XlPU4pG7dumnnzp36/PPPdejQIb355ptycXFR69atNWfOHPn4+CghIUEJCQnWFbrhw4frP//5j5YvX64DBw7o0UcfVdeuXXXkyBFJ0nfffacRI0bor3/9q/7973+rffv2euONNwpcEzc3N7m6uio9PV0pKSnq2rWr7r77bn3//fdauXKlvvnmGz3zzDN5HuPTTz+Vl5eXvvvuO7399tuaPn26YmJiJEnff/+9JNtVN0kaNGiQqlWrpu+//1579uzRyy+/bHOvA2fgOWAAAAAo1TIypIkTJcOQJNsAZhiSxSI9+6zUu7fk4uLcuezevVtffPGFOnToYG1LS0vTZ599Zn2makxMjA4cOKC4uDjrd+8/++wz1a9fX99//72aN29ud9y///3vevnllzV06FBJUnBwsF5//XW9+OKLmjp1qr755hvt3r1bhw8fVp06dax9spUvX14Wi0UBAQHWtmPHjmnZsmU6deqUqlSpIkmaNGmSNmzYoE8++UQzZszQ3Llz1aVLF7300ktKTk5W06ZNFRsbqw0bNuS7JqmpqXrnnXeUnJysDh06aOnSpbp+/bqWLFkiLy8vSVJkZKR69uypt956K9eb1zVq1EhTp06VlPWc3sjISG3evFmdOnWy1jZ71S3biRMn9MILL6hu3brW/ZyNAAYAAIBSbft26dQp6c/hK5thSCdPZvW7xf3JHLJu3TrdddddunnzptLT09W7d2+9//771u01atSwBgRJOnz4sIKCgmxufHb//ferQoUKOnz4cI4BbM+ePfr++++tK16SlJGRoRs3biglJUX79+9XtWrVrOErP/bu3SvDMOz2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ADAJAQwAAAAATEIAAwAAAACTEMAAAAAAwCQEMAAAAAAwCQEMAAAAAExCAAMAAAAAkxDAAAAAAMAkBDAAAAAAMAkBDAAAAABMQgADAAAAAJMQwAAAAADAJAQwAAAAADAJAQwAAABAsYmIiFDjxo2t74cNG6Y+ffrccr/BgwdrxowZzptYLtatW6cmTZooMzPTof0JYAAAAAAckpiYqPHjx+u+++5T//79FRwcrJ49e2rz5s1OHffAgQNav369xo8fL0lKT0/XSy+9pIYNG8rLy0tVqlTRkCFDdObMmQId9/z58+ratauqVKkid3d3BQUF6ZlnnlFycrK1T48ePWSxWPTFF184NHcCGAAAAIACi4+PV7NmzbRlyxbNmDFDc+fO1VdffaX27dtr3LhxTh07MjJSjz76qLy9vSVJKSkp2rt3r/72t79p7969WrNmjX799Vf16tWrQMctU6aMevfurS+//FK//vqroqKi9M0332jMmDE2/YYPH67333/fobkTwAAAAAAU2NixY2WxWLR7927169dPVatWVf369RUeHq5du3ZZ+12+fFmjR4+Wv7+/fHx89NBDD+nHH390eNzMzEytXLnSJlyVL19eMTExeuyxx3TfffepVatWev/997Vnzx6dOHEi38e+++679de//lUhISGqUaOGOnTooLFjx2r79u02/Xr16qXdu3fr+PHjBZ4/AQwAAABAgVy4cEEbNmzQuHHj5OXlZbe9QoUKkiTDMPTwww8rMTFR0dHR2rNnj5o2baoOHTrowoULDo194MABXbp0SSEhIXn2u3z5siwWi3Uujjhz5ozWrFmjsLAwm/YaNWrI39/fLpjlBwEMAAAAQIEcPXpUhmGobt26efbbunWrDh48qJUrVyokJES1a9fWrFmzVKFCBa1atcqhsePj4+Xi4iJ/f/9c+9y4cUMvv/yynnjiCfn4+BR4jIEDB6pcuXKqWrWqfHx89NFHH9n1qVq1quLj4wt8bAIYAAAAgAIxDEOSZLFY8uy3Z88eXb16VZUqVdJdd91lfcXFxenYsWMOjX39+nW5u7vnOnZ6eroef/xxZWZmasGCBQ6NMXv2bO3du1dr167VsWPHFB4ebtfH09NTKSkpBT62q0MzAgAAAHDHql27tiwWiw4fPpznLeMzMzMVGBiobdu22W1z9NJAX19fpaSkKC0tTWXLlrXZ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import toponetx as tnx\n", "\n", "import topoembedx as tex\n", "\n", "# Create a cell complex object with a few cells\n", "cc = tnx.classes.CellComplex([[1, 2, 3, 4, 5], [4, 5, 6]], ranks=2)\n", "\n", "# Create a model\n", "model = tex.DeepCell()\n", "\n", "# Fit the model to the cell complex\n", "model.fit(cc, neighborhood_type=\"adj\", neighborhood_dim={\"rank\": 1, \"via_rank\": 0})\n", "\n", "# Get the embeddings\n", "embedded_points = model.get_embedding(get_dict=True)\n", "\n", "# Prepare data for plotting\n", "x = [embedded_points[cell][0] for cell in embedded_points]\n", "y = [embedded_points[cell][1] for cell in embedded_points]\n", "cell_labels = [f\"Cell {cell}\" for cell in embedded_points]\n", "\n", "# Plotting\n", "plt.figure(figsize=(10, 8))\n", "plt.scatter(x, y, c=\"blue\", label=\"Projected Points\")\n", "\n", "# Annotate the points to correspond with cells\n", "for i, label in enumerate(cell_labels):\n", " plt.annotate(\n", " label, (x[i], y[i]), textcoords=\"offset points\", xytext=(0, 10), ha=\"center\"\n", " )\n", "\n", "# Label axes and add title\n", "plt.xlabel(\"X-axis\")\n", "plt.ylabel(\"Y-axis\")\n", "plt.title(\"Projection of 1-dim Cell Complex in 2D\")\n", "\n", "# Display the plot\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The preservation of neighborhoodness in the projection for edges is similar to that for vertices. Edges that were close to each other in the original 1-dimensional cell complex (connected vertices) will also be close to each other in the 2D projection, reflecting their topological relationships." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# DeepCell can also be applied to on other domains smoothly\n", "\n", "The following example demonstrate the unifying principle as the same algorithm can be used to embed various domains." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA20AAAK7CAYAAABh4mdMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACVHklEQVR4nOzdd3wU1cL/8e+SHiAEAinUgBCaoXulSO9NMOIVUIoIFrAgcH1UUINIvRYEpQgKIqB4KXm4EEM1FEFAmhEiTQIICSAlQSBhk8zvj/yyD8tuYgIJGcLn/XrtS/bMmZmzczaYL+fMGYthGIYAAAAAAKZUpKAbAAAAAADIGqENAAAAAEyM0AYAAAAAJkZoAwAAAAATI7QBAAAAgIkR2gAAAADAxAhtAAAAAGBihDYAAAAAMDFCGwAAAACYGKENKITmz58vi8Vie7m6uqp8+fJ65plndPr06Tw9V3BwsAYOHJinx7zZjBkzNH/+fIfyuLg4WSwWp9vMZMmSJapdu7a8vLxksVi0b9++LOtarVaNHTtWwcHB8vDwUI0aNTR9+vQ7bsPAgQMVHBxsV2axWBQeHn7Hx86J9PR0ff3112rXrp1Kly4tNzc3+fv7q1u3bvrvf/+r9PT0u9KOmwUHB6tbt25/W+9ufc8WL16sqVOn5tvx76S/c7NvUlKSxo8fr0aNGsnHx0ceHh4KDg7WoEGDtGfPnts6/92S+fdmXFzcXT1veHi4LBZLnh0vPj5eY8aMUZMmTVS6dGn5+PioYcOG+vzzz5WWlmZX99b/V3h6eiowMFCtW7fWxIkTde7cuTxrF4A741rQDQCQf+bNm6caNWro+vXr2rx5syZOnKhNmzYpJiZGRYsWzZNzrFixQj4+PnlyLGdmzJih0qVLOwTDoKAgbd++XQ888EC+nftOnT9/Xv369VOnTp00Y8YMeXh4KCQkJMv6Q4cO1ddff61x48bpoYce0po1a/Tqq6/qypUreuutt/K0bdu3b1f58uXz9JjOJCcnq2fPnlq7dq169+6tmTNnKjAwUOfPn1dUVJSeeOIJLVmyRD169Mj3ttyOu/U9W7x4sX799VcNHz48X45/N/r72LFj6tChg86dO6cXXnhBY8eOVbFixRQXF6fvvvtODRs21OXLl1WiRIl8bce9ZvDgwerUqVOeHW/37t1asGCB+vfvr7fffltubm76/vvv9eKLL+qnn37Sl19+6bBP5v8rrFarzp07p61bt2ry5Mn64IMPtGTJErVr1y7P2gfgNhkACp158+YZkoxdu3bZlb/99tuGJGPhwoVZ7nv16tX8bl6u1K5d22jZsmVBN+O2bN261ZBkLFmy5G/r/vrrr4bFYjEmTJhgVz5kyBDDy8vLuHDhwm23Y8CAAUalSpVue/878eKLLxqSjK+++srp9sOHDxv79++/y60yjEqVKhldu3a96+fNSteuXfO8j9LT041r167d8XEkGe+++262dVJTU43Q0FDDx8fHiImJcVonMjLSdH+/3Czz783jx48XdFPuyMWLF40bN244lA8bNsyQZJw8edJWltX/KwzDME6cOGFUqFDBKF68uJGQkJCvbQbw95geCdxHGjduLEk6ceKEpIxpc8WKFVNMTIw6dOig4sWLq23btpKkixcvaujQoSpXrpzc3d1VpUoVjR49WikpKXbHdDY9MikpSaNGjVLlypXl7u6ucuXKafjw4bp69apdvfT0dE2fPl316tWTl5eXfH191bhxY61cudJ27AMHDmjTpk226TuZ0/yymra2detWtW3bVsWLF5e3t7eaNm2q1atX29XJnBL0ww8/6MUXX1Tp0qXl5+ensLAwnTlzJkfXcuXKlWrSpIm8vb1VvHhxtW/fXtu3b7dtHzhwoB555BFJ0pNPPimLxaJWrVplebyIiAgZhqFnnnnGrvyZZ57R9evXFRUVlaN2zZ8/X9WrV5eHh4dq1qypBQsWOK1365S3zGuyceNGDRkyRH5+fvLx8VH//v119epVJSQk6J///Kd8fX0VFBSkUaNGyWq1ZtuWhIQEzZ07Vx07dlT//v2d1qlWrZrq1Klje3/y5Ek9/fTT8vf3t32GDz/80G4KZWbf//vf/9bkyZMVHBwsLy8vtWrVSocPH5bVatUbb7yhsmXLqkSJEnrssceynOa1YsUK1alTR56enqpSpYqmTZtmt93Z9yxzOtuBAwfUp08flShRQgEBARo0aJASExPt9v/ss8/UokUL+fv7q2jRogoNDdWUKVPsrl2rVq20evVqnThxwm6qWqac/ixaLBa99NJLmjVrlmrWrCkPDw999dVXtm039/f58+c1dOhQ1apVS8WKFZO/v7/atGmjLVu2OL1OfyciIkIxMTF688039eCDDzqt07lzZ3l7e9ve5+Zn9Xa/l5n9N2XKFI0fP14VK1aUp6enGjVqpA0bNuTos61fv15t27aVj4+PvL291axZM7t9jxw5Ih8fHz3xxBN2+23cuFEuLi56++23sz2+s+mRmdN3o6Ki1KBBA3l5ealGjRpOR8luVbJkSbm5uTmU/+Mf/5Ak/fHHH397DEmqWLGiPvzwQ125ckWzZ8/O0T4A8g/TI4H7yNGjRyVJZcqUsZXduHFDjz76qJ5//nm98cYbSk1NVXJyslq3bq1jx45p7NixqlOnjrZs2aKJEydq3759Dr9Y3ezatWtq2bKl/vjjD7311luqU6eODhw4oHfeeUcxMTFav3697ReUgQMHauHChXr22Wf13nvvyd3dXXv27LHdU7JixQr16tVLJUqU0IwZMyRJHh4eWZ5706ZNat++verUqaMvvvhCHh4emjFjhrp3765vvvlGTz75pF39wYMHq2vXrlq8eLFOnTqlf/3rX3r66ae1cePGbK/j4sWL9dRTT6lDhw765ptvlJKSoilTpqhVq1basGGDHnnkEb399tv6xz/+oWHDhmnChAlq3bp1ttNIf/31V5UpU0aBgYF25ZmB5tdff822TVLGL7jPPPOMevTooQ8//FCJiYkKDw9XSkqKihTJ2b/RDR48WGFhYfr222+1d+9evfXWW0pNTdWhQ4cUFham5557TuvXr9fkyZNVtmxZjRgxIstj/fDDD7JarerZs2eOzn3+/Hk1bdpUN27c0Lhx4xQcHKxVq1Zp1KhROnbsmO07kOmzzz5TnTp19Nlnn+ny5csaOXKkunfvrocfflhubm768ssvdeLECY0aNUqDBw+2/WNApn379mn48OEKDw9XYGCgFi1apFdffVU3btzQqFGj/ra9jz/+uJ588kk9++yztsAiye4X62PHjqlv3762f8DYv3+/xo8fr99++81Wb8aMGXruued07NgxrVixwu4cuf1ZjIiI0JYtW/TOO+8oMDBQ/v7+Ttt+8eJFSdK7776rwMBA/fXXX1qxYoXtO5zdPzA4s3btWknKcV/fzs/qnXwvP/30U1WqVElTp05Venq6pkyZos6dO2vTpk1q0qRJlu1cuHCh+vfvrx49euirr76Sm5ubZs+erY4dO2rNmjVq27atqlWrpjlz5qh3796aNm2aXnnlFSUkJKhv375q3rz5bd9LuH//fo0cOVJvvPGGAgICNHfu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ioiI0BtvvJFt3bv1s3qzrPra3d3dbrTvZpltmD59um0Rp1vdPGvh119/1TvvvKOHHnpIu3bt0kcffZTtPZ/5be/evWrXrp0qVaqktWvX3tajFlavXq20tLRc3+MIIO8x0gbAQdu2bfXXX38pIiLCrjxzJcLMFSad6datm44dOyY/Pz81atTI4ZW5+mPnzp0lyeGXxlvl9F+WixYtqocffljLly+3q5+enq6FCxeqfPnyuboBPyvVq1dXuXLltHjxYrtpQ1evXtWyZctsK0rmVo8ePWSxWGyr/WWaP3++vLy8bM9xcnZdM9sVFBSkb775xq5dJ06c0LZt227no96xwMBADR48WGvWrMlyFctjx47pl19+kZTxvTp48KDD1MQFCxbIYrGodevWedq+AwcOaP/+/XZlixcvVvHixdWgQYM7Pn5mgLp5dMMwDM2ZM8ehblbf8zv5Wfy7tt066vLLL7/YrYCaGz169FBoaKgmTpyY5aI5a9as0bVr1+7az+rNli9fbjcCd+XKFf33v/9V8+bN5eLi4nSfZs2aydfXVwcPHnT6d1mjRo1sI35Xr17VE088oeDgYP3www966aWX9MYbb2jHjh15+jlyat++fWrXrp3Kly+vdevW3dY/JJ08eVKjRo1SiRIl9Pzzz+dDKwHkBiNtABz0799fn332mQYMGKC4uDiFhoZq69atmjBhgrp06ZLtg1aHDx+uZcuWqUWLFnrttddUp04dpaen6+TJk1q7dq1Gjhyphx9+WM2bN1e/fv30/vvv6+zZs+rWrZs8PDy0d+9eeXt76+WXX5b0fyNQS5YsUZUqVeTp6anQ0FCn5544caLat2+v1q1ba9SoUXJ3d9eMGTP066+/6ptvvsnxKER2ihQpoilTpuipp55St27d9PzzzyslJUX//ve/dfnyZU2aNOm2jlu7dm09++yzevfdd+Xi4qKHHnpIa9eu1eeff67333/fYRqYs3aNGzdOgwcP1mOPPaYhQ4bo8uXLtpURC8pHH32k33//XQMHDtSaNWv02GOPKSAgQH/++afWrVunefPm6dtvv1WdOnX02muvacGCBeratavee+89VapUSatXr9aMGTP04osv5vkv8mXLltWjjz6q8PBwBQUFaeHChVq3bp0mT558W8H7Vu3bt5e7u7v69Omj119/XcnJyZo5c6bT6bOhoaFavny5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SdL58+d16tQpPfvss3bHf//99//22ly/fl2enp4O5c8//7xKly6tq1evavLkyVnu//HHH2vPnj2KiIjQsWPHNGLECKf1pk2bpri4OPn6+mrChAkO2728vArkgdymXogEAAAAMINq1arJYrEoNjY22+X509PTFRQUZLcug9Vq1aZNm9SjR488bZOXl5ddiMwMlrcyDMOu3sGDB9W7d29NmjRJHTp0yLbtmTKnf0qOzzazWCxKT0+XJLm4uGjdunXatm2b1q5dq+nTp2v06NHasWOHvL29JWVMkbw5WGbul53SpUsrJibGofy9997Tk08+qWeeeUZTpkyxWx/jZpmjizVq1JCfn5+aN2+ut99+22Gq67hx41SsWDFt3rxZtWrVcjjOxYsXbaOBdxMjbQAAAMDfKFWqlDp27KjPPvvMblGNTJcvX5YkNWjQQAkJCXJ1dVXVqlVtr6CgIJUuXTpf21irVi2lpqZqx44dtrILFy7o8OHDqlmzpu199+7dbdMSb5ZV26tWrZqrtlssFjVr1kxjx47V3r175e7urhUrViggIEDlypXT77//7nD8zAVIMqd+3roYSP369fXbb785BNOAgAC1adNGvXr1slsMJjuZx3B279r27dvVt29fPfLII7apmZmOHTum5ORk1a9fP2cXIg8x0gYAAADkQOb9Y//4xz/03nvvqU6dOkpNTdW6des0c+ZMxcbGql27dmrSpIl69uypyZMnq3r16jp58qQWLVqkgIAANW7cON/aV61aNfXo0UNDhgzR7NmzVbx4cb3xxhsqV66cbZQvLCxMXl5eCg8PV0JCgm3fMmXKOG37mTNnFBkZqZ49e6pRo0Z/24YdO3Zow4YN6tChg/z9/bVjxw6dP3/eFhrDw8P1yiuvyMfHR507d1ZKSop+/vlnXbp0SSNGjJC/v7+8vLwUFRWl8uXLy9PTUyVKlFDr1q119epVHThwwPZM55sVL17c6UOxIyMjdfbsWT300EMqVqyYDh48qNdff13NmjVTcHCww71rKSkptvvvbrVlyxZVqVJFDzzwwN9eh7zGSBsAAACQA5UrV9aePXvUunVrjRw5Ug8++KDat2+vDRs2aObMmZIyRpkiIyPVokULDRo0SCEhIXr66ad17tw524Ii+WnevHlq2LChunXrpiZNmsgwDEVGRtqmNG7evFkHDhxQcHCwgoKCbK9Tp045bXvv3r0VFxengICAHJ3fx8dHmzdvVpcuXRQSEqIxY8boww8/VOfOnSVJgwcP1ty5czV//nyFhoaqZcuWmj9/vm2kzdXVVdOmTdPs2bNVtmxZW9j08/NTWFiYFi1a5PS8Li4utimaN/Py8tKcOXP0yCOPqGbNmho+fLi6deumVatWOT1OWlpallM1v/nmGw0ZMiRH1yGvWYysJr8WUklJSSpRooQSExOzXDIU+ctqtSoyMlJdunTJ0dKsMC/6svCgLwsP+rLwoC8LD/oyb8TExKhdu3Y6evSo3UIoUsZ9ciNHjtShQ4cUFBSU42PenA0yRwQXL16sXr162dX79ddf1bZtWx0+fFglSpTIk8+TG4y0AQAAADC90NBQTZkyxemS+2FhYQoMDFTZsmXVqVOnXB/7oYceUtWqVVW7dm3bqODNzpw5owULFhRIYJO4pw0AAADAPWLAgAFOy/38/HT48GGdPXvWYRGTnFi+fLkCAgKyXHDl5lU2CwKhDQAAAEChkNN7725VoUIFU986xfRIAAAAADAxQhsAAAAAmBihDQAAAABMjNAGAAAAACbGQiQAAAAAspWWJm3ZIsXHS0FBUvPmUhbPoEY+ILQBAAAAyNLy5dKrr0p//PF/ZeXLS598IoWFFVy77idMjwQAAADg1PLlUq9e9oFNkk6fzihfvrxg2nW/IbQBAAAAcJCWljHCZhiO2zLLhg/PqIf8RWgDAAAA4GDLFscRtpsZhnTqVEY95C9CGwAAAAAH8fF5Ww+3j9AGAAAAwEFQUN7Ww+0jtAEAAABw0Lx5xiqRFovz7RaLVKFCRj3kL0IbAAAAAAcuLhnL+kuOwS3z/dSpPK/tbiC0AQAAAHAqLExaulQqV86+vHz5jHKe03Z38HBtAAAAAFkKC5N69MhYJTI+PuMetubNGWG7mwhtAAAAALLl4iK1alXQrbh/MT0SAAAAAEyM0AYAAAAAJkZoAwAAAAATI7QBAAAAgIkR2gAAAADAxAhtAAAAAGBihDYAAAAAMDFCGwAAAACYGKENAAAAAEyM0AYAAAAAJkZoAwAAAAATI7QBAAAAgIkR2gAAAADAxAhtAAAAAGBihDYAAAAAMDFCGwAAAACYGKENAAAAAEyM0AYAAAAAJkZoAwAAAAATI7QBAAAAgIkR2gAAAADAxAhtAAAAAGBihDYAAAAAMDFCGwAAAACYGKENAAAAAEyM0AYAAAAAJkZoAwAAAAATI7QBAAAAgIkR2gAAAADAxAhtAAAAAGBihDYAAAAAMDFCGwAAAACYGKENAAAAAEyM0AYAAAAAJkZoAwAAAAATI7QBAAAAgIkR2gAAAADAxAhtAAAAAGBihDYAAAAAMDFCGwAAAACYGKENAAAAAEzMNKFt4sSJslgsGj58eLb1Nm3apIYNG8rT01NVqlTRrFmz7k4DAQAAAKAAmCK07dq1S59//rnq1KmTbb3jx4+rS5cuat68ufbu3au33npLr7zyipYtW3aXWgoAAAAAd1eBh7a//vpLTz31lObMmaOSJUtmW3fWrFmqWLGipk6dqpo1a2rw4MEaNGiQPvjgg7vUWgAAAAC4u1wLugHDhg1T165d1a5dO73//vvZ1t2+fbs6dOhgV9axY0d98cUXslqtcnNzc9gnJSVFKSkptvdJSUmSJKvVKqvVmgefALmVed25/vc++rLwoC8LD/qy8KAvCw/60rzulT4p0ND27bffas+ePdq1a1eO6ickJCggIMCuLCAgQKmpqfrzzz8VFBTksM/EiRM1duxYh/K1a9fK29v79hqOPLFu3bqCbgLyCH1ZeNCXhQd9WXjQl4UHfWk+165dK+gm5EiBhbZTp07p1Vdf1dq1a+Xp6Znj/SwWi917wzCclmd68803NWLECNv7pKQkVahQQR06dJCPj89ttBx3ymq1at26dWrfvr3T0VHcO+jLwoO+LDzoy8KDviw86EvzypyFZ3YFFtp2796tc+fOqWHDhraytLQ0bd68WZ9++qlSUlLk4uJit09gYKASEhLsys6dOydXV1f5+fk5PY+Hh4c8PDwcyt3c3PihKWD0QeFBXxYe9GXhQV8WHvRl4UFfms+90h8FFtratm2rmJgYu7JnnnlGNWrU0P/8z/84BDZJatKkif773//ala1du1aNGjW6Zy44AAAAAORGgYW24sWL68EHH7QrK1q0qPz8/Gzlb775pk6fPq0FCxZIkl544QV9+umnGjFihIYMGaLt27friy++0DfffHPX2w8AAAAAd0OBL/mfnfj4eJ08edL2vnLlyoqMjFR0dLTq1auncePGadq0aXr88ccLsJUAAAAAkH8KfMn/m0VHR9u9nz9/vkOdli1bas+ePXenQQAAAABQwEw90gYAAAAA9ztCGwAAAACY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kJCgoUOH6re//W2pjcBL07VrV+Xl5SkrK0ve3t52+x53I3AAAB6narXkPwBUtdrUCNzJyUmBgYEVXtmsKhuBe3t7y9vb+76NwEuTmpoqV1fXUkP0424EDgDA40RoA4CHWLhwobp166Zf/OIXSkhIUPv27XXr1i2lpKRo0aJF+uGHH9SnTx+FhoZq0KBBmj17tp566illZGQoOTlZgwYNUufOnSutvjZt2igyMlIjR47U4sWL5eHhoYkTJ6p58+aKjIyUJEVFRclqtWr69Om2pthScSPwPn36qGvXrpo1a5aaN2+u4ODgctf+9ddfa/v27erXr5+aNGmir7/+WpcuXbKFxunTp+vNN9+Up6enIiIilJ+fr/379ys7O1tjx45VkyZNZLVa9a9//UstWrSwNQIPCwvT9evXdeTIEVsj8Lt5eHjov//9b4ntmzdv1sWLFxUaGiqr1aodO3Zo8uTJevXVV21zDu+Wn59faq85SdqzZ49at26tgICAh34OAABUhmq/eiQAVLZWrVrp4MGDCgsL07hx49SuXTv17dtX27dv16JFiyQVX2VKTk7Wc889p5dffllt27bVsGHDdPbs2RK34lWG5cuXq1OnTvrlL3+p0NBQGYah5ORk21Wz3bt368iRI/L391ezZs1sj3Pnztl6XQYHB+vVV1+tUO2enp7avXu3BgwYoLZt22rKlCmaM2eOIiIiJEkjRozQ0qVLlZSUpJCQEPXs2VNJSUlq1aqVJOmJJ55QYmKiFi9eLB8fH1vYbNSokaKiorRq1apSX9fZ2bnUFSFdXFy0cOFChYaGqn379po3b54SEhLsVsO8W1FR0X1v1fz444/t5uIBAFDVTNNcu6rk5eXJy8vL/A30arDCwkIlJydrwIABNJis5hjLiikqkvbskTIzpWbNpGefLbnyYVUz81geOnRIffr00cmTJ+0WQpGK58mNGzdOx44de6RG4EFBQfroo480ePBgu32HDx9W7969dfz48YcummIWZh5LlA9jWXMwluZVXbIBV9oAoAqtXy/5+0thYdL//V/xf/39i7ejdCEhIfrLX/6is2fPltgXFRWlpk2bysfHR+Hh4eU+d1BQkAIDAxUcHGy7Kni3jIwMrVy5stoENgBAzcScNgCoIuvXS4MHS/fe33DhQvH20ppDo1hMTEyp2xs1aqTjx48rKyurxCImZfH5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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import toponetx as tnx\n", "\n", "import topoembedx as tex\n", "\n", "# Create a cell complex object with a few cells\n", "ccc = tnx.classes.CombinatorialComplex()\n", "\n", "ccc.add_cell([0, 1], rank=2)\n", "ccc.add_cell([1, 2], rank=2)\n", "ccc.add_cell([1, 2, 3, 4], rank=2)\n", "ccc.add_cell([2, 4, 5], rank=2)\n", "ccc.add_cell([2, 4, 5], rank=3)\n", "\n", "# Create a model\n", "model = tex.DeepCell(dimensions=2)\n", "\n", "# Fit the model to the cell complex\n", "model.fit(ccc, neighborhood_type=\"adj\", neighborhood_dim={\"rank\": 0, \"via_rank\": 3})\n", "\n", "# Get the embeddings\n", "embedded_points = model.get_embedding(get_dict=True)\n", "\n", "# Prepare data for plotting\n", "x = [embedded_points[cell][0] for cell in embedded_points]\n", "y = [embedded_points[cell][1] for cell in embedded_points]\n", "cell_labels = [f\"Cell {cell}\" for cell in embedded_points]\n", "\n", "# Plotting\n", "plt.figure(figsize=(10, 8))\n", "plt.scatter(x, y, c=\"blue\", label=\"Projected Points\")\n", "\n", "# Annotate the points to correspond with cells\n", "for i, label in enumerate(cell_labels):\n", " plt.annotate(\n", " label, (x[i], y[i]), textcoords=\"offset points\", xytext=(0, 10), ha=\"center\"\n", " )\n", "\n", "# Label axes and add title\n", "plt.xlabel(\"X-axis\")\n", "plt.ylabel(\"Y-axis\")\n", "plt.title(\"Projection of 0-dim Combinatorial Complex in 2D\")\n", "\n", "# Display the plot\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Observe in the above example that the points 2,4 and 5 are clustered together because they are all part of the same 3 cell and we are computing the embedding with resepct to the matrix adjacency(0,3)\n" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 0 0 0 0 0]\n", " [0 0 0 0 0 0]\n", " [0 0 0 0 1 1]\n", " [0 0 0 0 0 0]\n", " [0 0 1 0 0 1]\n", " [0 0 1 0 1 0]]\n" ] } ], "source": [ "print(ccc.adjacency_matrix(0, 3).todense())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Working with coadjacency matrices " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "TopoEmbedX can also compute the embeddings with respect to coadjacency relations" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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7/T7Mm/+YmJiNG7cOFWqVEmenp5q2LCh1q9fX6D3tm7dOrVt21be3t4qWrSomjVrZnPu4cOH5e3trWeeecbmvA0bNsjFxUUjR4685fUdbZfN2869Zs0aNWjQQF5eXqpRo4bDVciblS5dWm5ubnbljz/+uCTpt99+u+01JKlSpUr68MMPdfHiRX3yyScFOgfAXxvbZQHcE0eOHJEklStXzlqWmZmpJ554QgMGDNDw4cN1/fp1Xbt2Ta1bt9bRo0c1evRo1a1bV1u2bNGECRO0d+9eu18Eb3TlyhW1bNlSv/32m959913VrVtX+/fv1z//+U/t27dP69ats/5C1adPHy1ZskT9+vXTmDFj5O7urt27d1s/E/X111+re/fuKlmypGbNmiVJ8vDwyLftTZs2qX379qpbt67mz58vDw8PzZo1S127dtUXX3yhHj162NTv37+/OnfurM8//1zHjx/XW2+9pRdeeOG2n4P8/PPP9Y9//ENhYWH64osvlJGRoZiYGLVq1Urr16/X3//+d40cOVKPP/64Bg0apPHjx6t169aF3lZ8/fp1bdmyRbVq1SpQ/UWLFumll17Sk08+qQ8//FAXLlxQdHS0MjIyVKRIwf5+2b9/f0VEROjLL7/Unj179O677+r69es6ePCgIiIi9Morr2jdunWaNGmSAgMDFRUVle+1Nm7cqKysLD311FMFavvUqVNq2rSpMjMzNXbsWAUHB2v16tUaNmyYjh49av0eyDNz5kzVrVtXM2fO1Pnz5zV06FB17dpVjRo1kpubmxYsWKBjx45p2LBh6t+/v/WPF3n27t2rwYMHKzo6Wv7+/lq6dKnefPNNZWZmatiwYbftb7du3dSjRw/169fPGrAk2QSBo0eP6vnnn7f+weXnn3/WuHHj9J///Mdab9asWXrllVd09OhRff311zZtFPZncdWqVdqyZYv++c9/yt/f3+EfL6Tc4CpJo0aNkr+/vy5duqSvv/7a+j18qz+IOBIXFydJBZ7rO/lZvZvvyxkzZigoKEhTp05VTk6OYmJiFB4erk2bNqlJkyb59nPJkiXq1auXnnzySX322Wdyc3PTJ598og4dOmjt2rVq27atqlWrprlz5+q5557TtGnT9MYbbygtLU3PP/+8mjdvfsefhf355581dOhQDR8+XH5+fpo3b5769eunqlWrqkWLFoW+3oYNG+Tq6prvln1HOnXqJBcXF23evLnQ7QH4C3L2UiqA+1veFqgff/zRyMrKMi5evGisXr3aKFeunM3Wp969exuSjAULFticP2fOHEOS8dVXX9mUT5o0yZBkxMXFWcuCgoKM3r17W19PmDDBKFKkiN32q+XLlxuSjNjYWMMwDGPz5s2GJGPEiBG3fC/5bZdNSkoyJBkLFy60ljVu3Njw9fU1Ll68aC27fv26Ubt2baNChQpGTk6OzfhERkbaXDMmJsaQZKSmpubbn+zsbCMwMNCoU6eOkZ2dbS2/ePGi4evrazRt2tRatnHjRkOS8f/+3/+75XvMz4gRIwxJxqpVq25bN69fDRo0sL5PwzCM5ORkw83NzW4rpm7aApk3Jq+//rpNvaeeesqQZEyZMsWmvF69ekaDBg1u2aeJEycakow1a9bctv+GYRjDhw83JBnbt2+3KX/11VcNi8ViHDx40DCM/5v7Rx991GYOpk6dakgynnjiCZvzBw8ebEgyLly4YC0LCgoyLBaLsXfvXpu67du3N7y9va3bOh19n40aNcqQZMTExNicGxkZaXh6etqM/42ys7ONrKwsY/HixYaLi4tx9uxZ67H8tssW5mdRklGyZEmb69547FZbXq9fv25kZWUZbdu2NZ5++ulCnWsYhtGxY0dDknHt2rVb1stT2J/VO/2+zJu/wMBA4+rVq9by9PR0o0yZMka7du2sZTdvl718+bJRpkwZo2vXrjZtZGdnG48++qjx+OOP25S/+uqrhru7u7Ft2zajTZs2hq+vr/H777/fdizyvp9uFBQUZHh6ehrHjh2zll29etUoU6aMMWDAgNte82Zr1641ihQpYgwZMsSm/FbbZfP4+fkZNWvWLHSbAP562C4LwBSNGzeWm5ubSpQooS5dusjf31/fffed/Pz8bOp169bN5vWGDRtUrFgxde/e3aY8b1vsrbaZrV69WrVr11a9evV0/fp161eHDh1ksViUkJAgSfruu+8kSYMGDbrLd5nr8uXL2r59u7p3767ixYtby11cXPTiiy/qt99+08GDB23OeeKJJ2xe523bzNtO7MjBgwf1+++/68UXX7RZHSxevLi6deumH3/8UVeuXLnr9zNv3jyNGzdOQ4cOtbkpjmEYNuN6/fp1m349//zzNlvvgoKC1LRp0wK3e/MdV2vWrClJ6ty5s135rcbpTmzY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/OW9+eab+s9//qNhw4YpIiLC2d0BAADALbBdFgAAAABgGh5hAgAAAAAwDSETAAAAAGAaQiYAAAAAwDTc+OceysnJ0e+//64SJUqY/rBnAAAAAPcPwzB08eJFBQYGqkiRB3utj5B5D/3++++qWLGis7sBAAAA4C/i+PHjqlChgrO7cU8RMu+hEiVKSMr9RvL29i70+VlZWYqLi1NYWJjc3NzM7h4KgDlwLsbf+ZgD52MOnIvxdz7mwLkYf/Okp6erYsWK1ozwICNk3kN5W2S9vb3vOGQWLVpU3t7e/FA7CXPgXIy/8zEHzsccOBfj73zMgXMx/uZ7GD5G92BvBgYAAAAA/KkImQAA4KESHR2tevXqWV/36dNHTz311C3P+d///V9VrVpVLi4uGjx48D3t319VZmamqlatqh9++MHuWHp6urp06SJvb2+1bt3aCb2TEhIS5OrqqpCQEM2bN89hnccee0wrV678k3sGPHwImQAA4L6Rlpam119/XZUrV5aHh4cqVqyorl27av369fe03UGDBql79+46fvy4xo4de0/bcqbk5GRZLBbt3bvX7tinn36qoKAgNWvWzO7YV199pXXr1mn16tVavny5zbE333xToaGh8vDwsAn3hREXF6fWrVurdOnSKl26tNq1a6cdO3bY1GnatKmOHj2q8PBwDR06VIZh2F1n5MiRGj58uHJycu6oHwAKhs9kAgCA+0JycrKaNWumUqVKKSYmRnXr1lVWVpbWrl2rQYMG6T//+c89affq1as6efKkOnTooMDAQId1srOzZbFYHujHEkyfPl3R0dEOj/3++++qUqWKWrRoYXfMMAz17dtX27dv1y+//HJHbf/666/q0aOHmjdvLk9PT8XExCgsLEz79+9X+fLlJUnu7u4KCgrS008/rUWLFuns2bMqVqyYzXXatm2rEiVKaN26dQ77CntZWVlydXXVtWvXlJ2d7ezu/KW5uLjI1dX1ofjM5e04PWTOmjVLH3zwgVJTU1WrVi1NnTpVzZs3z7f+pk2bFBUVpf379yswMFBvv/22Bg4caD2+cuVKjR8/XkeOHFFWVpaqVaumoUOH6sUXXyxUu4ZhaPTo0fr000917tw5NWrUSDNnzlStWrXMHwQAAHBbkZGRslgs2rFjh014qFWrlvr27Wt9feHCBb311ltatWqVrl27poYNG+qjjz7So48+Wug2N23apJ49e0qS2rRpI0nauHGjkpOTNXjwYC1ZskRvv/22Dh06pMOHD6tUqVJ688039e9//1sZGRlq2bKlpk2bpmrVqkmSWrVqpU2bNtm1k5SUpODg4Nv2PTo6WqtWrdLQoUM1cuRInTt3TuHh4Zo7d671jpXLly/X6NGjdeTIERUtWlT169fX//7v/1rHbOHChYqJibG2+cYbbygyMlKSFBISIkmqX7++JKlly5ZKSEjQ7t27deTIEXXu3NnhOOXk5OR7U5hp06ZJkk6dOnXHITMqKkqdOnWytjF37lwtX75c69evV69evWzqenh4aMGCBUpLS3MY+qdOnSopd8xxe4ZhyN/fX8ePHyc8FUDRokUVEBAgd3d3Z3fFqZwaMpctW6bBgwdr1qxZatasmT755BOFh4frwIEDqlSpkl39pKQkderUSS+//LKWLFmiH374QZGRkSpXrpy6desmSSpTpoxGjBihGjVqyN3dXatXr9ZLL70kX19fdejQocDtxsTEaMqUKVq0aJGqV6+u999/X+3bt9fBgwcfitsOAwDwV3L27FmtWbNG48aNs1udkqRSpUpJyv2FuHPnzipTpoxiY2NVsmRJffLJJ2rbtq0OHTqkMmXKFKrdJk2aaObMmRo0aJBWrFihpk2bqkyZMkpOTtaVK1c0YcIEzZs3Tz4+PvL19dXzzz+vw4cP65tvvpG3t7f+53/+R506ddKBAwfk5uamlStXKjMz03r9QYMGaf/+/fLz8ytw348ePapVq1Zp9erVOnfunJ599llNnDhR48aNU2pqqnr27KmYmBg9/fTTunjxorZs2WLdOjp37lyNGjVKM2bMUP369bVnzx69/PLLKlasmHr37q0dO3bo8ccf17p161SrVi3rL8qbN29W9erV871b/rVr1/7UO49euXJFWVlZdvOZnZ2tYsWKKSQkRBUrVnT4i763t7dOnz5tDdS4tZycHF26dEnFixd/oFfq75ZhGMrMzNSpU6eUlJSkatWqPdzjZTjR448/bgwcONCmrEaNGsbw4cMd1n/77beNGjVq2JQNGDDAaNy48S3bqV+/vvHee+8VuN2cnBzD39/fmDhxovX4tWvXjJIlSxpz5sy5/Rv7/124cMGQZFy4cKHA59woMzPTWLVqlZGZmXlH5+PuMQfOxfg7H3PgfMxBru3btxuSjJUrV96y3vr16w1vb2/j2rVrNuVVqlQxPvnkE8MwDGPUqFHGo48+aj3Wu3dv48knn3R4vczMTGPJkiWGJGPjxo3W8oULFxqSjL1791rLDh06ZEgyfvjhB2vZ6dOnDS8vL+Orr76yu/aUKVOMUqVKGQcPHixU34sWLWqkp6dbj7/11ltGo0aNDMMwjF27dhmSjOTkZIfvp2LFisbnn39uUzZ27FijSZMmhmEYRlJSkiHJ2LNnj02dN99802jTpo3Da54+fdp49NFHjRdeeMHh8Tw3j3tBOfoZiIyMNKpUqWJcvXrVpu7Vq1eNffv2GTt37jTS0tKMnJwcu+udO3fO2Llzp8NjsJednW2cO3fOyM7OdnZX7guXL182Dhw4YPe9aRh3nw3uJ05byczMzNSuXbs0fPhwm/KwsDBt3brV4Tnbtm1TWFiYTVmHDh00f/58ZWVl2f0FzTAMbdiwQQcPHtSkSZMK3G5SUpLS0tJs2vLw8FDLli21detWDRgwwGH/MjIylJGRYX2dnp4uKXcve1ZWVr5jkZ+8c+7kXJiDOXAuxt/5mAPnYw5y5b3/7OzsW47Fjh07dOnSJfn4+NiUX716VYcOHVJWVpays7NlGIb1Ojk5OcrJyXF43RvLrl+/btMPd3d31axZ01q2b98+ubq6qkGDBtYyb29vVa9eXb/++qvNHWzXrFmj4cOH6+uvv1ZISIiysrIK3PegoCB5enpa2/D19dXJkyeVlZWlRx55RG3atFGdOnXUvn17tW/fXhERESpdurROnTql48ePq1+/fnr55Zdt3lfJkiVtfl+5+XeXy5cvy8PDw26MIiMjNW/ePFWtWlXvv//+Lefm5nEvqJt/BiZPnqwvvvhC8fHxcnFxsbleVlaWihQpooCAAB0/fly//fabzYqs9H/PKMzJyWH7ZwEY//8quGEY3DCpgPK+z11cXGzKH6b/jjstZJ4+fVrZ2dny8/OzKffz81NaWprDc9LS0hzWv379uk6fPq2AgABJuZ/FKF++vDIyMuTi4qJZs2apffv2BW43738d1Tl27Fi+72nChAkaPXq0XXlcXJyKFi2a73m3Ex8ff8fnwhzMgXMx/s7HHDjfwz4HFy9elMVi0f/+7//ecltmYmKiSpcurffff9/uWLFixRQbG6vDhw8rPT1dsbGxkqTffvtNly9ftr7Oz48//qjLly9Lkn7++We5urrqu+++sx7/6aefZBiGYmNjbX65vHDhgg4fPmy9/vHjx/U///M/euGFF5SVlWUtL2jfr169atPXxMREXbp0yVr2+uuv6z//+Y/27t2riRMnavjw4YqJiZGHh4ckaeDAgapevbrN9YsUKaLY2Fj98ccfkqTvv/9ev//+u/X4+fPn9d///tdujP7+97+rUqVKmj59ul577TX1798/3/G7edwLKz4+XqtWrdJXX32lMWPG6LffftNvv/1mU8fV1VV+fn66evWqSpYsKW9vb129elXXrl2z1sn7Xrp48eId9eNhxXgVTGZmpq5evarNmzfr+vXrNseuXLnipF79+Zx+45+b/4JkGMYt/6rkqP7N5SVKlNDevXt16dIlrV+/XlFRUapcubJatWpVqHYL27d33nlHUVFR1tfp6emqWLGiwsLC8v0Mw61kZWUpPj5e7du3/1M/54D/wxw4F+PvfMyB8zEH/2fJkiXauHGjpk+fbve5zPPnz6tUqVJyd3fX0qVL1bZtWwUHBzu8zk8//aTExER16tRJkrRixQqdP3/e+vpGWVlZ+vrrryVJjRs3VsuWLSXl/tHazc3N5pxq1appwoQJKlu2rJo0aSJJOnPmjP744w898cQT6tSpk86cOaOoqCh1795dc+bMsWnrTvouSUeOHNH69ettyvJu0JOdna2qVavqwoULGjx4sEaMGCFvb2/169fP4fXzgmXTpk3VoEEDa/nVq1e1fv16hYeHO/xd6OzZs9q6davDMbxV3wsi72fg119/1cqVK7V27Vo1atTIYd1r167pyJEjys7OVqVKlRz+zFy6dEnFihW7o9/NHkaGYejixYsqUaIEK78FcO3aNXl5ealFixby9PS0OZa3y/Fh4LSQWbZsWbm4uNitWp48edJuBTGPv7+/w/qurq42W0uKFCmiqlWrSpLq1aunxMRETZgwQa1atSpQu/7+/pJyVzTzVkdv1zcpd0tt3l8Jb+Tm5nZXvxjc7fm4e8yBczH+zsccOB9zIM2ePVtNmzZVs2bNNGbMGNWtW1fXr19XfHy8Zs+ercTERHXs2FFNmjTRM888o0mTJulvf/ubfv/9d8XGxuqpp55Sw4YN5eLiIovFYh3PIkWKqEiRIrcdX1dXV2udvJXKG8955JFH9OSTT+rVV1/VJ598ohIlSmj48OEqX768unXrJjc3N/Xo0UNe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2FGNGzfWzp07dfLkSfXv31+vvfbaLbfIfvbZZ4qKitL27du1bds29enTR82aNVP79u21c+dO+fr6auHCherYsaN1nP/xj3+ofv36mj17tlxcXLR3796H6vOVd8LpIRMAAAAPhj/jc6/58fLyUvny5ZWUlHRH52dnS2++aR8wpdwyi0UaPFh68knppscfmm7Hjh36/PPP1bZtW2tZZmam/vWvf1lXaePj4/XLL78oKSlJFStWlCT961//Uq1atbRz50499thjdtcdN26chg8fbv1jQeXKlTV27Fi9/fbbGjVqlNatW6cdO3YoMTHR+pib4OBgpaeny93dXSVLlpTFYrEJ60ePHtUXX3yh3377TYGBgZKkYcOGac2aNVq4cKHGjx+vjz/+WB06dLA+p7569eraunWr1qxZU+AxycjI0AcffKD09HS1bdtWS5cu1dWrV7V48WLr3aZnzJihrl27atKkSfl+L9atW9cacKtVq6YZM2Zo/fr1at++vXVs81ZP86SkpOitt95SjRo1rOfh1giZAAAAeOht2SLd9NhNG4YhHT+eW++Gp+KZZvXq1SpevLiuX7+urKwsPfnkk5o+fbr1eFBQkM024MTERFWsWNEaMKXcO/aWKlVKiYmJDkPmrl27tHPnTo0bN85alp2drWvXrunKlSvau3evKlSoYPcc1VvZvXu3DMOwOycjI8P69IfExEQ9/fTTNsebNGlSoJDZs2dPubi4WJ99OnnyZIWHhysqKkqPPvqozeOMmjVrppycHB08ePCWIfNGAQEBOnny5C37EBUVpf79++tf//qX2rVrp2eeeUZVqlS5bd8fZoRMAAAAPPRSU82tV1itW7fW7Nmz5ebmpsDAQLvtmDc/G9bI5/nt+ZVLuY8jGT16tCIc7Pn19PSUl5dXofudk5MjFxcX7dq1y7q9NE/edlrD0fJwAX300Udq166dvL29bbZB3+p93up5njePq8ViyffOyHmio6P1/PPP69tvv9V3332nUaNG6csvv7QLzvg/hEwAAAA89G54NLop9QqrWLFi1ue8F8QjjzyilJQUHT9+3LqaeeDAAV24cEE1a9Z0eE6DBg108ODBfNupW7eufvvtNx06dMjhaqa7u7vdZ27r16+v7OxsnTx5Us2bN8+3rz/++KNN2c2v8+Pv7++wv4888og+++wzXb582RrAf/jhBxUp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odq+cuWKKleurIkTJ8rf399hHXd3dwUFBenpp59Wenq6Ll26ZFenc+fOunDhgtauXVuo9gEAAADYeiBCZmRkpCwWi3bs2KHu3burevXqqlWrlqKiovTjjz9a6124cEGvvPKKfH195e3trTZt2ujnn3++ozYTEhKsobJNmzayWCxKSEjQokWLVKpUKa1evVqPP/64pNwVu3PnzqlXr14qXbq0ihYtqvDwcB0+fNh6vVatWslisdh8ubu7648//ihQ3/O2+v7rX/9ScHCwSpYsqeeee04XL1601lm+fLnq1KkjLy8v+fj4qF27drp8+bL1+MKFC1WzZk15enqqRo0amjVrlvVYSEiIJKl+/fqyWCxq1aqVJGn37t06cuSIOnfu7HCccnJy5ObmZlceFxenAwcOaMmSJapfv77atWunDz/8UHPnzlV6enqB5+Gxxx7TBx98oOeee04eHh63rJvXj+zsbLtjLi4u6tSpk7744osCtw0AAADA3n0fMs+ePas1a9Zo0KBBKlasmN3xUqVKSZIMw1Dnzp2Vlpam2NhY7dq1Sw0aNFDbtm119uzZQrfbtGlTHTx4UJK0YsUKpaamqmnTppJyV9cmTJig6dOnS5LKlSunPn366KefftI333yjbdu2yTAMderUSVlZWZKklStXKjU11foVERGh6tWrq1SpUgXu+9GjR7Vq1SqtXr1aq1ev1qZNmzRx4kRJUmpqqnr27Km+ffsqMTFRCQkJioiIsG4dnTt3rkaMGKFx48YpMTFR48eP18iRI/XZZ59Jknbs2CFJWrdunVJTU62fX9y8ebOqV68ub29vh+N07do1hyFz27Ztql27tgIDA61lHTp0UEZGhnbt2lXo+SiIvH5kZGQ4PP74449ry5Yt96RtAAAA4GHh6uwO3K0jR47IMAzVqFHjlvU2btyoffv26eTJk9YVr8mTJ2vVqlVavny5XnnllUK16+7uLl9fX0lSmTJlbLZqZmVladasWdbVv7S0NH3zzTf64YcfrEF06dKlqlixolatWqVnnnlGZcqUsZ7/0UcfacOGDfr+++915MgRJSQkFKjvOTk5WrRokXWF9cUXX9T69es1btw4paam6vr164qIiFBQUJAkqU6dOtY2x44dqw8//FARERGSclcuDxw4oE8++US9e/dWuXLlJEk+Pj427zU5OdkmKN7ozJkzWrNmjU07edLS0uTn52dTVrp0abm7uystLe3Wg3+HqlSpoiJFimjZsmV6/fXXZbFYbI6XL19eKSkpysnJUZEi9/3fXwAAAACnuO9/k85bibs5MNxs165dunTpknx8fFS8eHHrV1JSko4ePWpqn9zd3VW3bl3r64MHD8rV1VWNGjWylvn4+Ohvf/ubEhMTbc797rvvNHz4cC1btkzVq1eXlLsltSB9Dw4OtvlcaEBAgE6ePClJevTRR9W2bVvVqVNHzzzzjObOnatz585Jkk6dOqXjx4+rX79+Ntd///33bzs2V69elaenp135gAEDVLZsWV2+fFmTJk1yeK6jOTMM47Zzeaf8/f01Y8YMDRkyRB4eHkpJSbE57uXlpZycnHxXOgEAAADc3n2/klmtWjVZLBYlJibe8nEjOTk5CggIUEJCgt2xvC21ZvHy8rIJSo7uZppXfmO9AwcO6LnnntPEiRMVFhZm3Upb0L7fvC3VYrFYbzrk4uKi+Ph4bd26VXFxcZo+fbpGjBih7du3q2jRopJyt8zeGITzzruVsmXLat++fXblY8aMUY8ePfTSSy8pJibG7q6v/v7+2r59u03ZuXPnlJWVZbfCaZYLFy7onXfe0auvvqqBAwfarcCePXtWRYsWlZeX1z1pHwAAAHgY3PcrmWXKlFGHDh00c+ZMm5vY5Dl//rwkqUGDBkpLS5Orq6uqVq1q81W2bNl72scaNWro+vXrNqHqzJkzOnTokGrWrGl93bVrV0VERGjIkCE259evX9+UvlssFjVr1kyjR4/Wnj175O7urq+//lp+fn4qX768/vvf/9pdP2/Lr7u7uyT7m+bUr19f//nPf+yCtJ+fn9q0aaPu3bvb3HwpT5MmTfTrr78qNTXVWhYXFycPDw+FhoYW+D0VxoEDB3ThwgUNHz5ctWvXlqur7d9Yfv31VzVo0OCetA0AAAA8LO77kClJs2bNUnZ2th5//HGtWLFChw8fVmJioqZNm6YmTZpIktq1a6cmTZroqaee0tq1a5WcnKytW7fqvffe008//XRP+1elShU9+eSTevnll/X999/r559/1gsvvKDy5cvrySeflCRFRETIy8tL0dHRSktLs35lZ2erbdu2d9337du3a/z48frpp5+UkpKilStX6tSpU9aQGx0drQkTJujjjz/WoUOHtG/fPi1cuFBTpkyRJPn6+srL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PDxsnkEuSV5eXsrJycl3pRMACouVTAAA7kPVqlWTxWJRYmLiLR83kpOTo4CAACUkJNgdy9tSaxYvLy+boJTfc6tvDlQHDhzQc889p4kTJyosLMxaXtC+37wt1WKxWG865OLiovj4eG3dulVxcXGaPn26RowYoe3bt6to0aKScrfM3hiE8867lbJly2rfvn125WPGjFGPHj300ksvKSYmRlOnTrU57u/vr+3bt9uUnTt3TllZWXYrnIVRpEgRPfbYYzafd81z4cIFvfPOO3r11Vc1cOBAuxXYs2fPqmjRovLy8rrj9gHgRqxkAgBwHypTpow6dOigmTNn2tzEJs/58+clSQ0aNFBaWppcXV1VtWpVm6+8raD3yiOPPKLr16/bhKozZ87o0KFDqlmzpvV1165dFRERoSFDhticb1bfLRaLmjVrptGjR2vPnj1yd3fX119/LT8/P5UvX17//e9/7a4fEhIiKXd1VpLdnXLr16+v//znP3ZB2s/PT23atFH37t1tbr6Up0mTJvr111+VmppqLYuLi5OHh4dCQ0ML/J5uZhiG9u7dq4CAALtjBw4c0IULFzR8+HDVrl1brq62awy//vqrGjRocMdtA8DNCJkAANynZs2apezsbD3++ONasWKFDh8+rMTERE2bNk1NmjSRJLVr105NmjTRU089pbVr1yo5OVlbt27Ve++9p59++ume9q9atWp68skn9fLLL+v777/Xzz//rBdeeEHly5fXk08+KUmKiIiQl5eXoqOjlZaWZv3Kzs42pe/bt2/X+PHj9dNPPyklJUUrV67UqVOnrCE3OjpaEyZM0Mcff6xDhw5p3759WrhwoaZMmSJJ8vX1lbu7u9auXas//vhDFy5ckCS1bt1aly9f1v79+x22W6JECZtnVuYJCwvTI488ohdffFF79uzR+vXrNWzYML388sv53kTIkdGjR2vt2rX673//q71796pfv37au3evBg4caFc3bxts8eLFHV5ry5YtNivIAHC3CJkAANynQkJCtHv3brVu3VpDhw5V7dq11b59e61fv16zZ8+WlLuKFxsbqxYtWqhv376qXr26nnvuOSUnJ9/V9syCWrhwoUJDQ9WlSxc1adJEhmEoNjbWusV18+bN2r9/v4KDgxUQEGD9On78uCl99/b21ubNm9WpUydVr15d7733nj788EOFh4dLkvr3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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import toponetx as tnx\n", "\n", "import topoembedx as tex\n", "\n", "# Create a cell complex object with a few cells\n", "ccc = tnx.classes.CombinatorialComplex()\n", "\n", "ccc.add_cell([0, 5], rank=2)\n", "ccc.add_cell([0, 1], rank=2)\n", "ccc.add_cell([1, 2], rank=2)\n", "ccc.add_cell([1, 2, 4], rank=2)\n", "ccc.add_cell([2, 4, 5], rank=2)\n", "ccc.add_cell([2, 4, 5], rank=3)\n", "\n", "# Create a model\n", "model = tex.DeepCell()\n", "\n", "# Fit the model to the cell complex\n", "model.fit(ccc, neighborhood_type=\"coadj\", neighborhood_dim={\"rank\": 2, \"via_rank\": 0})\n", "\n", "# Get the embeddings\n", "embedded_points = model.get_embedding(get_dict=True)\n", "\n", "# Prepare data for plotting\n", "x = [embedded_points[cell][0] for cell in embedded_points]\n", "y = [embedded_points[cell][1] for cell in embedded_points]\n", "cell_labels = [f\"Cell {cell}\" for cell in embedded_points]\n", "\n", "# Plotting\n", "plt.figure(figsize=(10, 8))\n", "plt.scatter(x, y, c=\"blue\", label=\"Projected Points\")\n", "\n", "# Annotate the points to correspond with cells\n", "for i, label in enumerate(cell_labels):\n", " plt.annotate(\n", " label, (x[i], y[i]), textcoords=\"offset points\", xytext=(0, 10), ha=\"center\"\n", " )\n", "\n", "# Label axes and add title\n", "plt.xlabel(\"X-axis\")\n", "plt.ylabel(\"Y-axis\")\n", "plt.title(\"Projection of 2-dim Combinatorial Complex in 2D\")\n", "\n", "# Display the plot\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Refs\n", "\n", "(1) Mustafa Hajij,Kyle Istvan,and Ghada Zamzmi, Cell Complex Neural Networks. NeurIPS2020 Workshop TDA and Beyond, 2020." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" } }, "nbformat": 4, "nbformat_minor": 4 }