A collection of tools for working with 3D density distributions, found in Packages/DensityTools. This includes new classes such as loos::DensityTools::DensityGrid and loos::DensityTools::SimpleMeta. Some of the grid tools read and write to stdout so they can be chained, for example:
water-hist foo.pdb foo.dcd | gridgauss 4 2 | grid2xplor >foo.map
Water-specific tools may allow you to specify "internal" waters to proteins. This is done by one of 3 methods: axis, box, and grid. Axis picks waters that are within a given radius from the principal axis of the protein. Box uses the bounding box of a protein. Grid uses a grid mask to only consider waters within the non-zero portion of the mask. Note that "water" and "protein" are just LOOS selections so there are no restrictions on what part of your system can be used for building the histogram (e.g. ligand density in a binding simulation).
Identifies "blobs" in a grid using a flood-fill algorithm
Takes a blobid'd grid and prints out statistics about each blob
Given a thresholded grid and a trajectory, counts the number of atoms that are contained within the grid segment at each time point.
Converts a grid into a serialized ASCII representation
Converts a grid into an XPLOR compatible ASCII electron density map. Requires that the "type" of the grid be specified (i.e. float, double [default], etc)
Convolves a grid with a Gaussian kernel for smoothing
Prints out basic information about a grid
Applies a binary mask (a grid containing ints) to a density grid of doubles. Any grid point where the mask is non-zero is copied into a new density grid. All other voxels are zero. Use this to "clip" out unwanted blobs in a grid.
Applies a constant scaling to a grid. Assumes a density grid (i.e. grid of doubles)
Simple statistics about the data stored in a density grid (i.e. grid of doubles)
Finds peaks in a density grid using a threshold cutoff. Blobs are found by flood-filling the grid and the centroid of the blob is used as the peak.
Given a grid mask (i.e. grid of ints), create another grid mask containing only the blobs that are requested (near an atom or a gridpoint).
Counts the number of waters inside a protein at each time-point. Requires an "internal water matrix" (see water-inside).
<DT> <B> water-extract </B> <DD> Extracts "internal" waters from a trajectory and concatenates them into a single PDB for visualizing water pockets/channels. <DT> <B> water-hist </B> <DD> Creates a density grid (histogram) that represents water locations throughout the trajectory. Bulk water can be explicitly added into the histogram by using the --bulked option (this is useful for transmembrane proteins). Scaling the density by the bulk water density currently only works for membrane systems (or systems where the bulk water lies in a plane). Use the --scale option along with the --bulk option to specify what z-range to use for the bulk density estimate. <DT> <B> water-inside </B> <DD> Classifies waters as being inside a protein (by various user-specified criteria) over the course of a trajectory. The state of all waters is written as a large matrix where the rows represent time, columns represent different waters, and a 1 means the water is inside at time t. <DT> <B> water-sides </B> <DD> Similar to water-inside, but classifies water based on which side of a membrane it lies (or whether it's internal). </DL>