def test_scramble(self): """Testing restore with ConfigurationSet""" (m, ps) = self._make_things() cs = IMP.ConfigurationSet(m) #self._test_base(ps[2], 2, ps[0]) self._scramble(ps[0]) self._scramble(ps[1]) cs.load_configuration(-1) self._test_base(ps[0], 0, ps[1]) self._test_base(ps[1], 1, ps[1])
def __init__(self, m, p=1, running=False): """ @param m: The Model @param p: The saving periodicity """ IMP.OptimizerState.__init__(self) self._cs = IMP.ConfigurationSet(m) self._cs.set_log_level(IMP.SILENT) self._m = m self._periodicity = p self._count = 0
def test_noop(self): """Testing no-ops with the ConfigurationSet""" (m, ps) = self._make_things() print("create") cs = IMP.ConfigurationSet(m) self._test_base(ps[0], 0, ps[1]) self._test_base(ps[1], 1, ps[1]) # no-op print("load") cs.load_configuration(-1) self._test_base(ps[0], 0, ps[1]) self._test_base(ps[1], 1, ps[1])
def test_diff(self): """Testing restore a known state with ConfigurationSet""" (m, ps) = self._make_things() cs = IMP.ConfigurationSet(m) #self._test_base(ps[2], 2, ps[0]) self._set_attributes(ps[0], 0, ps[1]) self._set_attributes(ps[1], 1, ps[0]) cs.save_configuration() self._scramble(ps[0]) self._scramble(ps[1]) print("load 0") cs.load_configuration(0) print("testing") self._test_set(ps[0], 0, ps[1]) print("testing") self._test_set(ps[1], 1, ps[0]) print("load -1") cs.load_configuration(-1) self._test_base(ps[0], 0, ps[1]) self._test_base(ps[1], 1, ps[1])
def get_configurations( model, restraints, excluded_volume_particles, optimized_particles): #cpc= IMP.container.ClosePairContainer(representation.get_particles(), 0, 10) # evr= IMP.container.PairRestraint(IMP.core.SoftSpherePairScore(k), cpc, # "Excluded Volume") scale = .5 mc = IMP.core.MonteCarlo(model) movers = [] for p in optimized_particles: if IMP.core.RigidBody.get_is_setup(p): mover = IMP.core.RigidBodyMover( p, IMP.core.XYZR(p).get_radius() * scale, .2 * scale) movers.append(mover) else: mover = IMP.core.BallMover( [p], IMP.core.XYZR(p).get_radius() * scale) movers.append(mover) serial_mover = IMP.core.SerialMover(movers) mc.add_mover(serial_mover) scoring_function = IMP.core.IncrementalScoringFunction( optimized_particles, restraints) scoring_function.add_close_pair_score(IMP.core.SoftSpherePairScore(k), 0.0, excluded_volume_particles) configuration_set = IMP.ConfigurationSet(model) # must write our own sampler as IMP.core.MCCGSampler doesn't handle rigid # bodies for i in range(number_of_sampling_attempts): for p in optimized_particles: IMP.core.XYZ(p).set_coordinates( IMP.algebra.get_random_vector_in(bb)) mc.optimize(number_of_mc_steps) if scoring_function.get_had_good_score(): configuration_set.save() return configuration_set