Extract frames from ams.rkf trajectory

Example usage: (Download MoleculesFromRKFTrajectory.py)

#!/usr/bin/env amspython
from scm.plams import *

"""
    Script to get and print the first 5 frames as PLAMS Molecules
    from an ams.rkf trajectory.

    The script also shows how to print a specific frame, frame 23.

    Set the correct path to ams.rkf below, and then run as
    $AMSBIN/amspython MoleculesFromRKFTrajectory.py
"""


def main():
    job = AMSJob.load_external("ams.rkf")  # modify to give the path to the ams.rkf file

    trajectory = Trajectory(job.results.rkfpath())
    for i, mol in enumerate(trajectory, 1):
        print(f"frame {i}")
        print(mol)  # mol is a PLAMS Molecule
        if i == 5:
            break

    print("Extracting specific molecule")
    mol = job.results.get_history_molecule(23)
    print("Frame 23")
    print(mol)


if __name__ == "__main__":
    main()