https://github.com/expectozjj/generalisedformanricci
Forman Ricci Curvature for Simplicial Complex.
https://github.com/expectozjj/generalisedformanricci
differential-geometry forman graph-network networkx ricci-curvature simplicial-complex
Last synced: 4 months ago
JSON representation
Forman Ricci Curvature for Simplicial Complex.
- Host: GitHub
- URL: https://github.com/expectozjj/generalisedformanricci
- Owner: ExpectozJJ
- License: apache-2.0
- Created: 2020-05-06T15:59:09.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-09-22T09:27:24.000Z (over 3 years ago)
- Last Synced: 2025-10-21T19:46:58.424Z (8 months ago)
- Topics: differential-geometry, forman, graph-network, networkx, ricci-curvature, simplicial-complex
- Language: Jupyter Notebook
- Homepage:
- Size: 1.82 MB
- Stars: 9
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://mybinder.org/v2/gh/ExpectozJJ/GeneralisedFormanRicci/master?filepath=tutorial%2FGeneralisedFormanRicci-demo.ipynb)
[](https://colab.research.google.com/github/ExpectozJJ/GeneralisedFormanRicci/blob/master/tutorial/GeneralisedFormanRicci-demo.ipynb)
[](https://pepy.tech/project/generalisedformanricci)
[](https://opensource.org/licenses/Apache-2.0)

# GeneralisedFormanRicci
This code computes the Forman Ricci Curvature for simplicial complex generated from a given point cloud data. The implementation is based on the combinatorial definition of Forman Ricci curvature defined by Robin Forman. This implementation generalises beyond the simplified version implemented in saibalmars/GraphRicciCurvature github.
Many thanks to stephenhky and saibalmars for their packages MoguTDA and GraphRicciCurvature respectively.
Partial code was modified from MoguTDA for the computation of the boundary matrices.
## Installation via conda-forge
[](https://anaconda.org/conda-forge/generalisedformanricci)



Installing `generalisedformanricci` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with:
```
conda config --add channels conda-forge
```
Once the `conda-forge` channel has been enabled, `generalisedformanricci` can be installed with:
```
conda install generalisedformanricci
```
It is possible to list all of the versions of `generalisedformanricci` available on your platform with:
```
conda search generalisedformanricci --channel conda-forge
```
Alternatively, `generalisedformanricci` can be installed just by `conda install -c conda-forge generalisedformanricci`.
## Installation via pip


`pip install GeneralisedFormanRicci`
Upgrading via `pip install --upgrade GeneralisedFormanRicci`
## Package Requirement
* [NetworkX](https://github.com/networkx/networkx) >= 2.0 (Based Graph library)
* [GUDHI](https://github.com/GUDHI) (Simplicial Complex Library)
* [NumPy](https://github.com/numpy/numpy)
* [SciPy](https://github.com/scipy/scipy)
## Simple Example
```
from GeneralisedFormanRicci.frc import GeneralisedFormanRicci
data = [[0.8, 2.6], [0.2, 1.0], [0.9, 0.5], [2.7, 1.8], [1.7, 0.5], [2.5, 2.5], [2.4, 1.0], [0.6, 0.9], [0.4, 2.2]]
for f in [0, 0.5, 1, 2, 3]:
sc = GeneralisedFormanRicci(data, method = "rips", epsilon = f)
sc.compute_forman()
sc.compute_bochner()
```
## References
* MoguTDA: https://github.com/stephenhky/MoguTDA
* GraphRicciCurvature: https://github.com/saibalmars/GraphRicciCurvature
* Forman, R. (2003). Bochner's method for cell complexes and combinatorial Ricci curvature. Discrete and Computational Geometry, 29(3), 323-374.
* Forman, R. (1999). Combinatorial Differential Topology and Geometry. New Perspectives in Algebraic Combinatorics, 38, 177.
## Cite
If you use this code in your research, please considering cite our paper:
* JunJie Wee and Kelin Xia, Ollivier Persistent Ricci Curvature-Based Machine Learning for the Protein–Ligand Binding Affinity Prediction, Journal of Chemical Information and Modeling 2021 61 (4), 1617-1626
* JunJie Wee, Kelin Xia, Forman persistent Ricci curvature (FPRC)-based machine learning models for protein–ligand binding affinity prediction, Briefings in Bioinformatics, 2021;, bbab136
* D. Vijay Anand, Qiang Xu, JunJie Wee, Kelin Xia, Tze Chien Sum. Topological Feature Engineering for Machine Learning Based Halide Perovskite Materials Design. npj Computational Materials. 8, 203. (2022).