IMP logo
IMP Reference Guide  develop.d97d4ead1f,2024/11/21
The Integrative Modeling Platform
IMP::multifit::FFTFitting Class Reference

Fit a molecule inside its density by local or global FFT. More...

#include <IMP/multifit/fft_based_rigid_fitting.h>

+ Inheritance diagram for IMP::multifit::FFTFitting:

Detailed Description

Fit a molecule inside its density by local or global FFT.

Definition at line 43 of file fft_based_rigid_fitting.h.

Public Member Functions

FFTFittingOutputdo_global_fitting (em::DensityMap *dmap, double density_threshold, atom::Hierarchy mol2fit, double angle_sampling_interval_rad, int num_fits_to_report, double max_clustering_translation, double max_clustering_angle, bool cluster_fits=true, int num_angle_per_voxel=1, const std::string &angles_filename="")
 Fit a molecule inside its density. More...
 
FFTFittingOutputdo_local_fitting (em::DensityMap *dmap, double density_threshold, atom::Hierarchy mol2fit, double angle_sampling_interval_rad, double max_angle_sampling_rad, double max_translation, int num_fits_to_report, bool cluster_fits, int num_angle_per_voxel, double max_clustering_translation, double max_clustering_rotation, const std::string &angles_filename="")
 Locally fit a molecule inside its density. More...
 
virtual std::string get_type_name () const override
 
virtual ::IMP::VersionInfo get_version_info () const override
 Get information about the module and version of the object. More...
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
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

void copy_density_data (em::DensityMap *dmap, double *data_array)
 
em::DensityMapcrop_margin (em::DensityMap *in_map)
 
FittingSolutionRecords detect_top_fits (const internal::RotScoresVec &rot_scores, bool cluster_fits, double max_translation, double max_clustering_trans, double max_clustering_rotation)
 Detect the top fits. More...
 
void fftw_translational_search (const multifit::internal::EulerAngles &rot, int i)
 
void get_unwrapped_index (int wx, int wy, int wz, int &ix, int &iy, int &iz)
 
void pad_resolution_map ()
 
void prepare_kernels ()
 
void prepare_lowres_map (em::DensityMap *dmap)
 
void prepare_poslist (em::DensityMap *dmap)
 
void prepare_poslist_flipped (em::DensityMap *dmap)
 
void prepare_probe (atom::Hierarchy mol2fit)
 
- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Protected Attributes

double asmb_norm_
 
multifit::FittingSolutionRecords best_fits_
 
FittingSolutionRecords best_trans_per_rot_log_
 
algebra::Transformation3D cen_trans_
 
atom::Hierarchy copy_mol_
 
int corr_mode_
 
internal::FFTScores fft_scores_
 
internal::FFTScores fft_scores_flipped_
 
internal::FFTWGrid< fftw_complex > fftw_grid_hi_
 
internal::FFTWGrid< fftw_complex > fftw_grid_lo_
 
unsigned long fftw_nvox_c2r_
 
unsigned long fftw_nvox_r2c_
 
double fftw_pad_factor_
 
internal::FFTWPlan fftw_plan_forward_hi_
 
internal::FFTWPlan fftw_plan_forward_lo_
 
internal::FFTWPlan fftw_plan_reverse_hi_
 
internal::FFTWGrid< double > fftw_r_grid_mol_
 
double fftw_scale_
 
unsigned int fftw_zero_padding_extent_ [3]
 
boost::scoped_array< double > filtered_kernel_
 
unsigned filtered_kernel_ext_
 
internal::RotScoresVec fits_hash_
 
boost::scoped_array< double > gauss_kernel_
 
unsigned int gauss_kernel_ext_
 
unsigned long gauss_kernel_nvox_
 
atom::Hierarchy high_mol_
 
unsigned int inside_num_
 
unsigned int inside_num_flipped_
 
boost::scoped_array< double > kernel_filter_
 
unsigned int kernel_filter_ext_
 
double low_cutoff_
 
Pointer< em::DensityMaplow_map_
 
internal::FFTWGrid< double > low_map_data_
 
algebra::Vector3D map_cen_
 
unsigned margin_ignored_in_conv_ [3]
 
int num_angle_per_voxel_
 
int num_fits_reported_
 
unsigned long nvox_
 
unsigned int nx_
 
unsigned int nx_half_
 
unsigned int ny_
 
unsigned int ny_half_
 
unsigned int nz_
 
unsigned int nz_half_
 
algebra::Vector3D orig_cen_
 
atom::Hierarchy orig_mol_
 
atom::Hierarchy orig_mol_copy_
 
core::RigidBody orig_rb_
 
double origx_
 
double origy_
 
double origz_
 
double resolution_
 
internal::FFTWGrid< double > reversed_fftw_data_
 
multifit::internal::EulerAnglesList rots_
 
Pointer< em::SampledDensityMapsampled_map_
 
internal::FFTWGrid< double > sampled_map_data_
 
double sampled_norm_
 
double spacing_
 

Member Function Documentation

FittingSolutionRecords IMP::multifit::FFTFitting::detect_top_fits ( const internal::RotScoresVec &  rot_scores,
bool  cluster_fits,
double  max_translation,
double  max_clustering_trans,
double  max_clustering_rotation 
)
protected

Detect the top fits.

FFTFittingOutput* IMP::multifit::FFTFitting::do_global_fitting ( em::DensityMap dmap,
double  density_threshold,
atom::Hierarchy  mol2fit,
double  angle_sampling_interval_rad,
int  num_fits_to_report,
double  max_clustering_translation,
double  max_clustering_angle,
bool  cluster_fits = true,
int  num_angle_per_voxel = 1,
const std::string &  angles_filename = "" 
)

Fit a molecule inside its density.

Parameters
[in]dmapthe density map to fit into
[in]density_thresholdvoxels below this value will be treated as 0
[in]mol2fitthe molecule to fit. The molecule has to be a rigid body
[in]angle_sampling_interval_radSample every internal angles
[in]num_fits_to_reportnumber of top fits to report
[in]cluster_fitsif true the fits are clustered. Not recommended for refinement mode
[in]num_angle_per_voxelnumber of rotations to save per voxel
[in]max_clustering_translationcluster transformations whose translational distance is lower than the parameter
[in]max_clustering_anglecluster transformations whose rotational distance is lower than the parameter
[in]angles_filenamea file containing angles to sample. if not specified, all angles are sampled
FFTFittingOutput* IMP::multifit::FFTFitting::do_local_fitting ( em::DensityMap dmap,
double  density_threshold,
atom::Hierarchy  mol2fit,
double  angle_sampling_interval_rad,
double  max_angle_sampling_rad,
double  max_translation,
int  num_fits_to_report,
bool  cluster_fits,
int  num_angle_per_voxel,
double  max_clustering_translation,
double  max_clustering_rotation,
const std::string &  angles_filename = "" 
)

Locally fit a molecule inside its density.

Parameters
[in]dmapthe density map to fit into
[in]density_thresholdvoxels below this value will be treated as 0
[in]mol2fitthe molecule to fit. The molecule has to be a rigid body
[in]angle_sampling_interval_radsample the mol within the range of +- this angle
[in]max_angle_sampling_rad
[in]max_translationsample the mol within +- this translation is all directions
[in]num_fits_to_report
[in]cluster_fitsif true the fits are clustered. Not recommended for refinement mode
[in]num_angle_per_voxelnumber of rotations to save per voxel
[in]max_clustering_translationcluster transformations whose translational distance is lower than the parameter
[in]max_clustering_rotationcluster transformations whose rotational distance is lower than the parameter
[in]angles_filenamea file containing angles to sample. if not specified, all angles are sampled
virtual ::IMP::VersionInfo IMP::multifit::FFTFitting::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 44 of file fft_based_rigid_fitting.h.


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