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: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. | |
| KernelParameters * | get_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. | |
| 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 |
| DensityMap * | get_cropped (float threshold) |
| Create a new cropped map. | |
| DensityMap * | get_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 DensityHeader * | get_header () const |
| DensityHeader * | get_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) |
| DensityMap * | pad_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.) | |
| SampledDensityMap * | particles2binarized_density (const ParticlesTemp &ps, Float resolution, Float apix, int sig_cutoff=3, const FloatKey &weight_key=IMP::atom::Mass::get_mass_key()) |
| SampledDensityMap * | particles2density (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. | |
| SurfaceShellDensityMap * | particles2surface (const ParticlesTemp &ps, Float apix, const FloatKey &weight_key=IMP::atom::Mass::get_mass_key()) |
| Resample a set of particles into a density grid. | |
Related Functions inherited from IMP::em::DensityMap | |
| double | get_density (const DensityMap *m, const algebra::Vector3D &v) |
| rotate a grid | |
| DensityMap * | get_resampled (DensityMap *input, double scaling) |
| DensityMap * | get_transformed (const DensityMap *input, const algebra::Transformation3D &tr, double threshold) |
| DensityMap * | get_transformed (DensityMap *input, const algebra::Transformation3D &tr) |
| void | get_transformed_into (const DensityMap *source, const algebra::Transformation3D &tr, DensityMap *into, bool calc_rms=true) |
| Rotate a density map into another maps. | |
| DensityMap * | read_map (std::string filename, MapReaderWriter *reader) |
| DensityMap * | read_map (std::string filename) |
| void | write_map (DensityMap *m, std::string filename, MapReaderWriter *writer) |
| void | write_map (DensityMap *m, std::string filename) |
Additional Inherited Members | |
Static Public Member Functions inherited from IMP::em::DensityMap | |
| static DensityMap * | get_from (IMP::base::Object *o) |
| 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.
|
protected |
Calculate the parameters of the particles bounding box.
| [in] | ps | particles with XYZ, radius and weight attributes |
|
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.
| [in] | x_margin | sampling is restricted to [x_margin,nx-x_maring] |
| [in] | y_margin | sampling is restricted to [y_margin,ny-y_maring] |
| [in] | z_margin | sampling is restricted to [z_margin,nz-z_maring] |
| [in] | shift | the positions of all particles are shifted by this value before projection |
|
virtual |
Resampling beads on an EM grid.
, such that
is the weight of the particle and
is defined to be
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
|
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
| [in] | ps | the particles to sample |
| [in] | resolution | the resolution of the new sampled map |
| [in] | apix | the voxel size of the sampled map |
| [in] | sig_cutoff | sigma cutoff used in sampling |
| [in] | rad_key | the radius attribute key of the particles |
| [in] | weight_key | the weight attribute key of the particles |
|
related |
Resample a set of particles into a density grid.
Each such particle should be have xyz radius and weight attributes
| [in] | ps | the particles to sample |
| [in] | resolution | the resolution of the new sampled map |
| [in] | apix | the voxel size of the sampled map |
| [in] | sig_cutoff | sigma cutoff used in sampling |
| [in] | rad_key | the radius attribute key of the particles |
| [in] | weight_key | the weight attribute key of the particles |
|
related |
Resample a set of particles into a density grid.
Each such particle should be have xyz radius and weight attributes
| [in] | ps | the particles to sample |
| [in] | apix | the voxel size of the surface map |
| [in] | rad_key | the radius attribute key of the particles |
| [in] | weight_key | the weight attribute key of the particles |
|
protected |
kernel handling