schrodinger.application.desmond.packages.traj module¶
Molecular dynamics trajectory handling module Define common APIs for various trajectory formats. Basic trajectory handling algorithms are also implemented here.
Copyright Schrodinger, LLC. All rights reserved.
-
class
schrodinger.application.desmond.packages.traj.DtrSource(reader, name='sometraj')¶ Bases:
schrodinger.application.desmond.packages.traj.Source-
nframes()¶
-
-
class
schrodinger.application.desmond.packages.traj.Fmt¶ Bases:
enum.EnumTrajectory format enum
-
AUTO= 0¶
-
DTR= 1¶
-
XTC= 2¶
-
-
class
schrodinger.application.desmond.packages.traj.Frame(source, index)¶ Bases:
objectThis class, as its name suggests, represents a single trajectory frame. So far, we allow a frame to be mutated in the following ways: - Assign a new chemical time - Reduce to a subset of particles - Coordinates of all particles are translated
We call changes generally as ``decorations’‘. They might not make into the frame data, or at least not immediately. Why? This avoids making multiple expensive copies of the data.
-
box¶
-
hijackPos(impos)¶ Tentatively replace the internal position array of this
Frameobject with an external numpy arrayimpos. We can call the external array “imposter”. After calling this method, theposmethod will return values from the imposter until the imposter is removed (by callinghijackPos(None)). The imposter should be a Nx3 numpy array, where N can be of any size. Note the impacts on other methods of this class: - pos Useimpos. - copy The entireimposarray will be copied into the copy ofthisFrameobject.- reduce Still function in the same way, but note that the
impos - array will not be changed by these methods.
- reduce Still function in the same way, but note that the
- moveby The same as
reduce - write Still function in the same way, note that it’s the internal
- position array, not
impos, that will be written out.
Parameters: impos ( None, ornumpy.ndarrayof size Nx3, where N is arbitray number) – The position array to tentatively replac the internal position array in thisFrameobject. If the value isNone, we remove the “imposter” and recover the internal position array.
-
moveby(x, y, z)¶ Translate all positions by the given
x,y, andz.
-
natoms¶
-
orig_index¶
-
pos(i=None)¶ Return the position vector(s).
-
reduce(indices, copy=True)¶ Keep only the atoms specified by
indices, the other atoms will be deleted from this frame.Parameters: copy – If true, this function will make a copy of this frame and reduce atoms in this copy, and finally return the copy.
-
source()¶
-
time¶
-
vel(i=None)¶ Return the velocity vector(s). This method may throw if this frame doesn’t have velocity data.
-
write(writer)¶ Write out this frame using the given
writer.
-
-
class
schrodinger.application.desmond.packages.traj.Source(reader, name='sometraj')¶ Bases:
object-
Pool= {}¶
-
clear_cache()¶
-
id¶
-
name¶
-
nframes()¶ Returns the total number of frames in this trajectory source.
-
retrieve_frame(index)¶ Retrieves the
index-th frame from the source.indexis zero-based. This method assumes the source allows random access to frames.:raise
IndexError, ifindexis out of range.
-
used_space()¶
-
-
class
schrodinger.application.desmond.packages.traj.XtcSource(reader, name='sometraj')¶ Bases:
schrodinger.application.desmond.packages.traj.Source-
nframes()¶
-
-
schrodinger.application.desmond.packages.traj.concat(first_time, delta_time, *arg)¶ Concatenate a list of trajectories and reassign the chemical time for each frame. :type first_time:
float:param first_time: Chemical time of the first frame. :type delta_time:float:param delta_time: The chemical time interval between two successive frames.
-
schrodinger.application.desmond.packages.traj.dehydrate(tr, solute_gids, water_gids_per_frame)¶ This function retains the GIDs of the solute atoms and the specified waters atoms, effectively removing the majority of the bulk waters from the trajectory.
Parameters: Return type: listofframeReturns: A new, ‘dehydrated’ trajectory
-
schrodinger.application.desmond.packages.traj.extract_subsystem(tr, gids)¶ Extract the subsystem as specified by the
gidsfor each frame in the given trajectorytr, and return a new trajectory for the subsystem. The original trajectory is not mutated in any way by this function.Parameters: Return type: listReturns: A new trajectory for the subsystem
-
schrodinger.application.desmond.packages.traj.get_fmt(fname, format=<Fmt.AUTO: 0>)¶ Returns the format based on the given trajectory file name (
fname) and the format specification (format). If the format specification is definite (i.e., notFmt.AUTO), this function will trivially return the value offormat, otherwise it will check thefname’s value, determining the format, and return the result.Parameters: - fname (
str) – Trajectory file name - format (
Fmt) – Trajectory format specification
:rtype :
Fmt:return: The format of the given trajectoryfname- fname (
-
schrodinger.application.desmond.packages.traj.merge(*arg)¶ Merge a list of trajectories. If there is any overlapped frames among these trajectories, the ones from the latter trajectory (higher index in the
arglist) will be kept.