We are interested in applying domino to problems systematically in a multiscale manner. This script experiments with those approaches.
19 m.set_log_level(IMP.base.SILENT)
22 for i, d
in enumerate(ds):
40 for pr
in [(0, 1), (1, 2), (0, 2)]:
42 (ds[pr[0]], ds[pr[1]]),
58 def setup(cover, scale):
62 pst.set_particle_states(p, st)
64 r.set_maximum_score(.5 * scale ** 2)
71 sampler.set_subset_filter_tables(fs)
72 sampler.set_log_level(IMP.base.SILENT)
73 return (sampler, lf, pst)
75 (sampler, lf, pst) = setup(covers[0], 4.0)
78 ac = sampler.get_sample_assignments(subset)
83 def get_mapping(cover0, cover1):
84 nn = IMP.algebra.NearestNeighbor3D(cover0)
85 ret = [[]
for c
in cover0]
86 for i, p
in enumerate(cover1):
87 nns = nn.get_nearest_neighbor(p)
94 def display_mapping(index, cover0, cover1, mapping):
96 for i, c
in enumerate(mapping):
102 for i, c
in enumerate(cover0):
109 for curi
in range(1, len(covers)):
110 scale = 4.0 / 2 ** curi
112 mapping = get_mapping(covers[curi - 1], covers[curi])
114 display_mapping(curi - 1, covers[curi - 1], covers[curi], mapping)
115 (sampler, lf, pst) = setup(covers[curi], scale)
119 for i, p
in enumerate(subset):
122 lf.set_allowed_states(p, allowed)
123 ccac = sampler.get_sample_assignments(subset)
127 print "for scale", scale,
"got", ac
129 for i, a
in enumerate(ac):
135 for c
in covers[curi]: