Convert RKF to DCD while mapping all atoms into molecules

Example usage: (Download rkf_to_wrapped_dcd.py)

import sys
from scm.plams import RKFTrajectoryFile, DCDTrajectoryFile
from scm.flexmd import pdb_from_plamsmol, PSFTopology


def main():
    """
    Main script
    """
    rkf = RKFTrajectoryFile("ams.rkf")
    mol = rkf.get_plamsmol()
    print("NSTeps: ", len(rkf))

    pdb = pdb_from_plamsmol(mol)
    psf = PSFTopology(pdb=pdb)
    psf.write_psf("ams.psf")

    dcd = DCDTrajectoryFile("ams.dcd", mode="wb")

    for i in range(len(rkf)):
        if i % 100 == 0:
            print(i)
        crd, cell = rkf.read_frame(i)
        mol.from_array(crd)
        mol.map_atoms_to_bonds()
        dcd.write_next(coords=mol.as_array(), cell=cell)


if __name__ == "__main__":
    main()