IMP logo
IMP Reference Guide  develop.d97d4ead1f,2024/11/22
The Integrative Modeling Platform
domino/merge_tree.py

The example shows how to generate and inspect a merge tree for use in Domino.

1 ## \example domino/merge_tree.py
2 # The example shows how to generate and inspect a merge tree for use in Domino.
3 
4 import IMP
5 import IMP.domino
6 import IMP.core
7 import IMP.container
8 import IMP.algebra
9 import sys
10 
11 IMP.setup_from_argv(sys.argv, "merge tree")
12 
13 IMP.set_log_level(IMP.TERSE)
14 m = IMP.Model()
15 # don't print messages about evaluation
16 m.set_log_level(IMP.SILENT)
17 
18 bb = IMP.algebra.BoundingBox3D((0, 0, 0), (10, 10, 10))
19 allc = []
20 for i in range(0, 7):
21  p = IMP.Particle(m)
24  allc.append(d.get_coordinates())
26 ss = IMP.domino.XYZStates(allc)
27 for p in m.get_particle_indexes():
28  pst.set_particle_states(m.get_particle(p), ss)
29 # generate a set of restraints based on the close pairs in this randomly
30 # chosen configuration
32 cp.set_distance(1)
33 cps = cp.get_close_pairs(m, m.get_particle_indexes())
34 
35 if len(cps) > 0:
36  # one cannot create a container from an empty list
38 else:
42 
43 # compute the interaction graph based on all the restraints
45  pst)
46 # generate a junction tree from the interaction graph
48 print(dir(jt))
49 print(type(jt))
50 # create a merge tree from the junction tree, this can be passed to
51 # IMP.domin.DominoSampler
53 s = pst.get_subset()
54 print(s, type(s))