IMP logo
IMP Reference Guide  2.14.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-2020 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/algebra/internal/tnt_array2d.h>
21 #include <IMP/algebra/internal/tnt_array2d_utils.h>
22 #include <IMP/atom/Hierarchy.h>
23 #include <boost/scoped_ptr.hpp>
24 #include <IMP/multifit/multifit_config.h>
25 #include <map>
26 
27 IMPMULTIFIT_BEGIN_NAMESPACE
28 typedef IMP::algebra::DenseGrid3D<double> DensGrid;
29 
30 IMPMULTIFITEXPORT
31 em::DensityMap *grid2map(const DensGrid &dg, float spacing);
32 
33 //! Stores density voxels as a vector of Array1D.
34 /**
35 \note This manipulation is needed for matrix operations.
36  */
37 class IMPMULTIFITEXPORT DensityDataPoints
38  : public IMP::statistics::internal::XYZDataPoints {
39  public:
40  DensityDataPoints(em::DensityMap *dens, float density_threshold);
41  DensityDataPoints(const DensGrid &dens, float density_threshold);
42  IMP::statistics::internal::Array1DD sample() const;
43 
44  // em::DensityMap* get_density_map() const {return dens_;}
45 
47 
48  protected:
49  void populate_data();
50  void set_max_min_density_values();
51  void set_density(em::DensityMap *d);
52  void set_density(const DensGrid &dens);
53  // TODO - change back once DensityMap will be Grid3D
54  // Pointer<DensGrid> dens_; /// TODO - make the class an object
55  boost::scoped_ptr<DensGrid> dens_;
56  // em::DensityMap *dens_;
57  double max_value_, min_value_;
58  double threshold_;
59 };
61 
62 IMPMULTIFIT_END_NAMESPACE
63 
64 #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:39
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:93
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.