Skip to content

deepgraph/deepgraph

Repository files navigation

PyPi Version PyPi Downloads Conda Version Conda Downloads Documentation

DeepGraph

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.

Main Features

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.

Quick Start

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)

Dependencies

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.

Documentation

The official documentation is hosted here: http://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.

Development

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.

How to Get Started as a Developer

See the Installation from Source & Environment Setup section in the documentation for complete instructions on building from the git source tree.

Citing DeepGraph

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         = {http://dx.doi.org/10.1063/1.4952963},
    eprinttype  = {arxiv},
    eprintclass = {physics.data-an, cs.SI, physics.ao-ph, physics.soc-ph},
    eprint      = {http://arxiv.org/abs/1604.00971v1},
    version     = {1},
    date        = {2016-04-04},
    url         = {http://arxiv.org/abs/1604.00971v1}
}

Licence

Distributed with a BSD-3-Clause License.:

Copyright (C) 2017-2025 DeepGraph Developers
Dominik Traxl <dominik.traxl@posteo.org>