While we do not recommend doing serious work using restraints written in Python, it is often useful when prototyping or testing code. Copy this example and modify as needed.
19 def __init__(self, m, ps, k):
20 IMP.Restraint.__init__(self, m,
"MyRestraint %1%")
24 def unprotected_evaluate(self, da):
26 for i
in range(1, len(self.ps)):
29 if p0.get_value(k) > p1.get_value(k):
30 diff = (p0.get_value(k) - p1.get_value(k))
32 p0.add_to_derivative(k, -1, da)
33 p1.add_to_derivative(k, 1, da)
36 print(p0.get_name(),
"and", p1.get_name(),
" are ok")
39 def do_get_inputs(self):
47 for i
in range(0, 10):
51 r = MyRestraint(m, ps, k)
53 print(r.evaluate(
True))