mdtraj.formats.ArcTrajectoryFile

class mdtraj.formats.ArcTrajectoryFile(filename, mode='r', force_overwrite=True)

Interface for reading and writing to an TINKER archive files. (Note that the TINKER .xyz format is identical to this.) This is a file-like object, that both reading or writing depending on the mode flag. It implements the context manager protocol, so you can also use it with the python ‘with’ statement.

The conventional units in the arc file is angstrom. The format only supports storing the cartesian coordinates and box lengths.

Parameters:

filename : str

The filename to open. A path to a file on disk.

mode : {‘r’}

The mode in which to open the file, only ‘r’ for read is supported.

force_overwrite : bool

If opened in write mode, and a file by the name of filename already exists on disk, should we overwrite it?

Attributes

topology (Topology) A single-chain, single-residue topology generated from the atom and bond information found in the TINKER archive/xyz file. It is only generated from the first member of the archive

Methods

close() Close the .arc file
read([n_frames, stride, atom_indices]) Read data from a TINKER .arc file.
read_as_traj([n_frames, stride, atom_indices]) Read a trajectory from a ARC file
seek(offset[, whence]) Move to a new file position
tell() Current file position
write(xyz) The ArcTrajectoryFile does not have a write method, because TINKER .arc files have special numerical atom types which are not shared by any other trajectory file format.
__init__(filename, mode='r', force_overwrite=True)

Open an TINKER.arc file for reading/writing.

Methods

__init__(filename[, mode, force_overwrite]) Open an TINKER.arc file for reading/writing.
close() Close the .arc file
read([n_frames, stride, atom_indices]) Read data from a TINKER .arc file.
read_as_traj([n_frames, stride, atom_indices]) Read a trajectory from a ARC file
seek(offset[, whence]) Move to a new file position
tell() Current file position
write(xyz) The ArcTrajectoryFile does not have a write method, because TINKER .arc files have special numerical atom types which are not shared by any other trajectory file format.
close()

Close the .arc file

read(n_frames=None, stride=None, atom_indices=None)

Read data from a TINKER .arc file.

Note that only the Cartesian coordinates are read in. The .arc file also contains TINKER-specific numeric atom types and some bonding information, which we do not read in.

Parameters:

n_frames : int, None

The number of frames you would like to read from the file. If None, all of the remaining frames will be loaded.

stride : np.ndarray, optional

Read only every stride-th frame.

atom_indices : array_like, optional

If not none, then read only a subset of the atoms coordinates from the file.

Returns:

xyz : np.ndarray, shape=(n_frames, n_atoms, 3), dtype=np.float32

The cartesian coordinates, in angstroms

read_as_traj(n_frames=None, stride=None, atom_indices=None)

Read a trajectory from a ARC file

Parameters:

n_frames : int, optional

If positive, then read only the next n_frames frames. Otherwise read all of the frames in the file.

stride : np.ndarray, optional

Read only every stride-th frame.

atom_indices : array_like, optional

If not none, then read only a subset of the atoms coordinates from the file. This may be slightly slower than the standard read because it required an extra copy, but will save memory.

See also

read
Returns the raw data from the file
seek(offset, whence=0)

Move to a new file position

Parameters:

offset : int

A number of frames.

whence : {0, 1, 2}

0: offset from start of file, offset should be >=0. 1: move relative to the current position, positive or negative 2: move relative to the end of file, offset should be <= 0. Seeking beyond the end of a file is not supported

tell()

Current file position

Returns:

offset : int

The current frame in the file.

write(xyz)

The ArcTrajectoryFile does not have a write method, because TINKER .arc files have special numerical atom types which are not shared by any other trajectory file format.

Parameters:

xyz : np.ndarray, shape=(n_frames, n_atoms, 3)

The cartesian coordinates of the atoms to write.