IMP logo
IMP Reference Guide  2.22.0
The Integrative Modeling Platform
DensityDataPoints.h
Go to the documentation of this file.
1 /**
2  * \file IMP/multifit/DensityDataPoints.h
3  * \brief Handling of data for anchor points segmentation
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPMULTIFIT_DENSITY_DATA_POINTS_H
10 #define IMPMULTIFIT_DENSITY_DATA_POINTS_H
11 
12 #include <IMP/base_types.h>
13 #include <IMP/Particle.h>
15 #include <IMP/statistics/internal/random_generator.h>
16 #include <IMP/statistics/internal/DataPoints.h>
17 #include <IMP/em/converters.h>
18 #include <IMP/em/DensityMap.h>
19 #include <IMP/algebra/Vector3D.h>
20 #include <IMP/atom/Hierarchy.h>
21 #include <boost/scoped_ptr.hpp>
22 #include <IMP/multifit/multifit_config.h>
23 #include <map>
24 
25 IMPMULTIFIT_BEGIN_NAMESPACE
26 typedef IMP::algebra::DenseGrid3D<double> DensGrid;
27 
28 IMPMULTIFITEXPORT
29 em::DensityMap *grid2map(const DensGrid &dg, float spacing);
30 
31 //! Stores density voxels as a vector of Array1D.
32 /**
33 \note This manipulation is needed for matrix operations.
34  */
35 class IMPMULTIFITEXPORT DensityDataPoints
36  : public IMP::statistics::internal::XYZDataPoints {
37  public:
38  DensityDataPoints(em::DensityMap *dens, float density_threshold);
39  DensityDataPoints(const DensGrid &dens, float density_threshold);
40  IMP::statistics::internal::Array1DD sample() const override;
41 
42  // em::DensityMap* get_density_map() const {return dens_;}
43 
45 
46  protected:
47  void populate_data();
48  void set_max_min_density_values();
49  void set_density(em::DensityMap *d);
50  void set_density(const DensGrid &dens);
51  // TODO - change back once DensityMap will be Grid3D
52  // Pointer<DensGrid> dens_; /// TODO - make the class an object
53  boost::scoped_ptr<DensGrid> dens_;
54  // em::DensityMap *dens_;
55  double max_value_, min_value_;
56  double threshold_;
57 };
59 
60 IMPMULTIFIT_END_NAMESPACE
61 
62 #endif /* IMPMULTIFIT_DENSITY_DATA_POINTS_H */
Basic types used by IMP.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
A more IMP-like version of the std::vector.
Definition: Vector.h:50
Converters of density values.
Class for handling density maps.
Decorator for helping deal with a hierarchy of molecules.
Class for handling density maps.
Definition: DensityMap.h:95
Stores density voxels as a vector of Array1D.
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Definition: object_macros.h:44
Simple 3D vector class.
All grids that are in the Python API should be defined here.
A dense grid of values.