-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Path based lifting (Graph to Combinatorial) #43
base: main
Are you sure you want to change the base?
Conversation
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Hello @SalvishGoomanee! Thank you for your submission. As we near the end of the challenge, I am collecting participant info for the purpose of selecting and announcing winners. Please email me (or have one member of your team email me) at [email protected] so I can share access to the voting form. In your email, please include:
Before July 12, make sure that your submission respects all Submission Requirements laid out on the challenge page. Any submission that fails to meet this criteria will be automatically disqualified. |
Hello Guillermo,
Thanks you for your email.
Here are the details as requested:
First name: SALVSIH , Last name: GOOMANEE
Title: Path based lifting (Graph to Combinatorial)
Input domain: Graph
Output domain: Path based Combinatorial Complex (Hypergraph)
PR number: 43
Regards,
Salvish
… Le 9 juil. 2024 à 19:50, Guillermo Bernárdez ***@***.***> a écrit :
Hello @SalvishGoomanee <https://github.com/SalvishGoomanee>! Thank you for your submission. As we near the end of the challenge, I am collecting participant info for the purpose of selecting and announcing winners. Please email me (or have one member of your team email me) at ***@***.*** ***@***.***> so I can share access to the voting form. In your email, please include:
your first and last name (as well as any other team members)
the title of the method you implemented
the input domain of the method you implemented
the output domain of the method you implemented
your pull request number (#43 <#43>)
Before July 12, make sure that your submission respects all Submission Requirements laid out on the challenge page <https://pyt-team.github.io/packs/challenge.html>. Any submission that fails to meet this criteria will be automatically disqualified.
—
Reply to this email directly, view it on GitHub <#43 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AOTHT6YKV2YGHN4YBSPWFODZLQPF5AVCNFSM6AAAAABKTIPBT6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJYGMYTKNZVHA>.
You are receiving this because you were mentioned.
|
In this submission, I implemented the algorithm develop in [1] which lifts a graph to a combinatorial complex. Let's just recap some basic concepts of algebraic topology.
Let$S$ be a non-empty set. The input domain is a graph $G$ on $S$ which corresponds to a pair $(S, E)$ , where $E$ is a set of non-empty subsets of size 2 of the powerset $\mathcal{P}(S)$ of $S$ , denoted as edges. The elements of $S$ are denoted as the nodes of $G$ .
Higher order topological domains that generalise graphs based structures as introduced above include; hypergraphs, simplicial complexes, regular cell complexes and combinatorial complexes. (See [2] and [3] for the formal definitions of these objects).
The aforementioned topological domains are clearly represented in [2]:
For the sake of completeness, let's recall that the graph$G$ in this context can be viewed as a $1$ -dim CW complex where $0$ -cells are the nodes and $1$ -cells are the edges.
In particular, for application to understanding higher order interaction in protein networks, graph based representations can be quite limited (and consequently affect embedding procedures in a negative manner resulting in faulty predictions). However, developing and implementing lifting procedures at preprocessing stages (as described in the challenge) to higher order domains enable more flexible representations which can be learned more efficiently. This is particularly helpful for long-range interactions.
Path based combinatorial complex
The lifting approach implemented here (other approaches can be found in the references listed) consists in constructing the 2-cells of the combinatorial complex following the identification of a given path in the input graph provided a set of source nodes. In particular, one identifies the nodes belonging to the same paths of a set length$k$ in the graph and that start with a node that belongs to the set of source nodes. Those are grouped together to form a rank-2 cell that is added to create a combinatorial complex.
The path-based combinatorial complex (CC) of$G$ denoted by $CC_P(G)$ (following the notation in [1]), consists of 0-cells, 1-cells, and 2-cells:
Construction of 2-cells:
path_lifting.ipynb
notebook for further definitions):This ensures that 2-cells are formed by sets of nodes that participate in specific paths in the graph, defined by the given source nodes and path length (see
path_based_lift_CC
method in theCombinatorialPathLifting
class which follows from the development in [1].The path based lift approach to lift graphs to combinatorial complexes (CC) is implemented in
path_lifting.py
and an example is provided in the notebookpath_lifting.ipynb
.[1] Carrel, A. (2024). Combinatorial Complex Score-based Diffusion Modelling through Stochastic Differential Equations (PhD thesis).
[2] Hajij, M., Zamzmi, G., Papamarkou, T., Miolane, N., Guzmán-Sáenz, A., Ramamurthy, K. N., et al. (2022). Topological deep learning: Going beyond graph data.
[3] Papillon, M., Sanborn, S., Hajij, M., & Miolane, N. (2023). Architectures of Topological Deep Learning: A Survey on Topological Neural Networks.