IMP logo
IMP Reference Guide  2.5.0
The Integrative Modeling Platform
decay.py
1 ## \example misc/decay.py
2 # Use the IMP::misc::DecayPairContainerOptimizerState to gradually break
3 # the bonds in a bd simulation.
4 
5 from __future__ import print_function
6 import IMP.atom
7 import IMP.container
8 import IMP.misc
9 import IMP.display
10 import IMP.example
11 import sys
12 import IMP.rmf
13 #import IMP.benchmark
14 import RMF
15 import random
16 
18  sys.argv, "Use the IMP::misc::DecayPairContainerOptimizerState to gradually break the bonds in a bd simulation")
19 
20 if IMP.get_bool_flag("run_quick_test"):
21  np = 8
22  nb = 8
23  prob = .5
24  period = 2
25  steps = 10
26 else:
27  np = 20
28  nb = 40
29  prob = .9
30  period = 10
31  steps = 10000
32 
33 m = IMP.Model()
34 
36  IMP.algebra.Vector3D(100, 100, 100))
37 ps = []
38 for i in range(0, np):
39  p = m.add_particle("p")
41  d.set_coordinates(IMP.algebra.Vector3D(10. * (i/10), 10. * (i%10), 10.))
42  d.set_radius(10)
43  d.set_coordinates_are_optimized(True)
47  ps.append(p)
49 
50 bds = []
51 for i in range(0, nb):
52  pp = random.sample(ps, 2)
53  if pp not in bds and [pp[1], pp[0]] not in bds:
54  bds.append(pp)
55 
57 dos = IMP.misc.DecayPairContainerOptimizerState(m, cf, bds, "decay")
58 dos.set_period(period)
59 dos.set_log_level(IMP.SILENT) # VERBOSE
60 
61 # create restraints
62 rs = []
64  IMP.core.HarmonicUpperBound(0, 10), bb)
65 ps_container = IMP.container.ListSingletonContainer(m, ps)
66 rs.append(IMP.container.SingletonsRestraint(box_score, ps_container, "box"))
68 rs.append(IMP.container.PairsRestraint(bond_score,
69  dos.get_output_container(),
70  "bonds"))
71 ev = IMP.core.ExcludedVolumeRestraint(ps_container, 10, 10)
72 IMP.set_log_level(IMP.SILENT)
73 
74 # set up simulator
76 bd.set_maximum_time_step(1000)
77 bd.set_scoring_function(rs + [ev])
78 bd.add_optimizer_state(dos)
79 
80 # set up display
81 fn = IMP.create_temporary_file_name("decay", ".rmf")
82 rmf = RMF.create_rmf_file(fn)
83 print("setting up file")
85 IMP.rmf.add_restraints(rmf, rs + [ev])
87 IMP.rmf.add_geometries(rmf, [g])
88 os = IMP.rmf.SaveOptimizerState(m, rmf)
89 os.set_period(max(steps / 100, 1))
90 bd.add_optimizer_state(os)
91 
92 # actually optimize things
93 print("running")
94 bd.optimize(steps)
95 
96 print("see", fn)
Applies a SingletonScore to each Singleton in a list.
A harmonic upper bound on the distance between two spheres.
Strings setup_from_argv(const Strings &argv, std::string description, std::string positional_description, int num_positional)
Various classes to hold sets of particles.
Upper bound harmonic function (non-zero when feature > mean)
static XYZR setup_particle(Model *m, ParticleIndex pi)
Definition: XYZR.h:48
Miscellaneous functionality that is not expected to be used by many IMP users.
bool get_bool_flag(std::string name)
Maintain a pair container with a decaying list of pairs.
ParticlesTemp get_particles(Model *m, const ParticleIndexes &ps)
Score particles based on how far outside a box they are.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:72
static Hierarchy setup_particle(Model *m, ParticleIndex pi, ParticleIndexesAdaptor children=ParticleIndexesAdaptor())
Create a Hierarchy of level t by adding the needed attributes.
Simple Brownian dynamics simulator.
Store a list of ParticleIndexes.
static Mass setup_particle(Model *m, ParticleIndex pi, Float mass)
Definition: Mass.h:44
Color get_display_color(unsigned int i)
void add_hierarchies(RMF::NodeHandle fh, const atom::Hierarchies &hs)
static Colored setup_particle(Model *m, ParticleIndex pi, Color color)
Definition: Colored.h:62
void add_geometries(RMF::NodeHandle parent, const display::GeometriesTemp &r)
void add_restraints(RMF::NodeHandle fh, const Restraints &hs)
void set_log_level(LogLevel l)
Set the current global log level.
Example module.
static Diffusion setup_particle(Model *m, ParticleIndex pi, Float D)
Definition: Diffusion.h:50
VectorD< 3 > Vector3D
Definition: VectorD.h:395
Prevent a set of particles and rigid bodies from inter-penetrating.
Output IMP model data in various file formats.
Functionality for loading, creating, manipulating and scoring atomic structures.
Support for the RMF file format for storing hierarchical molecular data and markup.
Applies a PairScore to each Pair in a list.
std::string create_temporary_file_name(std::string prefix="imp_temp", std::string suffix="")
Create a temporary file.