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+ 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.9. 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.1.26.tar.gz (7.2 MB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.11 Windows x86-64

pymatgen-2024.1.26-cp311-cp311-win32.whl (7.7 MB view details)

Uploaded CPython 3.11 Windows x86

pymatgen-2024.1.26-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-2024.1.26-cp311-cp311-macosx_10_9_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

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

Uploaded CPython 3.10 Windows x86-64

pymatgen-2024.1.26-cp310-cp310-win32.whl (7.7 MB view details)

Uploaded CPython 3.10 Windows x86

pymatgen-2024.1.26-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-2024.1.26-cp310-cp310-macosx_10_9_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

pymatgen-2024.1.26-cp39-cp39-win32.whl (7.7 MB view details)

Uploaded CPython 3.9 Windows x86

pymatgen-2024.1.26-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-2024.1.26-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-2024.1.26.tar.gz.

File metadata

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

File hashes

Hashes for pymatgen-2024.1.26.tar.gz
Algorithm Hash digest
SHA256 73c020fd4375a9c5372892e531e84c7a9c4deb2eb21cd4063e0e8ef1ea727f77
MD5 5c6174f4161fbacb7f21ddbf433db7b3
BLAKE2b-256 cef87ad8ed6b7ada10951b2c53bcc206d5abb0d9c8ace9fa8c307706bfe713eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 37ebf024135989065cedebee59abda53513f06de7380c80ce4cbf142c5acdf29
MD5 48e6e93e04b59727a1aa145a5d087452
BLAKE2b-256 fde1f44921ee649a53ab672abff1eaa398afb637248666578c6a3e8cf98da379

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 eec024cc49699669cd66444dd5a58fb4f6fe3d5872b0bf04cac8550c768c1fbc
MD5 5b017ab789c3227f6bec25b9bf6d9255
BLAKE2b-256 8fb05e35b4c5fd13f1f9ca9a3cc44d3ca64797b5b4934ba269265ea7df918c13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 096ec7eb4be82ed40c19254060ebdaa08fa0bca393afeee24c79258bf25e96d7
MD5 d67ff4926cc5eec7b64302d74d330a75
BLAKE2b-256 1047578839218d851870589e6834ccf7cc0e022a394c7125b360ca5eb704646f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dfc0051802516f676b24c4fdd1de78467a3e4c23e7503e3e5243c43d6fcf9d43
MD5 5fc4af84932b82feafb519158a511557
BLAKE2b-256 9925d6973ca85604638a13950bcd42be8cf2b43a059352d5ffcd13af8d869c68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3c355af515fc15963a978e15ad27fe4569e9bde0d365f99f6539d44d6f8882fe
MD5 c254be860a4bfee7193daca0aa0f99c5
BLAKE2b-256 4e0869095a4a86982d03e6a231e3e9341ee1908424e536e1d58849d514cce848

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 782e1dc07e686ad08a03f3d5fa503fb77fa36d0c552c4f148e66e8a834e03c8a
MD5 08490609674ef6f7e3ef5ad16b5779a2
BLAKE2b-256 8e271f2da2ad7e3bb63a0b2795be50855bf248248d0db6a92cb2ff70121040eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 590e17012d84cd6bba59a9c7cc9f1e3e596f4b8b529e01ab022564875ea0ebbb
MD5 7549503b557d38792c33410ff4c11728
BLAKE2b-256 7fce7cf632dbb660e0bf1c45aabf447cdcda8946a67e52dddc351f4de8760dcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bb227f74638fa6319db26e7f9498679ce5b7a93c02aeabcd65fd7dded745e537
MD5 1838e2e4ccb1ce217e2f65ddcd717764
BLAKE2b-256 cb17c7f3cbc2c1fed174df909d14bd036238643bb02f2164467fcaf00ecf3606

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3ed0de66b0ad321a95f7871f763c7b85650298cd12729170c4cbe7e97c66025d
MD5 540219b4071c923bf69f07b2acb9b29f
BLAKE2b-256 54e5c0648dcfbc1a0afbdbc2f4911096210e3d667256cbb056b66f4412238bc1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pymatgen-2024.1.26-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 6a14c2759b515616d0cf7d69089f4d8c817ef142a3176a9a812a8a8a4e687f8d
MD5 6fc7328b469af878106a7f10147b41c6
BLAKE2b-256 f80fe2c86b495f1875c15af68b5486f20ef2acf98cd0485e4b80c70527f1e362

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b69284ed4e688e873902ae002dcd283000296d2d731e39ee1314a05b7c6ba39
MD5 54baa9f410aef90ca1c6a0a2e9013510
BLAKE2b-256 0823ac294243bf126e673b41331df1b817aeaf8e243f1be2d471515af208cc39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.1.26-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0d23ee802548abd1d8443fea7d3ef0afa04499b3c86e4e377513ff32e1e668d5
MD5 07cc1d2095b968727aec3cdab8c6a814
BLAKE2b-256 efa1cb2c86a4d1961fd4d47f26153c83445985a32db4e40a5e3d0754827ac096

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