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 folder.
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 ownpiro
container instead of configuring your local environment.
piro
has a dependency onpymatgen
which requires you to generate an API key. Go here 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=<your API 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 <your API key>
- 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.
There are a few options to install and run piro
on your machine:
The most recent stable version of piro
can be installed from PyPI. We recommend installing piro
in a dedicated environment to avoid any version conflicts for its dependencies.
pip install piro
python setup.py develop
- Try out a Jupyter notebook:
See the notebooks in piro/notebooks
jupyter notebook
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