Density maps
The experimental density map for a cryoEM experiment itself corresponds to a 3-D numpy.ndarray that contains the value of the density at different voxels. It is the location of the voxels themselves that encodes how these density values map onto the spatial information of the biomolecule. This information on the grid of the density map is stored in a separate class (gridclass) in HARP.
gridclass
class harp.density.gridclass (origin, dxyz, nxyz, *args, **kwargs)
A gridclass object stores the grid defining the voxel locations for a density map.
Attributes
| Variable | Descrption |
|---|---|
self.origin |
numpy.ndarray A 1-D double array of size 3 containing the Cartesian coordinates of the lower corner of the grid. |
self.dxyz |
numpy.ndarray A 1-D double array of size 3 containing the rectilinear spacing between each grid point along all Cartesian axes. |
self.nxyz |
numpy.ndarray A 1-D double array of size 3 containing the number of grid points in each Cartesian direction |
Functions
The functions associated with gridclass are
| Function | Descrption |
|---|---|
self.xyzmin |
Returns the Cartesian coordinates of the lower corner of the grid (i.e., self.origin). Input: None. Output A numpy.ndarray of double values, of size 3. |
self.xyzmax |
Returns the Cartesian coordinates of the upper corner of the grid (i.e., the one diagonally opposite self.origin). Input: None. Output A numpy.ndarray of double values, of size 3. |
self.com |
Returns the Cartesian coordinates of the center-of-mass of the grid (not weighted by the density). Input: None. Output A numpy.ndarray of double values, of size 3. |
self.grid_ijk() |
Returns an array of the indices of the grid. Input: None. Output: A tuple of gx, gy, and gy, which are 1-D numpy.ndarrays of int values, of size self.nxyz[0], self.nxyz[1] and self.nxyz[2], which are the number of gridpoints in the x-, y- and z-direction respectively. |
self.grid_xyz |
Returns an array of the Cartesian coordinates corresponding to the indices of the grid. Input: None. Output: A tuple of gx, gy, and gy, which are 1-D numpy.ndarrays of double values, of size self.nxyz[0], self.nxyz[1] and self.nxyz[2], which are the number of gridpoints in the x-, y- and z-direction respectively. |
load
harp.density.load (fname)
This function loads cryoEM densities and the associated grid (file format suffixes supported are .map, .MAP, .mrc, .MRC, .map.gz, and .MAP.gz).
Arguments
| Variable | Descrption |
|---|---|
fname |
string The file-name for the cryoEM density map. |
Output
| Variable | Descrption |
|---|---|
grid |
gridclass The grid of voxel locations of the cryoEM density map. |
density |
numpy.ndarray A 3-D array of double values corresponding to the density values at specific voxels corresponding to grid. |
x2i
harp.density.x2i (grid, point)
This function transforms a point in Cartesian coordinates to the grid indices based on a particular grid.
Arguments
| Variable | Descrption |
|---|---|
grid |
gridclass The cryoEM grid which the Cartesian coordinates will be transformed with respect to. |
point |
numpy.ndarray An array of double values of size 3, containing the Cartesian coordinates of the point. |
Output
| Variable | Descrption |
|---|---|
point |
numpy.ndarray An array of int values of size 3, containing the grid indices of the point. |
i2x
harp.density.i2x (grid, point)
This function transforms a point in grid indices to Cartesian coordinates based on a particular grid.
Arguments
| Variable | Descrption |
|---|---|
grid |
gridclass The cryoEM grid which the grid indices will be transformed with respect to. |
point |
numpy.ndarray An array of int values of size 3, containing the grid indices of the point. |
Output
| Variable | Descrption |
|---|---|
point |
numpy.ndarray An array of double values of size 3, containing the Cartesian coordinates of the point. |
subgrid_center
harp.density.subgrid_center (grid, centerxyz, halfwidthxyz)
This function defines and returns a cubic subgrid within a specific gridclass object centered at the specified point and with a specified half-width in every direction from that point.
Arguments
| Variable | Descrption |
|---|---|
grid |
gridclass The cryoEM grid in which the subgrid will be defined |
centerxyz |
numpy.ndarray An array of double values of size 3, containing the Cartesian coordinates of the center of the subgrid. |
halfwidthxyz |
numpy.ndarray An array of double values of size 3, containing the halfwidths of the subgrid from the center (in \(\unicode{x212B}\)). |
Output
| Variable | Descrption |
|---|---|
grid |
A gridclass object containing the defined subgrid. |
subgrid_extract
harp.density.subgrid_extract (grid, data, subgrid)
This function extracts the cryoEM density from a map for the voxels corresponding to a cubic subgrid within a specific grid.
Arguments
| Variable | Descrption |
|---|---|
grid |
gridclass The cryoEM grid associated with the cryoEM map. |
data |
numpy.ndarray The cryoEM density values defined at the voxel locations in grid. |
subgrid |
gridclass The subgrid defined on grid for which the densities will be extracted. |
Output
| Variable | Descrption |
|---|---|
data |
numpy.ndarray The cryoEM density values defined at the voxel locations in subgrid. |
trim_density_to_mol
harp.density.trim_density_to_mol (grid, data, mol, pad = 8.)
This function finds the box that emcompasses the atomic coordinates of a specific molecular model on the grid for a specified density map and returns a trimmed grid and associated density map corresponding to this box. The trimmed box may additionally be padded isotropically by a constant value using periodic boundary condtions. This truncation is particularly useful for maps where only a small region has been used to build a model (which commonly occurs for molecules with high rotational symmetry) as it greatly reduces the computational cost of HARP calculations in these cases.
Arguments
| Variable | Descrption |
|---|---|
grid |
gridclass The cryoEM grid associated with the cryoEM map. |
data |
numpy.ndarray The cryoEM density values defined at the voxel locations in grid. |
mol |
harp.molecule.atomcollection The molecular model that is built using part of the the cryoEM densities in data at voxel locations specified in grid. |
pad |
double A constant length (in \(\unicode{x212B}\)) that is added to the box encompassing mol that is padded using peridic boundary conditions. The default value is 8. |
Output
| Variable | Descrption |
|---|---|
grid |
gridclass The grid trimmed to the box around mol. |
data |
numpy.ndarray The cryoEM densities at the voxel locations specified by the trimmed grid. |