IMP logo
Public Member Functions | Protected Member Functions | Protected Attributes | Related Functions
IMP::em::SampledDensityMap Class Reference

Detailed Description

Class for sampling a density map from particles.

Examples: generate density map of fixed dimension, local fitting, analyze convergence

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

List of all members.

Public Member Functions

 SampledDensityMap (KernelType kt=GAUSSIAN)
 Creates a new density map for sampled map.
 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)
 Generatea a sampled density map from the particles.
KernelParametersget_kernel_params ()
float get_minimum_resampled_value ()
 Get minimum density value between voxels that correspond to particles.
const Particlesget_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.
virtual void resample ()
 Resampling beads on an EM grid.
void set_particles (const IMP::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.
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.
DensityMapget_cropped (const algebra::BoundingBox3D &bb)
 Create a new cropped map with the bounding box extent.
int get_dim_index_by_location (const algebra::Vector3D &v, int ind) const
 Calculate dimension index of a given location.
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.
float get_location_in_dim_by_voxel (long index, int dim) const
 Calculate the location of a given voxel in a given dimension.
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.
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)
emreal get_value (const algebra::Vector3D &point) const
emreal get_value (long index) const
 Gets the value of the voxel at a given index.
long get_voxel_by_location (float x, float y, float z) const
 Calculate the voxel of a given location.
long get_voxel_by_location (const algebra::Vector3D &v) const
 Calculate the voxel of a given location.
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.
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.
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.
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.
bool same_dimensions (const DensityMap *other) const
 Checks if two maps have the same dimensions.
bool same_origin (const DensityMap *other) const
 Checks if two maps have the same origin.
bool same_voxel_size (const DensityMap *other) const
 Checks if two maps have the same voxel size.
void set_origin (float x, float y, float z)
 Sets the origin of the header.
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.
void set_value (float x, float y, float z, emreal value)
 Set the value of the voxel at a given index.
void set_void_map (int nx, int ny, int nz)
 Set the map dimension and reset all voxels to 0.
void std_normalize ()
 Normailze the density voxles according to standard deviation (stdv).
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.
- Public Member Functions inherited from IMP::base::Object
std::size_t __hash__ () const
virtual std::string get_type_name () const =0
 Return a string identifying the type of the object.
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.
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.
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)

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.
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.

Additional Inherited Members

- Static Public Member Functions inherited from IMP::em::DensityMap
static DensityMapget_from (IMP::base::Object *o)

Constructor & Destructor Documentation

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

Creates a new density map for sampled map.

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

IMP::em::SampledDensityMap::SampledDensityMap ( const DensityHeader header,
KernelType  kt = GAUSSIAN 
)

The size of the map is determined by the header and the data is allocated.

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 
)

Generatea a sampled density map from the particles.

/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

Calculate the parameters of the particles bounding box.

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.

float IMP::em::SampledDensityMap::get_minimum_resampled_value ( )

Get minimum density value between voxels that correspond to particles.

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() 
)

Project particles on the grid by their mass value.

Parameters:
[in]x_marginsampling is restricted to [x_margin,nx-x_maring]
[in]y_marginsampling is restricted to [y_margin,ny-y_maring]
[in]z_marginsampling is restricted to [z_margin,nz-z_maring]
[in]shiftthe positions of all particles are shifted by this value before projection
virtual void IMP::em::SampledDensityMap::resample ( )
virtual

Resampling beads on an EM grid.

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.

void IMP::em::SampledDensityMap::set_particles ( const IMP::ParticlesTemp ps,
IMP::FloatKey  mass_key = IMP::atom::Mass::get_mass_key() 
)

setting particles in case they were not set by the constructor


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 be 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]rad_keythe radius attribute key of the particles
[in]weight_keythe weight attribute key of the particles
Returns:
the sampled density grid
SampledDensityMap * particles2density ( 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 density grid.

Each such particle should be 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]rad_keythe radius attribute key of the particles
[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

Resample a set of particles into a density grid.

Each such particle should be have xyz radius and weight attributes

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

Member Data Documentation

KernelParameters IMP::em::SampledDensityMap::kernel_params_
protected

kernel handling


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

Generated on Tue May 22 2012 23:33:34 for IMP by doxygen 1.8.1