IMP  2.0.0
The Integrative Modeling Platform
IMP::em::SampledDensityMap Class Reference

Class for sampling a density map from particles.

#include <IMP/em/SampledDensityMap.h>

+ Inheritance diagram for IMP::em::SampledDensityMap:

Public Member Functions

 SampledDensityMap (KernelType kt=GAUSSIAN)
 Creates a new density map for sampled map. More...
 
 SampledDensityMap (const DensityHeader &header, KernelType kt=GAUSSIAN)
 The size of the map is determined by the header and the data is allocated.
 
 SampledDensityMap (const ParticlesTemp &ps, emreal resolution, emreal voxel_size, IMP::FloatKey mass_key=IMP::atom::Mass::get_mass_key(), int sig_cuttoff=3, KernelType kt=GAUSSIAN)
 Generate a sampled density map from the particles. More...
 
KernelParametersget_kernel_params ()
 
float get_minimum_resampled_value ()
 Get minimum density value between voxels that correspond to particles.
 
const Particles & get_sampled_particles () const
 
FloatKey get_weight_key () const
 
const core::XYZRs & get_xyzr_particles () const
 
void project (const ParticlesTemp &ps, int x_margin, int y_margin, int z_margin, algebra::Vector3D shift=algebra::Vector3D(0., 0., 0.), FloatKey mass_key=atom::Mass::get_mass_key())
 Project particles on the grid by their mass value. More...
 
virtual void resample ()
 Resample beads on an EM grid. More...
 
void set_particles (const ParticlesTemp &ps, IMP::FloatKey mass_key=IMP::atom::Mass::get_mass_key())
 setting particles in case they were not set by the constructor
 
- Public Member Functions inherited from IMP::em::DensityMap
 DensityMap (std::string name="DensityMap%1%")
 
 DensityMap (const DensityHeader &header, std::string name="DensityMap%1%")
 Construct a density map as intructed in the input header.
 
void add (const DensityMap *other)
 
void calc_all_voxel2loc ()
 Calculates the coordinates that correspond to all voxels.
 
emreal calcRMS ()
 Calculates RMSD and mean of a map values are stored in the header. More...
 
void copy_map (const DensityMap *other)
 copy map into this map
 
algebra::Vector3D get_centroid (emreal threshold=0.0) const
 
DensityMapget_cropped (float threshold)
 Create a new cropped map. More...
 
DensityMapget_cropped (const algebra::BoundingBox3D &bb)
 Create a new cropped map with the bounding box extent. More...
 
int get_dim_index_by_location (const algebra::Vector3D &v, int ind) const
 Calculate dimension index of a given location. More...
 
int get_dim_index_by_location (float loc_val, int ind) const
 
const DensityHeaderget_header () const
 
DensityHeaderget_header_writable ()
 Returns a pointer to the header of the map in a writable version.
 
algebra::Vector3D get_location_by_voxel (long index) const
 Calculate the location of a given voxel. More...
 
float get_location_in_dim_by_voxel (long index, int dim) const
 Calculate the location of a given voxel in a given dimension. More...
 
std::string get_locations_string (float t)
 
emreal get_max_value () const
 Returns the the value of the voxel with the highest density.
 
float get_maximum_value_in_xy_plane (int z_ind)
 Get the maximum value in a XY plane indicated by a Z index.
 
float get_maximum_value_in_xz_plane (int y_ind)
 Get the maximum value in a XZ plane indicated by a Y index.
 
float get_maximum_value_in_yz_plane (int x_ind)
 Get the maximum value in a YZ plane indicated by a X index.
 
emreal get_min_value () const
 Returns the the value of the voxel with the lowest density.
 
long get_number_of_voxels () const
 number of map voxels
 
algebra::Vector3D get_origin () const
 
bool get_rms_calculated () const
 
Float get_spacing () const
 Updated the voxel size of the map. More...
 
algebra::Vector3D get_top () const
 
emreal get_value (float x, float y, float z) const
 Gets the value of the voxel located at (x,y,z) More...
 
emreal get_value (const algebra::Vector3D &point) const
 
emreal get_value (long index) const
 Gets the value of the voxel at a given index. More...
 
long get_voxel_by_location (float x, float y, float z) const
 Calculate the voxel of a given location. More...
 
long get_voxel_by_location (const algebra::Vector3D &v) const
 Calculate the voxel of a given location. More...
 
bool is_normalized () const
 
bool is_part_of_volume (float x, float y, float z) const
 Checks whether a given point is in the grid the voxel of a given location. More...
 
bool is_part_of_volume (const algebra::Vector3D &v) const
 Checks whether a given point is in the grid the voxel of a given location. More...
 
bool is_xyz_ind_part_of_volume (int ix, int iy, int iz) const
 
int lower_voxel_shift (emreal loc, emreal kdist, emreal orig, int ndim) const
 
void multiply (float factor)
 
void pad (int nx, int ny, int nz, float val=0.0)
 
DensityMappad_margin (int mrg_x, int mrg_y, int mrg_z, float val=0.0)
 Create a new padded map. More...
 
void pick_max (const DensityMap *other)
 
void release ()
 
void reset_data (float value=0.0)
 Set the density voxels to some calue and reset the managment flags. More...
 
bool same_dimensions (const DensityMap *other) const
 Checks if two maps have the same dimensions. More...
 
bool same_origin (const DensityMap *other) const
 Checks if two maps have the same origin. More...
 
bool same_voxel_size (const DensityMap *other) const
 Checks if two maps have the same voxel size. More...
 
void set_origin (float x, float y, float z)
 Sets the origin of the header. More...
 
void set_origin (const IMP::algebra::Vector3D &v)
 
void set_value (long index, emreal value)
 Set the value of the voxel at a given index. More...
 
void set_value (float x, float y, float z, emreal value)
 Set the value of the voxel at a given index. More...
 
void set_void_map (int nx, int ny, int nz)
 Set the map dimension and reset all voxels to 0. More...
 
void std_normalize ()
 Normailze the density voxles according to standard deviation (stdv). More...
 
void update_voxel_size (float new_apix)
 Updated the voxel size of the map.
 
int upper_voxel_shift (emreal loc, emreal kdist, emreal orig, int ndim) const
 
long xyz_ind2voxel (int x, int y, int z) const
 Calculate the voxel of a given xyz indexes. More...
 
- Public Member Functions inherited from IMP::base::Object
virtual void clear_caches ()
 
virtual IMP::base::VersionInfo get_version_info () const =0
 Get information about the module and version of the object.
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 

Protected Member Functions

IMP::algebra::BoundingBoxD< 3 > calculate_particles_bounding_box (const Particles &ps)
 Calculate the parameters of the particles bounding box. More...
 
void determine_grid_size (emreal resolution, emreal voxel_size, int sig_cutoff)
 
void set_header (const algebra::Vector3D &lower_bound, const algebra::Vector3D &upper_bound, emreal maxradius, emreal resolution, emreal voxel_size, int sig_offset)
 
void set_neighbor_mask (float radius)
 
- Protected Member Functions inherited from IMP::em::DensityMap
void allocated_data ()
 
void float2real (float *f_data, boost::scoped_array< emreal > &r_data)
 
void real2float (emreal *r_data, boost::scoped_array< float > &f_data)
 
void reset_all_voxel2loc ()
 
void update_header ()
 update the header values – still in work
 
- Protected Member Functions inherited from IMP::base::Object
 Object (std::string name)
 Construct an object with the given name. More...
 

Protected Attributes

KernelParameters kernel_params_
 kernel handling
 
KernelType kt_
 
Particles ps_
 
FloatKey weight_key_
 
FloatKey x_key_
 
core::XYZRs xyzr_
 
FloatKey y_key_
 
FloatKey z_key_
 
- Protected Attributes inherited from IMP::em::DensityMap
boost::scoped_array< emreal > data_
 
bool data_allocated_
 
DensityHeader header_
 
bool loc_calculated_
 true if the locations have already been computed
 
bool normalized_
 
bool rms_calculated_
 
boost::scoped_array< float > x_loc_
 
boost::scoped_array< float > y_loc_
 
boost::scoped_array< float > z_loc_
 

Related Functions

(Note that these are not member functions.)

SampledDensityMapparticles2binarized_density (const ParticlesTemp &ps, Float resolution, Float apix, int sig_cutoff=3, const FloatKey &weight_key=IMP::atom::Mass::get_mass_key())
 
SampledDensityMapparticles2density (const ParticlesTemp &ps, Float resolution, Float apix, int sig_cutoff=3, const FloatKey &weight_key=IMP::atom::Mass::get_mass_key())
 Resample a set of particles into a density grid. More...
 
SurfaceShellDensityMapparticles2surface (const ParticlesTemp &ps, Float apix, const FloatKey &weight_key=IMP::atom::Mass::get_mass_key())
 Resample a set of particles into a density grid. More...
 
typedef IMP::base::Vector
< IMP::base::WeakPointer
< SampledDensityMap > > 
SampledDensityMapsTemp
 

Detailed Description

Definition at line 29 of file SampledDensityMap.h.

Constructor & Destructor Documentation

IMP::em::SampledDensityMap::SampledDensityMap ( KernelType  kt = GAUSSIAN)

The header of the map is not determined and no data is being allocated

Definition at line 38 of file SampledDensityMap.h.

IMP::em::SampledDensityMap::SampledDensityMap ( const ParticlesTemp &  ps,
emreal  resolution,
emreal  voxel_size,
IMP::FloatKey  mass_key = IMP::atom::Mass::get_mass_key(),
int  sig_cuttoff = 3,
KernelType  kt = GAUSSIAN 
)

/param[in] ps particles with XYZ, radius and weight attributes /param[in] resolution half width the Gaussian /param[in] voxel_size /param[in] sig_cutoff Choose what should be the sigma cutoff for accurate sampling. It is used in two functions; (i) to determine the size of the grid dimensions (ii) to determine the voxels around the coords participating in the sampling procedure.

Member Function Documentation

IMP::algebra::BoundingBoxD<3> IMP::em::SampledDensityMap::calculate_particles_bounding_box ( const Particles &  ps)
protected
Parameters
[in]psparticles with XYZ, radius and weight attributes
Returns
the particles bounding box
void IMP::em::SampledDensityMap::determine_grid_size ( emreal  resolution,
emreal  voxel_size,
int  sig_cutoff 
)
protected

Determine the size of the grid as a function of the particles and the resolution.

void IMP::em::SampledDensityMap::project ( const ParticlesTemp &  ps,
int  x_margin,
int  y_margin,
int  z_margin,
algebra::Vector3D  shift = algebra::Vector3D(0., 0., 0.),
FloatKey  mass_key = atom::Mass::get_mass_key() 
)
Parameters
psthe particles to project
[in]x_marginsampling is restricted to [x_margin,nx-x_margin]
[in]y_marginsampling is restricted to [y_margin,ny-y_margin]
[in]z_marginsampling is restricted to [z_margin,nz-z_margin]
[in]shiftthe positions of all particles are shifted by this value before projection
[in]mass_keykey to obtain particle mass
virtual void IMP::em::SampledDensityMap::resample ( )
virtual
Note
The density of a particle p centered at pl at position gl is: \(\frac{{Z}e^{\frac{{-0.5}({p_l}-{g_l})}{\sigma}}}{\sqrt{{2}{\pi}\sigma}}\) , such that \({Z}\) is the weight of the particle and \({\sigma}\) is defined to be \({0.425}\) times the resolution, to follow the 'full width at half maxima' criterion. For more details please refer to Topf et al, Structure, 2008.

Reimplemented in IMP::em::SurfaceShellDensityMap.

Friends And Related Function Documentation

SampledDensityMap * particles2binarized_density ( const ParticlesTemp &  ps,
Float  resolution,
Float  apix,
int  sig_cutoff = 3,
const FloatKey weight_key = IMP::atom::Mass::get_mass_key() 
)
related

Resample a set of particles into a binarized density map 1 for voxels containing particles and 0 otherwise Each such particle should have xyz radius and weight attributes

Parameters
[in]psthe particles to sample
[in]resolutionthe resolution of the new sampled map
[in]apixthe voxel size of the sampled map
[in]sig_cutoffsigma cutoff used in sampling
[in]weight_keythe weight attribute key of the particles
Returns
the sampled density grid

Definition at line 82 of file converters.h.

SampledDensityMap * particles2density ( const ParticlesTemp &  ps,
Float  resolution,
Float  apix,
int  sig_cutoff = 3,
const FloatKey weight_key = IMP::atom::Mass::get_mass_key() 
)
related

Each such particle should have xyz, radius and weight attributes

Parameters
[in]psthe particles to sample
[in]resolutionthe resolution of the new sampled map
[in]apixthe voxel size of the sampled map
[in]sig_cutoffsigma cutoff used in sampling
[in]weight_keythe weight attribute key of the particles
Returns
the sampled density grid
SurfaceShellDensityMap * particles2surface ( const ParticlesTemp &  ps,
Float  apix,
const FloatKey weight_key = IMP::atom::Mass::get_mass_key() 
)
related

Each such particle should have xyz radius and weight attributes

Parameters
[in]psthe particles to sample
[in]apixthe voxel size of the surface map
[in]weight_keythe weight attribute key of the particles
Returns
the surface grid

Pass a set of objects.

Definition at line 132 of file SampledDensityMap.h.


The documentation for this class was generated from the following files: