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;
54 algebra::PrincipalComponentAnalysis pca_;
61 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.