Skip to main content

Python Materials Genomics is a robust materials analysis code that defines core object representations for structures

Project description

Logo

CI Status codecov PyPI Downloads Conda Downloads Requires Python 3.10+ Paper

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.10. Some extra functionality (e.g., generation of POTCARs) does require additional setup (see the pymatgen docs).

Change Log

See GitHub releases, docs/CHANGES.md or commit history in increasing order of details.

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 (@shyuep) of the Materials Virtual Lab started Pymatgen in 2011 and is still the project lead. Janosh Riebesell (@janosh) and Matthew Horton (@mkhorton) are co-maintainers.

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-2024.10.22.tar.gz (3.1 MB view details)

Uploaded Source

Built Distributions

pymatgen-2024.10.22-cp312-cp312-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.12 Windows x86-64

pymatgen-2024.10.22-cp312-cp312-win32.whl (3.6 MB view details)

Uploaded CPython 3.12 Windows x86

pymatgen-2024.10.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pymatgen-2024.10.22-cp312-cp312-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pymatgen-2024.10.22-cp311-cp311-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.11 Windows x86-64

pymatgen-2024.10.22-cp311-cp311-win32.whl (3.6 MB view details)

Uploaded CPython 3.11 Windows x86

pymatgen-2024.10.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pymatgen-2024.10.22-cp311-cp311-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pymatgen-2024.10.22-cp310-cp310-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.10 Windows x86-64

pymatgen-2024.10.22-cp310-cp310-win32.whl (3.6 MB view details)

Uploaded CPython 3.10 Windows x86

pymatgen-2024.10.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pymatgen-2024.10.22-cp310-cp310-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pymatgen-2024.10.22.tar.gz
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.8

File hashes

Hashes for pymatgen-2024.10.22.tar.gz
Algorithm Hash digest
SHA256 e340e28b5da02af524f5d3d877a5ea5105740e9e3190bd0430fe8d8abf48f605
MD5 14faeb8772d885d2ed922fdc5074919f
BLAKE2b-256 9c97d8ad21cb0923f6d2295a98173f3c2756b211e431a99f2cefc53492c652d4

See more details on using hashes here.

File details

Details for the file pymatgen-2024.10.22-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a4d909ba9f91b4cedbf8f4b0e7ef2acbaf2b2abc3ad14034de812517ee739e9f
MD5 ad38204b0852f946e75f8d6a86451abd
BLAKE2b-256 9348e21491a9cb999360276a18d9fab892a1e874d9ce8240d8ae75bf09d0afca

See more details on using hashes here.

File details

Details for the file pymatgen-2024.10.22-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 d050301860a2fb7bda579c7e4191b501a3256fbf16fdf0922acda48ef9297f69
MD5 acb6c3ee10843f2425704ce71657c2c4
BLAKE2b-256 7b05bff88ee3688585d732b9006ac2493de315560fe73bc809fa5fec16007682

See more details on using hashes here.

File details

Details for the file pymatgen-2024.10.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2aa5e78acec75e55fdd208fb1a520e489f6a944eeca3089a5799102b8f4f6b9c
MD5 0d4b1d9401d5fb6445e37f3a065f62b2
BLAKE2b-256 8329692cd927137810f042a33fd87c0c4df6cbf158842befe294298601ab50ab

See more details on using hashes here.

File details

Details for the file pymatgen-2024.10.22-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad73ee050e077ece1732b91e136bb172afba3b0252946f47df0b5e96f593fcc4
MD5 5729fad53564bdcaac458da294708910
BLAKE2b-256 fc00c135904b56f3b60e20fb7c00247446ecc27b10e6a684e004ce27e19c99a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 307941ed4e1b4bf65cfb60a42e365db4548f8419e6ea194b93b673a23ae7f8d2
MD5 d8dbb31264a44ca5a615125a3631baeb
BLAKE2b-256 6295e267dd320e70f8dab971aac0c9abf5df478dff5caa382f077c88cf9096fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 968148a0ba56bf681ae0187f807809275ea11f1f40db81920761221ebc34d148
MD5 655c0d3d282d4c7d9052dca9fb57d0b6
BLAKE2b-256 9338e91314ac5e7122ac3b14eebac9327082ab63ee4f28439d32e5396c983635

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a042b0a289f3fe4d976d6813ee362191c6623cbc16292e5d173e115149c92d78
MD5 946bda36d1ad3eed015458b44bf8d684
BLAKE2b-256 ce8a452cd3a47048e849398440e58e9aad9feb53b96ffc79fa72cb4f9a8c28ce

See more details on using hashes here.

File details

Details for the file pymatgen-2024.10.22-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d400b35026e66c7779094a9c222a7db97c34f37ba7912aa67cb7d9ad5734698
MD5 b2a6cc3203b27fc6348287a73cb6faf7
BLAKE2b-256 46b8dd280c772479c4b468d74463528a0292c6887e02a097dbde76a5b034cb4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1b3db9f51bb49a7f562bd1580fd4c0d222d46823e914d1f68d47c465adcace19
MD5 370cf736d19a3fe1bbbd749dd7af0b0e
BLAKE2b-256 7b3354d5cffee0d42a365777905e2667c0f7c932717cc1ef1d41c07773c947bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d7b99f82c9375a2e1c4da1a56704a463376fb256072ba091514bb733af0f50ae
MD5 e706742f7be25d03c6e489fe20f7ea56
BLAKE2b-256 e7c97edd635d6fe87fd6bb4c7385457281b9f54f514c82905ee77b2d3d5c3e47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 554b21ea3a445a3786962321c8e68d88f9745b2ceb9f26b5434b47da008fa85f
MD5 7b03160bfa97529556a451b64fe2ec27
BLAKE2b-256 f03fe2dcf87538a6b21317ced89c57e0feec6801bc91d8a797ac99ed8f409da2

See more details on using hashes here.

File details

Details for the file pymatgen-2024.10.22-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymatgen-2024.10.22-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 679c42e962ab65e705b6af693a4a44a64364b60962d884803b0c77e1abeb4a8f
MD5 f2fc9f4a3705539294afe398fe7c4f99
BLAKE2b-256 3c5cbf1acbf5b4e084fc06b4b5fb399aecb3b4c1b5b947e31ee98156b2c61d16

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