diff --git a/test/transforms/liftings/cell/test_NeighborhoodLifting.py b/test/transforms/liftings/cell/test_NeighborhoodLifting.py index 29cdee0a..cd115000 100644 --- a/test/transforms/liftings/cell/test_NeighborhoodLifting.py +++ b/test/transforms/liftings/cell/test_NeighborhoodLifting.py @@ -2,13 +2,14 @@ import torch -from modules.data.utils.utils import load_manual_graph -from modules.transforms.liftings.graph2cell.neighborhood_lifting import ( +from topobenchmark.data.utils.utils import load_manual_graph +from topobenchmark.transforms.liftings import ( + Graph2CellLiftingTransform, NeighborhoodLifting, ) -class TestCellCyclesLifting: +class TestNeighborhoodLifting: """Test the NeighborhoodLifting class.""" def setup_method(self): @@ -16,7 +17,7 @@ def setup_method(self): self.data = load_manual_graph() # Initialise the NeighborhoodLifting class - self.lifting = NeighborhoodLifting() + self.lifting = Graph2CellLiftingTransform(NeighborhoodLifting()) def test_lift_topology(self): # Test the lift_topology method diff --git a/topobenchmark/transforms/liftings/graph2cell/neighborhood_lifting.py b/topobenchmark/transforms/liftings/graph2cell/neighborhood_lifting.py index df432602..644f0ae8 100755 --- a/topobenchmark/transforms/liftings/graph2cell/neighborhood_lifting.py +++ b/topobenchmark/transforms/liftings/graph2cell/neighborhood_lifting.py @@ -1,53 +1,62 @@ -import torch_geometric +"""This module implements the neighborhood lifting for graphs to cell complexes. + +Definition: +* 0-cells: Vertices of the graph. +* 1-cells: Edges of the graph. +* Higher-dimensional cells: Defined based on the neighborhoods of vertices. +A 2-cell is added for each vertex and its immediate neighbors. + +Characteristics: +Star-like Structure: Star-like structures centered around a vertex and include all its adjacent vertices. +Flexibility: This approach can generate higher-dimensional cells even in graphs that do not have cycles. +Local Connectivity: The focus is on local connectivity rather than global cycles. +""" + from toponetx.classes import CellComplex -from modules.transforms.liftings.graph2cell.base import Graph2CellLifting +from topobenchmark.transforms.liftings.base import LiftingMap -class NeighborhoodLifting(Graph2CellLifting): - r"""Lifts graphs to cell complexes by identifying the cycles as 2-cells. +class NeighborhoodLifting(LiftingMap): + """Lifts graphs to cell complexes by identifying the cycles as 2-cells. Parameters ---------- max_cell_length : int, optional The maximum length of the cycles to be lifted. Default is None. - **kwargs : optional - Additional arguments for the class. """ - def __init__(self, max_cell_length=None, **kwargs): - super().__init__(**kwargs) - self.complex_dim = 2 + def __init__(self, max_cell_length=None): + super().__init__() self.max_cell_length = max_cell_length - def lift_topology(self, data: torch_geometric.data.Data) -> dict: - r"""Finds the cycles of a graph and lifts them to 2-cells. + def lift(self, domain): + """Finds the cycles of a graph and lifts them to 2-cells. Parameters ---------- - data : torch_geometric.data.Data - The input data to be lifted. + domain : nx.Graph + Graph to be lifted. Returns ------- - dict - The lifted topology. + CellComplex + Lifted cell complex. """ + graph = domain - G = self._generate_graph_from_data(data) - - cell_complex = CellComplex(G) + cell_complex = CellComplex(graph) - vertices = list(G.nodes()) + vertices = list(graph.nodes()) for v in vertices: cell_complex.add_node(v, rank=0) - edges = list(G.edges()) + edges = list(graph.edges()) for edge in edges: cell_complex.add_cell(edge, rank=1) for v in vertices: - neighbors = list(G.neighbors(v)) + neighbors = list(graph.neighbors(v)) if len(neighbors) > 1: two_cell = [v, *neighbors] if ( @@ -58,4 +67,4 @@ def lift_topology(self, data: torch_geometric.data.Data) -> dict: else: cell_complex.add_cell(two_cell, rank=2) - return self._get_lifted_topology(cell_complex, G) + return cell_complex diff --git a/tutorials/tutorial_neighborhood_lifting.ipynb b/tutorials/tutorial_neighborhood_lifting.ipynb deleted file mode 100644 index fd8fdbb7..00000000 --- a/tutorials/tutorial_neighborhood_lifting.ipynb +++ /dev/null @@ -1,354 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Graph-to-Cell Neighborhood Lifting Tutorial" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "***\n", - "This notebook shows how to import a dataset, with the desired lifting, and how to run a neural network using the loaded data.\n", - "\n", - "The notebook is divided into sections:\n", - "\n", - "- [Loading the dataset](#loading-the-dataset) loads the config files for the data and the desired tranformation, createsa a dataset object and visualizes it.\n", - "- [Loading and applying the lifting](#loading-and-applying-the-lifting) defines a simple neural network to test that the lifting creates the expected incidence matrices.\n", - "- [Create and run a simplicial nn model](#create-and-run-a-simplicial-nn-model) simply runs a forward pass of the model to check that everything is working as expected.\n", - "\n", - "***\n", - "***\n", - "\n", - "Note that for simplicity the notebook is setup to use a simple graph. However, there is a set of available datasets that you can play with.\n", - "\n", - "To switch to one of the available datasets, simply change the *dataset_name* variable in [Dataset config](#dataset-config) to one of the following names:\n", - "\n", - "* cocitation_cora\n", - "* cocitation_citeseer\n", - "* cocitation_pubmed\n", - "* MUTAG\n", - "* NCI1\n", - "* NCI109\n", - "* PROTEINS_TU\n", - "* AQSOL\n", - "* ZINC\n", - "***" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Imports and utilities" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], - "source": [ - "# With this cell any imported module is reloaded before each cell execution\n", - "%load_ext autoreload\n", - "%autoreload 2\n", - "from modules.data.load.loaders import GraphLoader\n", - "from modules.data.preprocess.preprocessor import PreProcessor\n", - "from modules.utils.utils import (\n", - " describe_data,\n", - " load_dataset_config,\n", - " load_model_config,\n", - " load_transform_config,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Loading the dataset" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we just need to spicify the name of the available dataset that we want to load. First, the dataset config is read from the corresponding yaml file (located at `/configs/datasets/` directory), and then the data is loaded via the implemented `Loaders`.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Dataset configuration for manual_dataset:\n", - "\n", - "{'data_domain': 'graph',\n", - " 'data_type': 'toy_dataset',\n", - " 'data_name': 'manual',\n", - " 'data_dir': 'datasets/graph/toy_dataset',\n", - " 'num_features': 1,\n", - " 'num_classes': 2,\n", - " 'task': 'classification',\n", - " 'loss_type': 'cross_entropy',\n", - " 'monitor_metric': 'accuracy',\n", - " 'task_level': 'node'}\n" - ] - } - ], - "source": [ - "dataset_name = \"manual_dataset\"\n", - "dataset_config = load_dataset_config(dataset_name)\n", - "loader = GraphLoader(dataset_config)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can then access to the data through the `load()`method:" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Dataset only contains 1 sample:\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " - Graph with 8 vertices and 13 edges.\n", - " - Features dimensions: [1, 0]\n", - " - There are 0 isolated nodes.\n", - "\n" - ] - } - ], - "source": [ - "dataset = loader.load()\n", - "describe_data(dataset)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Loading and Applying the Lifting" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For cell complexes creating a lifting involves creating a `CellComplex` object from topomodelx and adding cells to it using the method `add_cells_from`. The `CellComplex` class then takes care of creating all the needed matrices.\n", - "\n", - "Similarly to before, we can specify the transformation we want to apply through its type and id --the correxponding config files located at `/configs/transforms`. \n", - "\n", - "Note that the *tranform_config* dictionary generated below can contain a sequence of tranforms if it is needed.\n", - "\n", - "This can also be used to explore liftings from one topological domain to another, for example using two liftings it is possible to achieve a sequence such as: graph -> cell complex -> hypergraph. " - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Transform configuration for graph2cell/neighborhood_lifting:\n", - "\n", - "{'transform_type': 'lifting',\n", - " 'transform_name': 'CellCycleLifting',\n", - " 'max_cell_length': None,\n", - " 'preserve_edge_attr': False,\n", - " 'feature_lifting': 'ProjectionSum'}\n" - ] - } - ], - "source": [ - "# Define transformation type and id\n", - "transform_type = \"liftings\"\n", - "# If the transform is a topological lifting, it should include both the type of the lifting and the identifier\n", - "transform_id = \"graph2cell/neighborhood_lifting\"\n", - "\n", - "# Read yaml file\n", - "transform_config = {\n", - " \"lifting\": load_transform_config(transform_type, transform_id)\n", - " # other transforms (e.g. data manipulations, feature liftings) can be added here\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We than apply the transform via our `PreProcesor`:" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Transform parameters are the same, using existing data_dir: /home/jonasver/Documents/Code/challenge-icml-2024/datasets/graph/toy_dataset/manual/lifting/1820307683\n", - "\n", - "Dataset only contains 1 sample:\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " - The complex has 8 0-cells.\n", - " - The 0-cells have features dimension 1\n", - " - The complex has 13 1-cells.\n", - " - The 1-cells have features dimension 1\n", - " - The complex has 6 2-cells.\n", - " - The 2-cells have features dimension 1\n", - "\n" - ] - } - ], - "source": [ - "lifted_dataset = PreProcessor(dataset, transform_config, loader.data_dir)\n", - "describe_data(lifted_dataset)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create and Run a Cell NN Model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this section a simple model is created to test that the used lifting works as intended. In this case the model uses the `x_0`, `x_1`, `x_2` which are the features of the nodes, edges and cells respectively. It also uses the `adjacency_1`, `incidence_1` and `incidence_2` matrices so the lifting should make sure to add them to the data." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Model configuration for cell CWN:\n", - "\n", - "{'in_channels_0': None,\n", - " 'in_channels_1': None,\n", - " 'in_channels_2': None,\n", - " 'hidden_channels': 32,\n", - " 'out_channels': None,\n", - " 'n_layers': 2}\n" - ] - } - ], - "source": [ - "from modules.models.cell.cwn import CWNModel\n", - "\n", - "model_type = \"cell\"\n", - "model_id = \"cwn\"\n", - "model_config = load_model_config(model_type, model_id)\n", - "\n", - "model = CWNModel(model_config, dataset_config)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "y_hat = model(lifted_dataset.get(0))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If everything is correct the cell above should execute without errors. " - ] - } - ], - "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.11.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -}