home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.7400db2aee,2024/11/23
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
spb
version 20241123.develop.7400db2aee
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:408
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