mdtraj.formats.DTRTrajectoryFile¶
-
class
mdtraj.formats.
DTRTrajectoryFile
(filename, mode='r', force_overwrite=True)¶ Interface for reading and writing to a DESMOND dtr file. 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 dtr file are angstroms and degrees. The format supports saving coordinates and unit cell parameters (lengths and angles)
- Parameters
- filenamestring
Path to the file to open
- mode{‘r’, ‘w’}
Mode in which to open the file. ‘r’ is for reading, and ‘w’ is for writing.
- force_overwritebool
In mode=’w’, how do you want to behave if a file by the name of filename already exists? if force_overwrite=True, it will be overwritten.
See also
mdtraj.load_dtr
High-level wrapper that returns a
md.Trajectory
Examples
>>> # read a single frame, and then read the remaining frames >>> f = DTRTrajectoryFile('mytrajectory.dtr', 'r') >>> f.read(n_frames=1) # read a single frame from the file >>> f.read() # read all of the remaining frames >>> f.close()
>>> # read all of the data with automatic closing of the file >>> with DTRTrajectoryFile('mytrajectory.dtr') as f: >>> xyz, cell_lengths, cell_angles = f.read()
>>> # write some xyz coordinates to a new file >>> with DTRTrajectoryFile('mytrajectory2.dtr. 'w') as f: >>> f.write(np.random.randn(10,3,3))
>>> # write frames one at a time >>> with DTRTrajectoryFile('mytrajectory2.dtr. 'w') as f: >>> n_frames, n_atoms = 5, 10 >>> for i in range(n_frames): >>> f.write(np.random.randn(n_atoms, 3))
- Attributes
- distance_unit
Methods
close
()Close the dtr file handle
Reading chemical times associated with all frames.
read
([n_frames, stride, atom_indices])Read the data from a DTR file
read_as_traj
(topology[, n_frames, stride, …])Read a trajectory from a DTR file
seek
(offset[, whence])Move to a new file position
tell
()Current file position
write
(xyz[, cell_lengths, cell_angles, times])Write one or more frames of data to the dtr file
-
__init__
(self, /, *args, **kwargs)¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
(self, /, \*args, \*\*kwargs)Initialize self.
close
()Close the dtr file handle
Reading chemical times associated with all frames.
read
([n_frames, stride, atom_indices])Read the data from a DTR file
read_as_traj
(topology[, n_frames, stride, …])Read a trajectory from a DTR file
seek
(offset[, whence])Move to a new file position
tell
()Current file position
write
(xyz[, cell_lengths, cell_angles, times])Write one or more frames of data to the dtr file
Attributes
distance_unit
-
close
()¶ Close the dtr file handle
-
get_times
()¶ Reading chemical times associated with all frames.
- Returns
- timesnp.ndarray, shape=(n_frames), dtype=float64
The chemical time for each frame.
-
read
(n_frames=None, stride=None, atom_indices=None)¶ Read the data from a DTR file
- Parameters
- n_framesint, optional
If positive, then read only the next n_frames frames. Otherwise read all of the frames in the file.
- stridenp.ndarray, optional
Read only every stride-th frame.
- atom_indicesarray_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.
- Returns
- xyznp.ndarray, shape=(n_frames, n_atoms, 3), dtype=float32
The xyz coordinates of each atom in each frame. By convention, the coordinates in the dtr file are stored in units of angstroms.
- times: np.array, shape=(n_frames), dtype=float64
The chemical time in each frame.
- cell_lengthsnp.ndarray, shape=(n_frames, 3), dtype=float32
The length of the box in each frame. cell_lengths[i,0] is the length of the A axis (in frame i), and cell_lengths[i,1] and cell_lengths[i,2] are the B and C axis respectively. By convention, the cell lengths in the dtr file are stored in units of angstroms.
- cell_anglesnp.ndarray, shape=(n_frames, 3), dtype=float32
Organized analogously to cell_lengths. Gives the alpha, beta and gamma angles respectively in entries cell_angles[i,0], cell_angles[i,1], cell_angles[i,2]. By convention, the cell angles in the dtr file are stored in units of degrees.
-
read_as_traj
(topology, n_frames=None, stride=None, atom_indices=None)¶ Read a trajectory from a DTR file
- Parameters
- topologyTopology
The system topology
- n_framesint, optional
If positive, then read only the next n_frames frames. Otherwise read all of the frames in the file.
- stridenp.ndarray, optional
Read only every stride-th frame.
- atom_indicesarray_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.
- Returns
- trajectoryTrajectory
A trajectory object containing the loaded portion of the file.
-
seek
(offset, whence=0)¶ Move to a new file position
- Parameters
- offsetint
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.
-
tell
()¶ Current file position
- Returns
- offsetint
The current frame in the file.
-
write
(xyz, cell_lengths=None, cell_angles=None, times=None)¶ Write one or more frames of data to the dtr file
- Parameters
- xyznp.ndarray, shape=(n_frames, n_atoms, 3)
The cartesian coordinates of the atoms to write. By convention, the lengths should be in units of angstroms.
- cell_lengthsnp.ndarray, shape=(n_frames, 3), dtype=float32
The length of the periodic box in each frame, in each direction, a, b, c. By convention the lengths should be in units of angstroms.
- cell_anglesnp.ndarray, shape=(n_frames, 3), dtype=float32
Organized analogously to cell_lengths. Gives the alpha, beta and gamma angles respectively. By convention, the angles should be in units of degrees.
- times: np.ndarray, shape=(n_frames), dtype=float64
The chemical time in each frame. It must be stored in ascending order.