Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Python Graph Projects
-
-
darkflow
Translate darknet to tensorflow. Load trained weights, retrain/fine-tune using tensorflow, export constant graph def to mobile devices
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
It also lets you run tools like https://github.com/jrfonseca/gprof2dot on the profiling results to generate comprehensive flowcharts (call graph) for your program.
-
rdflib
RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.
-
pygraphistry
PyGraphistry is a Python library to quickly load, shape, embed, and explore big graphs with the GPU-accelerated Graphistry visual graph analyzer
Extra fun: We find most enterprise/gov graph analytics work only requires 1-2 attributes to go along with the graph index, and those attributes often are already numeric (time, $, ...) or can be dictionary-encoded as discussed here (categorical, ID, ...)... so even 'tough' billion scale graphs are fine on 1 gpu.
Early, but that's been the basic thinking into our new GFQL system: slice into the columns you want, and then do all the in-GPU traversals you want. In our V1, we keep things dataframe-native include the in-GPU data representation, and are already working on the first extensions to support switching to more graph-native indexing for steps as needed.
Ex: https://github.com/graphistry/pygraphistry/blob/master/demos...
-
Project mention: RAG Using Structured Data: Overview and Important Questions | news.ycombinator.com | 2024-01-10
Ok, using ChatGPT and Bard (the irony lol) I learned a bit more about GNNs:
GNNs are probabilistic and can be trained to learn representations in graph-structured data and handling complex relationships, while classical graph algorithms are specialized for specific graph analysis tasks and operate based on predefined rules/steps.
* Why is PyG it called "Geometric" and not "Topologic" ?
Properties like connectivity, neighborhoods, and even geodesic distances can all be considered topological features of a graph. These features remain unchanged under continuous deformations like stretching or bending, which is the defining characteristic of topological equivalence. In this sense, "PyTorch Topologic" might be a more accurate reflection of the library's focus on analyzing the intrinsic structure and connections within graphs.
However, the term "geometric" still has some merit in the context of PyG. While most GNN operations rely on topological principles, some do incorporate notions of Euclidean geometry, such as:
- Node embeddings: Many GNNs learn low-dimensional vectors for each node, which can be interpreted as points in a vector space, allowing geometric operations like distances and angles to be applied.
- Spectral GNNs: These models leverage the eigenvalues and eigenvectors of the graph Laplacian, which encodes information about the geometric structure and distances between nodes.
- Manifold learning: Certain types of graphs can be seen as low-dimensional representations of high-dimensional manifolds. Applying GNNs in this context involves learning geometric properties on the manifold itself.
Therefore, although topology plays a primary role in understanding and analyzing graphs, geometry can still be relevant in certain contexts and GNN operations.
* Real world applications:
- HuggingFace has a few models [0] around things like computational chemistry [1] or weather forecasting.
- PyGod [2] can be used for Outlier Detection (Anomaly Detection).
- Apparently ULTRA [3] can "infer" (in the knowledge graph sense), that Michael Jackson released some disco music :-p (see the paper).
- RGCN [4] can be used for knowledge graph link prediction (recovery of missing facts, i.e. subject-predicate-object triples) and entity classification (recovery of missing entity attributes).
- GreatX [5] tackles removing inherent noise, "Distribution Shift" and "Adversarial Attacks" (ex: noise purposely introduced to hide a node presence) from networks. Apparently this is a thing and the field is called "Graph Reliability" or "Reliable Deep Graph Learning". The author even has a bunch of "awesome" style lists of links! [6]
- Finally this repo has a nice explanation of how/why to run machine learning algorithms "outside of the DB":
"Pytorch Geometric (PyG) has a whole arsenal of neural network layers and techniques to approach machine learning on graphs (aka graph representation learning, graph machine learning, deep graph learning) and has been used in this repo [7] to learn link patterns, also known as link or edge predictions."
--
0: https://huggingface.co/models?pipeline_tag=graph-ml&sort=tre...
1: https://github.com/Microsoft/Graphormer
2: https://github.com/pygod-team/pygod
3: https://github.com/DeepGraphLearning/ULTRA
4: https://huggingface.co/riship-nv/RGCN
5: https://github.com/EdisonLeeeee/GreatX
-
asciichart
Nice-looking lightweight console ASCII line charts ╭┈╯ for NodeJS, browsers and terminal, no dependencies
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
-
beagle
Beagle is an incident response and digital forensics tool which transforms security logs and data into graphs. (by yampelo)
-
-
-
-
-
You may like my Netgraph library [1], which is a Python library that aims to complement networkx, igraph, and graph-tool with publication-quality visualisations.
Netgraph implements numerous node layout algorithms and several edge routing routines. Uniquely among Python alternatives, it handles networks with multiple components gracefully (which otherwise break most node layout routines), and it post-processes the output of the node layout and edge routing algorithms with several heuristics to increase the interpretability of the visualisation (reduction of overlaps between nodes, edges, and labels; edge crossing minimisation and edge unbundling where applicable). The highly customisable plots are created using Matplotlib, and the resulting Matplotlib objects are exposed in an easily queryable format such that they can be further manipulated and/or animated using standard Matplotlib syntax. Finally, Netgraph also supports interactive changes: with the InteractiveGraph class, nodes and edges can be positioned using the mouse, and the EditableGraph class additionally supports insertion and deletion of nodes and edges as well as their (re-)labelling through standard text-entry.
-
-
The problem here is that a fundamental question has not been answered, and as far as I can tell, has not been addressed by any of these visual environments:
What does an algorithm look like?
Herman Hesse alluded to this in his novel _The Glass Bead Game_, but despite decades of discussion and work, no one has made a convincing pysical representation of that system.
I love the concept, and have made some moderately complex attempts, e.g.,:
https://www.blockscad3d.com/community/projects/1430644
https://github.com/WillAdams/gcodepreview
it always devolves to screen size being out-paced by problem complexity --- one gets something of an inkling of this at:
https://scriptsofanotherdimension.tumblr.com/
Alternately, one can just break a project down into modules, but then the top-level view becomes the wall of text representation (albeit w/ nice lines or captured into pretty boxes) which one is ostensibly trying to escape.
I'd love to see someone succeed in this, and I've been using:
https://github.com/derkork/openscad-graph-editor
quite a bit, and put a bit of money towards:
-
movies-python-bolt
Neo4j Movies Example application with Flask backend using the neo4j-python-driver
-
-
-
-
GraphBasedLocalTrajectoryPlanner
Local trajectory planner based on a multilayer graph framework for autonomous race vehicles.
-
reddit-detective
Play detective on Reddit: Discover political disinformation campaigns, secret influencers and more
-
MISP-maltego
Set of Maltego transforms to inferface with a MISP Threat Sharing instance, and also to explore the whole MITRE ATT&CK dataset.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Python Graph related posts
- Graph Data Fits in Memory
- The "missing" graph datatype already exists. It was invented in the '70s
- RAG Using Structured Data: Overview and Important Questions
- Show HN: Comflowy – A ComfyUI Tutorial for Beginners
- Displaying Content as a Graph
- NeurIPS 2023 Posters Cluster Visualization
- NetworkX – Network Analysis in Python
-
A note from our sponsor - InfluxDB
www.influxdata.com | 18 Apr 2024
Index
What are some of the best open-source Graph projects in Python? This list will help you:
Project | Stars | |
---|---|---|
1 | algorithms | 23,516 |
2 | darkflow | 6,130 |
3 | gprof2dot | 3,087 |
4 | rdflib | 2,073 |
5 | pygraphistry | 2,044 |
6 | Graphormer | 1,893 |
7 | asciichart | 1,799 |
8 | python-o365 | 1,544 |
9 | beagle | 1,250 |
10 | causal-learn | 970 |
11 | facepy | 864 |
12 | communities | 695 |
13 | DGFraud | 655 |
14 | netgraph | 638 |
15 | Nodz | 403 |
16 | nodezator | 388 |
17 | movies-python-bolt | 369 |
18 | cog | 283 |
19 | how_attentive_are_gats | 275 |
20 | forceatlas2 | 270 |
21 | GraphBasedLocalTrajectoryPlanner | 229 |
22 | reddit-detective | 206 |
23 | MISP-maltego | 165 |