Skip to main content

Python Materials Genomics is a robust materials analysis code that defines core object representations for structures and molecules with support for many electronic structure codes. It is currently the core analysis code powering the Materials Project (https://materialsproject.org).

Project description

Logo

CI Status codecov PyPI Downloads Conda Downloads Requires Python 3.9+ arXiv

Pymatgen (Python Materials Genomics) is a robust, open-source Python library for materials analysis. These are some of the main features:

  1. Highly flexible classes for the representation of Element, Site, Molecule and Structure objects.
  2. Extensive input/output support, including support for VASP, ABINIT, CIF, Gaussian, XYZ, and many other file formats.
  3. Powerful analysis tools, including generation of phase diagrams, Pourbaix diagrams, diffusion analyses, reactions, etc.
  4. Electronic structure analyses, such as density of states and band structure.
  5. Integration with the Materials Project REST API.

Pymatgen is free to use. However, we also welcome your help to improve this library by making your contributions. These contributions can be in the form of additional tools or modules you develop, or feature requests and bug reports. The following are resources for pymatgen:

Why use pymatgen?

  1. It is (fairly) robust. Pymatgen is used by thousands of researchers and is the analysis code powering the Materials Project. The analysis it produces survives rigorous scrutiny every single day. Bugs tend to be found and corrected quickly. Pymatgen also uses Github Actions for continuous integration, which ensures that every new code passes a comprehensive suite of unit tests.
  2. It is well documented. A fairly comprehensive documentation has been written to help you get to grips with it quickly.
  3. It is open. You are free to use and contribute to pymatgen. It also means that pymatgen is continuously being improved. We will attribute any code you contribute to any publication you specify. Contributing to pymatgen means your research becomes more visible, which translates to greater impact.
  4. It is fast. Many of the core numerical methods in pymatgen have been optimized by vectorizing in numpy/scipy. This means that coordinate manipulations are fast. Pymatgen also comes with a complete system for handling periodic boundary conditions.
  5. It will be around. Pymatgen is not a pet research project. It is used in the well-established Materials Project. It is also actively being developed and maintained by the Materials Virtual Lab, the ABINIT group and many other research groups.
  6. A growing ecosystem of developers and add-ons. Pymatgen has contributions from materials scientists all over the world. We also now have an architecture to support add-ons that expand pymatgen's functionality even further. Check out the contributing page and add-ons page for details and examples.

Installation

The version at the Python Package Index PyPI is always the latest stable release that is relatively bug-free and can be installed via pip:

pip install pymatgen

If you'd like to use the latest unreleased changes on the main branch, you can install directly from GitHub:

pip install -U git+https://github.com/materialsproject/pymatgen

The minimum Python version is 3.9. Some extra functionality (e.g., generation of POTCARs) does require additional setup (see the pymatgen docs).

Change Log

Please check GitHub releases and commit history for the latest changes. A legacy changelog is still up at https://pymatgen.org/change_log.

Using pymatgen

Please refer to the official pymatgen docs for tutorials and examples.

How to cite pymatgen

If you use pymatgen in your research, please consider citing the following work:

Shyue Ping Ong, William Davidson Richards, Anubhav Jain, Geoffroy Hautier, Michael Kocher, Shreyas Cholia, Dan Gunter, Vincent Chevrier, Kristin A. Persson, Gerbrand Ceder. Python Materials Genomics (pymatgen): A Robust, Open-Source Python Library for Materials Analysis. Computational Materials Science, 2013, 68, 314-319. doi:10.1016/j.commatsci.2012.10.028

In addition, some of pymatgen's functionality is based on scientific advances/principles developed by the computational materials scientists in our team. Please refer to the pymatgen docs on how to cite them.

Soliciting contributions to 2nd pymatgen paper

If you are a long-standing pymatgen contributor and would like to be involved in working on an updated pymatgen publication, please fill out this co-author registration form or contact @shyuep, @mkhorton and @janosh with questions.

License

Pymatgen is released under the MIT License. The terms of the license are as follows:

The MIT License (MIT) Copyright (c) 2011-2012 MIT & LBNL

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About the Pymatgen Development Team

Shyue Ping Ong of the Materials Virtual Lab started Pymatgen in 2011 and is still the project lead.

The pymatgen development team is the set of all contributors to the pymatgen project, including all subprojects.

Our Copyright Policy

Pymatgen uses a shared copyright model. Each contributor maintains copyright over their contributions to pymatgen. But, it is important to note that these contributions are typically only changes to the repositories. Thus, the pymatgen source code, in its entirety is not the copyright of any single person or institution. Instead, it is the collective copyright of the entire pymatgen Development Team. If individual contributors want to maintain a record of what changes/contributions they have specific copyright on, they should indicate their copyright in the commit message of the change, when they commit the change to one of the pymatgen repositories.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymatgen-2023.11.12.tar.gz (7.2 MB view details)

Uploaded Source

Built Distributions

pymatgen-2023.11.12-cp311-cp311-win_amd64.whl (7.7 MB view details)

Uploaded CPython 3.11 Windows x86-64

pymatgen-2023.11.12-cp311-cp311-win32.whl (7.6 MB view details)

Uploaded CPython 3.11 Windows x86

pymatgen-2023.11.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pymatgen-2023.11.12-cp311-cp311-macosx_10_9_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pymatgen-2023.11.12-cp310-cp310-win_amd64.whl (7.7 MB view details)

Uploaded CPython 3.10 Windows x86-64

pymatgen-2023.11.12-cp310-cp310-win32.whl (7.6 MB view details)

Uploaded CPython 3.10 Windows x86

pymatgen-2023.11.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pymatgen-2023.11.12-cp310-cp310-macosx_10_9_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pymatgen-2023.11.12-cp39-cp39-win_amd64.whl (7.7 MB view details)

Uploaded CPython 3.9 Windows x86-64

pymatgen-2023.11.12-cp39-cp39-win32.whl (7.6 MB view details)

Uploaded CPython 3.9 Windows x86

pymatgen-2023.11.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pymatgen-2023.11.12-cp39-cp39-macosx_10_9_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

File details

Details for the file pymatgen-2023.11.12.tar.gz.

File metadata

  • Download URL: pymatgen-2023.11.12.tar.gz
  • Upload date:
  • Size: 7.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for pymatgen-2023.11.12.tar.gz
Algorithm Hash digest
SHA256 6746cc222e033ec4182596b91004599845a4bfc1bbc4d0b0f0d88f60d3d650a4
MD5 efdeb130b0913ff9af250fbc70d38d82
BLAKE2b-256 49db1db7e2f1ee9d95bd085883d76fa375bef2d7c179c4adaf568c870ff34577

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4b41d5ad1851a2a57140e8ad6335e52a747c4e3c271155ad7578ea3121fbfc42
MD5 3db17a3a1e7c0401789d8797485d9719
BLAKE2b-256 b33e9b670d0d0538e5b622f02296cdcde7fec631069f33d56f917e7968e46529

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 bb2005f673c9994abf33c4db3d542198646e647544276adae1f79676218ac5c3
MD5 fdda4c4f9124d274822be2c812e3733f
BLAKE2b-256 a66469f3cbb2b95b4f3698d3c1aecf1ff7ae32914c28ead8a8c13aa01d7a247d

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0e8429321bab0c5035d00ffa73c711510e715ed10c467227dfaa3ac16cc876c5
MD5 dd227351e5eeb1defe43d8760afb6e5c
BLAKE2b-256 92fee810c7f6911eb3729a8b174f12af603d593f0c2f54d033ca623d3ca5cace

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e03257250db8a3481ca3b7e988f6edb1e84849843f1a4554f0012ed743963b0d
MD5 7a6eb16cb50ec35de0b7bdb565ad56b6
BLAKE2b-256 e08a40e0564447a4b4bb8b4b95b6fa1b57a553a450d0a08c7c810e96cf63313f

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c265cee2df623e763c7742f85aa4a63ca00ab5d3cac80063cdbadf8e6d918beb
MD5 bcd269f726da7748cc4c212714caa095
BLAKE2b-256 a92fd7a346f55d77a6fde6bb28fb1ec90a16892339c82d72810f1be52efe87d0

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 c83959acbb13a97896c74428780df3632c6aa45230bd83f5453506dd88d573c4
MD5 953a75ddb2b8a19e10ff372daeb489af
BLAKE2b-256 2db961eb160a87cb29864652914316e21598ad5a5899c018cb74cf037c2afc7e

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb966e9c3ec15007a55fe0321234fab3bd0508119e755ebad49bdbfd30de53c7
MD5 269a2798b02104145cd74f0df7ee5db7
BLAKE2b-256 bc1b0beb666c546714a69379f5a2d716435807e2124fb08b98da4c042d5b4060

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d50ded7055ff2bbbaf3dd3e9ba0dedfb190bc731242b74e880ad33511aa9a75b
MD5 fcdf981ad2989c0c5980fd889847c1a2
BLAKE2b-256 9fa4a5092dc1120f29269724903919b5c78308dc05d8a3e250087cf3b88b3e5d

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d2740ad2472b2a739b351b55bc351f9d858a2b402ddd775adf6764b2c215695e
MD5 01785b7e1b95cc0d3dc033493d032176
BLAKE2b-256 88b0d2882fefcfdc771e410e38404e8f12eeb40d1382a74e4f67739220757bfb

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp39-cp39-win32.whl.

File metadata

  • Download URL: pymatgen-2023.11.12-cp39-cp39-win32.whl
  • Upload date:
  • Size: 7.6 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for pymatgen-2023.11.12-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 9acca4cc47bad073eb07dcb95ba692e4237ee925a37d866a6225dec4bd572a51
MD5 3c23bb92e2580bd2d9f885b8cfa02299
BLAKE2b-256 10239c26d645fd224887b18a57bf62e395af8afcdd9c486f7da32495f6115778

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 802490f8fb397ae64d279699806d6f73ca0f897dce838cc8128739ca3d7ad025
MD5 c2ba1e4380636851f99ca784ed3393ca
BLAKE2b-256 97a80a38056497693607c1c6e6cee953332d2bb13303351120127524d28a7d37

See more details on using hashes here.

File details

Details for the file pymatgen-2023.11.12-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pymatgen-2023.11.12-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 feb1710f5520a4b88d4b23e84238ff4f5e101b06c45296e39a43d0f5a2f192d5
MD5 00e1c5185b5e8514091588fc5ef66862
BLAKE2b-256 d63dc5005d26d4c2a645bf60423a45b97e689a9a682c59f72570588e1807858a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page