Metadata-Version: 2.2
Name: graph2mat
Version: 0.0.10
Summary: Utility package to work with equivariant matrices and graphs.
Keywords: machine learning,equivariance,e3nn,matrix
Author-Email: Pol Febrer <pfebrer96@gmail.com>, =?utf-8?q?Peter_B=2E_J=C3=B8rgensen?= <peterbjorgensen@gmail.com>
License: MIT
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: ase
Requires-Dist: sisl[viz]>=0.15.0
Requires-Dist: typer
Provides-Extra: server
Requires-Dist: pyyaml; extra == "server"
Requires-Dist: fastapi; extra == "server"
Requires-Dist: uvicorn; extra == "server"
Requires-Dist: python-multipart; extra == "server"
Requires-Dist: jinja2; extra == "server"
Provides-Extra: analysis
Requires-Dist: plotly; extra == "analysis"
Requires-Dist: pandas; extra == "analysis"
Provides-Extra: lightning
Requires-Dist: pytorch-lightning; extra == "lightning"
Requires-Dist: jsonargparse[signatures]; extra == "lightning"
Requires-Dist: tensorboard; extra == "lightning"
Provides-Extra: siesta
Requires-Dist: jinja2; extra == "siesta"
Provides-Extra: torch
Requires-Dist: torch; extra == "torch"
Requires-Dist: torch_geometric; extra == "torch"
Provides-Extra: e3nn
Requires-Dist: torch; extra == "e3nn"
Requires-Dist: torch_geometric; extra == "e3nn"
Requires-Dist: e3nn; extra == "e3nn"
Provides-Extra: mace
Requires-Dist: torch; extra == "mace"
Requires-Dist: torch_geometric; extra == "mace"
Requires-Dist: mace_torch; extra == "mace"
Provides-Extra: tools
Requires-Dist: pyyaml; extra == "tools"
Requires-Dist: fastapi; extra == "tools"
Requires-Dist: uvicorn; extra == "tools"
Requires-Dist: python-multipart; extra == "tools"
Requires-Dist: plotly; extra == "tools"
Requires-Dist: kaleido; extra == "tools"
Requires-Dist: pandas; extra == "tools"
Requires-Dist: pytorch-lightning; extra == "tools"
Requires-Dist: jsonargparse[signatures]; extra == "tools"
Requires-Dist: jinja2; extra == "tools"
Requires-Dist: mace_torch; extra == "tools"
Requires-Dist: tensorboard; extra == "tools"
Provides-Extra: docs
Requires-Dist: pyyaml; extra == "docs"
Requires-Dist: fastapi; extra == "docs"
Requires-Dist: uvicorn; extra == "docs"
Requires-Dist: plotly<6; extra == "docs"
Requires-Dist: pandas; extra == "docs"
Requires-Dist: pytorch-lightning; extra == "docs"
Requires-Dist: jsonargparse[signatures]; extra == "docs"
Requires-Dist: jinja2; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx_autodoc_typehints; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Requires-Dist: nbsphinx; extra == "docs"
Requires-Dist: ipykernel; extra == "docs"
Requires-Dist: e3nn; extra == "docs"
Requires-Dist: torch<=2.5; extra == "docs"
Requires-Dist: mace_torch; extra == "docs"
Requires-Dist: torch_geometric; extra == "docs"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pyyaml; extra == "test"
Requires-Dist: plotly; extra == "test"
Requires-Dist: pandas; extra == "test"
Requires-Dist: pytorch-lightning; extra == "test"
Requires-Dist: e3nn; extra == "test"
Requires-Dist: torch; extra == "test"
Requires-Dist: mace_torch; extra == "test"
Requires-Dist: torch_geometric; extra == "test"
Requires-Dist: jsonargparse[signatures]; extra == "test"
Requires-Dist: jinja2; extra == "test"
Description-Content-Type: text/markdown

graph2mat: Equivariant matrices meet machine learning
----------------------

![graph2mat_overview](https://raw.githubusercontent.com/BIG-MAP/graph2mat/main/docs/_static/images/graph2mat_overview.svg)

The aim of `graph2mat` is to pave your way into meaningful science by providing the **tools to interface to common machine learning frameworks** (e3nn, pytorch) **to learn equivariant matrices.**

**[Documentation](https://big-map.github.io/graph2mat/)**

It also provides a **set of tools** to facilitate the training and usage of the models created using the package:

- **Training tools**: It contains custom `pytorch_lightning` modules to train, validate and test the orbital matrix models.
- **Server**: A production ready server (and client) to serve predictions of the trained
    models. Implemented using `fastapi`.
- **Siesta**: A set of tools to interface the machine learning models with SIESTA. These include tools for input preparation, analysis of performance...

The package also implements a **command line interface** (CLI): `graph2mat`. The aim of this CLI is
to make the usage of `graph2mat`'s tools as simple as possible. It has two objectives:

- Make life easy for the model developers.
- Facilitate the usage of the models by non machine learning scientists, who just want
  good predictions for their systems.

Installation
------------

It can be installed with pip. Adding the tools extra will also install all the dependencies
needed to use the tools provided.

```
pip install graph2mat[tools]
```

If you want to use `graph2mat` with e3nn you can also ask for the `e3nn` extra dependencies:

```
pip install graph2mat[tools,e3nn]
```

What is an equivariant matrix?
------------------------------

![water_equivariant_matrix](https://raw.githubusercontent.com/BIG-MAP/graph2mat/main/docs/_static/images/water_equivariant_matrix.png)


Contributions
--------------

We are very open to suggestions, contributions, discussions...

- If you have questions or want do discuss an idea, please [start a discussion](https://github.com/BIG-MAP/graph2mat/discussions)
- If you have a feature suggestion or bug report, please [open an issue](https://github.com/BIG-MAP/graph2mat/issues)

We are looking forward to your contributions!

The `graph2mat` package was originally created by Peter Bjørn Jorgensen (@peterbjorgensen) and Pol Febrer (@pfebrer) in the frame of a collaboration to machine learn density matrices. 

Since then, the following users have contributed to the code:

<a href="https://github.com/BIG-MAP/graph2mat/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=BIG-MAP/graph2mat" />
</a>

Citation
--------

If you use `graph2mat` for one of your works, please cite our original paper:

```
@article{febrer2025graph2mat,
  title={Graph2Mat: universal graph to matrix conversion for electron density prediction},
  author={Febrer, Pol and J{\o}rgensen, Peter Bj{\o}rn and Pruneda, Miguel and Garc{\'\i}a, Alberto and Ordej{\'o}n, Pablo and Bhowmik, Arghya},
  journal={Machine Learning: Science and Technology},
  volume={6},
  number={2},
  pages={025013},
  year={2025},
  publisher={IOP Publishing}
}
```

We'll be very happy to see what you have done with it :)
