IMP logo
IMP Reference Guide  develop.98ef8da184,2024/04/23
The Integrative Modeling Platform
simple.py
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 import sys
9 
10 IMP.setup_from_argv(sys.argv, "simple example")
11 
12 m = IMP.Model()
13 
14 # Create two "untyped" particles
15 p1 = m.add_particle('p1')
16 p2 = m.add_particle('p2')
17 
18 # "Decorate" the particles with x,y,z attributes (point-like particles)
21 
22 # Use some XYZ-specific functionality (set coordinates)
23 d1.set_coordinates(IMP.algebra.Vector3D(10.0, 10.0, 10.0))
24 d2.set_coordinates(IMP.algebra.Vector3D(-10.0, -10.0, -10.0))
25 print(d1, d2)
26 
27 # Harmonically restrain p1 to be zero distance from the origin
28 f = IMP.core.Harmonic(0.0, 1.0)
30 r1 = IMP.core.SingletonRestraint(m, s, p1)
31 
32 # Harmonically restrain p1 and p2 to be distance 5.0 apart
33 f = IMP.core.Harmonic(5.0, 1.0)
35 r2 = IMP.core.PairRestraint(m, s, (p1, p2))
36 
37 # Optimize the x,y,z coordinates of both particles with conjugate gradients
38 sf = IMP.core.RestraintsScoringFunction([r1, r2], "scoring function")
39 d1.set_coordinates_are_optimized(True)
40 d2.set_coordinates_are_optimized(True)
42 o.set_scoring_function(sf)
43 o.optimize(50)
44 print(d1, d2)
Strings setup_from_argv(const Strings &argv, std::string description, std::string positional_description, int num_positional)
Simple conjugate gradients optimizer.
Create a scoring function on a list of restraints.
static XYZ setup_particle(Model *m, ParticleIndex pi)
Definition: XYZ.h:51
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
Apply a function to the distance to a fixed point.
Score a pair of particles based on the distance between their centers.
Basic functionality that is expected to be used by a wide variety of IMP users.
General purpose algebraic and geometric methods that are expected to be used by a wide variety of IMP...
VectorD< 3 > Vector3D
Definition: VectorD.h:408
Applies a PairScore to a Pair.
Definition: PairRestraint.h:31
Applies a SingletonScore to a Singleton.
Harmonic function (symmetric about the mean)
Definition: core/Harmonic.h:27