{"id":13579584,"url":"https://github.com/easy-graph/Easy-Graph","last_synced_at":"2025-04-05T23:31:54.355Z","repository":{"id":39888301,"uuid":"273870080","full_name":"easy-graph/Easy-Graph","owner":"easy-graph","description":"EasyGraph is an open-source network analysis library designed to cover advanced network processing methods. It includes functionalities for detecting structural hole spanners, network embedding, and various classic network analysis techniques.","archived":false,"fork":false,"pushed_at":"2024-10-30T02:26:03.000Z","size":4479,"stargazers_count":392,"open_issues_count":2,"forks_count":39,"subscribers_count":10,"default_branch":"pybind11","last_synced_at":"2024-10-30T05:00:20.779Z","etag":null,"topics":["multiprocessing-optimization","network-analysis","python","structural-hole-theory"],"latest_commit_sha":null,"homepage":"https://easy-graph.github.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/easy-graph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-21T09:08:24.000Z","updated_at":"2024-10-30T02:26:06.000Z","dependencies_parsed_at":"2023-02-18T16:01:25.795Z","dependency_job_id":"f7827007-3ccd-4d29-b2a9-1934701732e1","html_url":"https://github.com/easy-graph/Easy-Graph","commit_stats":{"total_commits":431,"total_committers":17,"mean_commits":"25.352941176470587","dds":0.6125290023201856,"last_synced_commit":"679fe46ae13404e78c008c86afb55213c28fef80"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easy-graph%2FEasy-Graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easy-graph%2FEasy-Graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easy-graph%2FEasy-Graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easy-graph%2FEasy-Graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/easy-graph","download_url":"https://codeload.github.com/easy-graph/Easy-Graph/tar.gz/refs/heads/pybind11","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415783,"owners_count":20935383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["multiprocessing-optimization","network-analysis","python","structural-hole-theory"],"created_at":"2024-08-01T15:01:40.800Z","updated_at":"2025-04-05T23:31:49.334Z","avatar_url":"https://github.com/easy-graph.png","language":"Python","readme":"EasyGraph\n==================\n\nCopyright (C) \u003c2020-2024\u003e by [DataNET Group, Fudan University](https://fudan-datanet.mysxl.cn/)\n\n___________________________________________________________________________\n\n[![PyPI Version][pypi-image]][pypi-url]\n[![Python][python-image]][python-url]\n[![License][license-image]][license-url]\n[![Downloads][downloads-image]][downloads-url]\n\n[pypi-image]: https://img.shields.io/pypi/v/Python-EasyGraph.svg?label=PyPI\n[pypi-url]: https://pypi.org/project/Python-EasyGraph/\n[python-image]: https://img.shields.io/pypi/pyversions/Python-EasyGraph.svg?label=Python\n[python-url]: https://pypi.org/project/Python-EasyGraph/\n[license-image]: https://img.shields.io/pypi/l/Python-EasyGraph?label=License\n[license-url]: https://github.com/easy-graph/Easy-Graph/blob/master/LICENSE\n[downloads-image]: https://static.pepy.tech/personalized-badge/python-easygraph?period=total\u0026units=international_system\u0026left_color=brightgreen\u0026right_color=yellowgreen\u0026left_text=Downloads\n[downloads-url]: https://pypi.org/project/Python-EasyGraph/\n\n- **Documentation:** https://easy-graph.github.io/\n- **Source Code:** https://github.com/easy-graph/Easy-Graph\n- **Issue Tracker:** https://github.com/easy-graph/Easy-Graph/issues\n- **PyPI Homepage:** https://pypi.org/project/Python-EasyGraph/\n- **Youtube channel:** https://www.youtube.com/@python-easygraph\n\n# Introduction\n**EasyGraph** is an open-source network analysis library primarily written in Python. It supports both undirected and directed networks and accommodates various network data formats. EasyGraph includes a comprehensive suite of network analysis algorithms such as community detection, structural hole spanner detection, network embedding, and motif detection. Additionally, it optimizes performance by implementing key components in C++ and utilizing multiprocessing.\n\n\u003c!-- # New Features in Version 1.3\n- **Support for more hypergraph metrics and algorithms.** Such as [hypercoreness](https://www.nature.com/articles/s41467-023-41887-2), [vector-centrality](https://www.sciencedirect.com/science/article/pii/S0960077922006075), [s-centrality](https://epjds.epj.org/articles/epjdata/abs/2020/01/13688_2020_Article_231/13688_2020_Article_231.html), and so on.\n- **Support for more hypergraph datasets.** Static hypergraph datasets and dynamic datasets can be both loaded by calling the corresponding dataset name.\n- **Support for more flexible dynamic hypergraph visualization.** Users can define dynamic hypergraphs and visualize the structure of the hypergraph at each timestamp.\n- **Support for more efficient hypergraph computation and hypergraph learning.** Adoption of suitable storage structure and caching strategy for different metrics/hypergraph neural networks.\n--\u003e\n👉 For more details, please refer to our [documentation](https://easy-graph.github.io/) page.\n\n\n# News\n- [09-27-2024] 🎉 Thanks to our amazing community! EasyGraph has reached 500,000 downloads!\n- [09-20-2024] We released EasyGraph 1.4! This version features GPU-powered functions for efficient large network analysis.\n- [05-27-2024] We released EasyGraph 1.3! This version has resolved several issues related to hypergraph analysis and visualization.\n- [04-09-2024] We released EasyGraph 1.2! This version now fully supports Python 3.12.\n- [03-06-2024] We received the Shanghai Open Source Innovation Outstanding Achievement Award (Grand Prize)! [News](https://news.fudan.edu.cn/2024/0401/c2463a139799/page.htm)\n- [02-05-2024] We released EasyGraph 1.1! This version features hypergraph analysis and learning for higher-order network modeling and representation.\n- [08-17-2023] We released EasyGraph 1.0!\n- [08-08-2023] Our paper \"EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis\" was accepted by Patterns (Cell Press)!\n\n# Stargazers\n\n[![Stars][star-image]][star-url]\n\n[star-image]:https://reporoster.com/stars/easy-graph/Easy-Graph\n[star-url]: https://github.com/easy-graph/Easy-Graph/stargazers\n\n# Install\n\n## Supported Versions\n\n``3.8 \u003c= Python \u003c= 3.13`` is required.\n\n## Installation With pip\n```\n    $ pip install --upgrade Python-EasyGraph\n```\nThe conda package is no longer updated or maintained.\n\nIf you've previously installed EasyGraph with conda, please uninstall it with ``conda`` and reinstall with ``pip``.\n\n## Build From Source\nIf prebuilt EasyGraph wheels are not supported for your platform (OS / CPU arch, check [here](https://pypi.org/simple/python-easygraph/)), or you want to have GPU-based functions enabled, you can build it locally.\n\n### Prerequisites\n- CMake \u003e= 3.23\n- A compiler that fully supports C++11\n- CUDA Toolkit 11.8 or later would be preferred (If need GPUs enabled)\n\n### Installation\n#### On Linux\n```\n    git clone --recursive https://github.com/easy-graph/Easy-Graph\n    export EASYGRAPH_ENABLE_GPU=\"TRUE\"  # for users who want to enable GPUs\n    pip install ./Easy-Graph\n```\n\n#### On Windows\n```\n    % For Windows users who want to enable GPU-based functions, %\n    % you must execute the commands below in cmd but not PowerShell. %\n    git clone --recursive https://github.com/easy-graph/Easy-Graph\n    set EASYGRAPH_ENABLE_GPU=TRUE   % for users who want to enable GPUs %\n    pip install ./Easy-Graph\n```\n\n#### On macOS\n```\n    # Since macOS doesn't support CUDA, we can't have GPUs enabled on macOS\n    git clone --recursive https://github.com/easy-graph/Easy-Graph\n    pip install ./Easy-Graph\n```\n\n## Hint\n\nEasyGraph uses  1.12.1 \u003c= [PyTorch](https://pytorch.org/get-started/locally/) \u003c 2.0 for machine learning functions.\nNote that this does not prevent your from running non-machine learning functions normally, if there is no PyTorch in your environment.\nBut you will receive some warnings which remind you some unavailable modules when they depend on it.\n\n# Simple Example\n\nThis example demonstrates the general usage of methods in EasyGraph.\n```python\n  \u003e\u003e\u003e import easygraph as eg\n  \u003e\u003e\u003e G = eg.Graph()\n  \u003e\u003e\u003e G.add_edges([(1,2), (2,3), (1,3), (3,4), (4,5), (3,5), (5,6)])\n  \u003e\u003e\u003e eg.pagerank(G)\n  {1: 0.14272233049003707, 2: 0.14272233049003694, 3: 0.2685427766200994, 4: 0.14336430577918527, 5: 0.21634929087322705, 6: 0.0862989657474143}\n```\nThis is a simple example for the detection of [structural hole spanners](https://en.wikipedia.org/wiki/Structural_holes)\nusing the [HIS](https://keg.cs.tsinghua.edu.cn/jietang/publications/WWW13-Lou\u0026Tang-Structural-Hole-Information-Diffusion.pdf) algorithm.\n\n```python\n  \u003e\u003e\u003e import easygraph as eg\n  \u003e\u003e\u003e G = eg.Graph()\n  \u003e\u003e\u003e G.add_edges([(1,2), (2,3), (1,3), (3,4), (4,5), (3,5), (5,6)])\n  \u003e\u003e\u003e _, _, H = eg.get_structural_holes_HIS(G, C=[frozenset([1,2,3]), frozenset([4,5,6])])\n  \u003e\u003e\u003e H # The structural hole score of each node. Note that node `4` is regarded as the most possible structural hole spanner.\n  {1: {0: 0.703948974609375},\n   2: {0: 0.703948974609375},\n   3: {0: 1.2799804687499998},\n   4: {0: 1.519976806640625},\n   5: {0: 1.519976806640625},\n   6: {0: 0.83595703125}\n  }\n```\n# Citation\n\nIf you use EasyGraph in a scientific publication, we kindly request that you cite the following paper:\n```\n  @article{gao2023easygraph,\n      title={{EasyGraph: A Multifunctional, Cross-Platform, and Effective Library for Interdisciplinary Network Analysis}},\n      author={Min Gao and Zheng Li and Ruichen Li and Chenhao Cui and Xinyuan Chen and Bodian Ye and Yupeng Li and Weiwei Gu and Qingyuan Gong and Xin Wang and Yang Chen},\n      year={2023},\n      journal={Patterns},\n      volume={4},\n      number={10},\n      pages={100839},\n  }\n```\n📢 If you notice anything unexpected, please open an issue and let us know. If you have any questions or require a specific feature, feel free to discuss them with us. We are motivated to constantly make EasyGraph even better and let more developers benefit!\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasy-graph%2FEasy-Graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasy-graph%2FEasy-Graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasy-graph%2FEasy-Graph/lists"}