mstk.trajectory.TrjHandler

class mstk.trajectory.TrjHandler

Base class of trajectory handlers for various trajectory formats.

The methods get_info(), read_frame() and write_frame() should be implemented by subclasses. The method close() should also be overriden by subclasses if more works are required more than close the file.

Methods

__init__()

close()

Close the handler.

get_handler_for_file(file)

Get the appropriate handler class for a trajectory file.

get_info()

Get the number of atoms and frames in the trajectory.

read_frame(i_frame, frame)

Read a single frame.

register_format(extension, Handler)

Register a handler class for a trajectory format based on the extension name

write_frame(frame, **kwargs)

Write a frame into the trajectory file opened by the handler.

static register_format(extension, Handler)

Register a handler class for a trajectory format based on the extension name

Parameters:
  • extension (str) – The extension should start with ‘.’. The upper of lower cases are not distinguished.

  • Handler (subclass of TrjHandler) –

static get_handler_for_file(file)

Get the appropriate handler class for a trajectory file.

If a list of string is provided, the CombinedTrj will be returned. Otherwise, the handler class will be determined from the extension name of the file.

Parameters:

file (str or list of str) –

get_info()

Get the number of atoms and frames in the trajectory.

Also record the offset of lines and frames, so that we can read arbitrary frame later. It assumes all frames have the same number of atoms.

Returns:

  • n_atom (int)

  • n_frame (int)

read_frame(i_frame, frame)

Read a single frame.

Parameters:
  • i_frame (int) – The index of the frame in the trajectory

  • frame (Frame) – The information read from the trajectory will be written into this Frame

write_frame(frame, **kwargs)

Write a frame into the trajectory file opened by the handler.

The handler should be initialized in mode ‘w’ or ‘a’.

Parameters:
  • frame (Frame) –

  • kwargs (dict) –

close()

Close the handler.