9 #ifndef IMPCNMULTIFIT_CN_SYMM_AXIS_DETECTOR_H
10 #define IMPCNMULTIFIT_CN_SYMM_AXIS_DETECTOR_H
18 #include <IMP/cnmultifit/cnmultifit_config.h>
20 IMPCNMULTIFIT_BEGIN_NAMESPACE
26 float density_threshold,
float top_p = 0.8);
30 algebra::PrincipalComponentAnalysis get_pca()
const {
return pca_; }
31 float calc_symm_score(
int symm_axis_ind)
const;
33 int get_symmetry_axis_index()
const;
34 int get_non_symmetry_axis_length()
const {
35 int symm_axis_ind = get_symmetry_axis_index();
37 if (symm_axis_ind == 0 || symm_axis_ind == 2) {
42 return std::sqrt(pca_.get_principal_value(non_ind));
44 void show(std::ostream &out = std::cout)
const {
45 out <<
"symm degree:" << symm_deg_ << std::endl;
46 out <<
"symm axis:" << get_symmetry_axis_index() << std::endl;
55 algebra::PrincipalComponentAnalysis pca_;
62 IMPCNMULTIFIT_END_NAMESPACE
Detect cn symmetry in proteins and density maps.
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
Class for handling density maps.
Decorator for helping deal with a hierarchy of molecules.
Class for handling density maps.
void show(Hierarchy h, std::ostream &out=std::cout)
Print out a molecular hierarchy.
double Float
Basic floating-point value (could be float, double...)
Principal component analysis of a set of points.