diff --git a/src/pymatgen/core/trajectory.py b/src/pymatgen/core/trajectory.py index cd8c9427ce8..d4315d59e7e 100644 --- a/src/pymatgen/core/trajectory.py +++ b/src/pymatgen/core/trajectory.py @@ -219,6 +219,7 @@ def __getitem__(self, frames: ValidIndex) -> Molecule | Structure | Self: charge=charge, spin_multiplicity=spin, site_properties=self._get_site_props(frames), # type: ignore[arg-type] + properties=None if self.frame_properties is None else self.frame_properties[frames], ) lattice = self.lattice if self.constant_lattice else self.lattice[frames] @@ -228,6 +229,7 @@ def __getitem__(self, frames: ValidIndex) -> Molecule | Structure | Self: self.species, self.coords[frames], site_properties=self._get_site_props(frames), # type: ignore[arg-type] + properties=None if self.frame_properties is None else self.frame_properties[frames], to_unit_cell=True, ) diff --git a/tests/core/test_trajectory.py b/tests/core/test_trajectory.py index b031affcdd4..aca22f01cc8 100644 --- a/tests/core/test_trajectory.py +++ b/tests/core/test_trajectory.py @@ -213,6 +213,10 @@ def test_frame_properties(self): expected = props[1:] assert traj[1:].frame_properties == expected + # test that the frame properties are set correctly when indexing an individual structure/molecule + expected = props[0] + assert traj[0].properties == expected + def test_extend(self): traj = copy.deepcopy(self.traj)