|
1 |
| -# Molecule Ring & Close Atoms Lifting (Graph to Combinatorial) |
2 |
| -This notebook imports QM9 dataset and applies a lifting from a graph molecular representation to a combinatorial complex. Then, a neural network is run using the loaded data. |
| 1 | +# ICML Topological Deep Learning Challenge 2024: Beyond the Graph Domain |
| 2 | +Official repository for the Topological Deep Learning Challenge 2024, jointly organized by [TAG-DS](https://www.tagds.com) & PyT-Team and hosted by the [Geometry-grounded Representation Learning and Generative Modeling (GRaM) Workshop](https://gram-workshop.github.io) at ICML 2024. |
3 | 3 |
|
4 |
| -Using [QM9 dataset](https://paperswithcode.com/dataset/qm9), we implement a lifting from a molecule graph to a combinatorial complex based on two points: |
5 |
| -- The ring information of the molecule. Rings will be represented as 2-cells in the combinatorial complex. |
6 |
| -- The distance between atoms in the molecule. Distances between atoms will be computed. If the atoms are under a predefined threshold, they will be considered as close and groupped together. This clusters will be introduced as hyperedges in the combinatorial complex. |
| 4 | +## Relevant Information |
| 5 | +- The deadline is **July 12th, 2024 (Anywhere on Earth)**. Participants are welcome to modify their submissions until this time. |
| 6 | +- Please, check out the [main webpage of the challenge](https://pyt-team.github.io/packs/challenge.html) for the full description of the competition (motivation, submission requirements, evaluation, etc.) |
7 | 7 |
|
8 |
| -So far, to the best of our knowledge, it is the first implementation of a molecule as a combinatorial complex, combining both hypergraphs and cell complexes. |
| 8 | +## Brief Description |
| 9 | +The main purpose of the challenge is to further expand the current scope and impact of Topological Deep Learning (TDL), enabling the exploration of its applicability in new contexts and scenarios. To do so, we propose participants to design and implement lifting mappings between different data structures and topological domains (point-clouds, graphs, hypergraphs, simplicial/cell/combinatorial complexes), potentially bridging the gap between TDL and all kinds of existing datasets. |
9 | 10 |
|
10 |
| -Here, the elements are the following: |
11 |
| -- **Nodes**: Atoms in the molecule. |
12 |
| -- **Edges**: Bonds between atoms. |
13 |
| -- **Hyperedges**: Clusters of atoms that are close to each other. |
14 |
| -- **2-cells**: Rings in the molecule. |
15 | 11 |
|
16 |
| -Additionally, attributes inspired by those used in [(Battiloro et al., 2024)](https://arxiv.org/abs/2405.15429) are incorporated into the elements, enhancing the representation of the molecule. |
17 |
| -The attributes are: |
18 |
| -- **Node**: Atom type, atomic number, and chirality. |
19 |
| -- **Edge**: Bond type, conjugation and stereochemistry. |
20 |
| -- **Rings**: Ring size, aromaticity, heteroatoms, saturation, hydrophobicity, electrophilicity, nucleophilicity, and polarity. |
| 12 | +## General Guidelines |
| 13 | +Everyone can participate and participation is free --only principal PyT-Team developers are excluded. It is sufficient to: |
| 14 | +- Send a valid Pull Request (i.e. passing all tests) before the deadline. |
| 15 | +- Respect Submission Requirements (see below). |
21 | 16 |
|
22 |
| -This pull request is done under the team formed by: Bertran Miquel Oliver, Manel Gil Sorribes, Alexis Molina |
| 17 | +Teams are accepted, and there is no restriction on the number of team members. An acceptable Pull Request automatically subscribes a participant/team to the challenge. |
| 18 | + |
| 19 | +We encourage participants to start submitting their Pull Request early on, as this helps addressing potential issues with the code. Moreover, earlier Pull Requests will be given priority consideration in the case of multiple submissions of similar quality implementing the same lifting. |
| 20 | + |
| 21 | +A Pull Request should contain no more than one lifting. However, there is no restriction on the number of submissions (Pull Requests) per participant/team. |
| 22 | + |
| 23 | +## Basic Setup |
| 24 | +To develop on your machine, here are some tips. |
| 25 | + |
| 26 | +First, we recommend using Python 3.11.3, which is the python version used to run the unit-tests. |
| 27 | + |
| 28 | +For example, create a conda environment: |
| 29 | + ```bash |
| 30 | + conda create -n topox python=3.11.3 |
| 31 | + conda activate topox |
| 32 | + ``` |
| 33 | + |
| 34 | +Then: |
| 35 | + |
| 36 | +1. Clone a copy of tmx from source: |
| 37 | + |
| 38 | + ```bash |
| 39 | + git clone [email protected]:pyt-team/challenge-icml-2024.git |
| 40 | + cd challenge-icml-2024 |
| 41 | + ``` |
| 42 | + |
| 43 | +2. Install tmx in editable mode: |
| 44 | + |
| 45 | + ```bash |
| 46 | + pip install -e '.[all]' |
| 47 | + ``` |
| 48 | + **Notes:** |
| 49 | + - Requires pip >= 21.3. Refer: [PEP 660](https://peps.python.org/pep-0660/). |
| 50 | + - On Windows, use `pip install -e .[all]` instead (without quotes around `[all]`). |
| 51 | + |
| 52 | +4. Install torch, torch-scatter, torch-sparse with or without CUDA depending on your needs. |
| 53 | + |
| 54 | + ```bash |
| 55 | + pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/${CUDA} |
| 56 | + pip install torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.0.1+${CUDA}.html |
| 57 | + pip install torch-cluster -f https://data.pyg.org/whl/torch-2.0.0+${CUDA}.html |
| 58 | + ``` |
| 59 | + |
| 60 | + where `${CUDA}` should be replaced by either `cpu`, `cu102`, `cu113`, or `cu115` depending on your PyTorch installation (`torch.version.cuda`). |
| 61 | + |
| 62 | +5. Ensure that you have a working tmx installation by running the entire test suite with |
| 63 | + |
| 64 | + ```bash |
| 65 | + pytest |
| 66 | + ``` |
| 67 | + |
| 68 | + In case an error occurs, please first check if all sub-packages ([`torch-scatter`](https://github.com/rusty1s/pytorch_scatter), [`torch-sparse`](https://github.com/rusty1s/pytorch_sparse), [`torch-cluster`](https://github.com/rusty1s/pytorch_cluster) and [`torch-spline-conv`](https://github.com/rusty1s/pytorch_spline_conv)) are on its latest reported version. |
| 69 | + |
| 70 | +6. Install pre-commit hooks: |
| 71 | + |
| 72 | + ```bash |
| 73 | + pre-commit install |
| 74 | + ``` |
| 75 | + |
| 76 | +## Questions |
| 77 | + |
| 78 | +Feel free to contact us through GitHub issues on this repository, or through the [Geometry and Topology in Machine Learning slack](https://tda-in-ml.slack.com/join/shared_invite/enQtOTIyMTIyNTYxMTM2LTA2YmQyZjVjNjgxZWYzMDUyODY5MjlhMGE3ZTI1MzE4NjI2OTY0MmUyMmQ3NGE0MTNmMzNiMTViMjM2MzE4OTc#/). Alternatively, you can contact us via mail at any of these accounts: [email protected], [email protected]. |
0 commit comments