Trajectories
************

The main output of a molecular simulation is often a series of
conformations of a molecular system, as successively produced by the
software over time.

Example applications that produce such a trajectory are molecular
dynamics (MD) simulations, and geometry optimizations.

The conformations consist of coordinates for all the atoms in the
system, and, depending on the format, information on its periodicity,
atomic elements, and the locations of covalent bonds.

Some file formats include:

* XYZ format ("xyz"), which is a human-readable format that stores
  elements and coordinates for every conformation.

* Compact binary DCD format ("dcd"), which stores only coordinates and
  periodic lattice vectors,

* Binary RKF format ("rkf") which is the native format of the
  Amsterdam Modeling Suite, and is able to store any desired
  information on the system.

* Binary .traj ("traj") format, which is the native format used by the
  Atomic Simulation Environment

For **trajectory conversion tools**, see File format conversion tools.

PLAMS provides the possibility to analyze and alter single
conformations of a molecular system through the Molecule object.

The "trajectories" module provides the possibility to extract such a
conformation from a trajectory file and load it into a Molecule
object, as well as write (altered) conformations to a new trajectory
file in one of the three formats described above.

* XYZ trajectory files

  * "XYZTrajectoryFile"

    * "XYZTrajectoryFile.__init__()"

    * "XYZTrajectoryFile.style"

    * "XYZTrajectoryFile.store_historydata()"

    * "XYZTrajectoryFile.set_name()"

    * "XYZTrajectoryFile.read_next()"

    * "XYZTrajectoryFile.write_next()"

    * "XYZTrajectoryFile.__call__()"

    * "XYZTrajectoryFile._move_cursor_to_append_pos()"

    * "XYZTrajectoryFile._set_fileobject()"

    * "XYZTrajectoryFile.close()"

    * "XYZTrajectoryFile.connection_table"

    * "XYZTrajectoryFile.get_elements()"

    * "XYZTrajectoryFile.get_length()"

    * "XYZTrajectoryFile.get_plamsmol()"

    * "XYZTrajectoryFile.molecule"

    * "XYZTrajectoryFile.read_frame()"

    * "XYZTrajectoryFile.read_last_frame()"

    * "XYZTrajectoryFile.rewind()"

    * "XYZTrajectoryFile.set_elements()"

  * XYZ history files

    * "XYZHistoryFile"

      * "XYZHistoryFile.__init__()"

      * "XYZHistoryFile.write_next()"

* RKF trajectory files

  * "RKFTrajectoryFile"

    * "RKFTrajectoryFile.__init__()"

    * "RKFTrajectoryFile._set_fileobject()"

    * "RKFTrajectoryFile.store_mddata()"

    * "RKFTrajectoryFile.store_historydata()"

    * "RKFTrajectoryFile.close()"

    * "RKFTrajectoryFile._rewrite_molecule()"

    * "RKFTrajectoryFile._set_mddata_items()"

    * "RKFTrajectoryFile._move_cursor_to_append_pos()"

    * "RKFTrajectoryFile._update_celldata()"

    * "RKFTrajectoryFile.get_plamsmol()"

    * "RKFTrajectoryFile.read_frame()"

    * "RKFTrajectoryFile._store_historydata_for_step()"

    * "RKFTrajectoryFile.read_next()"

    * "RKFTrajectoryFile.write_next()"

    * "RKFTrajectoryFile._set_energy()"

    * "RKFTrajectoryFile._write_dictionary_to_history()"

    * "RKFTrajectoryFile._flatten_variable()"

    * "RKFTrajectoryFile.rewind()"

    * "RKFTrajectoryFile.get_length()"

    * "RKFTrajectoryFile.read_last_frame()"

  * RKF history files

    * "RKFHistoryFile"

      * "RKFHistoryFile.__init__()"

      * "RKFHistoryFile.get_plamsmol()"

      * "RKFHistoryFile._rewrite_molecule()"

      * "RKFHistoryFile._correct_chemical_system()"

      * "RKFHistoryFile.write_next()"

      * "RKFHistoryFile._set_system_version_elements()"

* DCD trajectory files

  * "DCDTrajectoryFile"

    * "DCDTrajectoryFile.__init__()"

    * "DCDTrajectoryFile.set_byteorder()"

    * "DCDTrajectoryFile.read_next()"

    * "DCDTrajectoryFile.write_next()"

    * "DCDTrajectoryFile.__call__()"

    * "DCDTrajectoryFile._move_cursor_to_append_pos()"

    * "DCDTrajectoryFile._set_fileobject()"

    * "DCDTrajectoryFile.close()"

    * "DCDTrajectoryFile.connection_table"

    * "DCDTrajectoryFile.get_elements()"

    * "DCDTrajectoryFile.get_length()"

    * "DCDTrajectoryFile.get_plamsmol()"

    * "DCDTrajectoryFile.molecule"

    * "DCDTrajectoryFile.read_frame()"

    * "DCDTrajectoryFile.read_last_frame()"

    * "DCDTrajectoryFile.rewind()"

    * "DCDTrajectoryFile.set_elements()"

* Trajectory class

  * "Trajectory"

    * "Trajectory.run_analysis()"
