IMP  2.4.0
The Integrative Modeling Platform
core/simple.py

Illustration of simple usage of the IMP library from Python.

1 ## \example core/simple.py
2 # Illustration of simple usage of the IMP library from Python.
3 #
4 
5 import IMP
6 import IMP.algebra
7 import IMP.core
8 
10 
11 # Create two "untyped" Particles
12 p1 = IMP.kernel.Particle(m)
13 p2 = IMP.kernel.Particle(m)
14 
15 # "Decorate" the Particles with x,y,z attributes (point-like particles)
18 
19 # Use some XYZ-specific functionality (set coordinates)
20 d1.set_coordinates(IMP.algebra.Vector3D(10.0, 10.0, 10.0))
21 d2.set_coordinates(IMP.algebra.Vector3D(-10.0, -10.0, -10.0))
22 print(d1, d2)
23 
24 # Harmonically restrain p1 to be zero distance from the origin
25 f = IMP.core.Harmonic(0.0, 1.0)
28 m.add_restraint(r1)
29 
30 # Harmonically restrain p1 and p2 to be distance 5.0 apart
31 f = IMP.core.Harmonic(5.0, 1.0)
33 r2 = IMP.core.PairRestraint(s, (p1, p2))
34 m.add_restraint(r2)
35 
36 # Optimize the x,y,z coordinates of both particles with conjugate gradients
37 d1.set_coordinates_are_optimized(True)
38 d2.set_coordinates_are_optimized(True)
40 o.optimize(50)
41 print(d1, d2)