IMP
2.3.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
IMP
Modules
Applications
All IMP Applications
Argument Index
Class Examples
Factory Index
Function Examples
Design example
Developer Guide
Installation
Introduction
Publications
ChangeLog
Tools
Dependencies
PMI changelog
Deprecated List
Groups
Classes
Files
Examples
Indexes
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
10
IMP.base.set_log_level
(IMP.base.TERSE)
11
m =
IMP.kernel.Model
()
12
# don't print messages about evaluation
13
m.set_log_level(IMP.base.SILENT)
14
15
bb =
IMP.algebra.BoundingBox3D
((0, 0, 0), (10, 10, 10))
16
allc = []
17
for
i
in
range(0, 7):
18
p =
IMP.kernel.Particle
(m)
19
d =
IMP.core.XYZR.setup_particle
(
20
p,
IMP.algebra.Sphere3D
(
IMP.algebra.get_random_vector_in
(bb), 1))
21
allc.append(d.get_coordinates())
22
pst =
IMP.domino.ParticleStatesTable
()
23
ss =
IMP.domino.XYZStates
(allc)
24
for
p
in
m.get_particles():
25
pst.set_particle_states(p, ss)
26
# generate a set of restraints based on the close pairs in this randomly
27
# chosen configuration
28
cp =
IMP.core.GridClosePairsFinder
()
29
cp.set_distance(1)
30
cps = cp.get_close_pairs(m.get_particles())
31
32
if
len(cps) > 0:
33
# one cannot create a container from an empty list
34
acp =
IMP.container.ListPairContainer
(cps)
35
else
:
36
acp =
IMP.container.ListPairContainer
(m)
37
ps =
IMP.core.SoftSpherePairScore
(1)
38
r =
IMP.container.PairsRestraint
(ps, acp)
39
40
# compute the interaction graph based on all the restraints
41
ig =
IMP.domino.get_interaction_graph
([r],
42
pst)
43
# generate a junction tree from the interaction graph
44
jt =
IMP.domino.get_junction_tree
(ig)
45
print
dir(jt)
46
print
type(jt)
47
# create a merge tree from the junction tree, this can be passed to
48
# IMP.domin.DominoSampler
49
mt =
IMP.domino.get_merge_tree
(jt)
50
s = pst.get_subset()
51
print
s, type(s)