Skip to content
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

Update to HyperNetX 2 #411

Open
ffl096 opened this issue Dec 10, 2024 · 5 comments · May be fixed by #410
Open

Update to HyperNetX 2 #411

ffl096 opened this issue Dec 10, 2024 · 5 comments · May be fixed by #410
Assignees

Comments

@ffl096
Copy link
Member

ffl096 commented Dec 10, 2024

TopoNetX is currently only compatible with HyperNetX 1.2, which was released more than two years ago. The latest version of HyperNetX is 2.3. We should update our supported version.

See #410 for what tests are currently failing.

@colltoaction
Copy link

Hi folks! Let me introduce @brendapraggastis from PNNL, we work in the Hypergraph Interchange Format (HIF) project together. I believe it would be beneficial to start collaborating and this issue is a great place to kickstart the conversation. Cheers!

@brendapraggastis
Copy link

brendapraggastis commented Dec 19, 2024 via email

@ffl096 ffl096 linked a pull request Jan 3, 2025 that will close this issue
1 task
@mhajij
Copy link
Member

mhajij commented Jan 17, 2025

@brendapraggastis please outline your plan of contribution. Are you planning to add a hypergraph class to toponetx? or a support for HyperNetX inside every class?

So far the support for HyperNetX has been limited. Essentially every simplicial, cellular complex is a hypergraph so we have a function that supports the conversation of these complexes to hypergraph objects in HyperNetX. I would suggest we make this integration more complete.

@mhajij
Copy link
Member

mhajij commented Jan 17, 2025

@colltoaction
@brendapraggastis feel free to start creating a series of actionable issues and we can work together on them, sounds like a plan ?

@colltoaction
Copy link

@mhajij sounds good to me! As far as I can see there are two uses of HNX in the codebase:

def to_hypergraph(self) -> Hypergraph:

def to_hypergraph(self):

The idea moving forward is to use a JSON interchange format, HIF, so that not only HNX but other participating libraries (HypergraphX, XGI, ...) can interoperate as well. As far as I can see you can then remove your explicit dependency on the HNX package.

So far you have implemented these functions that export a hypergraph, and now you can take advantage of HIF to access to new datasets yourselves. A good test would be to replicate the results in any of the tutorials but using TopoNetX, e.g:

https://github.com/pszufe/HIF-standard/blob/main/tutorials/hnx.ipynb

The existing integrations were straightforward to implement so I wouldn't want to create unnecessary tickets. Maybe one to implement to_hif and from_hif, and another one to send a PR to our repo with a working notebook. @mhajij what do you think?

A second step in our collaboration should look at enabling new network types, many available in your package. The HIF format currently defines three possible network types: directed, undirected and ASC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants