IMP logo
IMP Reference Guide  develop.d97d4ead1f,2024/11/21
The Integrative Modeling Platform
filter_close_pairs.py
1 ## \example container/filter_close_pairs.py
2 # This example shows how to filter the list of close pairs generated in
3 # the IMP.container.ClosePairContainer (or
4 # IMP.container.CloseBipartitePairContainer). Eventually the filter should
5 # probably be implemented in C++, for speed but implementing the filter in
6 # Python is good for prototyping.
7 
8 import IMP
9 import IMP.container
10 import IMP.core
11 import IMP.algebra
12 import sys
13 
14 IMP.setup_from_argv(sys.argv, "filter close pairs")
15 
16 np = 10
18  IMP.algebra.Vector3D(5, 5, 5))
19 ik = IMP.IntKey("num")
20 IMP.set_log_level(IMP.SILENT)
21 m = IMP.Model()
22 ll = []
23 for i in range(0, np):
24  p = m.add_particle("p%d" % i)
25  m.add_attribute(ik, p, i)
28  ll.append(p)
31 
32 m.update()
33 print("without", [(m.get_particle_name(x[0]), m.get_particle_name(x[1]))
34  for x in cpc.get_contents()])
35 
36 
37 class ConsecutiveFilter(IMP.PairPredicate):
38 
39  def __init__(self):
40  IMP.PairPredicate.__init__(self, "ConsecutiveFilter%1%")
41 
42  def get_value_index(self, m, pp):
43  diff = m.get_attribute(ik, pp[0]) - m.get_attribute(ik, pp[1])
44  if diff == -1 or diff == 1:
45  return 1
46  return 0
47 
48  def do_get_inputs(self, m, pis):
49  return [m.get_particle(i) for i in pis]
50 
51  def do_show(self, out):
52  pass
53 
54 
55 f = ConsecutiveFilter()
56 cpc.add_pair_filter(f)
57 m.update()
58 print("with", [(m.get_particle_name(x[0]), m.get_particle_name(x[1]))
59  for x in cpc.get_contents()])
Strings setup_from_argv(const Strings &argv, std::string description, std::string positional_description, int num_positional)
Various classes to hold sets of particles.
static XYZR setup_particle(Model *m, ParticleIndex pi)
Definition: XYZR.h:48
Return all close unordered pairs of particles taken from the SingletonContainer.
Vector3D get_random_vector_in(const Cylinder3D &c)
Generate a random vector in a cylinder with uniform density.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
Store a list of ParticleIndexes.
void set_log_level(LogLevel l)
Set the current global log level.
Basic functionality that is expected to be used by a wide variety of IMP users.
Abstract predicate function.
Definition: PairPredicate.h:31
General purpose algebraic and geometric methods that are expected to be used by a wide variety of IMP...
VectorD< 3 > Vector3D
Definition: VectorD.h:408