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

Uploaded Source

Built Distributions

pymatgen-2024.5.31-cp312-cp312-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.12 Windows x86-64

pymatgen-2024.5.31-cp312-cp312-win32.whl (3.5 MB view details)

Uploaded CPython 3.12 Windows x86

pymatgen-2024.5.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pymatgen-2024.5.31-cp312-cp312-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pymatgen-2024.5.31-cp311-cp311-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

pymatgen-2024.5.31-cp311-cp311-win32.whl (3.5 MB view details)

Uploaded CPython 3.11 Windows x86

pymatgen-2024.5.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pymatgen-2024.5.31-cp311-cp311-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pymatgen-2024.5.31-cp310-cp310-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

pymatgen-2024.5.31-cp310-cp310-win32.whl (3.5 MB view details)

Uploaded CPython 3.10 Windows x86

pymatgen-2024.5.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pymatgen-2024.5.31-cp310-cp310-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pymatgen-2024.5.31-cp39-cp39-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

pymatgen-2024.5.31-cp39-cp39-win32.whl (3.5 MB view details)

Uploaded CPython 3.9 Windows x86

pymatgen-2024.5.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pymatgen-2024.5.31-cp39-cp39-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pymatgen-2024.5.31.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pymatgen-2024.5.31.tar.gz
Algorithm Hash digest
SHA256 78a6841b3725b2e2b3d4310f6fc37d794224d34358f7489e99d9e1712ab4aa9a
MD5 f0d62ec4fe2b4326ba6795b1362a03fd
BLAKE2b-256 a7a8b05267ef0f474074dd1a8cea28845e455cd27b97542ca9290a8e4ddb69e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 381433101db5c9281605a4ab2509294a2a3c07a9d8e222614b0ba4cfa5267b2e
MD5 239f0f9a4f88704122c2b50cb76f8289
BLAKE2b-256 6be39d563c4ae1bb6387dcdbcaa37829004a6964aa75b68a3d72ec16ad09976c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 de221859a0a510bfd6f4cb8af6d06588549daa74ff2a8c2532eaa4b5ef63bd18
MD5 c7bc2e54628c496cc7cff4fb75d67c00
BLAKE2b-256 c24e2f8350f1158e24a09736bff77739454c95a4d230dda65eb27c83751365e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2075e956c27167ee8a9272dac4f01b04b96e435ade26b423cb8579e2c2ce32a7
MD5 0338c5b4919de2f697426362e1d8c4cb
BLAKE2b-256 d30499e8701349c55438b896792f2306f5743b620cd8f24a0b6d33947a6138e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a79e98f639aefb67c84fa287ebd9271b9c9e2b3b1c89a0b0ad4a5d0b940399e
MD5 bffb164948fc59aed7d4d2cc634d4575
BLAKE2b-256 a2a57896a28a8b3e609a3e5afb140a9264e3a30c176290e445bb00d1eb788145

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5fb33728ac8f589a9e093d3fa6be0f12b41c10b582afe09355f5b0aedfc53607
MD5 b945932e81633389fc46576273ce6955
BLAKE2b-256 ce3a04f1c96e160014afa203cec7bb9f1afb7639428a314d33c322cb9f19623c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 17556b7f509a80b30819c32aa5a0f4e5227c54d8b2670ee90ff42d922191508d
MD5 89d396d7bcae09ed96617c67c5b175a2
BLAKE2b-256 cf41ff4899c538d4d6d23aac85a6c8aa245e4a61a5083ac697902b56fa720314

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f118f7e5c7aba4286dbcbc9fd501cff8f6ad899698fd81f36df0aa1e2b831cd
MD5 dadca028ccd8b367ec6060ff2b51a500
BLAKE2b-256 dbb62963d19547b2b2b0bc96b40e55dafce350115c515af35deb7c0d30b1ddcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 061bf0590ed436593b10dbc749f403bc6bb1d99b92a4421c6ece0102794d87eb
MD5 59806da7fd06b8ff731f8e509783258d
BLAKE2b-256 894d494eca39bc82d387c3e60bccea645f89b18ccbc5c663e4d39fb700f2b27a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f681e8ff21e13ada6e31e47289bc4a7f776b00039651ecbe5402cec8671bfac0
MD5 82425d360616299f2987ed081f6cffc0
BLAKE2b-256 898ad4d90abd279892a2ee0a59e69faba2021aec0a4c14dbae7760db729c560f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 ac46aed7d045323dc20b86cd02a644d75dcd8ee324fa529cc8e082905e24e479
MD5 624dde5202f1210f7ba059a9d5e1bdc7
BLAKE2b-256 d137b58c355f4f3c4ebd6948a9d5c3c90ba211ca87b7d61d6002ea767603451b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 769f59d33bddbbaba5641f49c6480347478943966829528ae3b79e5ea4bf7ca9
MD5 6c4e1c8435898612751cb915716359dc
BLAKE2b-256 71a9d8c359b336d82270c4afc7f2f19b46192a611cc7acd513d8a09b8813697d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 941a87c1f9f3625a2e5ba47892a44617aedbe54220bb7aba5153d17d545ca228
MD5 67cea3ae5d5142d7359f3fac9668c7f6
BLAKE2b-256 557629af06681883f8cebdfd0034d4f4c24b30582bb7158294d9c729f9fdfebc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 15fc7a37c25911c5bb054f8a50f22fcb5b772e5ddee73a2fbf0fd8628f7697c8
MD5 2b01d1424506080fb0116656a648fdf9
BLAKE2b-256 13bbc1ca348ab81e76d95a80c70f5bce433d7291fd240902a028431957819d1b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymatgen-2024.5.31-cp39-cp39-win32.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pymatgen-2024.5.31-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 2522e663af84ccf6404ad9e5ca9c0d162655c9edfca7e6149401a0dee1c5c6c3
MD5 0697b0eb2442b10a774f2b5047be9682
BLAKE2b-256 53ca57db03b907dd46f72d803e83b8091b31f8abcba4fbf8a8262fded7d24da1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 812889ac07484ae45b66dab340b522b85b7b4f8d80008d442337d001e4979d02
MD5 cc8b199adafea98a73b2af0f8fcc01e3
BLAKE2b-256 0f2ebf62b5e3a3d6be72fa4b1feda04a3990cf9891f741439a4141add152e701

See more details on using hashes here.

File details

Details for the file pymatgen-2024.5.31-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymatgen-2024.5.31-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48d052431930fa0f5ffcfd4bb9066a2a6beca45d55ea59481f86c949d564d994
MD5 803aa0750611f7ac909b10ce9ba40bc3
BLAKE2b-256 a4954afed587f8f2507ca67c18601c370b291ac18ca4e5612066fe42578e54ca

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