home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.20.2
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
spb
version 2.20.2
DistanceRMSDMetric.h
Go to the documentation of this file.
1
/**
2
* \file IMP/spb/DistanceRMSDMetric.h
3
* \brief Distance RMSD Metric
4
*
5
* Copyright 2007-2022 IMP Inventors. All rights reserved.
6
*/
7
8
#ifndef IMPSPB_DISTANCE_RMSD_METRIC_H
9
#define IMPSPB_DISTANCE_RMSD_METRIC_H
10
11
#include <
IMP/algebra.h
>
12
#include <
IMP/algebra/Transformation3D.h
>
13
#include <
IMP/algebra/Vector3D.h
>
14
#include <
IMP/statistics.h
>
15
#include <IMP/spb/spb_config.h>
16
17
IMPSPB_BEGIN_NAMESPACE
18
19
/** Compute the RMSD between two sets of particles in two configurations.
20
*/
21
class
IMPSPBEXPORT
DistanceRMSDMetric
:
public
statistics::Metric
{
22
Particles
ps_;
23
algebra::Transformation3Ds
tr_;
24
IMP::PointerMember<IMP::Particle>
px_;
25
IMP::PointerMember<IMP::Particle>
py_;
26
IMP::PointerMember<IMP::Particle>
pz_;
27
Floats
weight_;
28
std::vector<Floats> matrices_;
29
std::vector<std::vector<unsigned> > matrixmap_;
30
31
void
initialize(
Ints
align);
32
Floats
get_distance_matrix(
algebra::Vector3Ds
coords)
const
;
33
Float
get_distance
(
algebra::Vector3D
v0,
algebra::Vector3D
v1)
const
;
34
double
get_drmsd
(
const
Floats
&m0,
const
Floats
&m1)
const
;
35
algebra::Vector3D
get_vector(
algebra::Vector3D
center)
const
;
36
algebra::Transformation3D
get_transformation(
37
algebra::Transformation3D
trans)
const
;
38
39
public
:
40
DistanceRMSDMetric
(
Particles
ps,
Ints
align,
algebra::Transformation3Ds
tr,
41
Particle
*px,
Particle
*py,
Particle
*pz);
42
void
add_configuration(
double
weight = 1.0);
43
Float
get_weight
(
unsigned
i);
44
45
// IMP_METRIC(DistanceRMSDMetric);
46
double
get_distance
(
unsigned
int
i,
unsigned
int
j)
const override
;
47
unsigned
int
get_number_of_items()
const override
;
48
IMP_OBJECT_METHODS
(
DistanceRMSDMetric
);
49
};
50
51
IMPSPBEXPORT
statistics::PartitionalClustering
*create_gromos_clustering(
52
statistics::Metric
*d,
double
cutoff);
53
54
IMPSPB_END_NAMESPACE
55
56
#endif
/* IMPSPB_DISTANCE_RMSD_METRIC_H */
IMP::algebra::Transformation3D
Simple 3D transformation class.
Definition:
Transformation3D.h:37
IMP::atom::get_drmsd
double get_drmsd(const Vector3DsOrXYZs0 &m0, const Vector3DsOrXYZs1 &m1)
Calculate distance the root mean square deviation between two sets of 3D points.
Definition:
atom/distance.h:49
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
statistics.h
Include all non-deprecated headers in IMP.statistics.
algebra.h
Include all non-deprecated headers in IMP.algebra.
IMP::Vector< Pointer< Particle > >
IMP::statistics::Metric::get_weight
double get_weight(unsigned int i) const
Return a weight for the point.
Definition:
Metric.h:37
IMP::PointerMember< IMP::Particle >
Transformation3D.h
Simple 3D transformation class.
IMP::algebra::Vector3D
VectorD< 3 > Vector3D
Definition:
VectorD.h:425
IMP::Float
double Float
Basic floating-point value (could be float, double...)
Definition:
types.h:19
Vector3D.h
Simple 3D vector class.
IMP::Particle
Class to handle individual particles of a Model object.
Definition:
Particle.h:43
IMP::spb::DistanceRMSDMetric
Definition:
DistanceRMSDMetric.h:21
IMP::algebra::get_distance
double get_distance(const Line3D &s, const Vector3D &p)
Get closest distance between a line and a point.
IMP::statistics::PartitionalClustering
A base class for clustering results where each item is in one cluster.
Definition:
PartitionalClustering.h:25
IMP::statistics::Metric
Store data to be clustered for distance metric based algorithms.
Definition:
Metric.h:25