Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/TRI-AMDD/piro
Software for evaluating pareto-optimal synthesis pathways
https://github.com/TRI-AMDD/piro
Last synced: 28 days ago
JSON representation
Software for evaluating pareto-optimal synthesis pathways
- Host: GitHub
- URL: https://github.com/TRI-AMDD/piro
- Owner: TRI-AMDD
- License: apache-2.0
- Created: 2021-05-19T17:59:28.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-10T08:57:04.000Z (6 months ago)
- Last Synced: 2024-08-04T01:17:44.118Z (4 months ago)
- Language: Jupyter Notebook
- Size: 7.65 MB
- Stars: 21
- Watchers: 7
- Forks: 9
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
- awesome-materials-informatics - piro - Software for evaluating pareto-optimal synthesis pathways (**Python**). [![Github Stars](https://img.shields.io/github/stars/TRI-AMDD/piro?style=social)](https://github.com/TRI-AMDD/piro) (Software and products)
README
# *piro:* rational planning of solid-state synthesis routes for inorganics
![Testing - main](https://github.com/TRI-AMDD/piro/workflows/Testing%20-%20main/badge.svg)
![Linting](https://github.com/TRI-AMDD/piro/workflows/Linting/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/TRI-AMDD/piro/badge.svg?branch=test)](https://coveralls.io/github/TRI-AMDD/piro?branch=test)_piro_ is a recommendation system for navigation and planning of synthesis of
inorganic materials based on classical nucleation theory
and semi-empirical, data-driven approximations to its parts. Currently it
works with Materials Project data via its Rester API.- _piro_ creates synthesis reaction planning plots for target polymorphs under a specific set of thermodynamic conditions and a precursor library,
where favorable routes are those that are (nearly) Pareto optimal in terms of two metrics: nucleation barrier and phase-selection.- _piro_ allows retrosynthetic analysis of target inorganic materials to generate a synthesis reaction tree.
(i.e. laying out the reaction pathways necessary to arrive at the target from practical/purchasable reagents/starting materials)- _piro_ supports generation of interactive plots and a web-UI for easy-navigation.
Tutorial jupyter notebooks showing how to use _piro_ locally are provided in the [notebooks](piro/notebooks) folder.
## Prerequisites
### Python 3.9
- `piro` uses Python 3.9. If you wish to develop or run a local server, you can also following the Docker instructions below to create your own `piro` container instead of configuring your local environment.### Pymatgen API key
- `piro` has a dependency on `pymatgen` which requires you to generate an API key. Go [here](https://materialsproject.org/open) and follow the instructions to generate your API key.
- Use the API key by either
- A) adding the environment variable MAPI_KEY to your current environment
```
# for example in the terminal
export MAPI_KEY=
```
- B) using pymatgen's command line to set a global key (note: it's PMG_MAPI_KEY instead of just MAPI_KEY)
```
pmg config --add PMG_MAPI_KEY
```### Access to MongoDB Cached Database (optional)
- Once you get the credential, set up the environment variable as follow:
```
MONGODB_URI = mongodb://{username}:{password}@{host}:{port}/{database}
```
- If you use conda for your development, you can do like this:
```
conda env config vars set MONGODB_URI="mongodb://{username}:{password}@{host}:{port}/{database}"
```
- You will need to reactive the conda environment so the change will take effective.## Setup
There are a few options to install and run `piro` on your machine:### A) Get `piro` from PyPI
The most recent stable version of `piro` can be installed from [PyPI](https://pypi.org/project/piro/). We recommend installing `piro` in a dedicated environment to avoid any version conflicts for its dependencies.
```
pip install piro
```### B) For development, install the source from this repo in development mode
```
python setup.py develop
```## Piro Module Usage
- Try out a Jupyter notebook:
```
jupyter notebook
```
See the notebooks in piro/notebooks## Web app
[README](web/README.md)
## Citation
If you use `piro`, we kindly ask you to cite the following publication:
* Aykol, M., Montoya, J.H., Hummelshøj, J. "Rational Solid-State Synthesis Routes for Inorganic Materials" J. Am. Chem. Soc. (2021): [https://doi.org/10.1021/jacs.1c04888](https://doi.org/10.1021/jacs.1c04888)