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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

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

Uploaded CPython 3.12 Windows x86

pymatgen-2024.9.17-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.9.17-cp312-cp312-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.11 Windows x86

pymatgen-2024.9.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 Windows x86

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

File metadata

  • Download URL: pymatgen-2024.9.17.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.9.17.tar.gz
Algorithm Hash digest
SHA256 118d710cb42fc2d7df24d014a09a7cfdec2acd20d0509dbeed5db509876d7d80
MD5 6002a113388c8c530d5eb3681f29faa5
BLAKE2b-256 38afcbe183c47cb6fd05917307b52d983c26408dddf06dfc70f4285cd8d1c881

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 20b592e3c3212914be8a65bd02b6017b17bf86639923dc00ffde6f7a0df99516
MD5 64163daf23a5cc355e70c06902cdf97c
BLAKE2b-256 a18ad8ec1ecb5a517a47e0e2c0dfa9fa79ea64038ea1531c0feabc42b4b3445b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 457c1b4bf9c7b162f2843a50cf10877c6bb1cd9fc678b7c323a9869f393506bb
MD5 d5fd89d34f13d298603015500076d28b
BLAKE2b-256 f1faf5bf1ccf049997eca7fec32a45bf247282ce140839a975299a8733f4aa8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 421c64a785dbb71b60117757c3a9d9045c4a10c259e96d0969a7ff5a9cfdb095
MD5 c7e0ae5fe2f4a2991749475407c531a8
BLAKE2b-256 ee082747130056c863f403dac0d4bf10c548403b139a737117e1e5d6b5c9efd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99d9355f49429ff651b4b3c7e3545006a4f6ae8ef4c8bf18a06ce96a4687019a
MD5 2a26aa207377bd86c2df0c7a647d4c2b
BLAKE2b-256 0d7da85df854effa6a98c9c2ff2f04fd53af95498cba18aa3ad1177096a44b31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c1c21c6b85873ff16520ab98340bed4531f612aa4fd9403ff82738cf998f2f3d
MD5 98dae80ee64d9f1cfde0cace5ee7ab65
BLAKE2b-256 3df054a02c09cf8677b39df78631dbc8893a2521ca90c4aae11899fff266b7fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 bb186ef110f786cce1b5d50a9e69eaa7c5c34e6257d3f0164c07c3149abfc7a5
MD5 d15662cba1895c25d5fc5c98c9edc09d
BLAKE2b-256 5e92c02a6d01f9096ba345b5e8446a5ee1a8c121b41cee18e2d4cb6d4f4e7130

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 176e2e3fd800989ea6c8610fc7391ab189f303025d07ef9b4f1e9c5d5b594e7a
MD5 d660ba9dd17dae28a02a50268dcba00a
BLAKE2b-256 54bce7bfe8f3464f6932a491f40172413e78d71ad762149d7b1c1505d42ea5d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5aaf887ec03cf1bfe8628810de0564c0812aa927182cbe018e5d2a9e58c74ad
MD5 334b7beaf1534a7ed2ca75e80e2a51b4
BLAKE2b-256 dc0272d6eacb41d74fa6c2e4d8f901216fa3015d5fb4a212334ebf7b88850f31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b4252e200ddf6d12cbce71ec003d73ee9066b6d3c8e69ea9c343ab36d2fcc898
MD5 6f9ab52ab3adc713fca5a93517add5cb
BLAKE2b-256 b7c84b5ff6770ae4924e38460207d0af8425898e596adfaca7f9cf4c4e1ea8e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 0f3b20b9712dde7f937ec4a3a600baef74f6b80c095e17b2d09108587b956766
MD5 0d7b646f6f06fc8f12ad41037713be6b
BLAKE2b-256 673e803553b51e64e9838642f5d1435ddc2fb4d0aa25645c89639803345b5dc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b6a3aea7f76646eda2ef1d78b62acf541bfdffde3db775d2584bef08e70e853
MD5 aec99d0a65f4832d1234cff391710c59
BLAKE2b-256 78c7f74401e90725145855a151baae3482d7a626b938494038e26dc86e9be64b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pymatgen-2024.9.17-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb8685837655b83a7f307bcc491b8ad14395d65a9e7187c7c57ca3b02c8b9f01
MD5 629821b5498c35dc67d04dfca9759f72
BLAKE2b-256 de4c6d0331ad054c57f7984b66f305c61c9771fa555dbaa7e28bec3baf425f7c

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