DeepGraph is a scalable, general-purpose data analysis package. It implements a network representation based on pandas DataFrames and provides methods to construct, partition and plot networks, to interface with popular network packages and more.
It is based on the network representation introduced here. DeepGraph is also capable of representing multilayer networks.
Utilizing one of Pandas' primary data structures, the DataFrame, DeepGraph represents the (super)nodes of a graph by one (set of) table(s), and their pairwise relations (i.e. the (super)edges of a graph) by another (set of) table(s). DeepGraph's main features are
Create edges: Methods that enable an iterative, yet vectorized computation of pairwise relations (edges) between nodes using arbitrary, user-defined functions on the nodes' properties. The methods provide arguments to parallelize the computation and control memory consumption, making them suitable for very large data-sets and adjustable to whatever hardware you have at hand (from netbooks to cluster architectures).
Note: the documentation provides a tutorial on how to compute large correlation matrices in parallel using DeepGraph.
Partition nodes, edges or a graph: Methods to partition nodes, edges or a graph by the graph’s properties and labels, enabling the aggregation, computation and allocation of information on and between arbitrary groups of nodes. These methods also let you express elaborate queries on the information contained in a deep graph.
Interfaces to other packages: Methods to convert to common network representations and graph objects of popular Python network packages (e.g., SciPy sparse matrices, NetworkX graphs, graph-tool graphs).
Plotting: A number of useful plotting methods for networks, including drawings on geographical map projections using basemap.
The source code is hosted on GitHub at: https://github.com/deepgraph/deepgraph.
Binary installers are available at the Python Package Index (PyPI) and on conda-forge.
DeepGraph can be installed via pip:
$ pip install deepgraph
or if you're using Conda, install with:
$ conda install -c conda-forge deepgraph
Then, import and get started with:
>>> import deepgraph as dg >>> help(dg)
Required dependencies
Package | Minimum supported version |
---|---|
Python | 3.9 |
NumPy | 1.21.6 |
Pandas | 1.2 |
Optional dependencies ("extras")
Dependency | Minimum Version | pip extra |
---|---|---|
Matplotlib | 3.1 | plot |
basemap | 2.0 | basemap |
PyTables | 3.7 | tables |
SciPy | 1.5.4 | scipy |
NetworkX | 2.4 | networkx |
graph_tool | 2.27 | N/A |
See the full installation instructions for further details.
The official documentation is hosted here: https://deepgraph.readthedocs.io
The documentation provides a good starting point for learning how to use the library.
The API Reference lists all available methods of the core DeepGraph class, including links to their respective source code and docstrings. These docstrings provide detailed information, usage examples and notes for each method.
All forms of contributions to this project are welcome, whether it's bug reports, bug fixes, documentation enhancements, feature requests, or new ideas.
How to Contribute
- Report Issues: If you encounter any bugs or issues, please create an issue detailing the problem.
- Submit Pull Requests: For bug fixes, enhancements, or new features, fork the repository and submit a pull request with your changes.
- Documentation Improvements: Help us improve our documentation by suggesting edits or additions.
- Share Ideas: Have an idea to improve the project? Feel free to open a discussion.
For additional inquiries or direct communication, you can reach me via email: dominik.traxl@posteo.org.
See the Installation from Source & Environment Setup section in the documentation for complete instructions on building from the git source tree.
Please acknowledge the authors and cite the use of this software when results are used in publications or published elsewhere. Various citation formats are available here: https://dx.doi.org/10.1063/1.4952963 For your convenience, you can find the BibTex entry below:
@Article{traxl-2016-deep, author = {Dominik Traxl AND Niklas Boers AND J\"urgen Kurths}, title = {Deep Graphs - A general framework to represent and analyze heterogeneous complex systems across scales}, journal = {Chaos}, year = {2016}, volume = {26}, number = {6}, eid = {065303}, doi = {https://dx.doi.org/10.1063/1.4952963}, eprinttype = {arxiv}, eprintclass = {physics.data-an, cs.SI, physics.ao-ph, physics.soc-ph}, eprint = {https://arxiv.org/abs/1604.00971v1}, version = {1}, date = {2016-04-04}, url = {https://arxiv.org/abs/1604.00971v1} }
Distributed with a BSD-3-Clause License.:
Copyright (C) 2017-2025 DeepGraph Developers Dominik Traxl <dominik.traxl@posteo.org>