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 an updated pymatgen paper

If you are a long-standing pymatgen contributor and would like to be involved in working on an updated pymatgen publication, please contact the maintainers @shyuep, @mkhorton and @janosh.

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

Uploaded Source

Built Distributions

pymatgen-2023.10.3-cp311-cp311-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.11 Windows x86-64

pymatgen-2023.10.3-cp311-cp311-win32.whl (7.3 MB view details)

Uploaded CPython 3.11 Windows x86

pymatgen-2023.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pymatgen-2023.10.3-cp311-cp311-macosx_10_9_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pymatgen-2023.10.3-cp310-cp310-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

pymatgen-2023.10.3-cp310-cp310-win32.whl (7.3 MB view details)

Uploaded CPython 3.10 Windows x86

pymatgen-2023.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pymatgen-2023.10.3-cp310-cp310-macosx_10_9_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pymatgen-2023.10.3-cp39-cp39-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

pymatgen-2023.10.3-cp39-cp39-win32.whl (7.3 MB view details)

Uploaded CPython 3.9 Windows x86

pymatgen-2023.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pymatgen-2023.10.3-cp39-cp39-macosx_10_9_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pymatgen-2023.10.3.tar.gz
Algorithm Hash digest
SHA256 d4ea04e28607f26eb21a36a8486c929265a86dd9fab97bc43f2c49c81c0e2199
MD5 443ea6ad37ab7a3469141dcec85ee155
BLAKE2b-256 d1d2066d24b159be9978225a11519498da0cbdd946c26fc3f62eb633653cab25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 61016a16effd324dabf4b756d49476673110ee877c913cae0469341bc904d876
MD5 7221e75ba03ffdbc53eae05fd463f56f
BLAKE2b-256 4bc739194d7822f06bbd5ac7b02166f13940d042878b3b3295485eb43c81491e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 38a8c48d322e0a686d11d08c80edf4b99d4d7e12f099463895437d91c600928e
MD5 63efca7348bc3055e5bcbff9d5cc4f4f
BLAKE2b-256 5f800fa6ef7b534e28bd88f8e3c44f6597405790c5e864cb6602d7b23433abe4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 45f30cab8a721b6b1ca4c14e3ec10dad5f8eac86410c25ebbc3de78e45d53f5f
MD5 5ad1dc3aebb615362a3bb4d6c92be737
BLAKE2b-256 fc93cd5723ac38b436a12f3b6c9ab93c0c1a04dfa36cb71c0ca578dce55a3e51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 65f8aab40549c87d48e21502e6a586bc8a929f98c0e3ba5413bf1aed2c00f6b9
MD5 e4e68ee4f43d21c180c5f851afbd0c90
BLAKE2b-256 c1f346715fbfb01bf22f6772b39649f7d440bc815d61e5b34c53f6220785d56d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9553f99f2e2c0e0731fe8e8febd20a99577ecd8a9d3a98ca4acdb24e828bacab
MD5 860cc16a3e9a82f924dcdb09b4a33caa
BLAKE2b-256 bb8b62bdb3602c8b5bf8e030d286785bfdf37010d7c354a0447f5ed6b643bb7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 5396dadf6c61caba5dc774f386885f1b53a1f49c01c136f9bf86f1055b63bac0
MD5 57131dc6f4e633bbef7e961e8b172e3d
BLAKE2b-256 bd3c5f5835929da250611a34404df687d73532164cd3663aab12c73b9786a2d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0836eab375d80af403cb9832fc2ac26784a566ebcee36ea646fb1a072305fabe
MD5 1a4d9b9499798a56eb2b6a818e2c28a1
BLAKE2b-256 b56e52d46e6ecfce3c3e6c4f1b1c2fc7c48ab7fa79c4f0a47de311436cb6b4ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5da6b303c6f6e80e43f9a05a32f51dc6ad960909f44e073257ee922d6011b412
MD5 bddfe3a44d831b91604c50d0b013df4c
BLAKE2b-256 7dcf3096e4731212735ba11555bac4624bb4fda77a3f59e8796c40d60004b6a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 051c2b02c9b4a933524084a4756793c604dd4ade7c7b86a6204d45cb0fea2970
MD5 5d7a0770d871a70cd88ccfe0d67a2b5c
BLAKE2b-256 727fce2cf43ef404ec3e20f9cc190b36163ec0b39e8a69b6364bb61695049056

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymatgen-2023.10.3-cp39-cp39-win32.whl
  • Upload date:
  • Size: 7.3 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.10.3-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 dff40210869b89ebf3d5f527afe2172ecd9c428b65455215af4f3c8ef55d45cc
MD5 2bbc4c7494d07d76e87c7e76f1f52f9a
BLAKE2b-256 ddc495ff7dfc4b070e7aea70a486953c75f506bc49fd21b5b8519e295ba430bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ffd5a17e75ea897650eceeccbcb8bbe53118a8a8cd0f26da79e0c782b7c0d846
MD5 40eb8fa9ecbd3f3b653b75e2302139b0
BLAKE2b-256 2b7d92869e2a857bd2a20c28ce10b7ca2275be6b44447dc30eafb18619c47367

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2023.10.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ad4725fc8e67f972eaea8fef8056ff5b336b9861fafd1de49d87da1e88bebf4d
MD5 e0bcd13802cbf2dd86387a2309b1de54
BLAKE2b-256 dd25dc89f69d37b57fe25c61590f59e5ec370dadba1250e9bedd0845d2886124

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