NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4199 most downloaded on PyPI
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).
Last release 2 days ago
23 Sep 2026
Release timing varies
gaps range from 9 days to 6 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
9 versions withdrawn
withdrawn after publishing
15 years old
414 releases · first in 2011
Vastly improved Nwchem IO (by Shyue Ping Ong).
Added basic Nwchem ( ) IO support. (by: Shyue Ping Ong).
One column per quarter.
Nothing published for this version
Nothing published for this version
With this change, the pymatgen.core.structure_modifier module is now deprecated and will be removed in a future version.
Major backwards-incompatible change. With effect from v2.7.1, the default Structure and Molecule classes are now _mutable_ objects. All functionality in the pymatgen.core.structure_modifier has been ported over to the new mutable classes. This change was implemented because the immutability of Structure and Molecule has resulted in very awkward code to make changes to them. The main cost of this change is that Structure and Molecule can no longer be used as dict keys (hash has been set to None). However, we believe this is a minor cost given that we have rarely seen the use of Structure or Molecule as dict keys in any case. For the rare instances where such functionality is needed, we have provided the IStructure and IMolecule classes (where I indicates immutability) which will perform exactly the same way as the previous classes. With this change, the pymatgen.core.structure_modifier module is now deprecated and will be removed in a future version.
read_structure and write_structure now supports pymatgen's JSON-serialized structures.
read_mol and write_mol functions now available (analogues of read_structure and write_structure for molecules)
MaterialsProjectVaspInputSet is now renamed to MPVaspInputSet for easier typing. The old input sets have been deprecated.
Updates to feffio (credit: Alan Dozier)
Added a command_line caller to do Bader charge analysis using Henkelmann et al.'s algorithm.
Bug fixes for selective dynamics in Poscar.
Added new MaterialsProject REST interfaces for submit/query/delete_snl (currently open in beta for collaborators only).
Site and PeriodicSite now uses a Composition mapping type to represent the species and occupancy, instead of a standard dict.
Use requests.Session in MPRester for connection pooling and code simplicity.
Bug fix release for cifio for rhombohedral structures.
Vastly improved Gaussian input file parsing that supports more varieties of input specifications.
Bug fix for StructureNotationalLanguage.
Nothing published for this version
Remove deprecated use_external_qhull option in PhaseDiagram classes.
Cleanup of deprecated methods, including pymatgen.alchemy.materials.TransformedMaterial.undo/redo_last_transformation, pymatgen.core.site.Site.distanc…
* Bug fix for StructureMatcher. * Miscellaneous speedups.
Nothing published for this version
Nothing published for this version
New StructureMatcher that effectively replaces StructureFitter. Orders of magnitude faster and more robust. StructureFitter is now deprecated.
More utilities for working with Periodic Boundary Conditions.
More utilities for working with Periodic Boundary Conditions.
Improved MPRester that supports more data and a new method of specifying the API key for heavy users via a MAPI_KEY environment variable. Please refer to the usage pages for more information.
Vastly improved POTCAR setup script in scripts directly that is now installed as part of a default pymatgen installation.
Miscellaneous bug fixes and speedups.
Significant improvements to the high-level interface to the Materials API. New interface provides more options to make it easier to get structures and
Remove usage of scipy and external qhull callers. Now uses pyhull package. Please note that this change implies that the pyhull package is now a requi
Brand new _beta_ bond valence analyzer based on a Maximum A Posteriori algo using data-mined ICSD data.
Fixed bug in hexagonal cell KPOINTS file generation.
New filter framework for filtering structures in pymatgen.alchemy.
Bug fix release for REST interface.
Master matgenie.py script which replaces many analysis scripts.
Beta modules (pymatgen.io.feffio) for io for FEFF, courtesy of Alan Dozier.
Brand new CompoundPD class that allows the plotting of phase diagrams that do not have elements as their terminal points.
Nothing published for this version
Brand new module (pymatgen.matproj.rest) for interfacing with the MaterialsProject REST interface.
Brand new module (pymatgen.matproj.rest) for interfacing with the MaterialsProject REST interface.
Useful aliases for commonly used Objects, similar in style to numpy. Supported objects include Element, Composition, Structure, Molecule, Spin and Orbital. For example, the following will now work::
import pymatgen as mg
# Elemental Si
fe = mg.Element("Si")
# Composition of Fe2O3
comp = mg.Composition("Fe2O3")
# CsCl structure
structure = mg.Structure(mg.Lattice.cubic(4.2), ["Cs", "Cl"],
[[0, 0, 0], [0.5, 0.5, 0.5]])
New PDAnalyzer method to generate chemical potential maps.
Enhanced POSCAR class to support parsing of velocities and more formatting options.
Reorganization of Bandstructure module. Beta support for projected bandstructure and eigenvalues in vaspio and electronic_structure.
Miscellaneous bug fixes and speed improvements.
Completely new json encoder and decoder that support serialization of almost all pymatgen objects.
spglib_adaptor now supports disordered structures.
Nothing published for this version
Support for additional properties on Specie (Spin) and Site (magmom, charge).
Bug fixes for vaspio_set and compatibility classes.
Complete reorganization of modules for electronic structure.
Beta of pymatgen.borg package implemented for high-throughput data assimilation.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →