Metadata-Version: 2.1
Name: graph2mat
Version: 0.0.6
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>=0.14.0
Requires-Dist: typer
Requires-Dist: pyyaml; extra == "server"
Requires-Dist: fastapi; extra == "server"
Requires-Dist: uvicorn; extra == "server"
Requires-Dist: jinja2; extra == "server"
Requires-Dist: plotly; extra == "analysis"
Requires-Dist: pandas; extra == "analysis"
Requires-Dist: pytorch-lightning; extra == "lightning"
Requires-Dist: jsonargparse[signatures]; extra == "lightning"
Requires-Dist: jinja2; extra == "siesta"
Requires-Dist: torch; extra == "torch"
Requires-Dist: torch_geometric; extra == "torch"
Requires-Dist: torch; extra == "e3nn"
Requires-Dist: torch_geometric; extra == "e3nn"
Requires-Dist: e3nn; extra == "e3nn"
Requires-Dist: torch; extra == "mace"
Requires-Dist: torch_geometric; extra == "mace"
Requires-Dist: mace_torch; extra == "mace"
Requires-Dist: pyyaml; extra == "tools"
Requires-Dist: fastapi; extra == "tools"
Requires-Dist: uvicorn; extra == "tools"
Requires-Dist: plotly; 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: pyyaml; extra == "docs"
Requires-Dist: fastapi; extra == "docs"
Requires-Dist: uvicorn; extra == "docs"
Requires-Dist: plotly; 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; extra == "docs"
Requires-Dist: mace_torch; extra == "docs"
Requires-Dist: torch_geometric; extra == "docs"
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"
Provides-Extra: server
Provides-Extra: analysis
Provides-Extra: lightning
Provides-Extra: siesta
Provides-Extra: torch
Provides-Extra: e3nn
Provides-Extra: mace
Provides-Extra: tools
Provides-Extra: docs
Provides-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]
```

You can also ask for

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 look forward to your contributions!
