Skip to content

为 DeepHypergraph 包新增多层超图功能及可视化模块 #69

Open

Description

@922397935

尊敬的 DEEPHypergraph 维护团队:

您好!
我是长期关注超图理论与图神经网络应用研究的一名学生,尤其在多层复杂网络分析(如脑功能网络、社交网络)中积累了实践经验。贵团队开发的 DeepHypergraph 包以其简洁的接口设计和高效的核心逻辑,为超图相关研究提供了极大便利,我在科研工作中频繁使用并受益匪浅。
近期,我基于 DeepHypergraph 包扩展开发了多层超图(Multi-Layer Hypergraph)核心功能及配套可视化模块,希望能将该部分代码贡献给项目,填补当前包在多层超图建模与可视化方面的空白,为更多研究者提供支持。现将相关情况简要说明如下:
一、贡献内容概述
核心功能扩展:新增MultiLayerHypergraph类,继承自原包Hypergraph基类,保持接口兼容性。支持多层超图的构建、层添加 / 删除、跨层超边查询、层内 / 层间节点度计算等核心操作,数据结构设计符合超图理论通用定义。
可视化模块:配套开发plot_multilayer_hypergraph函数,支持:按层分区布局、节点 / 超边按层着色、自定义图大小与保存格式
兼容性与轻量化:
完全兼容原包的 Python 版本(如 3.8+)和依赖清单,无额外强依赖,dhg0.9.4
复用原包已有方法(如超边存储、节点管理),仅扩展多层相关逻辑,无冗余代码
4. 配套支持:
补充单元测试(基于 pytest),覆盖核心方法的边界情况(如空层、单一层、跨层超边);
新增详细文档(含 docstring 和使用示例),格式与原包保持一致(如 Google/NumPy 风格)
咨询与后续配合
我希望将该模块正式贡献至 DEEPHypergraph 包,现向您咨询:
该功能是否符合项目的发展规划?是否需要针对代码结构、功能设计进行调整?
若可提交贡献,后续需遵循哪些流程(如分支命名规范、PR 提交要求、代码审查重点)?目前我在github上创建拉取没有成功
感谢您在百忙中关注我的贡献申请,也衷心感谢贵团队为开源社区做出的卓越贡献!
此致
敬礼!
文章发表在Scientific Report上,标题为:Hyperbolic multi-channel hypergraph convolutional neural network based on multilayer hypergraph。DOI链接:https://doi.org/10.1038/s41598-025-08594-y

Activity

  1. Starrah commented on Jun 12, 2026

    @Starrah
    Member

    你好!

    首先非常抱歉这么晚才回复你。近期我由于忙于实验室的多个其他项目,工作非常繁忙,此前实在是没能抽出足够的时间来处理 Issue,对此深表歉意。最近我终于有一段相对完整的空闲时间了。

    非常感谢你对 DeepHypergraph 的关注与支持,也祝贺你的研究成果发表在 Scientific Reports 上!你所开发的多层超图非常具有实用价值,填补了项目目前的空白。我们非常感兴趣,也非常欢迎你将这些成果贡献上来。如果你目前仍有意愿,随时欢迎发送 PR。

    针对你提到的几个具体问题,我逐一解答如下:

    关于功能是否符合发展规划及代码结构调整:
    这完全符合我们的规划。在开发和接入时,你直接参照项目现有的代码风格和设计模式进行开发即可。这里有一个特别提示:我们目前的 BaseHypergraph 类中,其实已经部分实现了对边分组(Edge Grouping)和有向边(源点集/目标点集)的支持。你可以充分加以利用,让你的多层超图类继承自 BaseHypergraph 甚至 Hypergraph 类,这样可以更好地复用底层逻辑。如果你有需要,我可以提供一份具体的指南描述如何利用这些基类中已经预留的功能。

    关于贡献流程与规范(分支、PR要求等):
    我们项目管理相对比较自由,在分支命名、PR 提交要求等方面没有太多严格的硬性限制。你提交 PR 时,只需注意勾选“允许 maintainer 修改”(Allow edits from maintainers)即可。这样万一后续代码有什么问题,我可以直截了当地帮你修改,提高合并效率。

    关于 GitHub 创建拉取(PR)未成功:
    请问具体是在哪一步卡住了,或者遇到了什么样的报错提示(例如权限问题、分支冲突等)?你可以把具体的错误信息或截图贴在这个 Issue 下面,我会协助你一起解决。

    再次为延误回复向你致歉!如果你仍有意向提交这一贡献,可以 Reopen 这个 Issue,我们保持沟通。

  2. 922397935 commented on Jun 23, 2026

    @922397935
    Author

    好呢,谢谢,我最近整理一下

  3. 922397935 commented on Jun 29, 2026

    @922397935
    Author

    Image提示我必须是合作者才可以对0.9.4版本的DHG进行拉取

  4. 922397935 commented on Jun 29, 2026

    @922397935
    Author
  5. 922397935 commented on Jun 29, 2026

    @922397935
    Author

    我好像明白了,先fork,再推送到自己的仓库,然后compare & pull request,,就能正常拉起PR了,明天试试 😊

  6. yifanfeng97 commented on Aug 2, 2026

    @yifanfeng97
    Member

    感谢你的贡献!已经 review 了 PR #75,多层超图功能方向非常好,社区确实需要这个能力。

    目前代码有一些需要修改的地方(详见 PR review),主要包括:

    1. node_sum_before 状态累积 bug — 多个方法都在 append 同一个列表,重复调用会导致偏移量计算错误
    2. 测试文件无法通过 — fixture 调用方式和测试内容需要修复
    3. 不必要的依赖 — matplotlib、tqdm 不应作为核心结构类的导入
    4. notebook 导入路径和输出清理

    另外有几个建议:

    • 导入改为相对导入(from .hypergraph import Hypergraph)避免循环导入风险
    • docstring 统一用英文,与项目风格保持一致
    • construct_multi_layer_hypergraph 建议直接在实例上构建,避免递归创建新实例

    期待修改后的版本,如果需要帮助请随时讨论!

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions