IMP logo
IMP Reference Guide  develop.d36d3deffb,2026/11/09
The Integrative Modeling Platform
atom/__init__.py
1 # This file was automatically generated by SWIG (https://www.swig.org).
2 # Version 4.5.1
3 #
4 # Do not make changes to this file unless you know what you are doing - modify
5 # the SWIG interface file instead.
6 
7 
8 # This wrapper is part of IMP,
9 # Copyright 2007-2026 IMP Inventors. All rights reserved.
10 
11 
12 
13 import functools
14 
15 
16 
17 import typing
18 import _IMP_atom
19 
20 import builtins as __builtin__
21 
22 def _swig_repr(self):
23  try:
24  strthis = "proxy of " + self.this.__repr__()
25  except __builtin__.Exception:
26  strthis = ""
27  return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
28 
29 
30 def _swig_setattr_nondynamic_instance_variable(set):
31  def set_instance_attr(self, name, value):
32  if name == "this":
33  set(self, name, value)
34  elif name == "thisown":
35  self.this.own(value)
36  elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
37  set(self, name, value)
38  else:
39  raise AttributeError("You cannot add instance attributes to %s" % self)
40  return set_instance_attr
41 
42 
43 def _swig_setattr_nondynamic_class_variable(set):
44  def set_class_attr(cls, name, value):
45  if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
46  set(cls, name, value)
47  else:
48  raise AttributeError("You cannot add class attributes to %s" % cls)
49  return set_class_attr
50 
51 
52 class _SwigNonDynamicMeta(type):
53  """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
54  __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)
55 
56 
57 import weakref
58 
59 class IMP_ATOM_SwigPyIterator(object):
60  r"""Proxy of C++ swig::IMP_ATOM_SwigPyIterator class."""
61 
62  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
63 
64  def __init__(self, *args, **kwargs):
65  raise AttributeError("No constructor defined - class is abstract")
66  __repr__ = _swig_repr
67  __swig_destroy__ = _IMP_atom.delete_IMP_ATOM_SwigPyIterator
68 
69  def value(self):
70  r"""value(IMP_ATOM_SwigPyIterator self) -> PyObject *"""
71  return _IMP_atom.IMP_ATOM_SwigPyIterator_value(self)
72 
73  def incr(self, n=1):
74  r"""incr(IMP_ATOM_SwigPyIterator self, size_t n=1) -> IMP_ATOM_SwigPyIterator"""
75  return _IMP_atom.IMP_ATOM_SwigPyIterator_incr(self, n)
76 
77  def decr(self, n=1):
78  r"""decr(IMP_ATOM_SwigPyIterator self, size_t n=1) -> IMP_ATOM_SwigPyIterator"""
79  return _IMP_atom.IMP_ATOM_SwigPyIterator_decr(self, n)
80 
81  def distance(self, x):
82  r"""distance(IMP_ATOM_SwigPyIterator self, IMP_ATOM_SwigPyIterator x) -> ptrdiff_t"""
83  return _IMP_atom.IMP_ATOM_SwigPyIterator_distance(self, x)
84 
85  def equal(self, x):
86  r"""equal(IMP_ATOM_SwigPyIterator self, IMP_ATOM_SwigPyIterator x) -> bool"""
87  return _IMP_atom.IMP_ATOM_SwigPyIterator_equal(self, x)
88 
89  def copy(self):
90  r"""copy(IMP_ATOM_SwigPyIterator self) -> IMP_ATOM_SwigPyIterator"""
91  return _IMP_atom.IMP_ATOM_SwigPyIterator_copy(self)
92 
93  def __next__(self):
94  r"""__next__(IMP_ATOM_SwigPyIterator self) -> PyObject *"""
95  return _IMP_atom.IMP_ATOM_SwigPyIterator___next__(self)
96 
97  def previous(self):
98  r"""previous(IMP_ATOM_SwigPyIterator self) -> PyObject *"""
99  return _IMP_atom.IMP_ATOM_SwigPyIterator_previous(self)
100 
101  def advance(self, n):
102  r"""advance(IMP_ATOM_SwigPyIterator self, ptrdiff_t n) -> IMP_ATOM_SwigPyIterator"""
103  return _IMP_atom.IMP_ATOM_SwigPyIterator_advance(self, n)
104 
105  def __eq__(self, x):
106  r"""__eq__(IMP_ATOM_SwigPyIterator self, IMP_ATOM_SwigPyIterator x) -> bool"""
107  return _IMP_atom.IMP_ATOM_SwigPyIterator___eq__(self, x)
108 
109  def __ne__(self, x):
110  r"""__ne__(IMP_ATOM_SwigPyIterator self, IMP_ATOM_SwigPyIterator x) -> bool"""
111  return _IMP_atom.IMP_ATOM_SwigPyIterator___ne__(self, x)
112 
113  def __iadd__(self, n):
114  r"""__iadd__(IMP_ATOM_SwigPyIterator self, ptrdiff_t n) -> IMP_ATOM_SwigPyIterator"""
115  return _IMP_atom.IMP_ATOM_SwigPyIterator___iadd__(self, n)
116 
117  def __isub__(self, n):
118  r"""__isub__(IMP_ATOM_SwigPyIterator self, ptrdiff_t n) -> IMP_ATOM_SwigPyIterator"""
119  return _IMP_atom.IMP_ATOM_SwigPyIterator___isub__(self, n)
120 
121  def __add__(self, n):
122  r"""__add__(IMP_ATOM_SwigPyIterator self, ptrdiff_t n) -> IMP_ATOM_SwigPyIterator"""
123  return _IMP_atom.IMP_ATOM_SwigPyIterator___add__(self, n)
124 
125  def __sub__(self, *args):
126  r"""
127  __sub__(IMP_ATOM_SwigPyIterator self, ptrdiff_t n) -> IMP_ATOM_SwigPyIterator
128  __sub__(IMP_ATOM_SwigPyIterator self, IMP_ATOM_SwigPyIterator x) -> ptrdiff_t
129  """
130  return _IMP_atom.IMP_ATOM_SwigPyIterator___sub__(self, *args)
131  def __iter__(self):
132  return self
133 
134 # Register IMP_ATOM_SwigPyIterator in _IMP_atom:
135 _IMP_atom.IMP_ATOM_SwigPyIterator_swigregister(IMP_ATOM_SwigPyIterator)
136 
137 _value_types=[]
138 _object_types=[]
139 _raii_types=[]
140 _plural_types=[]
141 
142 IMP_DEBUG = _IMP_atom.IMP_DEBUG
143 
144 IMP_RELEASE = _IMP_atom.IMP_RELEASE
145 
146 IMP_SILENT = _IMP_atom.IMP_SILENT
147 
148 IMP_PROGRESS = _IMP_atom.IMP_PROGRESS
149 
150 IMP_TERSE = _IMP_atom.IMP_TERSE
151 
152 IMP_VERBOSE = _IMP_atom.IMP_VERBOSE
153 
154 IMP_MEMORY = _IMP_atom.IMP_MEMORY
155 
156 IMP_NONE = _IMP_atom.IMP_NONE
157 
158 IMP_USAGE = _IMP_atom.IMP_USAGE
159 
160 IMP_INTERNAL = _IMP_atom.IMP_INTERNAL
161 
162 IMP_KERNEL_HAS_LOG4CXX = _IMP_atom.IMP_KERNEL_HAS_LOG4CXX
163 
164 IMP_COMPILER_HAS_CEREAL_RAW_POINTER = _IMP_atom.IMP_COMPILER_HAS_CEREAL_RAW_POINTER
165 
166 IMP_COMPILER_HAS_DEBUG_VECTOR = _IMP_atom.IMP_COMPILER_HAS_DEBUG_VECTOR
167 
168 IMP_COMPILER_HAS_RANDOM_SHUFFLE = _IMP_atom.IMP_COMPILER_HAS_RANDOM_SHUFFLE
169 
170 IMP_COMPILER_HAS_THREE_WAY = _IMP_atom.IMP_COMPILER_HAS_THREE_WAY
171 
172 IMP_KERNEL_HAS_BOOST_RANDOM = _IMP_atom.IMP_KERNEL_HAS_BOOST_RANDOM
173 
174 IMP_KERNEL_HAS_NUMPY = _IMP_atom.IMP_KERNEL_HAS_NUMPY
175 
176 IMP_KERNEL_HAS_BOOST_SYSTEM = _IMP_atom.IMP_KERNEL_HAS_BOOST_SYSTEM
177 
178 IMP_KERNEL_HAS_GPERFTOOLS = _IMP_atom.IMP_KERNEL_HAS_GPERFTOOLS
179 
180 IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER = _IMP_atom.IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER
181 
182 IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER = _IMP_atom.IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER
183 
184 IMPKERNEL_SHOW_WARNINGS = _IMP_atom.IMPKERNEL_SHOW_WARNINGS
185 
186 
187 import sys
188 class _DirectorObjects:
189  """@internal Simple class to keep references to director objects
190  to prevent premature deletion."""
191  def __init__(self):
192  self._objects = []
193  def register(self, obj):
194  """Take a reference to a director object; will only work for
195  refcounted C++ classes"""
196  if hasattr(obj, 'get_ref_count'):
197  self._objects.append(obj)
198  def cleanup(self):
199  """Only drop our reference and allow cleanup by Python if no other
200  Python references exist (we hold 3 references: one in self._objects,
201  one in x, and one in the argument list for getrefcount) *and* no
202  other C++ references exist (the Python object always holds one)"""
203  objs = [x for x in self._objects if sys.getrefcount(x) > 3 \
204  or x.get_ref_count() > 1]
205 # Do in two steps so the references are kept until the end of the
206 # function (deleting references may trigger a fresh call to this method)
207  self._objects = objs
208  def get_object_count(self):
209  """Get number of director objects (useful for testing only)"""
210  return len(self._objects)
211 _director_objects = _DirectorObjects()
212 
213 class _ostream(object):
214  r"""Proxy of C++ std::ostream class."""
215 
216  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
217 
218  def __init__(self, *args, **kwargs):
219  raise AttributeError("No constructor defined")
220  __repr__ = _swig_repr
221 
222  def write(self, osa_buf):
223  r"""write(_ostream self, char const * osa_buf)"""
224  return _IMP_atom._ostream_write(self, osa_buf)
225 
226 # Register _ostream in _IMP_atom:
227 _IMP_atom._ostream_swigregister(_ostream)
228 IMP_C_OPEN_BINARY = _IMP_atom.IMP_C_OPEN_BINARY
229 
230 import IMP
231 IMP_CGAL_HAS_BOOST_FILESYSTEM = _IMP_atom.IMP_CGAL_HAS_BOOST_FILESYSTEM
232 
233 IMP_CGAL_HAS_BOOST_PROGRAMOPTIONS = _IMP_atom.IMP_CGAL_HAS_BOOST_PROGRAMOPTIONS
234 
235 IMP_CGAL_HAS_BOOST_RANDOM = _IMP_atom.IMP_CGAL_HAS_BOOST_RANDOM
236 
237 IMP_CGAL_HAS_NUMPY = _IMP_atom.IMP_CGAL_HAS_NUMPY
238 
239 IMPCGAL_SHOW_WARNINGS = _IMP_atom.IMPCGAL_SHOW_WARNINGS
240 
241 import IMP.cgal
242 IMP_ALGEBRA_HAS_IMP_CGAL = _IMP_atom.IMP_ALGEBRA_HAS_IMP_CGAL
243 
244 IMP_ALGEBRA_HAS_BOOST_FILESYSTEM = _IMP_atom.IMP_ALGEBRA_HAS_BOOST_FILESYSTEM
245 
246 IMP_ALGEBRA_HAS_BOOST_PROGRAMOPTIONS = _IMP_atom.IMP_ALGEBRA_HAS_BOOST_PROGRAMOPTIONS
247 
248 IMP_ALGEBRA_HAS_BOOST_RANDOM = _IMP_atom.IMP_ALGEBRA_HAS_BOOST_RANDOM
249 
250 IMP_ALGEBRA_HAS_CGAL = _IMP_atom.IMP_ALGEBRA_HAS_CGAL
251 
252 IMP_ALGEBRA_HAS_NUMPY = _IMP_atom.IMP_ALGEBRA_HAS_NUMPY
253 
254 IMP_ALGEBRA_HAS_ANN = _IMP_atom.IMP_ALGEBRA_HAS_ANN
255 
256 IMPALGEBRA_SHOW_WARNINGS = _IMP_atom.IMPALGEBRA_SHOW_WARNINGS
257 
258 import IMP.algebra
259 IMP_DISPLAY_HAS_IMP_CGAL = _IMP_atom.IMP_DISPLAY_HAS_IMP_CGAL
260 
261 IMP_DISPLAY_HAS_BOOST_FILESYSTEM = _IMP_atom.IMP_DISPLAY_HAS_BOOST_FILESYSTEM
262 
263 IMP_DISPLAY_HAS_BOOST_PROGRAMOPTIONS = _IMP_atom.IMP_DISPLAY_HAS_BOOST_PROGRAMOPTIONS
264 
265 IMP_DISPLAY_HAS_BOOST_RANDOM = _IMP_atom.IMP_DISPLAY_HAS_BOOST_RANDOM
266 
267 IMP_DISPLAY_HAS_CGAL = _IMP_atom.IMP_DISPLAY_HAS_CGAL
268 
269 IMP_DISPLAY_HAS_NUMPY = _IMP_atom.IMP_DISPLAY_HAS_NUMPY
270 
271 IMPDISPLAY_SHOW_WARNINGS = _IMP_atom.IMPDISPLAY_SHOW_WARNINGS
272 
273 import IMP.display
274 IMP_SCORE_FUNCTOR_HAS_IMP_CGAL = _IMP_atom.IMP_SCORE_FUNCTOR_HAS_IMP_CGAL
275 
276 IMP_SCORE_FUNCTOR_HAS_BOOST_FILESYSTEM = _IMP_atom.IMP_SCORE_FUNCTOR_HAS_BOOST_FILESYSTEM
277 
278 IMP_SCORE_FUNCTOR_HAS_BOOST_PROGRAMOPTIONS = _IMP_atom.IMP_SCORE_FUNCTOR_HAS_BOOST_PROGRAMOPTIONS
279 
280 IMP_SCORE_FUNCTOR_HAS_BOOST_RANDOM = _IMP_atom.IMP_SCORE_FUNCTOR_HAS_BOOST_RANDOM
281 
282 IMP_SCORE_FUNCTOR_HAS_CGAL = _IMP_atom.IMP_SCORE_FUNCTOR_HAS_CGAL
283 
284 IMP_SCORE_FUNCTOR_HAS_HDF5 = _IMP_atom.IMP_SCORE_FUNCTOR_HAS_HDF5
285 
286 IMP_SCORE_FUNCTOR_HAS_NUMPY = _IMP_atom.IMP_SCORE_FUNCTOR_HAS_NUMPY
287 
288 IMPSCOREFUNCTOR_SHOW_WARNINGS = _IMP_atom.IMPSCOREFUNCTOR_SHOW_WARNINGS
289 
290 import IMP.score_functor
291 IMP_CORE_HAS_IMP_CGAL = _IMP_atom.IMP_CORE_HAS_IMP_CGAL
292 
293 IMP_CORE_HAS_IMP_KERNEL = _IMP_atom.IMP_CORE_HAS_IMP_KERNEL
294 
295 IMP_CORE_HAS_BOOST_FILESYSTEM = _IMP_atom.IMP_CORE_HAS_BOOST_FILESYSTEM
296 
297 IMP_CORE_HAS_BOOST_PROGRAMOPTIONS = _IMP_atom.IMP_CORE_HAS_BOOST_PROGRAMOPTIONS
298 
299 IMP_CORE_HAS_BOOST_RANDOM = _IMP_atom.IMP_CORE_HAS_BOOST_RANDOM
300 
301 IMP_CORE_HAS_CGAL = _IMP_atom.IMP_CORE_HAS_CGAL
302 
303 IMP_CORE_HAS_HDF5 = _IMP_atom.IMP_CORE_HAS_HDF5
304 
305 IMP_CORE_HAS_NUMPY = _IMP_atom.IMP_CORE_HAS_NUMPY
306 
307 IMPCORE_SHOW_WARNINGS = _IMP_atom.IMPCORE_SHOW_WARNINGS
308 
309 import IMP.core
310 IMP_CONTAINER_HAS_IMP_ALGEBRA = _IMP_atom.IMP_CONTAINER_HAS_IMP_ALGEBRA
311 
312 IMP_CONTAINER_HAS_IMP_CGAL = _IMP_atom.IMP_CONTAINER_HAS_IMP_CGAL
313 
314 IMP_CONTAINER_HAS_IMP_DISPLAY = _IMP_atom.IMP_CONTAINER_HAS_IMP_DISPLAY
315 
316 IMP_CONTAINER_HAS_IMP_KERNEL = _IMP_atom.IMP_CONTAINER_HAS_IMP_KERNEL
317 
318 IMP_CONTAINER_HAS_IMP_SCORE_FUNCTOR = _IMP_atom.IMP_CONTAINER_HAS_IMP_SCORE_FUNCTOR
319 
320 IMP_CONTAINER_HAS_BOOST_FILESYSTEM = _IMP_atom.IMP_CONTAINER_HAS_BOOST_FILESYSTEM
321 
322 IMP_CONTAINER_HAS_BOOST_PROGRAMOPTIONS = _IMP_atom.IMP_CONTAINER_HAS_BOOST_PROGRAMOPTIONS
323 
324 IMP_CONTAINER_HAS_BOOST_RANDOM = _IMP_atom.IMP_CONTAINER_HAS_BOOST_RANDOM
325 
326 IMP_CONTAINER_HAS_CGAL = _IMP_atom.IMP_CONTAINER_HAS_CGAL
327 
328 IMP_CONTAINER_HAS_HDF5 = _IMP_atom.IMP_CONTAINER_HAS_HDF5
329 
330 IMP_CONTAINER_HAS_NUMPY = _IMP_atom.IMP_CONTAINER_HAS_NUMPY
331 
332 IMP_CONTAINER_HAS_PYTHON_IHM = _IMP_atom.IMP_CONTAINER_HAS_PYTHON_IHM
333 
334 IMP_CONTAINER_HAS_GOOGLE_DENSE_HASH_MAP = _IMP_atom.IMP_CONTAINER_HAS_GOOGLE_DENSE_HASH_MAP
335 
336 IMP_CONTAINER_HAS_ROBIN_MAP = _IMP_atom.IMP_CONTAINER_HAS_ROBIN_MAP
337 
338 IMPCONTAINER_SHOW_WARNINGS = _IMP_atom.IMPCONTAINER_SHOW_WARNINGS
339 
340 import IMP.container
341 IMP_ATOM_HAS_IMP_CGAL = _IMP_atom.IMP_ATOM_HAS_IMP_CGAL
342 
343 IMP_ATOM_HAS_IMP_KERNEL = _IMP_atom.IMP_ATOM_HAS_IMP_KERNEL
344 
345 IMP_ATOM_HAS_IMP_SCORE_FUNCTOR = _IMP_atom.IMP_ATOM_HAS_IMP_SCORE_FUNCTOR
346 
347 IMP_ATOM_HAS_BOOST_PROGRAMOPTIONS = _IMP_atom.IMP_ATOM_HAS_BOOST_PROGRAMOPTIONS
348 
349 IMP_ATOM_HAS_BOOST_RANDOM = _IMP_atom.IMP_ATOM_HAS_BOOST_RANDOM
350 
351 IMP_ATOM_HAS_BOOST_REGEX = _IMP_atom.IMP_ATOM_HAS_BOOST_REGEX
352 
353 IMP_ATOM_HAS_CGAL = _IMP_atom.IMP_ATOM_HAS_CGAL
354 
355 IMP_ATOM_HAS_HDF5 = _IMP_atom.IMP_ATOM_HAS_HDF5
356 
357 IMP_ATOM_HAS_NUMPY = _IMP_atom.IMP_ATOM_HAS_NUMPY
358 
359 IMP_ATOM_HAS_PYTHON_IHM = _IMP_atom.IMP_ATOM_HAS_PYTHON_IHM
360 
361 IMPATOM_SHOW_WARNINGS = _IMP_atom.IMPATOM_SHOW_WARNINGS
362 
363 IMP_ATOM_TYPE_INDEX = _IMP_atom.IMP_ATOM_TYPE_INDEX
364 
365 IMP_RESIDUE_TYPE_INDEX = _IMP_atom.IMP_RESIDUE_TYPE_INDEX
366 
367 IMP_HIERARCHY_TYPE_INDEX = _IMP_atom.IMP_HIERARCHY_TYPE_INDEX
368 
369 IMP_CHAIN_TYPE_INDEX = _IMP_atom.IMP_CHAIN_TYPE_INDEX
370 
372  r"""Proxy of C++ IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex > class."""
373 
374  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
375  __repr__ = _swig_repr
376 
377  def __init__(self):
378  r"""__init__(HierarchyTree self) -> HierarchyTree"""
379  _IMP_atom.HierarchyTree_swiginit(self, _IMP_atom.new_HierarchyTree())
380 
381  def get_graph(self):
382  r"""get_graph(HierarchyTree self) -> IMP::atom::HierarchyTree const &"""
383  return _IMP_atom.HierarchyTree_get_graph(self)
384 
385  def get_vertices(self):
386  r"""get_vertices(HierarchyTree self) -> IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptors"""
387  return _IMP_atom.HierarchyTree_get_vertices(self)
388 
389  def get_vertex_name(self, i):
390  r"""get_vertex_name(HierarchyTree self, IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptor i) -> Hierarchy"""
391  return _IMP_atom.HierarchyTree_get_vertex_name(self, i)
392 
393  def get_in_neighbors(self, v):
394  r"""get_in_neighbors(HierarchyTree self, IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptor v) -> IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptors"""
395  return _IMP_atom.HierarchyTree_get_in_neighbors(self, v)
396 
397  def get_out_neighbors(self, v):
398  r"""get_out_neighbors(HierarchyTree self, IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptor v) -> IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptors"""
399  return _IMP_atom.HierarchyTree_get_out_neighbors(self, v)
400 
401  def show_graphviz(self, *args):
402  r"""show_graphviz(HierarchyTree self, _ostream out=std::cout)"""
403  return _IMP_atom.HierarchyTree_show_graphviz(self, *args)
404 
405  def get_graphviz_string(self):
406  r"""get_graphviz_string(HierarchyTree self) -> std::string"""
407  return _IMP_atom.HierarchyTree_get_graphviz_string(self)
408 
409  def add_edge(self, v0, v1):
410  r"""add_edge(HierarchyTree self, IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptor v0, IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptor v1)"""
411  return _IMP_atom.HierarchyTree_add_edge(self, v0, v1)
412 
413  def add_vertex(self, l):
414  r"""add_vertex(HierarchyTree self, Hierarchy l) -> IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptor"""
415  return _IMP_atom.HierarchyTree_add_vertex(self, l)
416 
417  def remove_vertex(self, l):
418  r"""remove_vertex(HierarchyTree self, IMP::internal::BoostDigraph< IMP::atom::HierarchyTree,IMP::atom::Hierarchy,IMP::atom::ShowHierarchyTreeVertex >::VertexDescriptor l)"""
419  return _IMP_atom.HierarchyTree_remove_vertex(self, l)
420  __swig_destroy__ = _IMP_atom.delete_HierarchyTree
421 
422 # Register HierarchyTree in _IMP_atom:
423 _IMP_atom.HierarchyTree_swigregister(HierarchyTree)
424 
425 _value_types.append("HierarchyTree")
426 
427 
428 PDBRecords=list
429 _plural_types.append("PDBRecords")
430 _value_types.append("PDBRecord")
431 
432 
433 _object_types.append("LennardJonesType")
434 
435 
436 def _object_cast_to_LennardJonesType(o):
437  r"""_object_cast_to_LennardJonesType(Object o) -> LennardJonesType"""
438  return _IMP_atom._object_cast_to_LennardJonesType(o)
439 
440 _object_types.append("PDBSelector")
441 
442 
443 def _object_cast_to_PDBSelector(o):
444  r"""_object_cast_to_PDBSelector(Object o) -> PDBSelector"""
445  return _IMP_atom._object_cast_to_PDBSelector(o)
446 
447 def Angles(l=[]):
448  return [Angle(x) for x in l]
449 _plural_types.append("Angles")
450 
451 
452 _value_types.append("Angle")
453 
454 
455 def Atoms(l=[]):
456  return [Atom(x) for x in l]
457 _plural_types.append("Atoms")
458 
459 
460 _value_types.append("Atom")
461 
462 
463 def Bonds(l=[]):
464  return [Bond(x) for x in l]
465 _plural_types.append("Bonds")
466 
467 
468 _value_types.append("Bond")
469 
470 
471 def Bondeds(l=[]):
472  return [Bonded(x) for x in l]
473 _plural_types.append("Bondeds")
474 
475 
476 _value_types.append("Bonded")
477 
478 
479 def CHARMMAtomList(l=[]):
480  return [CHARMMAtom(x) for x in l]
481 _plural_types.append("CHARMMAtomList")
482 
483 
484 _value_types.append("CHARMMAtom")
485 
486 
487 def Chains(l=[]):
488  return [Chain(x) for x in l]
489 _plural_types.append("Chains")
490 
491 
492 _value_types.append("Chain")
493 
494 
495 def CenterOfMasses(l=[]):
496  return [CenterOfMass(x) for x in l]
497 _plural_types.append("CenterOfMasses")
498 
499 
500 _value_types.append("CenterOfMass")
501 
502 
503 def Chargeds(l=[]):
504  return [Charged(x) for x in l]
505 _plural_types.append("Chargeds")
506 
507 
508 _value_types.append("Charged")
509 
510 
511 def Diffusions(l=[]):
512  return [Diffusion(x) for x in l]
513 _plural_types.append("Diffusions")
514 
515 
516 _value_types.append("Diffusion")
517 
518 
519 def RigidBodyDiffusions(l=[]):
520  return [RigidBodyDiffusion(x) for x in l]
521 _plural_types.append("RigidBodyDiffusions")
522 
523 
524 _value_types.append("RigidBodyDiffusion")
525 
526 
527 def TAMDParticles(l=[]):
528  return [TAMDParticle(x) for x in l]
529 _plural_types.append("TAMDParticles")
530 
531 
532 _value_types.append("TAMDParticle")
533 
534 
535 def TAMDCentroids(l=[]):
536  return [TAMDCentroid(x) for x in l]
537 _plural_types.append("TAMDCentroids")
538 
539 
540 _value_types.append("TAMDCentroid")
541 
542 
543 def Dihedrals(l=[]):
544  return [Dihedral(x) for x in l]
545 _plural_types.append("Dihedrals")
546 
547 
548 _value_types.append("Dihedral")
549 
550 
551 def Domains(l=[]):
552  return [Domain(x) for x in l]
553 _plural_types.append("Domains")
554 
555 
556 _value_types.append("Domain")
557 
558 
559 def Fragments(l=[]):
560  return [Fragment(x) for x in l]
561 _plural_types.append("Fragments")
562 
563 
564 _value_types.append("Fragment")
565 
566 
567 def Hierarchies(l=[]):
568  return [Hierarchy(x) for x in l]
569 _plural_types.append("Hierarchies")
570 
571 
572 _value_types.append("Hierarchy")
573 
574 
575 def LennardJonesTypeds(l=[]):
576  return [LennardJonesTyped(x) for x in l]
577 _plural_types.append("LennardJonesTypeds")
578 
579 
580 _value_types.append("LennardJonesTyped")
581 
582 
583 def Masses(l=[]):
584  return [Mass(x) for x in l]
585 _plural_types.append("Masses")
586 
587 
588 _value_types.append("Mass")
589 
590 
591 def LinearVelocities(l=[]):
592  return [LinearVelocity(x) for x in l]
593 _plural_types.append("LinearVelocities")
594 
595 
596 _value_types.append("LinearVelocity")
597 
598 
599 def AngularVelocities(l=[]):
600  return [AngularVelocity(x) for x in l]
601 _plural_types.append("AngularVelocities")
602 
603 
604 _value_types.append("AngularVelocity")
605 
606 
607 def Molecules(l=[]):
608  return [Molecule(x) for x in l]
609 _plural_types.append("Molecules")
610 
611 
612 _value_types.append("Molecule")
613 
614 
615 def Residues(l=[]):
616  return [Residue(x) for x in l]
617 _plural_types.append("Residues")
618 
619 
620 _value_types.append("Residue")
621 
622 
623 def Representations(l=[]):
624  return [Representation(x) for x in l]
625 _plural_types.append("Representations")
626 
627 
628 _value_types.append("Representation")
629 
630 
631 def States(l=[]):
632  return [State(x) for x in l]
633 _plural_types.append("States")
634 
635 
636 _value_types.append("State")
637 
638 
639 def Copies(l=[]):
640  return [Copy(x) for x in l]
641 _plural_types.append("Copies")
642 
643 
644 _value_types.append("Copy")
645 
646 
647 def SecondaryStructureResidues(l=[]):
648  return [SecondaryStructureResidue(x) for x in l]
649 _plural_types.append("SecondaryStructureResidues")
650 
651 
652 _value_types.append("SecondaryStructureResidue")
653 
654 
655 def StructureSources(l=[]):
656  return [StructureSource(x) for x in l]
657 _plural_types.append("StructureSources")
658 
659 
660 _value_types.append("StructureSource")
661 
662 
663 _object_types.append("Simulator")
664 
665 
666 def _object_cast_to_Simulator(o):
667  r"""_object_cast_to_Simulator(Object o) -> Simulator"""
668  return _IMP_atom._object_cast_to_Simulator(o)
669 
670 _object_types.append("ATOMPDBSelector")
671 
672 
673 def _object_cast_to_ATOMPDBSelector(o):
674  r"""_object_cast_to_ATOMPDBSelector(Object o) -> ATOMPDBSelector"""
675  return _IMP_atom._object_cast_to_ATOMPDBSelector(o)
676 
677 _object_types.append("AllMol2Selector")
678 
679 
680 def _object_cast_to_AllMol2Selector(o):
681  r"""_object_cast_to_AllMol2Selector(Object o) -> AllMol2Selector"""
682  return _IMP_atom._object_cast_to_AllMol2Selector(o)
683 
684 _object_types.append("AllPDBSelector")
685 
686 
687 def _object_cast_to_AllPDBSelector(o):
688  r"""_object_cast_to_AllPDBSelector(Object o) -> AllPDBSelector"""
689  return _IMP_atom._object_cast_to_AllPDBSelector(o)
690 
691 _object_types.append("AndPDBSelector")
692 
693 
694 def _object_cast_to_AndPDBSelector(o):
695  r"""_object_cast_to_AndPDBSelector(Object o) -> AndPDBSelector"""
696  return _IMP_atom._object_cast_to_AndPDBSelector(o)
697 
698 _object_types.append("XorPDBSelector")
699 
700 
701 def _object_cast_to_XorPDBSelector(o):
702  r"""_object_cast_to_XorPDBSelector(Object o) -> XorPDBSelector"""
703  return _IMP_atom._object_cast_to_XorPDBSelector(o)
704 
705 _object_types.append("ResidueTypePDBSelector")
706 
707 
708 def _object_cast_to_ResidueTypePDBSelector(o):
709  r"""_object_cast_to_ResidueTypePDBSelector(Object o) -> ResidueTypePDBSelector"""
710  return _IMP_atom._object_cast_to_ResidueTypePDBSelector(o)
711 
712 _object_types.append("AtomTypePDBSelector")
713 
714 
715 def _object_cast_to_AtomTypePDBSelector(o):
716  r"""_object_cast_to_AtomTypePDBSelector(Object o) -> AtomTypePDBSelector"""
717  return _IMP_atom._object_cast_to_AtomTypePDBSelector(o)
718 
719 _object_types.append("AngleSingletonScore")
720 
721 
722 def _object_cast_to_AngleSingletonScore(o):
723  r"""_object_cast_to_AngleSingletonScore(Object o) -> AngleSingletonScore"""
724  return _IMP_atom._object_cast_to_AngleSingletonScore(o)
725 
726 _object_types.append("BondEndpointsRefiner")
727 
728 
729 def _object_cast_to_BondEndpointsRefiner(o):
730  r"""_object_cast_to_BondEndpointsRefiner(Object o) -> BondEndpointsRefiner"""
731  return _IMP_atom._object_cast_to_BondEndpointsRefiner(o)
732 
733 _object_types.append("BondPairContainer")
734 
735 
736 def _object_cast_to_BondPairContainer(o):
737  r"""_object_cast_to_BondPairContainer(Object o) -> BondPairContainer"""
738  return _IMP_atom._object_cast_to_BondPairContainer(o)
739 
740 _object_types.append("BondSingletonScore")
741 
742 
743 def _object_cast_to_BondSingletonScore(o):
744  r"""_object_cast_to_BondSingletonScore(Object o) -> BondSingletonScore"""
745  return _IMP_atom._object_cast_to_BondSingletonScore(o)
746 
747 _object_types.append("BondedPairFilter")
748 
749 
750 def _object_cast_to_BondedPairFilter(o):
751  r"""_object_cast_to_BondedPairFilter(Object o) -> BondedPairFilter"""
752  return _IMP_atom._object_cast_to_BondedPairFilter(o)
753 
754 _object_types.append("BrownianDynamics")
755 
756 
757 def _object_cast_to_BrownianDynamics(o):
758  r"""_object_cast_to_BrownianDynamics(Object o) -> BrownianDynamics"""
759  return _IMP_atom._object_cast_to_BrownianDynamics(o)
760 
761 _object_types.append("BrownianDynamicsTAMD")
762 
763 
764 def _object_cast_to_BrownianDynamicsTAMD(o):
765  r"""_object_cast_to_BrownianDynamicsTAMD(Object o) -> BrownianDynamicsTAMD"""
766  return _IMP_atom._object_cast_to_BrownianDynamicsTAMD(o)
767 
768 _object_types.append("CAlphaPDBSelector")
769 
770 
771 def _object_cast_to_CAlphaPDBSelector(o):
772  r"""_object_cast_to_CAlphaPDBSelector(Object o) -> CAlphaPDBSelector"""
773  return _IMP_atom._object_cast_to_CAlphaPDBSelector(o)
774 
775 _object_types.append("CBetaPDBSelector")
776 
777 
778 def _object_cast_to_CBetaPDBSelector(o):
779  r"""_object_cast_to_CBetaPDBSelector(Object o) -> CBetaPDBSelector"""
780  return _IMP_atom._object_cast_to_CBetaPDBSelector(o)
781 
782 _object_types.append("BackbonePDBSelector")
783 
784 
785 def _object_cast_to_BackbonePDBSelector(o):
786  r"""_object_cast_to_BackbonePDBSelector(Object o) -> BackbonePDBSelector"""
787  return _IMP_atom._object_cast_to_BackbonePDBSelector(o)
788 
789 _object_types.append("CHARMMParameters")
790 
791 
792 def _object_cast_to_CHARMMParameters(o):
793  r"""_object_cast_to_CHARMMParameters(Object o) -> CHARMMParameters"""
794  return _IMP_atom._object_cast_to_CHARMMParameters(o)
795 
796 _object_types.append("CHARMMResidueTopology")
797 
798 
799 def _object_cast_to_CHARMMResidueTopology(o):
800  r"""_object_cast_to_CHARMMResidueTopology(Object o) -> CHARMMResidueTopology"""
801  return _IMP_atom._object_cast_to_CHARMMResidueTopology(o)
802 
803 _object_types.append("CHARMMSegmentTopology")
804 
805 
806 def _object_cast_to_CHARMMSegmentTopology(o):
807  r"""_object_cast_to_CHARMMSegmentTopology(Object o) -> CHARMMSegmentTopology"""
808  return _IMP_atom._object_cast_to_CHARMMSegmentTopology(o)
809 
810 _object_types.append("CHARMMStereochemistryRestraint")
811 
812 
813 def _object_cast_to_CHARMMStereochemistryRestraint(o):
814  r"""_object_cast_to_CHARMMStereochemistryRestraint(Object o) -> CHARMMStereochemistryRestraint"""
815  return _IMP_atom._object_cast_to_CHARMMStereochemistryRestraint(o)
816 
817 _object_types.append("CHARMMTopology")
818 
819 
820 def _object_cast_to_CHARMMTopology(o):
821  r"""_object_cast_to_CHARMMTopology(Object o) -> CHARMMTopology"""
822  return _IMP_atom._object_cast_to_CHARMMTopology(o)
823 
824 _object_types.append("CPDBSelector")
825 
826 
827 def _object_cast_to_CPDBSelector(o):
828  r"""_object_cast_to_CPDBSelector(Object o) -> CPDBSelector"""
829  return _IMP_atom._object_cast_to_CPDBSelector(o)
830 
831 _object_types.append("ChainPDBSelector")
832 
833 
834 def _object_cast_to_ChainPDBSelector(o):
835  r"""_object_cast_to_ChainPDBSelector(Object o) -> ChainPDBSelector"""
836  return _IMP_atom._object_cast_to_ChainPDBSelector(o)
837 
838 _object_types.append("CoulombPairScore")
839 
840 
841 def _object_cast_to_CoulombPairScore(o):
842  r"""_object_cast_to_CoulombPairScore(Object o) -> CoulombPairScore"""
843  return _IMP_atom._object_cast_to_CoulombPairScore(o)
844 
845 _object_types.append("CoverBond")
846 
847 
848 def _object_cast_to_CoverBond(o):
849  r"""_object_cast_to_CoverBond(Object o) -> CoverBond"""
850  return _IMP_atom._object_cast_to_CoverBond(o)
851 
852 _object_types.append("DihedralSingletonScore")
853 
854 
855 def _object_cast_to_DihedralSingletonScore(o):
856  r"""_object_cast_to_DihedralSingletonScore(Object o) -> DihedralSingletonScore"""
857  return _IMP_atom._object_cast_to_DihedralSingletonScore(o)
858 
859 _object_types.append("DopePairScore")
860 
861 
862 def _object_cast_to_DopePairScore(o):
863  r"""_object_cast_to_DopePairScore(Object o) -> DopePairScore"""
864  return _IMP_atom._object_cast_to_DopePairScore(o)
865 
866 _object_types.append("LoopStatisticalPairScore")
867 
868 
869 def _object_cast_to_LoopStatisticalPairScore(o):
870  r"""_object_cast_to_LoopStatisticalPairScore(Object o) -> LoopStatisticalPairScore"""
871  return _IMP_atom._object_cast_to_LoopStatisticalPairScore(o)
872 
873 _object_types.append("OrientedSoapPairScore")
874 
875 
876 def _object_cast_to_OrientedSoapPairScore(o):
877  r"""_object_cast_to_OrientedSoapPairScore(Object o) -> OrientedSoapPairScore"""
878  return _IMP_atom._object_cast_to_OrientedSoapPairScore(o)
879 
880 _object_types.append("EzRestraint")
881 
882 
883 def _object_cast_to_EzRestraint(o):
884  r"""_object_cast_to_EzRestraint(Object o) -> EzRestraint"""
885  return _IMP_atom._object_cast_to_EzRestraint(o)
886 
887 _object_types.append("ForceFieldParameters")
888 
889 
890 def _object_cast_to_ForceFieldParameters(o):
891  r"""_object_cast_to_ForceFieldParameters(Object o) -> ForceFieldParameters"""
892  return _IMP_atom._object_cast_to_ForceFieldParameters(o)
893 
894 _object_types.append("ForceSwitch")
895 
896 
897 def _object_cast_to_ForceSwitch(o):
898  r"""_object_cast_to_ForceSwitch(Object o) -> ForceSwitch"""
899  return _IMP_atom._object_cast_to_ForceSwitch(o)
900 
901 _object_types.append("HydrogenPDBSelector")
902 
903 
904 def _object_cast_to_HydrogenPDBSelector(o):
905  r"""_object_cast_to_HydrogenPDBSelector(Object o) -> HydrogenPDBSelector"""
906  return _IMP_atom._object_cast_to_HydrogenPDBSelector(o)
907 
908 _object_types.append("ImproperSingletonScore")
909 
910 
911 def _object_cast_to_ImproperSingletonScore(o):
912  r"""_object_cast_to_ImproperSingletonScore(Object o) -> ImproperSingletonScore"""
913  return _IMP_atom._object_cast_to_ImproperSingletonScore(o)
914 
915 _object_types.append("_LennardJonesTypedPairScore")
916 
917 
918 def _object_cast_to__LennardJonesTypedPairScore(o):
919  r"""_object_cast_to__LennardJonesTypedPairScore(Object o) -> _LennardJonesTypedPairScore"""
920  return _IMP_atom._object_cast_to__LennardJonesTypedPairScore(o)
921 
922 _object_types.append("_SwitchedLennardJonesTypedPairScore")
923 
924 
925 def _object_cast_to__SwitchedLennardJonesTypedPairScore(o):
926  r"""_object_cast_to__SwitchedLennardJonesTypedPairScore(Object o) -> _SwitchedLennardJonesTypedPairScore"""
927  return _IMP_atom._object_cast_to__SwitchedLennardJonesTypedPairScore(o)
928 
929 _object_types.append("Mol2Selector")
930 
931 
932 def _object_cast_to_Mol2Selector(o):
933  r"""_object_cast_to_Mol2Selector(Object o) -> Mol2Selector"""
934  return _IMP_atom._object_cast_to_Mol2Selector(o)
935 
936 _object_types.append("MolecularDynamics")
937 
938 
939 def _object_cast_to_MolecularDynamics(o):
940  r"""_object_cast_to_MolecularDynamics(Object o) -> MolecularDynamics"""
941  return _IMP_atom._object_cast_to_MolecularDynamics(o)
942 
943 _object_types.append("NPDBSelector")
944 
945 
946 def _object_cast_to_NPDBSelector(o):
947  r"""_object_cast_to_NPDBSelector(Object o) -> NPDBSelector"""
948  return _IMP_atom._object_cast_to_NPDBSelector(o)
949 
950 _object_types.append("NonAlternativePDBSelector")
951 
952 
953 def _object_cast_to_NonAlternativePDBSelector(o):
954  r"""_object_cast_to_NonAlternativePDBSelector(Object o) -> NonAlternativePDBSelector"""
955  return _IMP_atom._object_cast_to_NonAlternativePDBSelector(o)
956 
957 _object_types.append("NonHydrogenMol2Selector")
958 
959 
960 def _object_cast_to_NonHydrogenMol2Selector(o):
961  r"""_object_cast_to_NonHydrogenMol2Selector(Object o) -> NonHydrogenMol2Selector"""
962  return _IMP_atom._object_cast_to_NonHydrogenMol2Selector(o)
963 
964 _object_types.append("NonHydrogenPDBSelector")
965 
966 
967 def _object_cast_to_NonHydrogenPDBSelector(o):
968  r"""_object_cast_to_NonHydrogenPDBSelector(Object o) -> NonHydrogenPDBSelector"""
969  return _IMP_atom._object_cast_to_NonHydrogenPDBSelector(o)
970 
971 _object_types.append("NonWaterNonHydrogenPDBSelector")
972 
973 
974 def _object_cast_to_NonWaterNonHydrogenPDBSelector(o):
975  r"""_object_cast_to_NonWaterNonHydrogenPDBSelector(Object o) -> NonWaterNonHydrogenPDBSelector"""
976  return _IMP_atom._object_cast_to_NonWaterNonHydrogenPDBSelector(o)
977 
978 _object_types.append("NonWaterPDBSelector")
979 
980 
981 def _object_cast_to_NonWaterPDBSelector(o):
982  r"""_object_cast_to_NonWaterPDBSelector(Object o) -> NonWaterPDBSelector"""
983  return _IMP_atom._object_cast_to_NonWaterPDBSelector(o)
984 
985 _object_types.append("NotPDBSelector")
986 
987 
988 def _object_cast_to_NotPDBSelector(o):
989  r"""_object_cast_to_NotPDBSelector(Object o) -> NotPDBSelector"""
990  return _IMP_atom._object_cast_to_NotPDBSelector(o)
991 
992 _object_types.append("OrPDBSelector")
993 
994 
995 def _object_cast_to_OrPDBSelector(o):
996  r"""_object_cast_to_OrPDBSelector(Object o) -> OrPDBSelector"""
997  return _IMP_atom._object_cast_to_OrPDBSelector(o)
998 
999 _object_types.append("PPDBSelector")
1000 
1001 
1002 def _object_cast_to_PPDBSelector(o):
1003  r"""_object_cast_to_PPDBSelector(Object o) -> PPDBSelector"""
1004  return _IMP_atom._object_cast_to_PPDBSelector(o)
1005 
1006 _object_types.append("ResidueRangePDBSelector")
1007 
1008 
1009 def _object_cast_to_ResidueRangePDBSelector(o):
1010  r"""_object_cast_to_ResidueRangePDBSelector(Object o) -> ResidueRangePDBSelector"""
1011  return _IMP_atom._object_cast_to_ResidueRangePDBSelector(o)
1012 
1013 _object_types.append("ProteinLigandAtomPairScore")
1014 
1015 
1016 def _object_cast_to_ProteinLigandAtomPairScore(o):
1017  r"""_object_cast_to_ProteinLigandAtomPairScore(Object o) -> ProteinLigandAtomPairScore"""
1018  return _IMP_atom._object_cast_to_ProteinLigandAtomPairScore(o)
1019 
1020 _object_types.append("ProteinLigandRestraint")
1021 
1022 
1023 def _object_cast_to_ProteinLigandRestraint(o):
1024  r"""_object_cast_to_ProteinLigandRestraint(Object o) -> ProteinLigandRestraint"""
1025  return _IMP_atom._object_cast_to_ProteinLigandRestraint(o)
1026 
1027 _object_types.append("SameResiduePairFilter")
1028 
1029 
1030 def _object_cast_to_SameResiduePairFilter(o):
1031  r"""_object_cast_to_SameResiduePairFilter(Object o) -> SameResiduePairFilter"""
1032  return _IMP_atom._object_cast_to_SameResiduePairFilter(o)
1033 
1034 _object_types.append("SoapPairFilter")
1035 
1036 
1037 def _object_cast_to_SoapPairFilter(o):
1038  r"""_object_cast_to_SoapPairFilter(Object o) -> SoapPairFilter"""
1039  return _IMP_atom._object_cast_to_SoapPairFilter(o)
1040 
1041 _object_types.append("SmoothingFunction")
1042 
1043 
1044 def _object_cast_to_SmoothingFunction(o):
1045  r"""_object_cast_to_SmoothingFunction(Object o) -> SmoothingFunction"""
1046  return _IMP_atom._object_cast_to_SmoothingFunction(o)
1047 
1048 _object_types.append("StereochemistryPairFilter")
1049 
1050 
1051 def _object_cast_to_StereochemistryPairFilter(o):
1052  r"""_object_cast_to_StereochemistryPairFilter(Object o) -> StereochemistryPairFilter"""
1053  return _IMP_atom._object_cast_to_StereochemistryPairFilter(o)
1054 
1055 _object_types.append("VelocityScalingOptimizerState")
1056 
1057 
1058 def _object_cast_to_VelocityScalingOptimizerState(o):
1059  r"""_object_cast_to_VelocityScalingOptimizerState(Object o) -> VelocityScalingOptimizerState"""
1060  return _IMP_atom._object_cast_to_VelocityScalingOptimizerState(o)
1061 
1062 _object_types.append("WaterPDBSelector")
1063 
1064 
1065 def _object_cast_to_WaterPDBSelector(o):
1066  r"""_object_cast_to_WaterPDBSelector(Object o) -> WaterPDBSelector"""
1067  return _IMP_atom._object_cast_to_WaterPDBSelector(o)
1068 
1069 _object_types.append("WritePDBOptimizerState")
1070 
1071 
1072 def _object_cast_to_WritePDBOptimizerState(o):
1073  r"""_object_cast_to_WritePDBOptimizerState(Object o) -> WritePDBOptimizerState"""
1074  return _IMP_atom._object_cast_to_WritePDBOptimizerState(o)
1075 
1076 AtomTypes=list
1077 _plural_types.append("AtomTypes")
1078 _value_types.append("AtomType")
1079 
1080 
1081 CHARMMAtomTopologies=list
1082 _plural_types.append("CHARMMAtomTopologies")
1083 _value_types.append("CHARMMAtomTopology")
1084 
1085 
1086 CHARMMBondEndpoints=list
1087 _plural_types.append("CHARMMBondEndpoints")
1088 _value_types.append("CHARMMBondEndpoint")
1089 
1090 
1091 CHARMMBondParametersList=list
1092 _plural_types.append("CHARMMBondParametersList")
1093 _value_types.append("CHARMMBondParameters")
1094 
1095 
1096 CHARMMDihedralParametersList=list
1097 _plural_types.append("CHARMMDihedralParametersList")
1098 _value_types.append("CHARMMDihedralParameters")
1099 
1100 
1101 _object_types.append("CHARMMIdealResidueTopology")
1102 
1103 
1104 def _object_cast_to_CHARMMIdealResidueTopology(o):
1105  r"""_object_cast_to_CHARMMIdealResidueTopology(Object o) -> CHARMMIdealResidueTopology"""
1106  return _IMP_atom._object_cast_to_CHARMMIdealResidueTopology(o)
1107 
1108 CHARMMInternalCoordinates=list
1109 _plural_types.append("CHARMMInternalCoordinates")
1110 _value_types.append("CHARMMInternalCoordinate")
1111 
1112 
1113 _object_types.append("CHARMMPatch")
1114 
1115 
1116 def _object_cast_to_CHARMMPatch(o):
1117  r"""_object_cast_to_CHARMMPatch(Object o) -> CHARMMPatch"""
1118  return _IMP_atom._object_cast_to_CHARMMPatch(o)
1119 
1120 _object_types.append("CHARMMResidueTopologyBase")
1121 
1122 
1123 def _object_cast_to_CHARMMResidueTopologyBase(o):
1124  r"""_object_cast_to_CHARMMResidueTopologyBase(Object o) -> CHARMMResidueTopologyBase"""
1125  return _IMP_atom._object_cast_to_CHARMMResidueTopologyBase(o)
1126 
1127 ResidueTypes=list
1128 _plural_types.append("ResidueTypes")
1129 _value_types.append("ResidueType")
1130 
1131 
1132 ChainTypes=list
1133 _plural_types.append("ChainTypes")
1134 _value_types.append("ChainType")
1135 
1136 
1137 Selections=list
1138 _plural_types.append("Selections")
1139 _value_types.append("Selection")
1140 
1141 
1142 _object_types.append("RemoveRigidMotionOptimizerState")
1143 
1144 
1145 def _object_cast_to_RemoveRigidMotionOptimizerState(o):
1146  r"""_object_cast_to_RemoveRigidMotionOptimizerState(Object o) -> RemoveRigidMotionOptimizerState"""
1147  return _IMP_atom._object_cast_to_RemoveRigidMotionOptimizerState(o)
1148 
1149 _object_types.append("BerendsenThermostatOptimizerState")
1150 
1151 
1152 def _object_cast_to_BerendsenThermostatOptimizerState(o):
1153  r"""_object_cast_to_BerendsenThermostatOptimizerState(Object o) -> BerendsenThermostatOptimizerState"""
1154  return _IMP_atom._object_cast_to_BerendsenThermostatOptimizerState(o)
1155 
1156 _object_types.append("LangevinThermostatOptimizerState")
1157 
1158 
1159 def _object_cast_to_LangevinThermostatOptimizerState(o):
1160  r"""_object_cast_to_LangevinThermostatOptimizerState(Object o) -> LangevinThermostatOptimizerState"""
1161  return _IMP_atom._object_cast_to_LangevinThermostatOptimizerState(o)
1162 
1163 _object_types.append("SelectionGeometry")
1164 
1165 
1166 def _object_cast_to_SelectionGeometry(o):
1167  r"""_object_cast_to_SelectionGeometry(Object o) -> SelectionGeometry"""
1168  return _IMP_atom._object_cast_to_SelectionGeometry(o)
1169 
1170 _object_types.append("HierarchyGeometry")
1171 
1172 
1173 def _object_cast_to_HierarchyGeometry(o):
1174  r"""_object_cast_to_HierarchyGeometry(Object o) -> HierarchyGeometry"""
1175  return _IMP_atom._object_cast_to_HierarchyGeometry(o)
1176 
1177 _object_types.append("HierarchiesGeometry")
1178 
1179 
1180 def _object_cast_to_HierarchiesGeometry(o):
1181  r"""_object_cast_to_HierarchiesGeometry(Object o) -> HierarchiesGeometry"""
1182  return _IMP_atom._object_cast_to_HierarchiesGeometry(o)
1183 
1184 _object_types.append("BondGeometry")
1185 
1186 
1187 def _object_cast_to_BondGeometry(o):
1188  r"""_object_cast_to_BondGeometry(Object o) -> BondGeometry"""
1189  return _IMP_atom._object_cast_to_BondGeometry(o)
1190 
1191 _object_types.append("BondsGeometry")
1192 
1193 
1194 def _object_cast_to_BondsGeometry(o):
1195  r"""_object_cast_to_BondsGeometry(Object o) -> BondsGeometry"""
1196  return _IMP_atom._object_cast_to_BondsGeometry(o)
1197 
1198 _object_types.append("CAAngleRestraint")
1199 
1200 
1201 def _object_cast_to_CAAngleRestraint(o):
1202  r"""_object_cast_to_CAAngleRestraint(Object o) -> CAAngleRestraint"""
1203  return _IMP_atom._object_cast_to_CAAngleRestraint(o)
1204 
1205 _object_types.append("CADihedralRestraint")
1206 
1207 
1208 def _object_cast_to_CADihedralRestraint(o):
1209  r"""_object_cast_to_CADihedralRestraint(Object o) -> CADihedralRestraint"""
1210  return _IMP_atom._object_cast_to_CADihedralRestraint(o)
1211 
1212 _object_types.append("HelixRestraint")
1213 
1214 
1215 def _object_cast_to_HelixRestraint(o):
1216  r"""_object_cast_to_HelixRestraint(Object o) -> HelixRestraint"""
1217  return _IMP_atom._object_cast_to_HelixRestraint(o)
1218 
1219 CHARMMDihedrals=list
1220 _plural_types.append("CHARMMDihedrals")
1221 _value_types.append("CHARMMDihedral")
1222 
1223 
1224 CHARMMBonds=list
1225 _plural_types.append("CHARMMBonds")
1226 _value_types.append("CHARMMBond")
1227 
1228 
1229 CHARMMAngles=list
1230 _plural_types.append("CHARMMAngles")
1231 _value_types.append("CHARMMAngle")
1232 
1233 class Bond(IMP.Decorator):
1234  r"""Proxy of C++ IMP::atom::Bond class."""
1235 
1236  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1237 
1238  def __init__(self, *args):
1239  r"""
1240  __init__(Bond self) -> Bond
1241  __init__(Bond self, Model m, ParticleIndex id) -> Bond
1242  __init__(Bond self, _ParticleAdaptor d) -> Bond
1243  """
1244  _IMP_atom.Bond_swiginit(self, _IMP_atom.new_Bond(*args))
1245 
1246  def show(self, *args):
1247  r"""show(Bond self, _ostream out=std::cout)"""
1248  return _IMP_atom.Bond_show(self, *args)
1249 
1250  @staticmethod
1251  def get_is_setup(*args):
1252  r"""
1253  get_is_setup(_ParticleAdaptor p) -> bool
1254  get_is_setup(Model m, ParticleIndex pi) -> bool
1255  """
1256  return _IMP_atom.Bond_get_is_setup(*args)
1257  UNKNOWN = _IMP_atom.Bond_UNKNOWN
1258 
1259  NONBIOLOGICAL = _IMP_atom.Bond_NONBIOLOGICAL
1260 
1261  SINGLE = _IMP_atom.Bond_SINGLE
1262 
1263  DOUBLE = _IMP_atom.Bond_DOUBLE
1264 
1265  TRIPLE = _IMP_atom.Bond_TRIPLE
1266 
1267  HYDROGEN = _IMP_atom.Bond_HYDROGEN
1268 
1269  SALT = _IMP_atom.Bond_SALT
1270 
1271  PEPTIDE = _IMP_atom.Bond_PEPTIDE
1272 
1273  AMIDE = _IMP_atom.Bond_AMIDE
1274 
1275  AROMATIC = _IMP_atom.Bond_AROMATIC
1276 
1277 
1278  def get_bonded(self, i):
1279  r"""get_bonded(Bond self, unsigned int i) -> Bonded"""
1280  return _IMP_atom.Bond_get_bonded(self, i)
1281 
1282  def get_type(self):
1283  r"""get_type(Bond self) -> IMP::Int"""
1284  return _IMP_atom.Bond_get_type(self)
1285 
1286  def set_type(self, t):
1287  r"""set_type(Bond self, IMP::Int t)"""
1288  return _IMP_atom.Bond_set_type(self, t)
1289 
1290  def get_order(self):
1291  r"""get_order(Bond self) -> IMP::Int"""
1292  return _IMP_atom.Bond_get_order(self)
1293 
1294  def set_order(self, t):
1295  r"""set_order(Bond self, IMP::Int t)"""
1296  return _IMP_atom.Bond_set_order(self, t)
1297 
1298  def get_length(self):
1299  r"""get_length(Bond self) -> IMP::Float"""
1300  return _IMP_atom.Bond_get_length(self)
1301 
1302  def set_length(self, t):
1303  r"""set_length(Bond self, IMP::Float t)"""
1304  return _IMP_atom.Bond_set_length(self, t)
1305 
1306  def get_stiffness(self):
1307  r"""get_stiffness(Bond self) -> IMP::Float"""
1308  return _IMP_atom.Bond_get_stiffness(self)
1309 
1310  def set_stiffness(self, t):
1311  r"""set_stiffness(Bond self, IMP::Float t)"""
1312  return _IMP_atom.Bond_set_stiffness(self, t)
1313 
1314  @staticmethod
1315  def get_length_key():
1316  r"""get_length_key() -> FloatKey"""
1317  return _IMP_atom.Bond_get_length_key()
1318 
1319  def add_attribute(self, *args):
1320  r"""
1321  add_attribute(Bond self, FloatKey k, IMP::Float v, bool opt)
1322  add_attribute(Bond self, FloatKey a0, IMP::Float a1)
1323  add_attribute(Bond self, IntKey a0, IMP::Int a1)
1324  add_attribute(Bond self, FloatsKey a0, IMP::Floats a1)
1325  add_attribute(Bond self, IntsKey a0, IMP::Ints a1)
1326  add_attribute(Bond self, StringKey a0, IMP::String a1)
1327  add_attribute(Bond self, ParticleIndexKey a0, Particle a1)
1328  add_attribute(Bond self, ObjectKey a0, Object a1)
1329  add_attribute(Bond self, SparseFloatKey a0, IMP::Float a1)
1330  add_attribute(Bond self, SparseIntKey a0, IMP::Int a1)
1331  add_attribute(Bond self, SparseStringKey a0, IMP::String a1)
1332  add_attribute(Bond self, SparseParticleIndexKey a0, ParticleIndex a1)
1333  """
1334  return _IMP_atom.Bond_add_attribute(self, *args)
1335 
1336  def get_value(self, *args):
1337  r"""
1338  get_value(Bond self, FloatKey a0) -> IMP::Float
1339  get_value(Bond self, IntKey a0) -> IMP::Int
1340  get_value(Bond self, FloatsKey a0) -> IMP::Floats
1341  get_value(Bond self, IntsKey a0) -> IMP::Ints
1342  get_value(Bond self, StringKey a0) -> IMP::String
1343  get_value(Bond self, ParticleIndexKey a0) -> Particle
1344  get_value(Bond self, ObjectKey a0) -> Object
1345  get_value(Bond self, SparseFloatKey a0) -> IMP::Float
1346  get_value(Bond self, SparseIntKey a0) -> IMP::Int
1347  get_value(Bond self, SparseStringKey a0) -> IMP::String
1348  get_value(Bond self, SparseParticleIndexKey a0) -> ParticleIndex
1349  """
1350  return _IMP_atom.Bond_get_value(self, *args)
1351 
1352  def set_value(self, *args):
1353  r"""
1354  set_value(Bond self, FloatKey a0, IMP::Float a1)
1355  set_value(Bond self, IntKey a0, IMP::Int a1)
1356  set_value(Bond self, FloatsKey a0, IMP::Floats a1)
1357  set_value(Bond self, IntsKey a0, IMP::Ints a1)
1358  set_value(Bond self, StringKey a0, IMP::String a1)
1359  set_value(Bond self, ParticleIndexKey a0, Particle a1)
1360  set_value(Bond self, ObjectKey a0, Object a1)
1361  set_value(Bond self, SparseFloatKey a0, IMP::Float a1)
1362  set_value(Bond self, SparseIntKey a0, IMP::Int a1)
1363  set_value(Bond self, SparseStringKey a0, IMP::String a1)
1364  set_value(Bond self, SparseParticleIndexKey a0, ParticleIndex a1)
1365  """
1366  return _IMP_atom.Bond_set_value(self, *args)
1367 
1368  def remove_attribute(self, *args):
1369  r"""
1370  remove_attribute(Bond self, FloatKey a0)
1371  remove_attribute(Bond self, IntKey a0)
1372  remove_attribute(Bond self, FloatsKey a0)
1373  remove_attribute(Bond self, IntsKey a0)
1374  remove_attribute(Bond self, StringKey a0)
1375  remove_attribute(Bond self, ParticleIndexKey a0)
1376  remove_attribute(Bond self, ObjectKey a0)
1377  remove_attribute(Bond self, SparseFloatKey a0)
1378  remove_attribute(Bond self, SparseIntKey a0)
1379  remove_attribute(Bond self, SparseStringKey a0)
1380  remove_attribute(Bond self, SparseParticleIndexKey a0)
1381  """
1382  return _IMP_atom.Bond_remove_attribute(self, *args)
1383 
1384  def has_attribute(self, *args):
1385  r"""
1386  has_attribute(Bond self, FloatKey a0) -> bool
1387  has_attribute(Bond self, IntKey a0) -> bool
1388  has_attribute(Bond self, FloatsKey a0) -> bool
1389  has_attribute(Bond self, IntsKey a0) -> bool
1390  has_attribute(Bond self, StringKey a0) -> bool
1391  has_attribute(Bond self, ParticleIndexKey a0) -> bool
1392  has_attribute(Bond self, ObjectKey a0) -> bool
1393  has_attribute(Bond self, SparseFloatKey a0) -> bool
1394  has_attribute(Bond self, SparseIntKey a0) -> bool
1395  has_attribute(Bond self, SparseStringKey a0) -> bool
1396  has_attribute(Bond self, SparseParticleIndexKey a0) -> bool
1397  """
1398  return _IMP_atom.Bond_has_attribute(self, *args)
1399 
1400  def get_derivative(self, a0):
1401  r"""get_derivative(Bond self, FloatKey a0) -> double"""
1402  return _IMP_atom.Bond_get_derivative(self, a0)
1403 
1404  def get_name(self):
1405  r"""get_name(Bond self) -> std::string"""
1406  return _IMP_atom.Bond_get_name(self)
1407 
1408  def clear_caches(self):
1409  r"""clear_caches(Bond self)"""
1410  return _IMP_atom.Bond_clear_caches(self)
1411 
1412  def set_name(self, a0):
1413  r"""set_name(Bond self, std::string a0)"""
1414  return _IMP_atom.Bond_set_name(self, a0)
1415 
1416  def set_check_level(self, a0):
1417  r"""set_check_level(Bond self, IMP::CheckLevel a0)"""
1418  return _IMP_atom.Bond_set_check_level(self, a0)
1419 
1420  def add_to_derivative(self, a0, a1, a2):
1421  r"""add_to_derivative(Bond self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
1422  return _IMP_atom.Bond_add_to_derivative(self, a0, a1, a2)
1423 
1424  def set_is_optimized(self, a0, a1):
1425  r"""set_is_optimized(Bond self, FloatKey a0, bool a1)"""
1426  return _IMP_atom.Bond_set_is_optimized(self, a0, a1)
1427 
1428  def get_is_optimized(self, a0):
1429  r"""get_is_optimized(Bond self, FloatKey a0) -> bool"""
1430  return _IMP_atom.Bond_get_is_optimized(self, a0)
1431 
1432  def get_check_level(self):
1433  r"""get_check_level(Bond self) -> IMP::CheckLevel"""
1434  return _IMP_atom.Bond_get_check_level(self)
1435 
1436  def __eq__(self, *args):
1437  r"""
1438  __eq__(Bond self, Bond o) -> bool
1439  __eq__(Bond self, Particle d) -> bool
1440  """
1441  return _IMP_atom.Bond___eq__(self, *args)
1442 
1443  def __ne__(self, *args):
1444  r"""
1445  __ne__(Bond self, Bond o) -> bool
1446  __ne__(Bond self, Particle d) -> bool
1447  """
1448  return _IMP_atom.Bond___ne__(self, *args)
1449 
1450  def __le__(self, *args):
1451  r"""
1452  __le__(Bond self, Bond o) -> bool
1453  __le__(Bond self, Particle d) -> bool
1454  """
1455  return _IMP_atom.Bond___le__(self, *args)
1456 
1457  def __lt__(self, *args):
1458  r"""
1459  __lt__(Bond self, Bond o) -> bool
1460  __lt__(Bond self, Particle d) -> bool
1461  """
1462  return _IMP_atom.Bond___lt__(self, *args)
1463 
1464  def __ge__(self, *args):
1465  r"""
1466  __ge__(Bond self, Bond o) -> bool
1467  __ge__(Bond self, Particle d) -> bool
1468  """
1469  return _IMP_atom.Bond___ge__(self, *args)
1470 
1471  def __gt__(self, *args):
1472  r"""
1473  __gt__(Bond self, Bond o) -> bool
1474  __gt__(Bond self, Particle d) -> bool
1475  """
1476  return _IMP_atom.Bond___gt__(self, *args)
1477 
1478  def __hash__(self):
1479  r"""__hash__(Bond self) -> std::size_t"""
1480  return _IMP_atom.Bond___hash__(self)
1481 
1482  def __str__(self):
1483  r"""__str__(Bond self) -> std::string"""
1484  return _IMP_atom.Bond___str__(self)
1485 
1486  def __repr__(self):
1487  r"""__repr__(Bond self) -> std::string"""
1488  return _IMP_atom.Bond___repr__(self)
1489 
1490  def _get_as_binary(self):
1491  r"""_get_as_binary(Bond self) -> PyObject *"""
1492  return _IMP_atom.Bond__get_as_binary(self)
1493 
1494  def _set_from_binary(self, p):
1495  r"""_set_from_binary(Bond self, PyObject * p)"""
1496  return _IMP_atom.Bond__set_from_binary(self, p)
1497 
1498  def __getstate__(self):
1499  p = self._get_as_binary()
1500  if len(self.__dict__) > 1:
1501  d = self.__dict__.copy()
1502  del d['this']
1503  p = (d, p)
1504  return p
1505 
1506  def __setstate__(self, p):
1507  if not hasattr(self, 'this'):
1508  self.__init__()
1509  if isinstance(p, tuple):
1510  d, p = p
1511  self.__dict__.update(d)
1512  return self._set_from_binary(p)
1513 
1514  __swig_destroy__ = _IMP_atom.delete_Bond
1515 
1516 # Register Bond in _IMP_atom:
1517 _IMP_atom.Bond_swigregister(Bond)
1518 class Bonded(IMP.Decorator):
1519  r"""Proxy of C++ IMP::atom::Bonded class."""
1520 
1521  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1522 
1523  def __init__(self, *args):
1524  r"""
1525  __init__(Bonded self) -> Bonded
1526  __init__(Bonded self, Model m, ParticleIndex id) -> Bonded
1527  __init__(Bonded self, _ParticleAdaptor d) -> Bonded
1528  """
1529  _IMP_atom.Bonded_swiginit(self, _IMP_atom.new_Bonded(*args))
1530 
1531  def show(self, *args):
1532  r"""show(Bonded self, _ostream out=std::cout)"""
1533  return _IMP_atom.Bonded_show(self, *args)
1534 
1535  @staticmethod
1536  def setup_particle(*args):
1537  r"""
1538  setup_particle(Model m, ParticleIndex pi) -> Bonded
1539  setup_particle(_ParticleAdaptor pa) -> Bonded
1540  """
1541  return _IMP_atom.Bonded_setup_particle(*args)
1542 
1543  @staticmethod
1544  def get_is_setup(*args):
1545  r"""
1546  get_is_setup(_ParticleAdaptor p) -> bool
1547  get_is_setup(Model m, ParticleIndex pi) -> bool
1548  """
1549  return _IMP_atom.Bonded_get_is_setup(*args)
1550 
1551  def get_number_of_bonds(self):
1552  r"""get_number_of_bonds(Bonded self) -> unsigned int"""
1553  return _IMP_atom.Bonded_get_number_of_bonds(self)
1554 
1555  def get_bond_indexes(self):
1556  r"""get_bond_indexes(Bonded self) -> IMP::ParticleIndexes"""
1557  return _IMP_atom.Bonded_get_bond_indexes(self)
1558 
1559  def get_bond(self, i):
1560  r"""get_bond(Bonded self, unsigned int i) -> Bond"""
1561  return _IMP_atom.Bonded_get_bond(self, i)
1562 
1563  def get_bonded(self, i):
1564  r"""get_bonded(Bonded self, unsigned int i) -> Bonded"""
1565  return _IMP_atom.Bonded_get_bonded(self, i)
1566 
1567  def add_attribute(self, *args):
1568  r"""
1569  add_attribute(Bonded self, FloatKey k, IMP::Float v, bool opt)
1570  add_attribute(Bonded self, FloatKey a0, IMP::Float a1)
1571  add_attribute(Bonded self, IntKey a0, IMP::Int a1)
1572  add_attribute(Bonded self, FloatsKey a0, IMP::Floats a1)
1573  add_attribute(Bonded self, IntsKey a0, IMP::Ints a1)
1574  add_attribute(Bonded self, StringKey a0, IMP::String a1)
1575  add_attribute(Bonded self, ParticleIndexKey a0, Particle a1)
1576  add_attribute(Bonded self, ObjectKey a0, Object a1)
1577  add_attribute(Bonded self, SparseFloatKey a0, IMP::Float a1)
1578  add_attribute(Bonded self, SparseIntKey a0, IMP::Int a1)
1579  add_attribute(Bonded self, SparseStringKey a0, IMP::String a1)
1580  add_attribute(Bonded self, SparseParticleIndexKey a0, ParticleIndex a1)
1581  """
1582  return _IMP_atom.Bonded_add_attribute(self, *args)
1583 
1584  def get_value(self, *args):
1585  r"""
1586  get_value(Bonded self, FloatKey a0) -> IMP::Float
1587  get_value(Bonded self, IntKey a0) -> IMP::Int
1588  get_value(Bonded self, FloatsKey a0) -> IMP::Floats
1589  get_value(Bonded self, IntsKey a0) -> IMP::Ints
1590  get_value(Bonded self, StringKey a0) -> IMP::String
1591  get_value(Bonded self, ParticleIndexKey a0) -> Particle
1592  get_value(Bonded self, ObjectKey a0) -> Object
1593  get_value(Bonded self, SparseFloatKey a0) -> IMP::Float
1594  get_value(Bonded self, SparseIntKey a0) -> IMP::Int
1595  get_value(Bonded self, SparseStringKey a0) -> IMP::String
1596  get_value(Bonded self, SparseParticleIndexKey a0) -> ParticleIndex
1597  """
1598  return _IMP_atom.Bonded_get_value(self, *args)
1599 
1600  def set_value(self, *args):
1601  r"""
1602  set_value(Bonded self, FloatKey a0, IMP::Float a1)
1603  set_value(Bonded self, IntKey a0, IMP::Int a1)
1604  set_value(Bonded self, FloatsKey a0, IMP::Floats a1)
1605  set_value(Bonded self, IntsKey a0, IMP::Ints a1)
1606  set_value(Bonded self, StringKey a0, IMP::String a1)
1607  set_value(Bonded self, ParticleIndexKey a0, Particle a1)
1608  set_value(Bonded self, ObjectKey a0, Object a1)
1609  set_value(Bonded self, SparseFloatKey a0, IMP::Float a1)
1610  set_value(Bonded self, SparseIntKey a0, IMP::Int a1)
1611  set_value(Bonded self, SparseStringKey a0, IMP::String a1)
1612  set_value(Bonded self, SparseParticleIndexKey a0, ParticleIndex a1)
1613  """
1614  return _IMP_atom.Bonded_set_value(self, *args)
1615 
1616  def remove_attribute(self, *args):
1617  r"""
1618  remove_attribute(Bonded self, FloatKey a0)
1619  remove_attribute(Bonded self, IntKey a0)
1620  remove_attribute(Bonded self, FloatsKey a0)
1621  remove_attribute(Bonded self, IntsKey a0)
1622  remove_attribute(Bonded self, StringKey a0)
1623  remove_attribute(Bonded self, ParticleIndexKey a0)
1624  remove_attribute(Bonded self, ObjectKey a0)
1625  remove_attribute(Bonded self, SparseFloatKey a0)
1626  remove_attribute(Bonded self, SparseIntKey a0)
1627  remove_attribute(Bonded self, SparseStringKey a0)
1628  remove_attribute(Bonded self, SparseParticleIndexKey a0)
1629  """
1630  return _IMP_atom.Bonded_remove_attribute(self, *args)
1631 
1632  def has_attribute(self, *args):
1633  r"""
1634  has_attribute(Bonded self, FloatKey a0) -> bool
1635  has_attribute(Bonded self, IntKey a0) -> bool
1636  has_attribute(Bonded self, FloatsKey a0) -> bool
1637  has_attribute(Bonded self, IntsKey a0) -> bool
1638  has_attribute(Bonded self, StringKey a0) -> bool
1639  has_attribute(Bonded self, ParticleIndexKey a0) -> bool
1640  has_attribute(Bonded self, ObjectKey a0) -> bool
1641  has_attribute(Bonded self, SparseFloatKey a0) -> bool
1642  has_attribute(Bonded self, SparseIntKey a0) -> bool
1643  has_attribute(Bonded self, SparseStringKey a0) -> bool
1644  has_attribute(Bonded self, SparseParticleIndexKey a0) -> bool
1645  """
1646  return _IMP_atom.Bonded_has_attribute(self, *args)
1647 
1648  def get_derivative(self, a0):
1649  r"""get_derivative(Bonded self, FloatKey a0) -> double"""
1650  return _IMP_atom.Bonded_get_derivative(self, a0)
1651 
1652  def get_name(self):
1653  r"""get_name(Bonded self) -> std::string"""
1654  return _IMP_atom.Bonded_get_name(self)
1655 
1656  def clear_caches(self):
1657  r"""clear_caches(Bonded self)"""
1658  return _IMP_atom.Bonded_clear_caches(self)
1659 
1660  def set_name(self, a0):
1661  r"""set_name(Bonded self, std::string a0)"""
1662  return _IMP_atom.Bonded_set_name(self, a0)
1663 
1664  def set_check_level(self, a0):
1665  r"""set_check_level(Bonded self, IMP::CheckLevel a0)"""
1666  return _IMP_atom.Bonded_set_check_level(self, a0)
1667 
1668  def add_to_derivative(self, a0, a1, a2):
1669  r"""add_to_derivative(Bonded self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
1670  return _IMP_atom.Bonded_add_to_derivative(self, a0, a1, a2)
1671 
1672  def set_is_optimized(self, a0, a1):
1673  r"""set_is_optimized(Bonded self, FloatKey a0, bool a1)"""
1674  return _IMP_atom.Bonded_set_is_optimized(self, a0, a1)
1675 
1676  def get_is_optimized(self, a0):
1677  r"""get_is_optimized(Bonded self, FloatKey a0) -> bool"""
1678  return _IMP_atom.Bonded_get_is_optimized(self, a0)
1679 
1680  def get_check_level(self):
1681  r"""get_check_level(Bonded self) -> IMP::CheckLevel"""
1682  return _IMP_atom.Bonded_get_check_level(self)
1683 
1684  def __eq__(self, *args):
1685  r"""
1686  __eq__(Bonded self, Bonded o) -> bool
1687  __eq__(Bonded self, Particle d) -> bool
1688  """
1689  return _IMP_atom.Bonded___eq__(self, *args)
1690 
1691  def __ne__(self, *args):
1692  r"""
1693  __ne__(Bonded self, Bonded o) -> bool
1694  __ne__(Bonded self, Particle d) -> bool
1695  """
1696  return _IMP_atom.Bonded___ne__(self, *args)
1697 
1698  def __le__(self, *args):
1699  r"""
1700  __le__(Bonded self, Bonded o) -> bool
1701  __le__(Bonded self, Particle d) -> bool
1702  """
1703  return _IMP_atom.Bonded___le__(self, *args)
1704 
1705  def __lt__(self, *args):
1706  r"""
1707  __lt__(Bonded self, Bonded o) -> bool
1708  __lt__(Bonded self, Particle d) -> bool
1709  """
1710  return _IMP_atom.Bonded___lt__(self, *args)
1711 
1712  def __ge__(self, *args):
1713  r"""
1714  __ge__(Bonded self, Bonded o) -> bool
1715  __ge__(Bonded self, Particle d) -> bool
1716  """
1717  return _IMP_atom.Bonded___ge__(self, *args)
1718 
1719  def __gt__(self, *args):
1720  r"""
1721  __gt__(Bonded self, Bonded o) -> bool
1722  __gt__(Bonded self, Particle d) -> bool
1723  """
1724  return _IMP_atom.Bonded___gt__(self, *args)
1725 
1726  def __hash__(self):
1727  r"""__hash__(Bonded self) -> std::size_t"""
1728  return _IMP_atom.Bonded___hash__(self)
1729 
1730  def __str__(self):
1731  r"""__str__(Bonded self) -> std::string"""
1732  return _IMP_atom.Bonded___str__(self)
1733 
1734  def __repr__(self):
1735  r"""__repr__(Bonded self) -> std::string"""
1736  return _IMP_atom.Bonded___repr__(self)
1737 
1738  def _get_as_binary(self):
1739  r"""_get_as_binary(Bonded self) -> PyObject *"""
1740  return _IMP_atom.Bonded__get_as_binary(self)
1741 
1742  def _set_from_binary(self, p):
1743  r"""_set_from_binary(Bonded self, PyObject * p)"""
1744  return _IMP_atom.Bonded__set_from_binary(self, p)
1745 
1746  def __getstate__(self):
1747  p = self._get_as_binary()
1748  if len(self.__dict__) > 1:
1749  d = self.__dict__.copy()
1750  del d['this']
1751  p = (d, p)
1752  return p
1753 
1754  def __setstate__(self, p):
1755  if not hasattr(self, 'this'):
1756  self.__init__()
1757  if isinstance(p, tuple):
1758  d, p = p
1759  self.__dict__.update(d)
1760  return self._set_from_binary(p)
1761 
1762  __swig_destroy__ = _IMP_atom.delete_Bonded
1763 
1764 # Register Bonded in _IMP_atom:
1765 _IMP_atom.Bonded_swigregister(Bonded)
1766 
1767 def create_custom_bond(a, b, length, stiffness=-1):
1768  r"""create_custom_bond(Bonded a, Bonded b, IMP::Float length, IMP::Float stiffness=-1) -> Bond"""
1769  return _IMP_atom.create_custom_bond(a, b, length, stiffness)
1770 
1771 def create_bond(*args):
1772  r"""
1773  create_bond(Bonded a, Bonded b, IMP::Int t) -> Bond
1774  create_bond(Bonded a, Bonded b, Bond o) -> Bond
1775  """
1776  return _IMP_atom.create_bond(*args)
1777 
1778 def destroy_bond(b):
1779  r"""destroy_bond(Bond b)"""
1780  return _IMP_atom.destroy_bond(b)
1781 
1782 def get_bond(a, b):
1783  r"""get_bond(Bonded a, Bonded b) -> Bond"""
1784  return _IMP_atom.get_bond(a, b)
1785 class BondGeometry(IMP.display.SingletonGeometry):
1786  r"""Proxy of C++ IMP::atom::BondGeometry class."""
1787 
1788  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1789 
1790  def __init__(self, *args):
1791  r"""
1792  __init__(BondGeometry self, Particle p) -> BondGeometry
1793  __init__(BondGeometry self, Bond d) -> BondGeometry
1794  """
1795  _IMP_atom.BondGeometry_swiginit(self, _IMP_atom.new_BondGeometry(*args))
1796 
1797  def get_version_info(self):
1798  r"""get_version_info(BondGeometry self) -> VersionInfo"""
1799  return _IMP_atom.BondGeometry_get_version_info(self)
1800  __swig_destroy__ = _IMP_atom.delete_BondGeometry
1801 
1802  def __str__(self):
1803  r"""__str__(BondGeometry self) -> std::string"""
1804  return _IMP_atom.BondGeometry___str__(self)
1805 
1806  def __repr__(self):
1807  r"""__repr__(BondGeometry self) -> std::string"""
1808  return _IMP_atom.BondGeometry___repr__(self)
1809 
1810  @staticmethod
1811  def get_from(o):
1812  return _object_cast_to_BondGeometry(o)
1813 
1814 
1815 # Register BondGeometry in _IMP_atom:
1816 _IMP_atom.BondGeometry_swigregister(BondGeometry)
1817 class BondsGeometry(IMP.display.SingletonsGeometry):
1818  r"""Proxy of C++ IMP::atom::BondsGeometry class."""
1819 
1820  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1821 
1822  def __init__(self, sc):
1823  r"""__init__(BondsGeometry self, SingletonContainer sc) -> BondsGeometry"""
1824  _IMP_atom.BondsGeometry_swiginit(self, _IMP_atom.new_BondsGeometry(sc))
1825 
1826  def get_version_info(self):
1827  r"""get_version_info(BondsGeometry self) -> VersionInfo"""
1828  return _IMP_atom.BondsGeometry_get_version_info(self)
1829  __swig_destroy__ = _IMP_atom.delete_BondsGeometry
1830 
1831  def __str__(self):
1832  r"""__str__(BondsGeometry self) -> std::string"""
1833  return _IMP_atom.BondsGeometry___str__(self)
1834 
1835  def __repr__(self):
1836  r"""__repr__(BondsGeometry self) -> std::string"""
1837  return _IMP_atom.BondsGeometry___repr__(self)
1838 
1839  @staticmethod
1840  def get_from(o):
1841  return _object_cast_to_BondsGeometry(o)
1842 
1843 
1844 # Register BondsGeometry in _IMP_atom:
1845 _IMP_atom.BondsGeometry_swigregister(BondsGeometry)
1846 class Hierarchy(IMP.core.Hierarchy):
1847  r"""Proxy of C++ IMP::atom::Hierarchy class."""
1848 
1849  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1850 
1851  def __init__(self, *args):
1852  r"""
1853  __init__(Hierarchy self, Model m, ParticleIndex pi) -> Hierarchy
1854  __init__(Hierarchy self, _ParticleAdaptor pi) -> Hierarchy
1855  __init__(Hierarchy self) -> Hierarchy
1856  __init__(Hierarchy self, Hierarchy h) -> Hierarchy
1857  """
1858  _IMP_atom.Hierarchy_swiginit(self, _IMP_atom.new_Hierarchy(*args))
1859 
1860  @staticmethod
1861  def setup_particle(*args):
1862  r"""
1863  setup_particle(Particle p, _ParticleIndexesAdaptor children) -> Hierarchy
1864  setup_particle(Particle p) -> Hierarchy
1865  setup_particle(Model m, ParticleIndex pi, _ParticleIndexesAdaptor children=IMP::ParticleIndexesAdaptor()) -> Hierarchy
1866  """
1867  return _IMP_atom.Hierarchy_setup_particle(*args)
1868 
1869  @staticmethod
1870  def get_is_setup(*args):
1871  r"""
1872  get_is_setup(Particle p) -> bool
1873  get_is_setup(Model m, ParticleIndex p) -> bool
1874  """
1875  return _IMP_atom.Hierarchy_get_is_setup(*args)
1876 
1877  def get_is_valid(self, print_info=False):
1878  r"""get_is_valid(Hierarchy self, bool print_info=False) -> bool"""
1879  return _IMP_atom.Hierarchy_get_is_valid(self, print_info)
1880 
1881  def add_child(self, o):
1882  r"""add_child(Hierarchy self, Hierarchy o)"""
1883  return _IMP_atom.Hierarchy_add_child(self, o)
1884 
1885  def get_child(self, i):
1886  r"""get_child(Hierarchy self, unsigned int i) -> Hierarchy"""
1887  return _IMP_atom.Hierarchy_get_child(self, i)
1888 
1889  def get_children(self):
1890  r"""get_children(Hierarchy self) -> IMP::atom::Hierarchies"""
1891  return _IMP_atom.Hierarchy_get_children(self)
1892 
1893  def get_parent(self):
1894  r"""get_parent(Hierarchy self) -> Hierarchy"""
1895  return _IMP_atom.Hierarchy_get_parent(self)
1896 
1897  @staticmethod
1898  def get_traits():
1899  r"""get_traits() -> HierarchyTraits"""
1900  return _IMP_atom.Hierarchy_get_traits()
1901 
1902  def show(self, *args):
1903  r"""
1904  show(Hierarchy self, _ostream out, std::string delimiter)
1905  show(Hierarchy self, _ostream out=std::cout)
1906  """
1907  return _IMP_atom.Hierarchy_show(self, *args)
1908 
1909  def add_attribute(self, *args):
1910  r"""
1911  add_attribute(Hierarchy self, FloatKey k, IMP::Float v, bool opt)
1912  add_attribute(Hierarchy self, FloatKey a0, IMP::Float a1)
1913  add_attribute(Hierarchy self, IntKey a0, IMP::Int a1)
1914  add_attribute(Hierarchy self, FloatsKey a0, IMP::Floats a1)
1915  add_attribute(Hierarchy self, IntsKey a0, IMP::Ints a1)
1916  add_attribute(Hierarchy self, StringKey a0, IMP::String a1)
1917  add_attribute(Hierarchy self, ParticleIndexKey a0, Particle a1)
1918  add_attribute(Hierarchy self, ObjectKey a0, Object a1)
1919  add_attribute(Hierarchy self, SparseFloatKey a0, IMP::Float a1)
1920  add_attribute(Hierarchy self, SparseIntKey a0, IMP::Int a1)
1921  add_attribute(Hierarchy self, SparseStringKey a0, IMP::String a1)
1922  add_attribute(Hierarchy self, SparseParticleIndexKey a0, ParticleIndex a1)
1923  """
1924  return _IMP_atom.Hierarchy_add_attribute(self, *args)
1925 
1926  def get_value(self, *args):
1927  r"""
1928  get_value(Hierarchy self, FloatKey a0) -> IMP::Float
1929  get_value(Hierarchy self, IntKey a0) -> IMP::Int
1930  get_value(Hierarchy self, FloatsKey a0) -> IMP::Floats
1931  get_value(Hierarchy self, IntsKey a0) -> IMP::Ints
1932  get_value(Hierarchy self, StringKey a0) -> IMP::String
1933  get_value(Hierarchy self, ParticleIndexKey a0) -> Particle
1934  get_value(Hierarchy self, ObjectKey a0) -> Object
1935  get_value(Hierarchy self, SparseFloatKey a0) -> IMP::Float
1936  get_value(Hierarchy self, SparseIntKey a0) -> IMP::Int
1937  get_value(Hierarchy self, SparseStringKey a0) -> IMP::String
1938  get_value(Hierarchy self, SparseParticleIndexKey a0) -> ParticleIndex
1939  """
1940  return _IMP_atom.Hierarchy_get_value(self, *args)
1941 
1942  def set_value(self, *args):
1943  r"""
1944  set_value(Hierarchy self, FloatKey a0, IMP::Float a1)
1945  set_value(Hierarchy self, IntKey a0, IMP::Int a1)
1946  set_value(Hierarchy self, FloatsKey a0, IMP::Floats a1)
1947  set_value(Hierarchy self, IntsKey a0, IMP::Ints a1)
1948  set_value(Hierarchy self, StringKey a0, IMP::String a1)
1949  set_value(Hierarchy self, ParticleIndexKey a0, Particle a1)
1950  set_value(Hierarchy self, ObjectKey a0, Object a1)
1951  set_value(Hierarchy self, SparseFloatKey a0, IMP::Float a1)
1952  set_value(Hierarchy self, SparseIntKey a0, IMP::Int a1)
1953  set_value(Hierarchy self, SparseStringKey a0, IMP::String a1)
1954  set_value(Hierarchy self, SparseParticleIndexKey a0, ParticleIndex a1)
1955  """
1956  return _IMP_atom.Hierarchy_set_value(self, *args)
1957 
1958  def remove_attribute(self, *args):
1959  r"""
1960  remove_attribute(Hierarchy self, FloatKey a0)
1961  remove_attribute(Hierarchy self, IntKey a0)
1962  remove_attribute(Hierarchy self, FloatsKey a0)
1963  remove_attribute(Hierarchy self, IntsKey a0)
1964  remove_attribute(Hierarchy self, StringKey a0)
1965  remove_attribute(Hierarchy self, ParticleIndexKey a0)
1966  remove_attribute(Hierarchy self, ObjectKey a0)
1967  remove_attribute(Hierarchy self, SparseFloatKey a0)
1968  remove_attribute(Hierarchy self, SparseIntKey a0)
1969  remove_attribute(Hierarchy self, SparseStringKey a0)
1970  remove_attribute(Hierarchy self, SparseParticleIndexKey a0)
1971  """
1972  return _IMP_atom.Hierarchy_remove_attribute(self, *args)
1973 
1974  def has_attribute(self, *args):
1975  r"""
1976  has_attribute(Hierarchy self, FloatKey a0) -> bool
1977  has_attribute(Hierarchy self, IntKey a0) -> bool
1978  has_attribute(Hierarchy self, FloatsKey a0) -> bool
1979  has_attribute(Hierarchy self, IntsKey a0) -> bool
1980  has_attribute(Hierarchy self, StringKey a0) -> bool
1981  has_attribute(Hierarchy self, ParticleIndexKey a0) -> bool
1982  has_attribute(Hierarchy self, ObjectKey a0) -> bool
1983  has_attribute(Hierarchy self, SparseFloatKey a0) -> bool
1984  has_attribute(Hierarchy self, SparseIntKey a0) -> bool
1985  has_attribute(Hierarchy self, SparseStringKey a0) -> bool
1986  has_attribute(Hierarchy self, SparseParticleIndexKey a0) -> bool
1987  """
1988  return _IMP_atom.Hierarchy_has_attribute(self, *args)
1989 
1990  def get_derivative(self, a0):
1991  r"""get_derivative(Hierarchy self, FloatKey a0) -> double"""
1992  return _IMP_atom.Hierarchy_get_derivative(self, a0)
1993 
1994  def get_name(self):
1995  r"""get_name(Hierarchy self) -> std::string"""
1996  return _IMP_atom.Hierarchy_get_name(self)
1997 
1998  def clear_caches(self):
1999  r"""clear_caches(Hierarchy self)"""
2000  return _IMP_atom.Hierarchy_clear_caches(self)
2001 
2002  def set_name(self, a0):
2003  r"""set_name(Hierarchy self, std::string a0)"""
2004  return _IMP_atom.Hierarchy_set_name(self, a0)
2005 
2006  def set_check_level(self, a0):
2007  r"""set_check_level(Hierarchy self, IMP::CheckLevel a0)"""
2008  return _IMP_atom.Hierarchy_set_check_level(self, a0)
2009 
2010  def add_to_derivative(self, a0, a1, a2):
2011  r"""add_to_derivative(Hierarchy self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2012  return _IMP_atom.Hierarchy_add_to_derivative(self, a0, a1, a2)
2013 
2014  def set_is_optimized(self, a0, a1):
2015  r"""set_is_optimized(Hierarchy self, FloatKey a0, bool a1)"""
2016  return _IMP_atom.Hierarchy_set_is_optimized(self, a0, a1)
2017 
2018  def get_is_optimized(self, a0):
2019  r"""get_is_optimized(Hierarchy self, FloatKey a0) -> bool"""
2020  return _IMP_atom.Hierarchy_get_is_optimized(self, a0)
2021 
2022  def get_check_level(self):
2023  r"""get_check_level(Hierarchy self) -> IMP::CheckLevel"""
2024  return _IMP_atom.Hierarchy_get_check_level(self)
2025 
2026  def __eq__(self, *args):
2027  r"""
2028  __eq__(Hierarchy self, Hierarchy o) -> bool
2029  __eq__(Hierarchy self, Particle d) -> bool
2030  """
2031  return _IMP_atom.Hierarchy___eq__(self, *args)
2032 
2033  def __ne__(self, *args):
2034  r"""
2035  __ne__(Hierarchy self, Hierarchy o) -> bool
2036  __ne__(Hierarchy self, Particle d) -> bool
2037  """
2038  return _IMP_atom.Hierarchy___ne__(self, *args)
2039 
2040  def __le__(self, *args):
2041  r"""
2042  __le__(Hierarchy self, Hierarchy o) -> bool
2043  __le__(Hierarchy self, Particle d) -> bool
2044  """
2045  return _IMP_atom.Hierarchy___le__(self, *args)
2046 
2047  def __lt__(self, *args):
2048  r"""
2049  __lt__(Hierarchy self, Hierarchy o) -> bool
2050  __lt__(Hierarchy self, Particle d) -> bool
2051  """
2052  return _IMP_atom.Hierarchy___lt__(self, *args)
2053 
2054  def __ge__(self, *args):
2055  r"""
2056  __ge__(Hierarchy self, Hierarchy o) -> bool
2057  __ge__(Hierarchy self, Particle d) -> bool
2058  """
2059  return _IMP_atom.Hierarchy___ge__(self, *args)
2060 
2061  def __gt__(self, *args):
2062  r"""
2063  __gt__(Hierarchy self, Hierarchy o) -> bool
2064  __gt__(Hierarchy self, Particle d) -> bool
2065  """
2066  return _IMP_atom.Hierarchy___gt__(self, *args)
2067 
2068  def __hash__(self):
2069  r"""__hash__(Hierarchy self) -> std::size_t"""
2070  return _IMP_atom.Hierarchy___hash__(self)
2071 
2072  def __str__(self):
2073  r"""__str__(Hierarchy self) -> std::string"""
2074  return _IMP_atom.Hierarchy___str__(self)
2075 
2076  def __repr__(self):
2077  r"""__repr__(Hierarchy self) -> std::string"""
2078  return _IMP_atom.Hierarchy___repr__(self)
2079 
2080  def _get_as_binary(self):
2081  r"""_get_as_binary(Hierarchy self) -> PyObject *"""
2082  return _IMP_atom.Hierarchy__get_as_binary(self)
2083 
2084  def _set_from_binary(self, p):
2085  r"""_set_from_binary(Hierarchy self, PyObject * p)"""
2086  return _IMP_atom.Hierarchy__set_from_binary(self, p)
2087 
2088  def __getstate__(self):
2089  p = self._get_as_binary()
2090  if len(self.__dict__) > 1:
2091  d = self.__dict__.copy()
2092  del d['this']
2093  p = (d, p)
2094  return p
2095 
2096  def __setstate__(self, p):
2097  if not hasattr(self, 'this'):
2098  self.__init__()
2099  if isinstance(p, tuple):
2100  d, p = p
2101  self.__dict__.update(d)
2102  return self._set_from_binary(p)
2103 
2104  __swig_destroy__ = _IMP_atom.delete_Hierarchy
2105 
2106 # Register Hierarchy in _IMP_atom:
2107 _IMP_atom.Hierarchy_swigregister(Hierarchy)
2108 ATOM_TYPE = _IMP_atom.ATOM_TYPE
2109 
2110 RESIDUE_TYPE = _IMP_atom.RESIDUE_TYPE
2111 
2112 CHAIN_TYPE = _IMP_atom.CHAIN_TYPE
2113 
2114 MOLECULE_TYPE = _IMP_atom.MOLECULE_TYPE
2115 
2116 DOMAIN_TYPE = _IMP_atom.DOMAIN_TYPE
2117 
2118 FRAGMENT_TYPE = _IMP_atom.FRAGMENT_TYPE
2119 
2120 XYZ_TYPE = _IMP_atom.XYZ_TYPE
2121 
2122 XYZR_TYPE = _IMP_atom.XYZR_TYPE
2123 
2124 MASS_TYPE = _IMP_atom.MASS_TYPE
2125 
2126 STATE_TYPE = _IMP_atom.STATE_TYPE
2127 
2128 
2129 def get_by_type(mhd, t):
2130  r"""get_by_type(Hierarchy mhd, IMP::atom::GetByType t) -> IMP::atom::Hierarchies"""
2131  return _IMP_atom.get_by_type(mhd, t)
2132 
2133 def create_fragment(ps):
2134  r"""create_fragment(IMP::atom::Hierarchies const & ps) -> Hierarchy"""
2135  return _IMP_atom.create_fragment(ps)
2136 
2137 def get_internal_bonds(mhd, with_representations=False):
2138  r"""get_internal_bonds(Hierarchy mhd, bool with_representations=False) -> IMP::atom::Bonds"""
2139  return _IMP_atom.get_internal_bonds(mhd, with_representations)
2140 
2141 def get_root(h):
2142  r"""get_root(Hierarchy h) -> Hierarchy"""
2143  return _IMP_atom.get_root(h)
2144 
2145 def show(*args):
2146  r"""show(Hierarchy h, _ostream out=std::cout)"""
2147  return _IMP_atom.show(*args)
2148 
2149 def create_rigid_body(*args):
2150  r"""
2151  create_rigid_body(IMP::atom::Hierarchies const & h, std::string name=std::string("created rigid body")) -> RigidBody
2152  create_rigid_body(Hierarchy h) -> RigidBody
2153  """
2154  return _IMP_atom.create_rigid_body(*args)
2155 
2156 def create_compatible_rigid_body(h, reference):
2157  r"""create_compatible_rigid_body(Hierarchy h, Hierarchy reference) -> RigidBody"""
2158  return _IMP_atom.create_compatible_rigid_body(h, reference)
2159 
2160 def get_is_heterogen(h):
2161  r"""get_is_heterogen(Hierarchy h) -> bool"""
2162  return _IMP_atom.get_is_heterogen(h)
2163 
2164 def create_clone(d, m=None):
2165  r"""create_clone(Hierarchy d, Model m=None) -> Hierarchy"""
2166  return _IMP_atom.create_clone(d, m)
2167 
2168 def create_clone_one(d, m=None):
2169  r"""create_clone_one(Hierarchy d, Model m=None) -> Hierarchy"""
2170  return _IMP_atom.create_clone_one(d, m)
2171 
2172 def destroy(d):
2173  r"""destroy(Hierarchy d)"""
2174  return _IMP_atom.destroy(d)
2175 
2176 def get_bounding_box(h):
2177  r"""get_bounding_box(Hierarchy h) -> BoundingBox3D"""
2178  return _IMP_atom.get_bounding_box(h)
2179 
2180 def get_bounding_sphere(h):
2181  r"""get_bounding_sphere(Hierarchy h) -> Sphere3D"""
2182  return _IMP_atom.get_bounding_sphere(h)
2183 class Angle(IMP.Decorator):
2184  r"""Proxy of C++ IMP::atom::Angle class."""
2185 
2186  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2187 
2188  def __init__(self, *args):
2189  r"""
2190  __init__(Angle self) -> Angle
2191  __init__(Angle self, Model m, ParticleIndex id) -> Angle
2192  __init__(Angle self, _ParticleAdaptor d) -> Angle
2193  """
2194  _IMP_atom.Angle_swiginit(self, _IMP_atom.new_Angle(*args))
2195 
2196  def show(self, *args):
2197  r"""show(Angle self, _ostream out=std::cout)"""
2198  return _IMP_atom.Angle_show(self, *args)
2199 
2200  @staticmethod
2201  def setup_particle(*args):
2202  r"""
2203  setup_particle(Model m, ParticleIndex pi, XYZ a, XYZ b, XYZ c) -> Angle
2204  setup_particle(_ParticleAdaptor pa, XYZ a, XYZ b, XYZ c) -> Angle
2205  """
2206  return _IMP_atom.Angle_setup_particle(*args)
2207 
2208  @staticmethod
2209  def get_is_setup(*args):
2210  r"""
2211  get_is_setup(_ParticleAdaptor p) -> bool
2212  get_is_setup(Model m, ParticleIndex pi) -> bool
2213  """
2214  return _IMP_atom.Angle_get_is_setup(*args)
2215 
2216  def get_particle(self, *args):
2217  r"""
2218  get_particle(Angle self) -> Particle
2219  get_particle(Angle self, unsigned int i) -> Particle
2220  """
2221  return _IMP_atom.Angle_get_particle(self, *args)
2222 
2223  def get_ideal(self):
2224  r"""get_ideal(Angle self) -> IMP::Float"""
2225  return _IMP_atom.Angle_get_ideal(self)
2226 
2227  def set_ideal(self, t):
2228  r"""set_ideal(Angle self, IMP::Float t)"""
2229  return _IMP_atom.Angle_set_ideal(self, t)
2230 
2231  def get_stiffness(self):
2232  r"""get_stiffness(Angle self) -> IMP::Float"""
2233  return _IMP_atom.Angle_get_stiffness(self)
2234 
2235  def set_stiffness(self, t):
2236  r"""set_stiffness(Angle self, IMP::Float t)"""
2237  return _IMP_atom.Angle_set_stiffness(self, t)
2238 
2239  @staticmethod
2240  def get_particle_key(i):
2241  r"""get_particle_key(unsigned int i) -> ParticleIndexKey"""
2242  return _IMP_atom.Angle_get_particle_key(i)
2243 
2244  @staticmethod
2245  def get_ideal_key():
2246  r"""get_ideal_key() -> FloatKey"""
2247  return _IMP_atom.Angle_get_ideal_key()
2248 
2249  @staticmethod
2250  def get_stiffness_key():
2251  r"""get_stiffness_key() -> FloatKey"""
2252  return _IMP_atom.Angle_get_stiffness_key()
2253 
2254  def add_attribute(self, *args):
2255  r"""
2256  add_attribute(Angle self, FloatKey k, IMP::Float v, bool opt)
2257  add_attribute(Angle self, FloatKey a0, IMP::Float a1)
2258  add_attribute(Angle self, IntKey a0, IMP::Int a1)
2259  add_attribute(Angle self, FloatsKey a0, IMP::Floats a1)
2260  add_attribute(Angle self, IntsKey a0, IMP::Ints a1)
2261  add_attribute(Angle self, StringKey a0, IMP::String a1)
2262  add_attribute(Angle self, ParticleIndexKey a0, Particle a1)
2263  add_attribute(Angle self, ObjectKey a0, Object a1)
2264  add_attribute(Angle self, SparseFloatKey a0, IMP::Float a1)
2265  add_attribute(Angle self, SparseIntKey a0, IMP::Int a1)
2266  add_attribute(Angle self, SparseStringKey a0, IMP::String a1)
2267  add_attribute(Angle self, SparseParticleIndexKey a0, ParticleIndex a1)
2268  """
2269  return _IMP_atom.Angle_add_attribute(self, *args)
2270 
2271  def get_value(self, *args):
2272  r"""
2273  get_value(Angle self, FloatKey a0) -> IMP::Float
2274  get_value(Angle self, IntKey a0) -> IMP::Int
2275  get_value(Angle self, FloatsKey a0) -> IMP::Floats
2276  get_value(Angle self, IntsKey a0) -> IMP::Ints
2277  get_value(Angle self, StringKey a0) -> IMP::String
2278  get_value(Angle self, ParticleIndexKey a0) -> Particle
2279  get_value(Angle self, ObjectKey a0) -> Object
2280  get_value(Angle self, SparseFloatKey a0) -> IMP::Float
2281  get_value(Angle self, SparseIntKey a0) -> IMP::Int
2282  get_value(Angle self, SparseStringKey a0) -> IMP::String
2283  get_value(Angle self, SparseParticleIndexKey a0) -> ParticleIndex
2284  """
2285  return _IMP_atom.Angle_get_value(self, *args)
2286 
2287  def set_value(self, *args):
2288  r"""
2289  set_value(Angle self, FloatKey a0, IMP::Float a1)
2290  set_value(Angle self, IntKey a0, IMP::Int a1)
2291  set_value(Angle self, FloatsKey a0, IMP::Floats a1)
2292  set_value(Angle self, IntsKey a0, IMP::Ints a1)
2293  set_value(Angle self, StringKey a0, IMP::String a1)
2294  set_value(Angle self, ParticleIndexKey a0, Particle a1)
2295  set_value(Angle self, ObjectKey a0, Object a1)
2296  set_value(Angle self, SparseFloatKey a0, IMP::Float a1)
2297  set_value(Angle self, SparseIntKey a0, IMP::Int a1)
2298  set_value(Angle self, SparseStringKey a0, IMP::String a1)
2299  set_value(Angle self, SparseParticleIndexKey a0, ParticleIndex a1)
2300  """
2301  return _IMP_atom.Angle_set_value(self, *args)
2302 
2303  def remove_attribute(self, *args):
2304  r"""
2305  remove_attribute(Angle self, FloatKey a0)
2306  remove_attribute(Angle self, IntKey a0)
2307  remove_attribute(Angle self, FloatsKey a0)
2308  remove_attribute(Angle self, IntsKey a0)
2309  remove_attribute(Angle self, StringKey a0)
2310  remove_attribute(Angle self, ParticleIndexKey a0)
2311  remove_attribute(Angle self, ObjectKey a0)
2312  remove_attribute(Angle self, SparseFloatKey a0)
2313  remove_attribute(Angle self, SparseIntKey a0)
2314  remove_attribute(Angle self, SparseStringKey a0)
2315  remove_attribute(Angle self, SparseParticleIndexKey a0)
2316  """
2317  return _IMP_atom.Angle_remove_attribute(self, *args)
2318 
2319  def has_attribute(self, *args):
2320  r"""
2321  has_attribute(Angle self, FloatKey a0) -> bool
2322  has_attribute(Angle self, IntKey a0) -> bool
2323  has_attribute(Angle self, FloatsKey a0) -> bool
2324  has_attribute(Angle self, IntsKey a0) -> bool
2325  has_attribute(Angle self, StringKey a0) -> bool
2326  has_attribute(Angle self, ParticleIndexKey a0) -> bool
2327  has_attribute(Angle self, ObjectKey a0) -> bool
2328  has_attribute(Angle self, SparseFloatKey a0) -> bool
2329  has_attribute(Angle self, SparseIntKey a0) -> bool
2330  has_attribute(Angle self, SparseStringKey a0) -> bool
2331  has_attribute(Angle self, SparseParticleIndexKey a0) -> bool
2332  """
2333  return _IMP_atom.Angle_has_attribute(self, *args)
2334 
2335  def get_derivative(self, a0):
2336  r"""get_derivative(Angle self, FloatKey a0) -> double"""
2337  return _IMP_atom.Angle_get_derivative(self, a0)
2338 
2339  def get_name(self):
2340  r"""get_name(Angle self) -> std::string"""
2341  return _IMP_atom.Angle_get_name(self)
2342 
2343  def clear_caches(self):
2344  r"""clear_caches(Angle self)"""
2345  return _IMP_atom.Angle_clear_caches(self)
2346 
2347  def set_name(self, a0):
2348  r"""set_name(Angle self, std::string a0)"""
2349  return _IMP_atom.Angle_set_name(self, a0)
2350 
2351  def set_check_level(self, a0):
2352  r"""set_check_level(Angle self, IMP::CheckLevel a0)"""
2353  return _IMP_atom.Angle_set_check_level(self, a0)
2354 
2355  def add_to_derivative(self, a0, a1, a2):
2356  r"""add_to_derivative(Angle self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2357  return _IMP_atom.Angle_add_to_derivative(self, a0, a1, a2)
2358 
2359  def set_is_optimized(self, a0, a1):
2360  r"""set_is_optimized(Angle self, FloatKey a0, bool a1)"""
2361  return _IMP_atom.Angle_set_is_optimized(self, a0, a1)
2362 
2363  def get_is_optimized(self, a0):
2364  r"""get_is_optimized(Angle self, FloatKey a0) -> bool"""
2365  return _IMP_atom.Angle_get_is_optimized(self, a0)
2366 
2367  def get_check_level(self):
2368  r"""get_check_level(Angle self) -> IMP::CheckLevel"""
2369  return _IMP_atom.Angle_get_check_level(self)
2370 
2371  def __eq__(self, *args):
2372  r"""
2373  __eq__(Angle self, Angle o) -> bool
2374  __eq__(Angle self, Particle d) -> bool
2375  """
2376  return _IMP_atom.Angle___eq__(self, *args)
2377 
2378  def __ne__(self, *args):
2379  r"""
2380  __ne__(Angle self, Angle o) -> bool
2381  __ne__(Angle self, Particle d) -> bool
2382  """
2383  return _IMP_atom.Angle___ne__(self, *args)
2384 
2385  def __le__(self, *args):
2386  r"""
2387  __le__(Angle self, Angle o) -> bool
2388  __le__(Angle self, Particle d) -> bool
2389  """
2390  return _IMP_atom.Angle___le__(self, *args)
2391 
2392  def __lt__(self, *args):
2393  r"""
2394  __lt__(Angle self, Angle o) -> bool
2395  __lt__(Angle self, Particle d) -> bool
2396  """
2397  return _IMP_atom.Angle___lt__(self, *args)
2398 
2399  def __ge__(self, *args):
2400  r"""
2401  __ge__(Angle self, Angle o) -> bool
2402  __ge__(Angle self, Particle d) -> bool
2403  """
2404  return _IMP_atom.Angle___ge__(self, *args)
2405 
2406  def __gt__(self, *args):
2407  r"""
2408  __gt__(Angle self, Angle o) -> bool
2409  __gt__(Angle self, Particle d) -> bool
2410  """
2411  return _IMP_atom.Angle___gt__(self, *args)
2412 
2413  def __hash__(self):
2414  r"""__hash__(Angle self) -> std::size_t"""
2415  return _IMP_atom.Angle___hash__(self)
2416 
2417  def __str__(self):
2418  r"""__str__(Angle self) -> std::string"""
2419  return _IMP_atom.Angle___str__(self)
2420 
2421  def __repr__(self):
2422  r"""__repr__(Angle self) -> std::string"""
2423  return _IMP_atom.Angle___repr__(self)
2424 
2425  def _get_as_binary(self):
2426  r"""_get_as_binary(Angle self) -> PyObject *"""
2427  return _IMP_atom.Angle__get_as_binary(self)
2428 
2429  def _set_from_binary(self, p):
2430  r"""_set_from_binary(Angle self, PyObject * p)"""
2431  return _IMP_atom.Angle__set_from_binary(self, p)
2432 
2433  def __getstate__(self):
2434  p = self._get_as_binary()
2435  if len(self.__dict__) > 1:
2436  d = self.__dict__.copy()
2437  del d['this']
2438  p = (d, p)
2439  return p
2440 
2441  def __setstate__(self, p):
2442  if not hasattr(self, 'this'):
2443  self.__init__()
2444  if isinstance(p, tuple):
2445  d, p = p
2446  self.__dict__.update(d)
2447  return self._set_from_binary(p)
2448 
2449  __swig_destroy__ = _IMP_atom.delete_Angle
2450 
2451 # Register Angle in _IMP_atom:
2452 _IMP_atom.Angle_swigregister(Angle)
2453 class Dihedral(IMP.Decorator):
2454  r"""Proxy of C++ IMP::atom::Dihedral class."""
2455 
2456  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2457 
2458  def __init__(self, *args):
2459  r"""
2460  __init__(Dihedral self) -> Dihedral
2461  __init__(Dihedral self, Model m, ParticleIndex id) -> Dihedral
2462  __init__(Dihedral self, _ParticleAdaptor d) -> Dihedral
2463  """
2464  _IMP_atom.Dihedral_swiginit(self, _IMP_atom.new_Dihedral(*args))
2465 
2466  def show(self, *args):
2467  r"""show(Dihedral self, _ostream out=std::cout)"""
2468  return _IMP_atom.Dihedral_show(self, *args)
2469 
2470  @staticmethod
2471  def setup_particle(*args):
2472  r"""
2473  setup_particle(Model m, ParticleIndex pi, XYZ a, XYZ b, XYZ c, XYZ d) -> Dihedral
2474  setup_particle(_ParticleAdaptor pa, XYZ a, XYZ b, XYZ c, XYZ d) -> Dihedral
2475  """
2476  return _IMP_atom.Dihedral_setup_particle(*args)
2477 
2478  @staticmethod
2479  def get_is_setup(*args):
2480  r"""
2481  get_is_setup(_ParticleAdaptor p) -> bool
2482  get_is_setup(Model m, ParticleIndex pi) -> bool
2483  """
2484  return _IMP_atom.Dihedral_get_is_setup(*args)
2485 
2486  def get_particle(self, *args):
2487  r"""
2488  get_particle(Dihedral self) -> Particle
2489  get_particle(Dihedral self, unsigned int i) -> Particle
2490  """
2491  return _IMP_atom.Dihedral_get_particle(self, *args)
2492 
2493  def get_ideal(self):
2494  r"""get_ideal(Dihedral self) -> IMP::Float"""
2495  return _IMP_atom.Dihedral_get_ideal(self)
2496 
2497  def set_ideal(self, t):
2498  r"""set_ideal(Dihedral self, IMP::Float t)"""
2499  return _IMP_atom.Dihedral_set_ideal(self, t)
2500 
2501  def get_multiplicity(self):
2502  r"""get_multiplicity(Dihedral self) -> IMP::Int"""
2503  return _IMP_atom.Dihedral_get_multiplicity(self)
2504 
2505  def set_multiplicity(self, t):
2506  r"""set_multiplicity(Dihedral self, IMP::Int t)"""
2507  return _IMP_atom.Dihedral_set_multiplicity(self, t)
2508 
2509  def get_stiffness(self):
2510  r"""get_stiffness(Dihedral self) -> IMP::Float"""
2511  return _IMP_atom.Dihedral_get_stiffness(self)
2512 
2513  def set_stiffness(self, t):
2514  r"""set_stiffness(Dihedral self, IMP::Float t)"""
2515  return _IMP_atom.Dihedral_set_stiffness(self, t)
2516 
2517  @staticmethod
2518  def get_particle_key(i):
2519  r"""get_particle_key(unsigned int i) -> ParticleIndexKey"""
2520  return _IMP_atom.Dihedral_get_particle_key(i)
2521 
2522  @staticmethod
2523  def get_ideal_key():
2524  r"""get_ideal_key() -> FloatKey"""
2525  return _IMP_atom.Dihedral_get_ideal_key()
2526 
2527  @staticmethod
2528  def get_multiplicity_key():
2529  r"""get_multiplicity_key() -> IntKey"""
2530  return _IMP_atom.Dihedral_get_multiplicity_key()
2531 
2532  @staticmethod
2533  def get_stiffness_key():
2534  r"""get_stiffness_key() -> FloatKey"""
2535  return _IMP_atom.Dihedral_get_stiffness_key()
2536 
2537  def add_attribute(self, *args):
2538  r"""
2539  add_attribute(Dihedral self, FloatKey k, IMP::Float v, bool opt)
2540  add_attribute(Dihedral self, FloatKey a0, IMP::Float a1)
2541  add_attribute(Dihedral self, IntKey a0, IMP::Int a1)
2542  add_attribute(Dihedral self, FloatsKey a0, IMP::Floats a1)
2543  add_attribute(Dihedral self, IntsKey a0, IMP::Ints a1)
2544  add_attribute(Dihedral self, StringKey a0, IMP::String a1)
2545  add_attribute(Dihedral self, ParticleIndexKey a0, Particle a1)
2546  add_attribute(Dihedral self, ObjectKey a0, Object a1)
2547  add_attribute(Dihedral self, SparseFloatKey a0, IMP::Float a1)
2548  add_attribute(Dihedral self, SparseIntKey a0, IMP::Int a1)
2549  add_attribute(Dihedral self, SparseStringKey a0, IMP::String a1)
2550  add_attribute(Dihedral self, SparseParticleIndexKey a0, ParticleIndex a1)
2551  """
2552  return _IMP_atom.Dihedral_add_attribute(self, *args)
2553 
2554  def get_value(self, *args):
2555  r"""
2556  get_value(Dihedral self, FloatKey a0) -> IMP::Float
2557  get_value(Dihedral self, IntKey a0) -> IMP::Int
2558  get_value(Dihedral self, FloatsKey a0) -> IMP::Floats
2559  get_value(Dihedral self, IntsKey a0) -> IMP::Ints
2560  get_value(Dihedral self, StringKey a0) -> IMP::String
2561  get_value(Dihedral self, ParticleIndexKey a0) -> Particle
2562  get_value(Dihedral self, ObjectKey a0) -> Object
2563  get_value(Dihedral self, SparseFloatKey a0) -> IMP::Float
2564  get_value(Dihedral self, SparseIntKey a0) -> IMP::Int
2565  get_value(Dihedral self, SparseStringKey a0) -> IMP::String
2566  get_value(Dihedral self, SparseParticleIndexKey a0) -> ParticleIndex
2567  """
2568  return _IMP_atom.Dihedral_get_value(self, *args)
2569 
2570  def set_value(self, *args):
2571  r"""
2572  set_value(Dihedral self, FloatKey a0, IMP::Float a1)
2573  set_value(Dihedral self, IntKey a0, IMP::Int a1)
2574  set_value(Dihedral self, FloatsKey a0, IMP::Floats a1)
2575  set_value(Dihedral self, IntsKey a0, IMP::Ints a1)
2576  set_value(Dihedral self, StringKey a0, IMP::String a1)
2577  set_value(Dihedral self, ParticleIndexKey a0, Particle a1)
2578  set_value(Dihedral self, ObjectKey a0, Object a1)
2579  set_value(Dihedral self, SparseFloatKey a0, IMP::Float a1)
2580  set_value(Dihedral self, SparseIntKey a0, IMP::Int a1)
2581  set_value(Dihedral self, SparseStringKey a0, IMP::String a1)
2582  set_value(Dihedral self, SparseParticleIndexKey a0, ParticleIndex a1)
2583  """
2584  return _IMP_atom.Dihedral_set_value(self, *args)
2585 
2586  def remove_attribute(self, *args):
2587  r"""
2588  remove_attribute(Dihedral self, FloatKey a0)
2589  remove_attribute(Dihedral self, IntKey a0)
2590  remove_attribute(Dihedral self, FloatsKey a0)
2591  remove_attribute(Dihedral self, IntsKey a0)
2592  remove_attribute(Dihedral self, StringKey a0)
2593  remove_attribute(Dihedral self, ParticleIndexKey a0)
2594  remove_attribute(Dihedral self, ObjectKey a0)
2595  remove_attribute(Dihedral self, SparseFloatKey a0)
2596  remove_attribute(Dihedral self, SparseIntKey a0)
2597  remove_attribute(Dihedral self, SparseStringKey a0)
2598  remove_attribute(Dihedral self, SparseParticleIndexKey a0)
2599  """
2600  return _IMP_atom.Dihedral_remove_attribute(self, *args)
2601 
2602  def has_attribute(self, *args):
2603  r"""
2604  has_attribute(Dihedral self, FloatKey a0) -> bool
2605  has_attribute(Dihedral self, IntKey a0) -> bool
2606  has_attribute(Dihedral self, FloatsKey a0) -> bool
2607  has_attribute(Dihedral self, IntsKey a0) -> bool
2608  has_attribute(Dihedral self, StringKey a0) -> bool
2609  has_attribute(Dihedral self, ParticleIndexKey a0) -> bool
2610  has_attribute(Dihedral self, ObjectKey a0) -> bool
2611  has_attribute(Dihedral self, SparseFloatKey a0) -> bool
2612  has_attribute(Dihedral self, SparseIntKey a0) -> bool
2613  has_attribute(Dihedral self, SparseStringKey a0) -> bool
2614  has_attribute(Dihedral self, SparseParticleIndexKey a0) -> bool
2615  """
2616  return _IMP_atom.Dihedral_has_attribute(self, *args)
2617 
2618  def get_derivative(self, a0):
2619  r"""get_derivative(Dihedral self, FloatKey a0) -> double"""
2620  return _IMP_atom.Dihedral_get_derivative(self, a0)
2621 
2622  def get_name(self):
2623  r"""get_name(Dihedral self) -> std::string"""
2624  return _IMP_atom.Dihedral_get_name(self)
2625 
2626  def clear_caches(self):
2627  r"""clear_caches(Dihedral self)"""
2628  return _IMP_atom.Dihedral_clear_caches(self)
2629 
2630  def set_name(self, a0):
2631  r"""set_name(Dihedral self, std::string a0)"""
2632  return _IMP_atom.Dihedral_set_name(self, a0)
2633 
2634  def set_check_level(self, a0):
2635  r"""set_check_level(Dihedral self, IMP::CheckLevel a0)"""
2636  return _IMP_atom.Dihedral_set_check_level(self, a0)
2637 
2638  def add_to_derivative(self, a0, a1, a2):
2639  r"""add_to_derivative(Dihedral self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2640  return _IMP_atom.Dihedral_add_to_derivative(self, a0, a1, a2)
2641 
2642  def set_is_optimized(self, a0, a1):
2643  r"""set_is_optimized(Dihedral self, FloatKey a0, bool a1)"""
2644  return _IMP_atom.Dihedral_set_is_optimized(self, a0, a1)
2645 
2646  def get_is_optimized(self, a0):
2647  r"""get_is_optimized(Dihedral self, FloatKey a0) -> bool"""
2648  return _IMP_atom.Dihedral_get_is_optimized(self, a0)
2649 
2650  def get_check_level(self):
2651  r"""get_check_level(Dihedral self) -> IMP::CheckLevel"""
2652  return _IMP_atom.Dihedral_get_check_level(self)
2653 
2654  def __eq__(self, *args):
2655  r"""
2656  __eq__(Dihedral self, Dihedral o) -> bool
2657  __eq__(Dihedral self, Particle d) -> bool
2658  """
2659  return _IMP_atom.Dihedral___eq__(self, *args)
2660 
2661  def __ne__(self, *args):
2662  r"""
2663  __ne__(Dihedral self, Dihedral o) -> bool
2664  __ne__(Dihedral self, Particle d) -> bool
2665  """
2666  return _IMP_atom.Dihedral___ne__(self, *args)
2667 
2668  def __le__(self, *args):
2669  r"""
2670  __le__(Dihedral self, Dihedral o) -> bool
2671  __le__(Dihedral self, Particle d) -> bool
2672  """
2673  return _IMP_atom.Dihedral___le__(self, *args)
2674 
2675  def __lt__(self, *args):
2676  r"""
2677  __lt__(Dihedral self, Dihedral o) -> bool
2678  __lt__(Dihedral self, Particle d) -> bool
2679  """
2680  return _IMP_atom.Dihedral___lt__(self, *args)
2681 
2682  def __ge__(self, *args):
2683  r"""
2684  __ge__(Dihedral self, Dihedral o) -> bool
2685  __ge__(Dihedral self, Particle d) -> bool
2686  """
2687  return _IMP_atom.Dihedral___ge__(self, *args)
2688 
2689  def __gt__(self, *args):
2690  r"""
2691  __gt__(Dihedral self, Dihedral o) -> bool
2692  __gt__(Dihedral self, Particle d) -> bool
2693  """
2694  return _IMP_atom.Dihedral___gt__(self, *args)
2695 
2696  def __hash__(self):
2697  r"""__hash__(Dihedral self) -> std::size_t"""
2698  return _IMP_atom.Dihedral___hash__(self)
2699 
2700  def __str__(self):
2701  r"""__str__(Dihedral self) -> std::string"""
2702  return _IMP_atom.Dihedral___str__(self)
2703 
2704  def __repr__(self):
2705  r"""__repr__(Dihedral self) -> std::string"""
2706  return _IMP_atom.Dihedral___repr__(self)
2707 
2708  def _get_as_binary(self):
2709  r"""_get_as_binary(Dihedral self) -> PyObject *"""
2710  return _IMP_atom.Dihedral__get_as_binary(self)
2711 
2712  def _set_from_binary(self, p):
2713  r"""_set_from_binary(Dihedral self, PyObject * p)"""
2714  return _IMP_atom.Dihedral__set_from_binary(self, p)
2715 
2716  def __getstate__(self):
2717  p = self._get_as_binary()
2718  if len(self.__dict__) > 1:
2719  d = self.__dict__.copy()
2720  del d['this']
2721  p = (d, p)
2722  return p
2723 
2724  def __setstate__(self, p):
2725  if not hasattr(self, 'this'):
2726  self.__init__()
2727  if isinstance(p, tuple):
2728  d, p = p
2729  self.__dict__.update(d)
2730  return self._set_from_binary(p)
2731 
2732  __swig_destroy__ = _IMP_atom.delete_Dihedral
2733 
2734 # Register Dihedral in _IMP_atom:
2735 _IMP_atom.Dihedral_swigregister(Dihedral)
2736 class SmoothingFunction(IMP.Object):
2737  r"""Proxy of C++ IMP::atom::SmoothingFunction class."""
2738 
2739  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2740 
2741  def __init__(self, *args, **kwargs):
2742  raise AttributeError("No constructor defined - class is abstract")
2743 
2744  def __call__(self, *args):
2745  r"""
2746  __call__(SmoothingFunction self, double score, double distance) -> double
2747  __call__(SmoothingFunction self, double score, double deriv, double distance) -> IMP::DerivativePair
2748  """
2749  return _IMP_atom.SmoothingFunction___call__(self, *args)
2750  __swig_destroy__ = _IMP_atom.delete_SmoothingFunction
2751 
2752  def __str__(self):
2753  r"""__str__(SmoothingFunction self) -> std::string"""
2754  return _IMP_atom.SmoothingFunction___str__(self)
2755 
2756  def __repr__(self):
2757  r"""__repr__(SmoothingFunction self) -> std::string"""
2758  return _IMP_atom.SmoothingFunction___repr__(self)
2759 
2760  @staticmethod
2761  def get_from(o):
2762  return _object_cast_to_SmoothingFunction(o)
2763 
2764 
2765 # Register SmoothingFunction in _IMP_atom:
2766 _IMP_atom.SmoothingFunction_swigregister(SmoothingFunction)
2767 class ForceSwitch(SmoothingFunction):
2768  r"""Proxy of C++ IMP::atom::ForceSwitch class."""
2769 
2770  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2771 
2772  def __init__(self, min_distance, max_distance):
2773  r"""__init__(ForceSwitch self, double min_distance, double max_distance) -> ForceSwitch"""
2774  _IMP_atom.ForceSwitch_swiginit(self, _IMP_atom.new_ForceSwitch(min_distance, max_distance))
2775 
2776  def get_min_distance(self):
2777  r"""get_min_distance(ForceSwitch self) -> double"""
2778  return _IMP_atom.ForceSwitch_get_min_distance(self)
2779 
2780  def get_max_distance(self):
2781  r"""get_max_distance(ForceSwitch self) -> double"""
2782  return _IMP_atom.ForceSwitch_get_max_distance(self)
2783 
2784  def __call__(self, *args):
2785  r"""
2786  __call__(ForceSwitch self, double score, double distance) -> double
2787  __call__(ForceSwitch self, double score, double deriv, double distance) -> IMP::DerivativePair
2788  """
2789  return _IMP_atom.ForceSwitch___call__(self, *args)
2790 
2791  def get_version_info(self):
2792  r"""get_version_info(ForceSwitch self) -> VersionInfo"""
2793  return _IMP_atom.ForceSwitch_get_version_info(self)
2794  __swig_destroy__ = _IMP_atom.delete_ForceSwitch
2795 
2796  def __str__(self):
2797  r"""__str__(ForceSwitch self) -> std::string"""
2798  return _IMP_atom.ForceSwitch___str__(self)
2799 
2800  def __repr__(self):
2801  r"""__repr__(ForceSwitch self) -> std::string"""
2802  return _IMP_atom.ForceSwitch___repr__(self)
2803 
2804  @staticmethod
2805  def get_from(o):
2806  return _object_cast_to_ForceSwitch(o)
2807 
2808 
2809  def _get_jax(self):
2810  import jax.numpy as jnp
2811  min_distance = self.get_min_distance()
2812  max_distance = self.get_max_distance()
2813  dist_dif = max_distance - min_distance
2814  value_prefactor = 1.0 / (dist_dif * dist_dif * dist_dif)
2815  deriv_prefactor = 6.0 * value_prefactor
2816  def jax_func(score, d):
2817  x = max_distance - d
2818  mid_range = (value_prefactor * x * x *
2819  (max_distance + 2.0 * d - 3.0 * min_distance))
2820  factor = jnp.where(
2821  d <= min_distance, 1.0,
2822  jnp.where(d > max_distance, 0.0, mid_range))
2823  return score * factor
2824  return jax_func
2825 
2826 
2827 # Register ForceSwitch in _IMP_atom:
2828 _IMP_atom.ForceSwitch_swigregister(ForceSwitch)
2829 class AngleSingletonScore(IMP.SingletonScore):
2830  r"""Proxy of C++ IMP::atom::AngleSingletonScore class."""
2831 
2832  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2833 
2834  def __init__(self, f):
2835  r"""__init__(AngleSingletonScore self, UnaryFunction f) -> AngleSingletonScore"""
2836  _IMP_atom.AngleSingletonScore_swiginit(self, _IMP_atom.new_AngleSingletonScore(f))
2837 
2838  def get_unary_function(self):
2839  r"""get_unary_function(AngleSingletonScore self) -> UnaryFunction"""
2840  return _IMP_atom.AngleSingletonScore_get_unary_function(self)
2841 
2842  def do_get_inputs(self, m, pis):
2843  r"""do_get_inputs(AngleSingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
2844  return _IMP_atom.AngleSingletonScore_do_get_inputs(self, m, pis)
2845 
2846  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
2847  r"""evaluate_indexes(AngleSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
2848  return _IMP_atom.AngleSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
2849 
2850  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
2851  r"""evaluate_indexes_scores(AngleSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
2852  return _IMP_atom.AngleSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
2853 
2854  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
2855  r"""evaluate_indexes_delta(AngleSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
2856  return _IMP_atom.AngleSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
2857 
2858  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
2859  r"""evaluate_if_good_indexes(AngleSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
2860  return _IMP_atom.AngleSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
2861 
2862  def get_version_info(self):
2863  r"""get_version_info(AngleSingletonScore self) -> VersionInfo"""
2864  return _IMP_atom.AngleSingletonScore_get_version_info(self)
2865  __swig_destroy__ = _IMP_atom.delete_AngleSingletonScore
2866 
2867  def __str__(self):
2868  r"""__str__(AngleSingletonScore self) -> std::string"""
2869  return _IMP_atom.AngleSingletonScore___str__(self)
2870 
2871  def __repr__(self):
2872  r"""__repr__(AngleSingletonScore self) -> std::string"""
2873  return _IMP_atom.AngleSingletonScore___repr__(self)
2874 
2875  @staticmethod
2876  def get_from(o):
2877  return _object_cast_to_AngleSingletonScore(o)
2878 
2879 
2880  def _get_jax(self, m, indexes, space):
2881  import jax.numpy as jnp
2882  import IMP.core._jax_util
2883  from IMP.atom._jax_util import _get_angles
2884  def score(jm, angles, uf):
2885  xyzs = jm['xyz'][angles.bonded_indexes]
2886  rij = space.displacement(xyzs[:,0] - xyzs[:,1])
2887  rkj = space.displacement(xyzs[:,2] - xyzs[:,1])
2888  angle = IMP.core._jax_util._angle(rij, rkj)
2889  angle_diff = IMP.core._jax_util._get_angle_difference(
2890  angle, angles.ideal)
2891  return uf(angles.stiffness * angle_diff)
2892  uf = self.get_unary_function().get_derived_object()
2893  f = functools.partial(score, angles=_get_angles(m, indexes),
2894  uf=uf._get_jax())
2895  return self._wrap_jax(m, f)
2896 
2897 
2898 # Register AngleSingletonScore in _IMP_atom:
2899 _IMP_atom.AngleSingletonScore_swigregister(AngleSingletonScore)
2900 class BondEndpointsRefiner(IMP.Refiner):
2901  r"""Proxy of C++ IMP::atom::BondEndpointsRefiner class."""
2902 
2903  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2904 
2905  def __init__(self):
2906  r"""__init__(BondEndpointsRefiner self) -> BondEndpointsRefiner"""
2907  _IMP_atom.BondEndpointsRefiner_swiginit(self, _IMP_atom.new_BondEndpointsRefiner())
2908 
2909  def do_get_inputs(self, m, pis):
2910  r"""do_get_inputs(BondEndpointsRefiner self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
2911  return _IMP_atom.BondEndpointsRefiner_do_get_inputs(self, m, pis)
2912 
2913  def get_version_info(self):
2914  r"""get_version_info(BondEndpointsRefiner self) -> VersionInfo"""
2915  return _IMP_atom.BondEndpointsRefiner_get_version_info(self)
2916  __swig_destroy__ = _IMP_atom.delete_BondEndpointsRefiner
2917 
2918  def __str__(self):
2919  r"""__str__(BondEndpointsRefiner self) -> std::string"""
2920  return _IMP_atom.BondEndpointsRefiner___str__(self)
2921 
2922  def __repr__(self):
2923  r"""__repr__(BondEndpointsRefiner self) -> std::string"""
2924  return _IMP_atom.BondEndpointsRefiner___repr__(self)
2925 
2926  @staticmethod
2927  def get_from(o):
2928  return _object_cast_to_BondEndpointsRefiner(o)
2929 
2930 
2931 # Register BondEndpointsRefiner in _IMP_atom:
2932 _IMP_atom.BondEndpointsRefiner_swigregister(BondEndpointsRefiner)
2933 class BondPairContainer(IMP.PairContainer):
2934  r"""Proxy of C++ IMP::atom::BondPairContainer class."""
2935 
2936  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2937 
2938  def __init__(self, sc):
2939  r"""__init__(BondPairContainer self, SingletonContainer sc) -> BondPairContainer"""
2940  _IMP_atom.BondPairContainer_swiginit(self, _IMP_atom.new_BondPairContainer(sc))
2941 
2942  def do_get_inputs(self):
2943  r"""do_get_inputs(BondPairContainer self) -> IMP::ModelObjectsTemp"""
2944  return _IMP_atom.BondPairContainer_do_get_inputs(self)
2945 
2946  def do_apply(self, sm):
2947  r"""do_apply(BondPairContainer self, PairModifier sm)"""
2948  return _IMP_atom.BondPairContainer_do_apply(self, sm)
2949 
2950  def do_apply_moved(self, sm, moved_pis, reset_pis):
2951  r"""do_apply_moved(BondPairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
2952  return _IMP_atom.BondPairContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
2953 
2954  def get_version_info(self):
2955  r"""get_version_info(BondPairContainer self) -> VersionInfo"""
2956  return _IMP_atom.BondPairContainer_get_version_info(self)
2957  __swig_destroy__ = _IMP_atom.delete_BondPairContainer
2958 
2959  def __str__(self):
2960  r"""__str__(BondPairContainer self) -> std::string"""
2961  return _IMP_atom.BondPairContainer___str__(self)
2962 
2963  def __repr__(self):
2964  r"""__repr__(BondPairContainer self) -> std::string"""
2965  return _IMP_atom.BondPairContainer___repr__(self)
2966 
2967  @staticmethod
2968  def get_from(o):
2969  return _object_cast_to_BondPairContainer(o)
2970 
2971 
2972 # Register BondPairContainer in _IMP_atom:
2973 _IMP_atom.BondPairContainer_swigregister(BondPairContainer)
2974 class BondSingletonScore(IMP.SingletonScore):
2975  r"""Proxy of C++ IMP::atom::BondSingletonScore class."""
2976 
2977  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2978 
2979  def __init__(self, f):
2980  r"""__init__(BondSingletonScore self, UnaryFunction f) -> BondSingletonScore"""
2981  _IMP_atom.BondSingletonScore_swiginit(self, _IMP_atom.new_BondSingletonScore(f))
2982 
2983  def get_unary_function(self):
2984  r"""get_unary_function(BondSingletonScore self) -> UnaryFunction"""
2985  return _IMP_atom.BondSingletonScore_get_unary_function(self)
2986 
2987  def do_get_inputs(self, m, pis):
2988  r"""do_get_inputs(BondSingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
2989  return _IMP_atom.BondSingletonScore_do_get_inputs(self, m, pis)
2990 
2991  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
2992  r"""evaluate_indexes(BondSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
2993  return _IMP_atom.BondSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
2994 
2995  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
2996  r"""evaluate_indexes_scores(BondSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
2997  return _IMP_atom.BondSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
2998 
2999  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
3000  r"""evaluate_indexes_delta(BondSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
3001  return _IMP_atom.BondSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
3002 
3003  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
3004  r"""evaluate_if_good_indexes(BondSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
3005  return _IMP_atom.BondSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
3006 
3007  def get_version_info(self):
3008  r"""get_version_info(BondSingletonScore self) -> VersionInfo"""
3009  return _IMP_atom.BondSingletonScore_get_version_info(self)
3010  __swig_destroy__ = _IMP_atom.delete_BondSingletonScore
3011 
3012  def __str__(self):
3013  r"""__str__(BondSingletonScore self) -> std::string"""
3014  return _IMP_atom.BondSingletonScore___str__(self)
3015 
3016  def __repr__(self):
3017  r"""__repr__(BondSingletonScore self) -> std::string"""
3018  return _IMP_atom.BondSingletonScore___repr__(self)
3019 
3020  @staticmethod
3021  def get_from(o):
3022  return _object_cast_to_BondSingletonScore(o)
3023 
3024 
3025  def _get_jax(self, m, indexes, space):
3026  import jax.numpy as jnp
3027  from IMP.atom._jax_util import _get_bonds
3028  def score(jm, bonds, uf):
3029  xyzs = jm['xyz'][bonds.bonded_indexes]
3030  diff = xyzs[:,0] - xyzs[:,1]
3031  drs = space.distance(diff)
3032  return uf(bonds.stiffness * (drs - bonds.length))
3033  uf = self.get_unary_function().get_derived_object()
3034  f = functools.partial(score, bonds=_get_bonds(m, indexes),
3035  uf=uf._get_jax())
3036  return self._wrap_jax(m, f)
3037 
3038 
3039 # Register BondSingletonScore in _IMP_atom:
3040 _IMP_atom.BondSingletonScore_swigregister(BondSingletonScore)
3041 class DihedralSingletonScore(IMP.SingletonScore):
3042  r"""Proxy of C++ IMP::atom::DihedralSingletonScore class."""
3043 
3044  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3045 
3046  def __init__(self):
3047  r"""__init__(DihedralSingletonScore self) -> DihedralSingletonScore"""
3048  _IMP_atom.DihedralSingletonScore_swiginit(self, _IMP_atom.new_DihedralSingletonScore())
3049 
3050  def do_get_inputs(self, m, pis):
3051  r"""do_get_inputs(DihedralSingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3052  return _IMP_atom.DihedralSingletonScore_do_get_inputs(self, m, pis)
3053 
3054  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
3055  r"""evaluate_indexes(DihedralSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
3056  return _IMP_atom.DihedralSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
3057 
3058  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
3059  r"""evaluate_indexes_scores(DihedralSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
3060  return _IMP_atom.DihedralSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
3061 
3062  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
3063  r"""evaluate_indexes_delta(DihedralSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
3064  return _IMP_atom.DihedralSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
3065 
3066  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
3067  r"""evaluate_if_good_indexes(DihedralSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
3068  return _IMP_atom.DihedralSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
3069 
3070  def get_version_info(self):
3071  r"""get_version_info(DihedralSingletonScore self) -> VersionInfo"""
3072  return _IMP_atom.DihedralSingletonScore_get_version_info(self)
3073  __swig_destroy__ = _IMP_atom.delete_DihedralSingletonScore
3074 
3075  def __str__(self):
3076  r"""__str__(DihedralSingletonScore self) -> std::string"""
3077  return _IMP_atom.DihedralSingletonScore___str__(self)
3078 
3079  def __repr__(self):
3080  r"""__repr__(DihedralSingletonScore self) -> std::string"""
3081  return _IMP_atom.DihedralSingletonScore___repr__(self)
3082 
3083  @staticmethod
3084  def get_from(o):
3085  return _object_cast_to_DihedralSingletonScore(o)
3086 
3087 
3088  def _get_as_binary(self):
3089  r"""_get_as_binary(DihedralSingletonScore self) -> PyObject *"""
3090  return _IMP_atom.DihedralSingletonScore__get_as_binary(self)
3091 
3092  def _set_from_binary(self, p):
3093  r"""_set_from_binary(DihedralSingletonScore self, PyObject * p)"""
3094  return _IMP_atom.DihedralSingletonScore__set_from_binary(self, p)
3095 
3096  def __getstate__(self):
3097  p = self._get_as_binary()
3098  if len(self.__dict__) > 1:
3099  d = self.__dict__.copy()
3100  del d['this']
3101  p = (d, p)
3102  return p
3103 
3104  def __setstate__(self, p):
3105  if not hasattr(self, 'this'):
3106  self.__init__()
3107  if isinstance(p, tuple):
3108  d, p = p
3109  self.__dict__.update(d)
3110  return self._set_from_binary(p)
3111 
3112 
3113  def _get_jax(self, m, indexes, space):
3114  import jax.numpy as jnp
3115  import IMP.core._jax_util
3116  from IMP.atom._jax_util import _get_dihedrals
3117  def score(jm, dihedrals):
3118  xyzs = jm['xyz'][dihedrals.bonded_indexes]
3119  rij = space.displacement(xyzs[:,0] - xyzs[:,1])
3120  rkj = space.displacement(xyzs[:,2] - xyzs[:,1])
3121  rkl = space.displacement(xyzs[:,2] - xyzs[:,3])
3122  dihedral = IMP.core._jax_util._dihedral(rij, rkj, rkl)
3123  b = 0.5 * dihedrals.stiffness * jnp.abs(dihedrals.stiffness)
3124  return jnp.abs(b) + b * jnp.cos(dihedral * dihedrals.multiplicity
3125  + dihedrals.ideal)
3126  f = functools.partial(score, dihedrals=_get_dihedrals(m, indexes))
3127  return self._wrap_jax(m, f)
3128 
3129 
3130 # Register DihedralSingletonScore in _IMP_atom:
3131 _IMP_atom.DihedralSingletonScore_swigregister(DihedralSingletonScore)
3132 class ImproperSingletonScore(IMP.SingletonScore):
3133  r"""Proxy of C++ IMP::atom::ImproperSingletonScore class."""
3134 
3135  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3136 
3137  def __init__(self, f):
3138  r"""__init__(ImproperSingletonScore self, UnaryFunction f) -> ImproperSingletonScore"""
3139  _IMP_atom.ImproperSingletonScore_swiginit(self, _IMP_atom.new_ImproperSingletonScore(f))
3140 
3141  def get_unary_function(self):
3142  r"""get_unary_function(ImproperSingletonScore self) -> UnaryFunction"""
3143  return _IMP_atom.ImproperSingletonScore_get_unary_function(self)
3144 
3145  def do_get_inputs(self, m, pis):
3146  r"""do_get_inputs(ImproperSingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3147  return _IMP_atom.ImproperSingletonScore_do_get_inputs(self, m, pis)
3148 
3149  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
3150  r"""evaluate_indexes(ImproperSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
3151  return _IMP_atom.ImproperSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
3152 
3153  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
3154  r"""evaluate_indexes_scores(ImproperSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
3155  return _IMP_atom.ImproperSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
3156 
3157  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
3158  r"""evaluate_indexes_delta(ImproperSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
3159  return _IMP_atom.ImproperSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
3160 
3161  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
3162  r"""evaluate_if_good_indexes(ImproperSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
3163  return _IMP_atom.ImproperSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
3164 
3165  def get_version_info(self):
3166  r"""get_version_info(ImproperSingletonScore self) -> VersionInfo"""
3167  return _IMP_atom.ImproperSingletonScore_get_version_info(self)
3168  __swig_destroy__ = _IMP_atom.delete_ImproperSingletonScore
3169 
3170  def __str__(self):
3171  r"""__str__(ImproperSingletonScore self) -> std::string"""
3172  return _IMP_atom.ImproperSingletonScore___str__(self)
3173 
3174  def __repr__(self):
3175  r"""__repr__(ImproperSingletonScore self) -> std::string"""
3176  return _IMP_atom.ImproperSingletonScore___repr__(self)
3177 
3178  @staticmethod
3179  def get_from(o):
3180  return _object_cast_to_ImproperSingletonScore(o)
3181 
3182 
3183  def _get_jax(self, m, indexes, space):
3184  import jax.numpy as jnp
3185  import IMP.core._jax_util
3186  from IMP.atom._jax_util import _get_dihedrals
3187  def score(jm, dihedrals, uf):
3188  xyzs = jm['xyz'][dihedrals.bonded_indexes]
3189  rij = space.displacement(xyzs[:,0] - xyzs[:,1])
3190  rkj = space.displacement(xyzs[:,2] - xyzs[:,1])
3191  rkl = space.displacement(xyzs[:,2] - xyzs[:,3])
3192  dihedral = IMP.core._jax_util._dihedral(rij, rkj, rkl)
3193  angle_diff = IMP.core._jax_util._get_angle_difference(
3194  dihedral, dihedrals.ideal)
3195  return uf(dihedrals.stiffness * angle_diff)
3196  uf = self.get_unary_function().get_derived_object()
3197  f = functools.partial(score, dihedrals=_get_dihedrals(m, indexes),
3198  uf=uf._get_jax())
3199  return self._wrap_jax(m, f)
3200 
3201 
3202 # Register ImproperSingletonScore in _IMP_atom:
3203 _IMP_atom.ImproperSingletonScore_swigregister(ImproperSingletonScore)
3204 class CenterOfMass(IMP.Decorator):
3205  r"""Proxy of C++ IMP::atom::CenterOfMass class."""
3206 
3207  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3208 
3209  def get_constraint(self):
3210  r"""get_constraint(CenterOfMass self) -> Constraint"""
3211  return _IMP_atom.CenterOfMass_get_constraint(self)
3212 
3213  def get_mass(self):
3214  r"""get_mass(CenterOfMass self) -> IMP::Float"""
3215  return _IMP_atom.CenterOfMass_get_mass(self)
3216 
3217  def get_coordinate(self, i):
3218  r"""get_coordinate(CenterOfMass self, int i) -> IMP::Float"""
3219  return _IMP_atom.CenterOfMass_get_coordinate(self, i)
3220 
3221  def get_coordinates(self):
3222  r"""get_coordinates(CenterOfMass self) -> Vector3D"""
3223  return _IMP_atom.CenterOfMass_get_coordinates(self)
3224 
3225  def __init__(self, *args):
3226  r"""
3227  __init__(CenterOfMass self) -> CenterOfMass
3228  __init__(CenterOfMass self, Model m, ParticleIndex id) -> CenterOfMass
3229  __init__(CenterOfMass self, _ParticleAdaptor d) -> CenterOfMass
3230  """
3231  _IMP_atom.CenterOfMass_swiginit(self, _IMP_atom.new_CenterOfMass(*args))
3232 
3233  def show(self, *args):
3234  r"""show(CenterOfMass self, _ostream out=std::cout)"""
3235  return _IMP_atom.CenterOfMass_show(self, *args)
3236 
3237  @staticmethod
3238  def setup_particle(*args):
3239  r"""
3240  setup_particle(Model m, ParticleIndex pi, _ParticleIndexesAdaptor members) -> CenterOfMass
3241  setup_particle(_ParticleAdaptor pa, _ParticleIndexesAdaptor members) -> CenterOfMass
3242  setup_particle(Model m, ParticleIndex pi, Refiner refiner) -> CenterOfMass
3243  setup_particle(_ParticleAdaptor pa, Refiner refiner) -> CenterOfMass
3244  """
3245  return _IMP_atom.CenterOfMass_setup_particle(*args)
3246 
3247  @staticmethod
3248  def teardown_particle(com):
3249  r"""teardown_particle(CenterOfMass com)"""
3250  return _IMP_atom.CenterOfMass_teardown_particle(com)
3251 
3252  @staticmethod
3253  def get_is_setup(*args):
3254  r"""
3255  get_is_setup(_ParticleAdaptor p) -> bool
3256  get_is_setup(Model m, ParticleIndex pi) -> bool
3257  """
3258  return _IMP_atom.CenterOfMass_get_is_setup(*args)
3259 
3260  def add_attribute(self, *args):
3261  r"""
3262  add_attribute(CenterOfMass self, FloatKey k, IMP::Float v, bool opt)
3263  add_attribute(CenterOfMass self, FloatKey a0, IMP::Float a1)
3264  add_attribute(CenterOfMass self, IntKey a0, IMP::Int a1)
3265  add_attribute(CenterOfMass self, FloatsKey a0, IMP::Floats a1)
3266  add_attribute(CenterOfMass self, IntsKey a0, IMP::Ints a1)
3267  add_attribute(CenterOfMass self, StringKey a0, IMP::String a1)
3268  add_attribute(CenterOfMass self, ParticleIndexKey a0, Particle a1)
3269  add_attribute(CenterOfMass self, ObjectKey a0, Object a1)
3270  add_attribute(CenterOfMass self, SparseFloatKey a0, IMP::Float a1)
3271  add_attribute(CenterOfMass self, SparseIntKey a0, IMP::Int a1)
3272  add_attribute(CenterOfMass self, SparseStringKey a0, IMP::String a1)
3273  add_attribute(CenterOfMass self, SparseParticleIndexKey a0, ParticleIndex a1)
3274  """
3275  return _IMP_atom.CenterOfMass_add_attribute(self, *args)
3276 
3277  def get_value(self, *args):
3278  r"""
3279  get_value(CenterOfMass self, FloatKey a0) -> IMP::Float
3280  get_value(CenterOfMass self, IntKey a0) -> IMP::Int
3281  get_value(CenterOfMass self, FloatsKey a0) -> IMP::Floats
3282  get_value(CenterOfMass self, IntsKey a0) -> IMP::Ints
3283  get_value(CenterOfMass self, StringKey a0) -> IMP::String
3284  get_value(CenterOfMass self, ParticleIndexKey a0) -> Particle
3285  get_value(CenterOfMass self, ObjectKey a0) -> Object
3286  get_value(CenterOfMass self, SparseFloatKey a0) -> IMP::Float
3287  get_value(CenterOfMass self, SparseIntKey a0) -> IMP::Int
3288  get_value(CenterOfMass self, SparseStringKey a0) -> IMP::String
3289  get_value(CenterOfMass self, SparseParticleIndexKey a0) -> ParticleIndex
3290  """
3291  return _IMP_atom.CenterOfMass_get_value(self, *args)
3292 
3293  def set_value(self, *args):
3294  r"""
3295  set_value(CenterOfMass self, FloatKey a0, IMP::Float a1)
3296  set_value(CenterOfMass self, IntKey a0, IMP::Int a1)
3297  set_value(CenterOfMass self, FloatsKey a0, IMP::Floats a1)
3298  set_value(CenterOfMass self, IntsKey a0, IMP::Ints a1)
3299  set_value(CenterOfMass self, StringKey a0, IMP::String a1)
3300  set_value(CenterOfMass self, ParticleIndexKey a0, Particle a1)
3301  set_value(CenterOfMass self, ObjectKey a0, Object a1)
3302  set_value(CenterOfMass self, SparseFloatKey a0, IMP::Float a1)
3303  set_value(CenterOfMass self, SparseIntKey a0, IMP::Int a1)
3304  set_value(CenterOfMass self, SparseStringKey a0, IMP::String a1)
3305  set_value(CenterOfMass self, SparseParticleIndexKey a0, ParticleIndex a1)
3306  """
3307  return _IMP_atom.CenterOfMass_set_value(self, *args)
3308 
3309  def remove_attribute(self, *args):
3310  r"""
3311  remove_attribute(CenterOfMass self, FloatKey a0)
3312  remove_attribute(CenterOfMass self, IntKey a0)
3313  remove_attribute(CenterOfMass self, FloatsKey a0)
3314  remove_attribute(CenterOfMass self, IntsKey a0)
3315  remove_attribute(CenterOfMass self, StringKey a0)
3316  remove_attribute(CenterOfMass self, ParticleIndexKey a0)
3317  remove_attribute(CenterOfMass self, ObjectKey a0)
3318  remove_attribute(CenterOfMass self, SparseFloatKey a0)
3319  remove_attribute(CenterOfMass self, SparseIntKey a0)
3320  remove_attribute(CenterOfMass self, SparseStringKey a0)
3321  remove_attribute(CenterOfMass self, SparseParticleIndexKey a0)
3322  """
3323  return _IMP_atom.CenterOfMass_remove_attribute(self, *args)
3324 
3325  def has_attribute(self, *args):
3326  r"""
3327  has_attribute(CenterOfMass self, FloatKey a0) -> bool
3328  has_attribute(CenterOfMass self, IntKey a0) -> bool
3329  has_attribute(CenterOfMass self, FloatsKey a0) -> bool
3330  has_attribute(CenterOfMass self, IntsKey a0) -> bool
3331  has_attribute(CenterOfMass self, StringKey a0) -> bool
3332  has_attribute(CenterOfMass self, ParticleIndexKey a0) -> bool
3333  has_attribute(CenterOfMass self, ObjectKey a0) -> bool
3334  has_attribute(CenterOfMass self, SparseFloatKey a0) -> bool
3335  has_attribute(CenterOfMass self, SparseIntKey a0) -> bool
3336  has_attribute(CenterOfMass self, SparseStringKey a0) -> bool
3337  has_attribute(CenterOfMass self, SparseParticleIndexKey a0) -> bool
3338  """
3339  return _IMP_atom.CenterOfMass_has_attribute(self, *args)
3340 
3341  def get_derivative(self, a0):
3342  r"""get_derivative(CenterOfMass self, FloatKey a0) -> double"""
3343  return _IMP_atom.CenterOfMass_get_derivative(self, a0)
3344 
3345  def get_name(self):
3346  r"""get_name(CenterOfMass self) -> std::string"""
3347  return _IMP_atom.CenterOfMass_get_name(self)
3348 
3349  def clear_caches(self):
3350  r"""clear_caches(CenterOfMass self)"""
3351  return _IMP_atom.CenterOfMass_clear_caches(self)
3352 
3353  def set_name(self, a0):
3354  r"""set_name(CenterOfMass self, std::string a0)"""
3355  return _IMP_atom.CenterOfMass_set_name(self, a0)
3356 
3357  def set_check_level(self, a0):
3358  r"""set_check_level(CenterOfMass self, IMP::CheckLevel a0)"""
3359  return _IMP_atom.CenterOfMass_set_check_level(self, a0)
3360 
3361  def add_to_derivative(self, a0, a1, a2):
3362  r"""add_to_derivative(CenterOfMass self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
3363  return _IMP_atom.CenterOfMass_add_to_derivative(self, a0, a1, a2)
3364 
3365  def set_is_optimized(self, a0, a1):
3366  r"""set_is_optimized(CenterOfMass self, FloatKey a0, bool a1)"""
3367  return _IMP_atom.CenterOfMass_set_is_optimized(self, a0, a1)
3368 
3369  def get_is_optimized(self, a0):
3370  r"""get_is_optimized(CenterOfMass self, FloatKey a0) -> bool"""
3371  return _IMP_atom.CenterOfMass_get_is_optimized(self, a0)
3372 
3373  def get_check_level(self):
3374  r"""get_check_level(CenterOfMass self) -> IMP::CheckLevel"""
3375  return _IMP_atom.CenterOfMass_get_check_level(self)
3376 
3377  def __eq__(self, *args):
3378  r"""
3379  __eq__(CenterOfMass self, CenterOfMass o) -> bool
3380  __eq__(CenterOfMass self, Particle d) -> bool
3381  """
3382  return _IMP_atom.CenterOfMass___eq__(self, *args)
3383 
3384  def __ne__(self, *args):
3385  r"""
3386  __ne__(CenterOfMass self, CenterOfMass o) -> bool
3387  __ne__(CenterOfMass self, Particle d) -> bool
3388  """
3389  return _IMP_atom.CenterOfMass___ne__(self, *args)
3390 
3391  def __le__(self, *args):
3392  r"""
3393  __le__(CenterOfMass self, CenterOfMass o) -> bool
3394  __le__(CenterOfMass self, Particle d) -> bool
3395  """
3396  return _IMP_atom.CenterOfMass___le__(self, *args)
3397 
3398  def __lt__(self, *args):
3399  r"""
3400  __lt__(CenterOfMass self, CenterOfMass o) -> bool
3401  __lt__(CenterOfMass self, Particle d) -> bool
3402  """
3403  return _IMP_atom.CenterOfMass___lt__(self, *args)
3404 
3405  def __ge__(self, *args):
3406  r"""
3407  __ge__(CenterOfMass self, CenterOfMass o) -> bool
3408  __ge__(CenterOfMass self, Particle d) -> bool
3409  """
3410  return _IMP_atom.CenterOfMass___ge__(self, *args)
3411 
3412  def __gt__(self, *args):
3413  r"""
3414  __gt__(CenterOfMass self, CenterOfMass o) -> bool
3415  __gt__(CenterOfMass self, Particle d) -> bool
3416  """
3417  return _IMP_atom.CenterOfMass___gt__(self, *args)
3418 
3419  def __hash__(self):
3420  r"""__hash__(CenterOfMass self) -> std::size_t"""
3421  return _IMP_atom.CenterOfMass___hash__(self)
3422 
3423  def __str__(self):
3424  r"""__str__(CenterOfMass self) -> std::string"""
3425  return _IMP_atom.CenterOfMass___str__(self)
3426 
3427  def __repr__(self):
3428  r"""__repr__(CenterOfMass self) -> std::string"""
3429  return _IMP_atom.CenterOfMass___repr__(self)
3430 
3431  def _get_as_binary(self):
3432  r"""_get_as_binary(CenterOfMass self) -> PyObject *"""
3433  return _IMP_atom.CenterOfMass__get_as_binary(self)
3434 
3435  def _set_from_binary(self, p):
3436  r"""_set_from_binary(CenterOfMass self, PyObject * p)"""
3437  return _IMP_atom.CenterOfMass__set_from_binary(self, p)
3438 
3439  def __getstate__(self):
3440  p = self._get_as_binary()
3441  if len(self.__dict__) > 1:
3442  d = self.__dict__.copy()
3443  del d['this']
3444  p = (d, p)
3445  return p
3446 
3447  def __setstate__(self, p):
3448  if not hasattr(self, 'this'):
3449  self.__init__()
3450  if isinstance(p, tuple):
3451  d, p = p
3452  self.__dict__.update(d)
3453  return self._set_from_binary(p)
3454 
3455  __swig_destroy__ = _IMP_atom.delete_CenterOfMass
3456 
3457 # Register CenterOfMass in _IMP_atom:
3458 _IMP_atom.CenterOfMass_swigregister(CenterOfMass)
3459 class CoverBond(IMP.SingletonModifier):
3460  r"""Proxy of C++ IMP::atom::CoverBond class."""
3461 
3462  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3463 
3464  def __init__(self):
3465  r"""__init__(CoverBond self) -> CoverBond"""
3466  _IMP_atom.CoverBond_swiginit(self, _IMP_atom.new_CoverBond())
3467 
3468  def do_get_inputs(self, m, pis):
3469  r"""do_get_inputs(CoverBond self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3470  return _IMP_atom.CoverBond_do_get_inputs(self, m, pis)
3471 
3472  def do_get_outputs(self, m, pis):
3473  r"""do_get_outputs(CoverBond self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3474  return _IMP_atom.CoverBond_do_get_outputs(self, m, pis)
3475 
3476  def get_version_info(self):
3477  r"""get_version_info(CoverBond self) -> VersionInfo"""
3478  return _IMP_atom.CoverBond_get_version_info(self)
3479  __swig_destroy__ = _IMP_atom.delete_CoverBond
3480 
3481  def __str__(self):
3482  r"""__str__(CoverBond self) -> std::string"""
3483  return _IMP_atom.CoverBond___str__(self)
3484 
3485  def __repr__(self):
3486  r"""__repr__(CoverBond self) -> std::string"""
3487  return _IMP_atom.CoverBond___repr__(self)
3488 
3489  @staticmethod
3490  def get_from(o):
3491  return _object_cast_to_CoverBond(o)
3492 
3493 
3494 # Register CoverBond in _IMP_atom:
3495 _IMP_atom.CoverBond_swigregister(CoverBond)
3496 class Simulator(IMP.Optimizer):
3497  r"""Proxy of C++ IMP::atom::Simulator class."""
3498 
3499  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3500 
3501  def __init__(self, *args):
3502  r"""
3503  __init__(Simulator self, Model m, std::string name="Simulator %1%", double wave_factor=1.0) -> Simulator
3504  __init__(Simulator self) -> Simulator
3505  """
3506  if self.__class__ == Simulator:
3507  _self = None
3508  else:
3509  _self = self
3510  _IMP_atom.Simulator_swiginit(self, _IMP_atom.new_Simulator(_self, *args))
3511 
3512  if self.__class__ != Simulator:
3513  _director_objects.register(self)
3514 
3515 
3516 
3517 
3518  def simulate(self, time_in_fs):
3519  r"""simulate(Simulator self, double time_in_fs) -> double"""
3520  return _IMP_atom.Simulator_simulate(self, time_in_fs)
3521 
3522  def simulate_wave(self, time_in_fs, max_time_step_factor=10.0, base=1.5):
3523  r"""simulate_wave(Simulator self, double time_in_fs, double max_time_step_factor=10.0, double base=1.5) -> double"""
3524  return _IMP_atom.Simulator_simulate_wave(self, time_in_fs, max_time_step_factor, base)
3525 
3526  def get_temperature(self):
3527  r"""get_temperature(Simulator self) -> double"""
3528  return _IMP_atom.Simulator_get_temperature(self)
3529 
3530  def set_temperature(self, d):
3531  r"""set_temperature(Simulator self, double d)"""
3532  return _IMP_atom.Simulator_set_temperature(self, d)
3533 
3534  def set_maximum_time_step(self, ts):
3535  r"""set_maximum_time_step(Simulator self, double ts)"""
3536  return _IMP_atom.Simulator_set_maximum_time_step(self, ts)
3537 
3538  def get_maximum_time_step(self):
3539  r"""get_maximum_time_step(Simulator self) -> double"""
3540  return _IMP_atom.Simulator_get_maximum_time_step(self)
3541 
3542  def get_last_time_step(self):
3543  r"""get_last_time_step(Simulator self) -> double"""
3544  return _IMP_atom.Simulator_get_last_time_step(self)
3545 
3546  def set_time_step(self, ts):
3547  r"""set_time_step(Simulator self, double ts)"""
3548  return _IMP_atom.Simulator_set_time_step(self, ts)
3549 
3550  def get_kt(self):
3551  r"""get_kt(Simulator self) -> double"""
3552  return _IMP_atom.Simulator_get_kt(self)
3553 
3554  def get_current_time(self):
3555  r"""get_current_time(Simulator self) -> double"""
3556  return _IMP_atom.Simulator_get_current_time(self)
3557 
3558  def set_current_time(self, ct):
3559  r"""set_current_time(Simulator self, double ct)"""
3560  return _IMP_atom.Simulator_set_current_time(self, ct)
3561 
3562  def get_simulation_particles(self):
3563  r"""get_simulation_particles(Simulator self) -> IMP::ParticlesTemp"""
3564  return _IMP_atom.Simulator_get_simulation_particles(self)
3565 
3566  def get_simulation_particle_indexes(self):
3567  r"""get_simulation_particle_indexes(Simulator self) -> IMP::ParticleIndexes"""
3568  return _IMP_atom.Simulator_get_simulation_particle_indexes(self)
3569  def __get_particles(self): return IMP._list_util.VarList(getdimfunc=self.get_number_of_particles, getfunc=self.get_particle, erasefunc=self.erase_particle, appendfunc=self.add_particle, extendfunc=self.add_particles, clearfunc=self.clear_particles, indexfunc=self._python_index_particle)
3570  def __set_particles(self, obj): IMP._list_util.set_varlist(self.particles, obj)
3571  def __del_particles(self): IMP._list_util.del_varlist(self.particles)
3572  particles = property(__get_particles, __set_particles, __del_particles, doc="List of ##ucnames")
3573 
3574  def remove_particle(self, d):
3575  r"""remove_particle(Simulator self, Particle d)"""
3576  return _IMP_atom.Simulator_remove_particle(self, d)
3577 
3578  def _python_index_particle(self, d, start, stop):
3579  r"""_python_index_particle(Simulator self, Particle d, unsigned int start, unsigned int stop) -> unsigned int"""
3580  return _IMP_atom.Simulator__python_index_particle(self, d, start, stop)
3581 
3582  def remove_particles(self, d):
3583  r"""remove_particles(Simulator self, IMP::Particles const & d)"""
3584  return _IMP_atom.Simulator_remove_particles(self, d)
3585 
3586  def set_particles(self, ps):
3587  r"""set_particles(Simulator self, IMP::Particles const & ps)"""
3588  return _IMP_atom.Simulator_set_particles(self, ps)
3589 
3590  def set_particles_order(self, objs):
3591  r"""set_particles_order(Simulator self, IMP::Particles const & objs)"""
3592  return _IMP_atom.Simulator_set_particles_order(self, objs)
3593 
3594  def add_particle(self, obj):
3595  r"""add_particle(Simulator self, Particle obj) -> unsigned int"""
3596  return _IMP_atom.Simulator_add_particle(self, obj)
3597 
3598  def add_particles(self, objs):
3599  r"""add_particles(Simulator self, IMP::Particles const & objs)"""
3600  return _IMP_atom.Simulator_add_particles(self, objs)
3601 
3602  def clear_particles(self):
3603  r"""clear_particles(Simulator self)"""
3604  return _IMP_atom.Simulator_clear_particles(self)
3605 
3606  def get_number_of_particles(self):
3607  r"""get_number_of_particles(Simulator self) -> unsigned int"""
3608  return _IMP_atom.Simulator_get_number_of_particles(self)
3609 
3610  def get_has_particles(self):
3611  r"""get_has_particles(Simulator self) -> bool"""
3612  return _IMP_atom.Simulator_get_has_particles(self)
3613 
3614  def get_particle(self, i):
3615  r"""get_particle(Simulator self, unsigned int i) -> Particle"""
3616  return _IMP_atom.Simulator_get_particle(self, i)
3617 
3618  def get_particles(self):
3619  r"""get_particles(Simulator self) -> IMP::Particles"""
3620  return _IMP_atom.Simulator_get_particles(self)
3621 
3622  def erase_particle(self, i):
3623  r"""erase_particle(Simulator self, unsigned int i)"""
3624  return _IMP_atom.Simulator_erase_particle(self, i)
3625 
3626  def reserve_particles(self, sz):
3627  r"""reserve_particles(Simulator self, unsigned int sz)"""
3628  return _IMP_atom.Simulator_reserve_particles(self, sz)
3629 
3630  def do_optimize(self, max_steps):
3631  r"""do_optimize(Simulator self, unsigned int max_steps) -> IMP::Float"""
3632  return _IMP_atom.Simulator_do_optimize(self, max_steps)
3633 
3634  def setup(self, arg0):
3635  r"""setup(Simulator self, IMP::ParticleIndexes const & arg0)"""
3636  return _IMP_atom.Simulator_setup(self, arg0)
3637 
3638  def do_step(self, sc, dt):
3639  r"""do_step(Simulator self, IMP::ParticleIndexes const & sc, double dt) -> double"""
3640  return _IMP_atom.Simulator_do_step(self, sc, dt)
3641 
3642  def get_is_simulation_particle(self, p):
3643  r"""get_is_simulation_particle(Simulator self, ParticleIndex p) -> bool"""
3644  return _IMP_atom.Simulator_get_is_simulation_particle(self, p)
3645 
3646  def do_simulate(self, time):
3647  r"""do_simulate(Simulator self, double time) -> double"""
3648  return _IMP_atom.Simulator_do_simulate(self, time)
3649 
3650  def do_simulate_wave(self, time_in_fs, max_time_step_factor=10.0, base=1.5):
3651  r"""do_simulate_wave(Simulator self, double time_in_fs, double max_time_step_factor=10.0, double base=1.5) -> double"""
3652  return _IMP_atom.Simulator_do_simulate_wave(self, time_in_fs, max_time_step_factor, base)
3653 
3654  def __str__(self):
3655  r"""__str__(Simulator self) -> std::string"""
3656  return _IMP_atom.Simulator___str__(self)
3657 
3658  def __repr__(self):
3659  r"""__repr__(Simulator self) -> std::string"""
3660  return _IMP_atom.Simulator___repr__(self)
3661 
3662  @staticmethod
3663  def get_from(o):
3664  return _object_cast_to_Simulator(o)
3665 
3666 
3667  def do_show(self, out):
3668  pass
3669 
3670  @staticmethod
3671  def get_from(o):
3672  return _object_cast_to_Simulator(o)
3673 
3674  __swig_destroy__ = _IMP_atom.delete_Simulator
3675  def __disown__(self):
3676  self.this.disown()
3677  _IMP_atom.disown_Simulator(self)
3678  return weakref.proxy(self)
3679 
3680  def do_destroy(self):
3681  r"""do_destroy(Simulator self)"""
3682  return _IMP_atom.Simulator_do_destroy(self)
3683 
3684  def handle_set_has_required_score_states(self, arg0):
3685  r"""handle_set_has_required_score_states(Simulator self, bool arg0)"""
3686  return _IMP_atom.Simulator_handle_set_has_required_score_states(self, arg0)
3687 
3688  def do_get_inputs(self):
3689  r"""do_get_inputs(Simulator self) -> IMP::ModelObjectsTemp"""
3690  return _IMP_atom.Simulator_do_get_inputs(self)
3691 
3692  def do_get_outputs(self):
3693  r"""do_get_outputs(Simulator self) -> IMP::ModelObjectsTemp"""
3694  return _IMP_atom.Simulator_do_get_outputs(self)
3695 
3696  def do_get_interactions(self):
3697  r"""do_get_interactions(Simulator self) -> IMP::ModelObjectsTemps"""
3698  return _IMP_atom.Simulator_do_get_interactions(self)
3699 
3700 # Register Simulator in _IMP_atom:
3701 _IMP_atom.Simulator_swigregister(Simulator)
3702 IMP_ATOM_DEFAULT_BD_RANDOM_POOL_SIZE = _IMP_atom.IMP_ATOM_DEFAULT_BD_RANDOM_POOL_SIZE
3703 
3704 class BrownianDynamics(Simulator):
3705  r"""Proxy of C++ IMP::atom::BrownianDynamics class."""
3706 
3707  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3708 
3709  def __init__(self, *args):
3710  r"""__init__(BrownianDynamics self, Model m, std::string name="BrownianDynamics%1%", double wave_factor=1.0, unsigned int random_pool_size=10000) -> BrownianDynamics"""
3711  _IMP_atom.BrownianDynamics_swiginit(self, _IMP_atom.new_BrownianDynamics(*args))
3712 
3713  def set_maximum_move(self, ms_in_A):
3714  r"""set_maximum_move(BrownianDynamics self, double ms_in_A)"""
3715  return _IMP_atom.BrownianDynamics_set_maximum_move(self, ms_in_A)
3716 
3717  def get_maximum_move(self):
3718  r"""get_maximum_move(BrownianDynamics self) -> double"""
3719  return _IMP_atom.BrownianDynamics_get_maximum_move(self)
3720 
3721  def set_use_stochastic_runge_kutta(self, tf):
3722  r"""set_use_stochastic_runge_kutta(BrownianDynamics self, bool tf)"""
3723  return _IMP_atom.BrownianDynamics_set_use_stochastic_runge_kutta(self, tf)
3724 
3725  def get_use_stochastic_runge_kutta(self):
3726  r"""get_use_stochastic_runge_kutta(BrownianDynamics self) -> bool"""
3727  return _IMP_atom.BrownianDynamics_get_use_stochastic_runge_kutta(self)
3728 
3729  def get_version_info(self):
3730  r"""get_version_info(BrownianDynamics self) -> VersionInfo"""
3731  return _IMP_atom.BrownianDynamics_get_version_info(self)
3732  __swig_destroy__ = _IMP_atom.delete_BrownianDynamics
3733 
3734  def __str__(self):
3735  r"""__str__(BrownianDynamics self) -> std::string"""
3736  return _IMP_atom.BrownianDynamics___str__(self)
3737 
3738  def __repr__(self):
3739  r"""__repr__(BrownianDynamics self) -> std::string"""
3740  return _IMP_atom.BrownianDynamics___repr__(self)
3741 
3742  @staticmethod
3743  def get_from(o):
3744  return _object_cast_to_BrownianDynamics(o)
3745 
3746 
3747  def _get_jax(self, space=None):
3748  from IMP.atom._jax_util import _BDJAXInfo
3749  # Subclasses like BrownianDynamicsTAMD have subtly different
3750  # dynamics, so they should get their own JAX implementations,
3751  # not reuse ours:
3752  if type(self) is not BrownianDynamics:
3753  raise NotImplementedError(
3754  f"No JAX implementation for {self} ({type(self)})")
3755  return _BDJAXInfo(self, space)
3756 
3757  def _get_jax_optimizer(self, max_steps, space=None):
3758  import IMP.atom._jax_util
3759  return IMP.atom._jax_util._BDJAXOptimizer(self, max_steps, space)
3760 
3761  def _optimize_jax(self, max_steps, space=None):
3762  opt = self._get_jax_optimizer(max_steps, space=space)
3763  score, bd_state = opt.optimize(opt.get_initial_state())
3764  return score
3765 
3766 
3767 # Register BrownianDynamics in _IMP_atom:
3768 _IMP_atom.BrownianDynamics_swigregister(BrownianDynamics)
3769 
3771  r"""get_maximum_time_step_estimate(BrownianDynamics bd) -> double"""
3772  return _IMP_atom.get_maximum_time_step_estimate(bd)
3773 
3774 def get_harmonic_sigma(D, f):
3775  r"""get_harmonic_sigma(double D, double f) -> double"""
3776  return _IMP_atom.get_harmonic_sigma(D, f)
3777 class BrownianDynamicsTAMD(BrownianDynamics):
3778  r"""Proxy of C++ IMP::atom::BrownianDynamicsTAMD class."""
3779 
3780  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3781 
3782  def __init__(self, *args):
3783  r"""__init__(BrownianDynamicsTAMD self, Model m, std::string name="BrownianDynamicsTAMD%1%", double wave_factor=1.0) -> BrownianDynamicsTAMD"""
3784  _IMP_atom.BrownianDynamicsTAMD_swiginit(self, _IMP_atom.new_BrownianDynamicsTAMD(*args))
3785 
3786  def __str__(self):
3787  r"""__str__(BrownianDynamicsTAMD self) -> std::string"""
3788  return _IMP_atom.BrownianDynamicsTAMD___str__(self)
3789 
3790  def __repr__(self):
3791  r"""__repr__(BrownianDynamicsTAMD self) -> std::string"""
3792  return _IMP_atom.BrownianDynamicsTAMD___repr__(self)
3793 
3794  @staticmethod
3795  def get_from(o):
3796  return _object_cast_to_BrownianDynamicsTAMD(o)
3797 
3798  __swig_destroy__ = _IMP_atom.delete_BrownianDynamicsTAMD
3799 
3800 # Register BrownianDynamicsTAMD in _IMP_atom:
3801 _IMP_atom.BrownianDynamicsTAMD_swigregister(BrownianDynamicsTAMD)
3802 class Diffusion(IMP.core.XYZ):
3803  r"""Proxy of C++ IMP::atom::Diffusion class."""
3804 
3805  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3806 
3807  def __init__(self, *args):
3808  r"""
3809  __init__(Diffusion self) -> Diffusion
3810  __init__(Diffusion self, Model m, ParticleIndex id) -> Diffusion
3811  __init__(Diffusion self, _ParticleAdaptor d) -> Diffusion
3812  """
3813  _IMP_atom.Diffusion_swiginit(self, _IMP_atom.new_Diffusion(*args))
3814 
3815  def show(self, *args):
3816  r"""show(Diffusion self, _ostream out=std::cout)"""
3817  return _IMP_atom.Diffusion_show(self, *args)
3818 
3819  @staticmethod
3820  def setup_particle(*args):
3821  r"""
3822  setup_particle(Model m, ParticleIndex pi, IMP::Float D) -> Diffusion
3823  setup_particle(_ParticleAdaptor pa, IMP::Float D) -> Diffusion
3824  setup_particle(Model m, ParticleIndex pi, Vector3D v, IMP::Float D) -> Diffusion
3825  setup_particle(_ParticleAdaptor pa, Vector3D v, IMP::Float D) -> Diffusion
3826  setup_particle(Model m, ParticleIndex pi) -> Diffusion
3827  setup_particle(_ParticleAdaptor pa) -> Diffusion
3828  """
3829  return _IMP_atom.Diffusion_setup_particle(*args)
3830 
3831  @staticmethod
3832  def get_is_setup(*args):
3833  r"""
3834  get_is_setup(_ParticleAdaptor p) -> bool
3835  get_is_setup(Model m, ParticleIndex p) -> bool
3836  """
3837  return _IMP_atom.Diffusion_get_is_setup(*args)
3838 
3839  def set_diffusion_coefficient(self, d):
3840  r"""set_diffusion_coefficient(Diffusion self, double d)"""
3841  return _IMP_atom.Diffusion_set_diffusion_coefficient(self, d)
3842 
3843  def get_diffusion_coefficient(self):
3844  r"""get_diffusion_coefficient(Diffusion self) -> double"""
3845  return _IMP_atom.Diffusion_get_diffusion_coefficient(self)
3846 
3847  @staticmethod
3848  def get_diffusion_coefficient_key():
3849  r"""get_diffusion_coefficient_key() -> FloatKey"""
3850  return _IMP_atom.Diffusion_get_diffusion_coefficient_key()
3851 
3852  def add_attribute(self, *args):
3853  r"""
3854  add_attribute(Diffusion self, FloatKey k, IMP::Float v, bool opt)
3855  add_attribute(Diffusion self, FloatKey a0, IMP::Float a1)
3856  add_attribute(Diffusion self, IntKey a0, IMP::Int a1)
3857  add_attribute(Diffusion self, FloatsKey a0, IMP::Floats a1)
3858  add_attribute(Diffusion self, IntsKey a0, IMP::Ints a1)
3859  add_attribute(Diffusion self, StringKey a0, IMP::String a1)
3860  add_attribute(Diffusion self, ParticleIndexKey a0, Particle a1)
3861  add_attribute(Diffusion self, ObjectKey a0, Object a1)
3862  add_attribute(Diffusion self, SparseFloatKey a0, IMP::Float a1)
3863  add_attribute(Diffusion self, SparseIntKey a0, IMP::Int a1)
3864  add_attribute(Diffusion self, SparseStringKey a0, IMP::String a1)
3865  add_attribute(Diffusion self, SparseParticleIndexKey a0, ParticleIndex a1)
3866  """
3867  return _IMP_atom.Diffusion_add_attribute(self, *args)
3868 
3869  def get_value(self, *args):
3870  r"""
3871  get_value(Diffusion self, FloatKey a0) -> IMP::Float
3872  get_value(Diffusion self, IntKey a0) -> IMP::Int
3873  get_value(Diffusion self, FloatsKey a0) -> IMP::Floats
3874  get_value(Diffusion self, IntsKey a0) -> IMP::Ints
3875  get_value(Diffusion self, StringKey a0) -> IMP::String
3876  get_value(Diffusion self, ParticleIndexKey a0) -> Particle
3877  get_value(Diffusion self, ObjectKey a0) -> Object
3878  get_value(Diffusion self, SparseFloatKey a0) -> IMP::Float
3879  get_value(Diffusion self, SparseIntKey a0) -> IMP::Int
3880  get_value(Diffusion self, SparseStringKey a0) -> IMP::String
3881  get_value(Diffusion self, SparseParticleIndexKey a0) -> ParticleIndex
3882  """
3883  return _IMP_atom.Diffusion_get_value(self, *args)
3884 
3885  def set_value(self, *args):
3886  r"""
3887  set_value(Diffusion self, FloatKey a0, IMP::Float a1)
3888  set_value(Diffusion self, IntKey a0, IMP::Int a1)
3889  set_value(Diffusion self, FloatsKey a0, IMP::Floats a1)
3890  set_value(Diffusion self, IntsKey a0, IMP::Ints a1)
3891  set_value(Diffusion self, StringKey a0, IMP::String a1)
3892  set_value(Diffusion self, ParticleIndexKey a0, Particle a1)
3893  set_value(Diffusion self, ObjectKey a0, Object a1)
3894  set_value(Diffusion self, SparseFloatKey a0, IMP::Float a1)
3895  set_value(Diffusion self, SparseIntKey a0, IMP::Int a1)
3896  set_value(Diffusion self, SparseStringKey a0, IMP::String a1)
3897  set_value(Diffusion self, SparseParticleIndexKey a0, ParticleIndex a1)
3898  """
3899  return _IMP_atom.Diffusion_set_value(self, *args)
3900 
3901  def remove_attribute(self, *args):
3902  r"""
3903  remove_attribute(Diffusion self, FloatKey a0)
3904  remove_attribute(Diffusion self, IntKey a0)
3905  remove_attribute(Diffusion self, FloatsKey a0)
3906  remove_attribute(Diffusion self, IntsKey a0)
3907  remove_attribute(Diffusion self, StringKey a0)
3908  remove_attribute(Diffusion self, ParticleIndexKey a0)
3909  remove_attribute(Diffusion self, ObjectKey a0)
3910  remove_attribute(Diffusion self, SparseFloatKey a0)
3911  remove_attribute(Diffusion self, SparseIntKey a0)
3912  remove_attribute(Diffusion self, SparseStringKey a0)
3913  remove_attribute(Diffusion self, SparseParticleIndexKey a0)
3914  """
3915  return _IMP_atom.Diffusion_remove_attribute(self, *args)
3916 
3917  def has_attribute(self, *args):
3918  r"""
3919  has_attribute(Diffusion self, FloatKey a0) -> bool
3920  has_attribute(Diffusion self, IntKey a0) -> bool
3921  has_attribute(Diffusion self, FloatsKey a0) -> bool
3922  has_attribute(Diffusion self, IntsKey a0) -> bool
3923  has_attribute(Diffusion self, StringKey a0) -> bool
3924  has_attribute(Diffusion self, ParticleIndexKey a0) -> bool
3925  has_attribute(Diffusion self, ObjectKey a0) -> bool
3926  has_attribute(Diffusion self, SparseFloatKey a0) -> bool
3927  has_attribute(Diffusion self, SparseIntKey a0) -> bool
3928  has_attribute(Diffusion self, SparseStringKey a0) -> bool
3929  has_attribute(Diffusion self, SparseParticleIndexKey a0) -> bool
3930  """
3931  return _IMP_atom.Diffusion_has_attribute(self, *args)
3932 
3933  def get_derivative(self, a0):
3934  r"""get_derivative(Diffusion self, FloatKey a0) -> double"""
3935  return _IMP_atom.Diffusion_get_derivative(self, a0)
3936 
3937  def get_name(self):
3938  r"""get_name(Diffusion self) -> std::string"""
3939  return _IMP_atom.Diffusion_get_name(self)
3940 
3941  def clear_caches(self):
3942  r"""clear_caches(Diffusion self)"""
3943  return _IMP_atom.Diffusion_clear_caches(self)
3944 
3945  def set_name(self, a0):
3946  r"""set_name(Diffusion self, std::string a0)"""
3947  return _IMP_atom.Diffusion_set_name(self, a0)
3948 
3949  def set_check_level(self, a0):
3950  r"""set_check_level(Diffusion self, IMP::CheckLevel a0)"""
3951  return _IMP_atom.Diffusion_set_check_level(self, a0)
3952 
3953  def add_to_derivative(self, a0, a1, a2):
3954  r"""add_to_derivative(Diffusion self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
3955  return _IMP_atom.Diffusion_add_to_derivative(self, a0, a1, a2)
3956 
3957  def set_is_optimized(self, a0, a1):
3958  r"""set_is_optimized(Diffusion self, FloatKey a0, bool a1)"""
3959  return _IMP_atom.Diffusion_set_is_optimized(self, a0, a1)
3960 
3961  def get_is_optimized(self, a0):
3962  r"""get_is_optimized(Diffusion self, FloatKey a0) -> bool"""
3963  return _IMP_atom.Diffusion_get_is_optimized(self, a0)
3964 
3965  def get_check_level(self):
3966  r"""get_check_level(Diffusion self) -> IMP::CheckLevel"""
3967  return _IMP_atom.Diffusion_get_check_level(self)
3968 
3969  def __eq__(self, *args):
3970  r"""
3971  __eq__(Diffusion self, Diffusion o) -> bool
3972  __eq__(Diffusion self, Particle d) -> bool
3973  """
3974  return _IMP_atom.Diffusion___eq__(self, *args)
3975 
3976  def __ne__(self, *args):
3977  r"""
3978  __ne__(Diffusion self, Diffusion o) -> bool
3979  __ne__(Diffusion self, Particle d) -> bool
3980  """
3981  return _IMP_atom.Diffusion___ne__(self, *args)
3982 
3983  def __le__(self, *args):
3984  r"""
3985  __le__(Diffusion self, Diffusion o) -> bool
3986  __le__(Diffusion self, Particle d) -> bool
3987  """
3988  return _IMP_atom.Diffusion___le__(self, *args)
3989 
3990  def __lt__(self, *args):
3991  r"""
3992  __lt__(Diffusion self, Diffusion o) -> bool
3993  __lt__(Diffusion self, Particle d) -> bool
3994  """
3995  return _IMP_atom.Diffusion___lt__(self, *args)
3996 
3997  def __ge__(self, *args):
3998  r"""
3999  __ge__(Diffusion self, Diffusion o) -> bool
4000  __ge__(Diffusion self, Particle d) -> bool
4001  """
4002  return _IMP_atom.Diffusion___ge__(self, *args)
4003 
4004  def __gt__(self, *args):
4005  r"""
4006  __gt__(Diffusion self, Diffusion o) -> bool
4007  __gt__(Diffusion self, Particle d) -> bool
4008  """
4009  return _IMP_atom.Diffusion___gt__(self, *args)
4010 
4011  def __hash__(self):
4012  r"""__hash__(Diffusion self) -> std::size_t"""
4013  return _IMP_atom.Diffusion___hash__(self)
4014 
4015  def __str__(self):
4016  r"""__str__(Diffusion self) -> std::string"""
4017  return _IMP_atom.Diffusion___str__(self)
4018 
4019  def __repr__(self):
4020  r"""__repr__(Diffusion self) -> std::string"""
4021  return _IMP_atom.Diffusion___repr__(self)
4022 
4023  def _get_as_binary(self):
4024  r"""_get_as_binary(Diffusion self) -> PyObject *"""
4025  return _IMP_atom.Diffusion__get_as_binary(self)
4026 
4027  def _set_from_binary(self, p):
4028  r"""_set_from_binary(Diffusion self, PyObject * p)"""
4029  return _IMP_atom.Diffusion__set_from_binary(self, p)
4030 
4031  def __getstate__(self):
4032  p = self._get_as_binary()
4033  if len(self.__dict__) > 1:
4034  d = self.__dict__.copy()
4035  del d['this']
4036  p = (d, p)
4037  return p
4038 
4039  def __setstate__(self, p):
4040  if not hasattr(self, 'this'):
4041  self.__init__()
4042  if isinstance(p, tuple):
4043  d, p = p
4044  self.__dict__.update(d)
4045  return self._set_from_binary(p)
4046 
4047  __swig_destroy__ = _IMP_atom.delete_Diffusion
4048 
4049 # Register Diffusion in _IMP_atom:
4050 _IMP_atom.Diffusion_swigregister(Diffusion)
4051 
4052 def get_diffusion_coefficient_from_cm2_per_second(din):
4053  r"""get_diffusion_coefficient_from_cm2_per_second(double din) -> double"""
4054  return _IMP_atom.get_diffusion_coefficient_from_cm2_per_second(din)
4055 class RigidBodyDiffusion(Diffusion):
4056  r"""Proxy of C++ IMP::atom::RigidBodyDiffusion class."""
4057 
4058  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4059 
4060  def __init__(self, *args):
4061  r"""
4062  __init__(RigidBodyDiffusion self) -> RigidBodyDiffusion
4063  __init__(RigidBodyDiffusion self, Model m, ParticleIndex id) -> RigidBodyDiffusion
4064  __init__(RigidBodyDiffusion self, _ParticleAdaptor d) -> RigidBodyDiffusion
4065  """
4066  _IMP_atom.RigidBodyDiffusion_swiginit(self, _IMP_atom.new_RigidBodyDiffusion(*args))
4067 
4068  def show(self, *args):
4069  r"""show(RigidBodyDiffusion self, _ostream out=std::cout)"""
4070  return _IMP_atom.RigidBodyDiffusion_show(self, *args)
4071 
4072  @staticmethod
4073  def setup_particle(*args):
4074  r"""
4075  setup_particle(Model m, ParticleIndex pi) -> RigidBodyDiffusion
4076  setup_particle(_ParticleAdaptor pa) -> RigidBodyDiffusion
4077  """
4078  return _IMP_atom.RigidBodyDiffusion_setup_particle(*args)
4079 
4081  r"""get_rotational_diffusion_coefficient(RigidBodyDiffusion self) -> double"""
4082  return _IMP_atom.RigidBodyDiffusion_get_rotational_diffusion_coefficient(self)
4083 
4084  def set_rotational_diffusion_coefficient(self, d):
4085  r"""set_rotational_diffusion_coefficient(RigidBodyDiffusion self, double d)"""
4086  return _IMP_atom.RigidBodyDiffusion_set_rotational_diffusion_coefficient(self, d)
4087 
4088  @staticmethod
4089  def get_is_setup(*args):
4090  r"""
4091  get_is_setup(_ParticleAdaptor p) -> bool
4092  get_is_setup(Model m, ParticleIndex p) -> bool
4093  """
4094  return _IMP_atom.RigidBodyDiffusion_get_is_setup(*args)
4095 
4096  @staticmethod
4097  def get_rotational_diffusion_coefficient_key():
4098  r"""get_rotational_diffusion_coefficient_key() -> FloatKey"""
4099  return _IMP_atom.RigidBodyDiffusion_get_rotational_diffusion_coefficient_key()
4100 
4101  def add_attribute(self, *args):
4102  r"""
4103  add_attribute(RigidBodyDiffusion self, FloatKey k, IMP::Float v, bool opt)
4104  add_attribute(RigidBodyDiffusion self, FloatKey a0, IMP::Float a1)
4105  add_attribute(RigidBodyDiffusion self, IntKey a0, IMP::Int a1)
4106  add_attribute(RigidBodyDiffusion self, FloatsKey a0, IMP::Floats a1)
4107  add_attribute(RigidBodyDiffusion self, IntsKey a0, IMP::Ints a1)
4108  add_attribute(RigidBodyDiffusion self, StringKey a0, IMP::String a1)
4109  add_attribute(RigidBodyDiffusion self, ParticleIndexKey a0, Particle a1)
4110  add_attribute(RigidBodyDiffusion self, ObjectKey a0, Object a1)
4111  add_attribute(RigidBodyDiffusion self, SparseFloatKey a0, IMP::Float a1)
4112  add_attribute(RigidBodyDiffusion self, SparseIntKey a0, IMP::Int a1)
4113  add_attribute(RigidBodyDiffusion self, SparseStringKey a0, IMP::String a1)
4114  add_attribute(RigidBodyDiffusion self, SparseParticleIndexKey a0, ParticleIndex a1)
4115  """
4116  return _IMP_atom.RigidBodyDiffusion_add_attribute(self, *args)
4117 
4118  def get_value(self, *args):
4119  r"""
4120  get_value(RigidBodyDiffusion self, FloatKey a0) -> IMP::Float
4121  get_value(RigidBodyDiffusion self, IntKey a0) -> IMP::Int
4122  get_value(RigidBodyDiffusion self, FloatsKey a0) -> IMP::Floats
4123  get_value(RigidBodyDiffusion self, IntsKey a0) -> IMP::Ints
4124  get_value(RigidBodyDiffusion self, StringKey a0) -> IMP::String
4125  get_value(RigidBodyDiffusion self, ParticleIndexKey a0) -> Particle
4126  get_value(RigidBodyDiffusion self, ObjectKey a0) -> Object
4127  get_value(RigidBodyDiffusion self, SparseFloatKey a0) -> IMP::Float
4128  get_value(RigidBodyDiffusion self, SparseIntKey a0) -> IMP::Int
4129  get_value(RigidBodyDiffusion self, SparseStringKey a0) -> IMP::String
4130  get_value(RigidBodyDiffusion self, SparseParticleIndexKey a0) -> ParticleIndex
4131  """
4132  return _IMP_atom.RigidBodyDiffusion_get_value(self, *args)
4133 
4134  def set_value(self, *args):
4135  r"""
4136  set_value(RigidBodyDiffusion self, FloatKey a0, IMP::Float a1)
4137  set_value(RigidBodyDiffusion self, IntKey a0, IMP::Int a1)
4138  set_value(RigidBodyDiffusion self, FloatsKey a0, IMP::Floats a1)
4139  set_value(RigidBodyDiffusion self, IntsKey a0, IMP::Ints a1)
4140  set_value(RigidBodyDiffusion self, StringKey a0, IMP::String a1)
4141  set_value(RigidBodyDiffusion self, ParticleIndexKey a0, Particle a1)
4142  set_value(RigidBodyDiffusion self, ObjectKey a0, Object a1)
4143  set_value(RigidBodyDiffusion self, SparseFloatKey a0, IMP::Float a1)
4144  set_value(RigidBodyDiffusion self, SparseIntKey a0, IMP::Int a1)
4145  set_value(RigidBodyDiffusion self, SparseStringKey a0, IMP::String a1)
4146  set_value(RigidBodyDiffusion self, SparseParticleIndexKey a0, ParticleIndex a1)
4147  """
4148  return _IMP_atom.RigidBodyDiffusion_set_value(self, *args)
4149 
4150  def remove_attribute(self, *args):
4151  r"""
4152  remove_attribute(RigidBodyDiffusion self, FloatKey a0)
4153  remove_attribute(RigidBodyDiffusion self, IntKey a0)
4154  remove_attribute(RigidBodyDiffusion self, FloatsKey a0)
4155  remove_attribute(RigidBodyDiffusion self, IntsKey a0)
4156  remove_attribute(RigidBodyDiffusion self, StringKey a0)
4157  remove_attribute(RigidBodyDiffusion self, ParticleIndexKey a0)
4158  remove_attribute(RigidBodyDiffusion self, ObjectKey a0)
4159  remove_attribute(RigidBodyDiffusion self, SparseFloatKey a0)
4160  remove_attribute(RigidBodyDiffusion self, SparseIntKey a0)
4161  remove_attribute(RigidBodyDiffusion self, SparseStringKey a0)
4162  remove_attribute(RigidBodyDiffusion self, SparseParticleIndexKey a0)
4163  """
4164  return _IMP_atom.RigidBodyDiffusion_remove_attribute(self, *args)
4165 
4166  def has_attribute(self, *args):
4167  r"""
4168  has_attribute(RigidBodyDiffusion self, FloatKey a0) -> bool
4169  has_attribute(RigidBodyDiffusion self, IntKey a0) -> bool
4170  has_attribute(RigidBodyDiffusion self, FloatsKey a0) -> bool
4171  has_attribute(RigidBodyDiffusion self, IntsKey a0) -> bool
4172  has_attribute(RigidBodyDiffusion self, StringKey a0) -> bool
4173  has_attribute(RigidBodyDiffusion self, ParticleIndexKey a0) -> bool
4174  has_attribute(RigidBodyDiffusion self, ObjectKey a0) -> bool
4175  has_attribute(RigidBodyDiffusion self, SparseFloatKey a0) -> bool
4176  has_attribute(RigidBodyDiffusion self, SparseIntKey a0) -> bool
4177  has_attribute(RigidBodyDiffusion self, SparseStringKey a0) -> bool
4178  has_attribute(RigidBodyDiffusion self, SparseParticleIndexKey a0) -> bool
4179  """
4180  return _IMP_atom.RigidBodyDiffusion_has_attribute(self, *args)
4181 
4182  def get_derivative(self, a0):
4183  r"""get_derivative(RigidBodyDiffusion self, FloatKey a0) -> double"""
4184  return _IMP_atom.RigidBodyDiffusion_get_derivative(self, a0)
4185 
4186  def get_name(self):
4187  r"""get_name(RigidBodyDiffusion self) -> std::string"""
4188  return _IMP_atom.RigidBodyDiffusion_get_name(self)
4189 
4190  def clear_caches(self):
4191  r"""clear_caches(RigidBodyDiffusion self)"""
4192  return _IMP_atom.RigidBodyDiffusion_clear_caches(self)
4193 
4194  def set_name(self, a0):
4195  r"""set_name(RigidBodyDiffusion self, std::string a0)"""
4196  return _IMP_atom.RigidBodyDiffusion_set_name(self, a0)
4197 
4198  def set_check_level(self, a0):
4199  r"""set_check_level(RigidBodyDiffusion self, IMP::CheckLevel a0)"""
4200  return _IMP_atom.RigidBodyDiffusion_set_check_level(self, a0)
4201 
4202  def add_to_derivative(self, a0, a1, a2):
4203  r"""add_to_derivative(RigidBodyDiffusion self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
4204  return _IMP_atom.RigidBodyDiffusion_add_to_derivative(self, a0, a1, a2)
4205 
4206  def set_is_optimized(self, a0, a1):
4207  r"""set_is_optimized(RigidBodyDiffusion self, FloatKey a0, bool a1)"""
4208  return _IMP_atom.RigidBodyDiffusion_set_is_optimized(self, a0, a1)
4209 
4210  def get_is_optimized(self, a0):
4211  r"""get_is_optimized(RigidBodyDiffusion self, FloatKey a0) -> bool"""
4212  return _IMP_atom.RigidBodyDiffusion_get_is_optimized(self, a0)
4213 
4214  def get_check_level(self):
4215  r"""get_check_level(RigidBodyDiffusion self) -> IMP::CheckLevel"""
4216  return _IMP_atom.RigidBodyDiffusion_get_check_level(self)
4217 
4218  def __eq__(self, *args):
4219  r"""
4220  __eq__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4221  __eq__(RigidBodyDiffusion self, Particle d) -> bool
4222  """
4223  return _IMP_atom.RigidBodyDiffusion___eq__(self, *args)
4224 
4225  def __ne__(self, *args):
4226  r"""
4227  __ne__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4228  __ne__(RigidBodyDiffusion self, Particle d) -> bool
4229  """
4230  return _IMP_atom.RigidBodyDiffusion___ne__(self, *args)
4231 
4232  def __le__(self, *args):
4233  r"""
4234  __le__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4235  __le__(RigidBodyDiffusion self, Particle d) -> bool
4236  """
4237  return _IMP_atom.RigidBodyDiffusion___le__(self, *args)
4238 
4239  def __lt__(self, *args):
4240  r"""
4241  __lt__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4242  __lt__(RigidBodyDiffusion self, Particle d) -> bool
4243  """
4244  return _IMP_atom.RigidBodyDiffusion___lt__(self, *args)
4245 
4246  def __ge__(self, *args):
4247  r"""
4248  __ge__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4249  __ge__(RigidBodyDiffusion self, Particle d) -> bool
4250  """
4251  return _IMP_atom.RigidBodyDiffusion___ge__(self, *args)
4252 
4253  def __gt__(self, *args):
4254  r"""
4255  __gt__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4256  __gt__(RigidBodyDiffusion self, Particle d) -> bool
4257  """
4258  return _IMP_atom.RigidBodyDiffusion___gt__(self, *args)
4259 
4260  def __hash__(self):
4261  r"""__hash__(RigidBodyDiffusion self) -> std::size_t"""
4262  return _IMP_atom.RigidBodyDiffusion___hash__(self)
4263 
4264  def __str__(self):
4265  r"""__str__(RigidBodyDiffusion self) -> std::string"""
4266  return _IMP_atom.RigidBodyDiffusion___str__(self)
4267 
4268  def __repr__(self):
4269  r"""__repr__(RigidBodyDiffusion self) -> std::string"""
4270  return _IMP_atom.RigidBodyDiffusion___repr__(self)
4271 
4272  def _get_as_binary(self):
4273  r"""_get_as_binary(RigidBodyDiffusion self) -> PyObject *"""
4274  return _IMP_atom.RigidBodyDiffusion__get_as_binary(self)
4275 
4276  def _set_from_binary(self, p):
4277  r"""_set_from_binary(RigidBodyDiffusion self, PyObject * p)"""
4278  return _IMP_atom.RigidBodyDiffusion__set_from_binary(self, p)
4279 
4280  def __getstate__(self):
4281  p = self._get_as_binary()
4282  if len(self.__dict__) > 1:
4283  d = self.__dict__.copy()
4284  del d['this']
4285  p = (d, p)
4286  return p
4287 
4288  def __setstate__(self, p):
4289  if not hasattr(self, 'this'):
4290  self.__init__()
4291  if isinstance(p, tuple):
4292  d, p = p
4293  self.__dict__.update(d)
4294  return self._set_from_binary(p)
4295 
4296  __swig_destroy__ = _IMP_atom.delete_RigidBodyDiffusion
4297 
4298 # Register RigidBodyDiffusion in _IMP_atom:
4299 _IMP_atom.RigidBodyDiffusion_swigregister(RigidBodyDiffusion)
4300 class TAMDParticle(IMP.Decorator):
4301  r"""Proxy of C++ IMP::atom::TAMDParticle class."""
4302 
4303  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4304 
4305  def __init__(self, *args):
4306  r"""
4307  __init__(TAMDParticle self) -> TAMDParticle
4308  __init__(TAMDParticle self, Model m, ParticleIndex id) -> TAMDParticle
4309  __init__(TAMDParticle self, _ParticleAdaptor d) -> TAMDParticle
4310  """
4311  _IMP_atom.TAMDParticle_swiginit(self, _IMP_atom.new_TAMDParticle(*args))
4312 
4313  def show(self, *args):
4314  r"""show(TAMDParticle self, _ostream out=std::cout)"""
4315  return _IMP_atom.TAMDParticle_show(self, *args)
4316 
4317  @staticmethod
4318  def setup_particle(*args):
4319  r"""
4320  setup_particle(Model m, ParticleIndex pi, ParticleIndex pi_ref, IMP::Float tsf, IMP::Float fsf) -> TAMDParticle
4321  setup_particle(_ParticleAdaptor pa, ParticleIndex pi_ref, IMP::Float tsf, IMP::Float fsf) -> TAMDParticle
4322  setup_particle(Model m, ParticleIndex pi, Particle p_ref, IMP::Float tsf, IMP::Float fsf) -> TAMDParticle
4323  setup_particle(_ParticleAdaptor pa, Particle p_ref, IMP::Float tsf, IMP::Float fsf) -> TAMDParticle
4324  """
4325  return _IMP_atom.TAMDParticle_setup_particle(*args)
4326 
4327  @staticmethod
4328  def get_is_setup(*args):
4329  r"""
4330  get_is_setup(_ParticleAdaptor p) -> bool
4331  get_is_setup(Model m, ParticleIndex p) -> bool
4332  """
4333  return _IMP_atom.TAMDParticle_get_is_setup(*args)
4334 
4335  def get_reference_particle_index(self):
4336  r"""get_reference_particle_index(TAMDParticle self) -> ParticleIndex"""
4337  return _IMP_atom.TAMDParticle_get_reference_particle_index(self)
4338 
4339  def set_temperature_scale_factor(self, tsf):
4340  r"""set_temperature_scale_factor(TAMDParticle self, float tsf)"""
4341  return _IMP_atom.TAMDParticle_set_temperature_scale_factor(self, tsf)
4342 
4343  def get_temperature_scale_factor(self):
4344  r"""get_temperature_scale_factor(TAMDParticle self) -> double"""
4345  return _IMP_atom.TAMDParticle_get_temperature_scale_factor(self)
4346 
4347  def set_friction_scale_factor(self, tsf):
4348  r"""set_friction_scale_factor(TAMDParticle self, float tsf)"""
4349  return _IMP_atom.TAMDParticle_set_friction_scale_factor(self, tsf)
4350 
4351  def get_friction_scale_factor(self):
4352  r"""get_friction_scale_factor(TAMDParticle self) -> double"""
4353  return _IMP_atom.TAMDParticle_get_friction_scale_factor(self)
4354 
4355  def update_coordinates_from_ref(self):
4356  r"""update_coordinates_from_ref(TAMDParticle self)"""
4357  return _IMP_atom.TAMDParticle_update_coordinates_from_ref(self)
4358 
4359  @staticmethod
4360  def get_temperature_scale_factor_key():
4361  r"""get_temperature_scale_factor_key() -> FloatKey"""
4362  return _IMP_atom.TAMDParticle_get_temperature_scale_factor_key()
4363 
4364  @staticmethod
4365  def get_friction_scale_factor_key():
4366  r"""get_friction_scale_factor_key() -> FloatKey"""
4367  return _IMP_atom.TAMDParticle_get_friction_scale_factor_key()
4368 
4369  @staticmethod
4370  def get_reference_particle_index_key():
4371  r"""get_reference_particle_index_key() -> ParticleIndexKey"""
4372  return _IMP_atom.TAMDParticle_get_reference_particle_index_key()
4373 
4374  def add_attribute(self, *args):
4375  r"""
4376  add_attribute(TAMDParticle self, FloatKey k, IMP::Float v, bool opt)
4377  add_attribute(TAMDParticle self, FloatKey a0, IMP::Float a1)
4378  add_attribute(TAMDParticle self, IntKey a0, IMP::Int a1)
4379  add_attribute(TAMDParticle self, FloatsKey a0, IMP::Floats a1)
4380  add_attribute(TAMDParticle self, IntsKey a0, IMP::Ints a1)
4381  add_attribute(TAMDParticle self, StringKey a0, IMP::String a1)
4382  add_attribute(TAMDParticle self, ParticleIndexKey a0, Particle a1)
4383  add_attribute(TAMDParticle self, ObjectKey a0, Object a1)
4384  add_attribute(TAMDParticle self, SparseFloatKey a0, IMP::Float a1)
4385  add_attribute(TAMDParticle self, SparseIntKey a0, IMP::Int a1)
4386  add_attribute(TAMDParticle self, SparseStringKey a0, IMP::String a1)
4387  add_attribute(TAMDParticle self, SparseParticleIndexKey a0, ParticleIndex a1)
4388  """
4389  return _IMP_atom.TAMDParticle_add_attribute(self, *args)
4390 
4391  def get_value(self, *args):
4392  r"""
4393  get_value(TAMDParticle self, FloatKey a0) -> IMP::Float
4394  get_value(TAMDParticle self, IntKey a0) -> IMP::Int
4395  get_value(TAMDParticle self, FloatsKey a0) -> IMP::Floats
4396  get_value(TAMDParticle self, IntsKey a0) -> IMP::Ints
4397  get_value(TAMDParticle self, StringKey a0) -> IMP::String
4398  get_value(TAMDParticle self, ParticleIndexKey a0) -> Particle
4399  get_value(TAMDParticle self, ObjectKey a0) -> Object
4400  get_value(TAMDParticle self, SparseFloatKey a0) -> IMP::Float
4401  get_value(TAMDParticle self, SparseIntKey a0) -> IMP::Int
4402  get_value(TAMDParticle self, SparseStringKey a0) -> IMP::String
4403  get_value(TAMDParticle self, SparseParticleIndexKey a0) -> ParticleIndex
4404  """
4405  return _IMP_atom.TAMDParticle_get_value(self, *args)
4406 
4407  def set_value(self, *args):
4408  r"""
4409  set_value(TAMDParticle self, FloatKey a0, IMP::Float a1)
4410  set_value(TAMDParticle self, IntKey a0, IMP::Int a1)
4411  set_value(TAMDParticle self, FloatsKey a0, IMP::Floats a1)
4412  set_value(TAMDParticle self, IntsKey a0, IMP::Ints a1)
4413  set_value(TAMDParticle self, StringKey a0, IMP::String a1)
4414  set_value(TAMDParticle self, ParticleIndexKey a0, Particle a1)
4415  set_value(TAMDParticle self, ObjectKey a0, Object a1)
4416  set_value(TAMDParticle self, SparseFloatKey a0, IMP::Float a1)
4417  set_value(TAMDParticle self, SparseIntKey a0, IMP::Int a1)
4418  set_value(TAMDParticle self, SparseStringKey a0, IMP::String a1)
4419  set_value(TAMDParticle self, SparseParticleIndexKey a0, ParticleIndex a1)
4420  """
4421  return _IMP_atom.TAMDParticle_set_value(self, *args)
4422 
4423  def remove_attribute(self, *args):
4424  r"""
4425  remove_attribute(TAMDParticle self, FloatKey a0)
4426  remove_attribute(TAMDParticle self, IntKey a0)
4427  remove_attribute(TAMDParticle self, FloatsKey a0)
4428  remove_attribute(TAMDParticle self, IntsKey a0)
4429  remove_attribute(TAMDParticle self, StringKey a0)
4430  remove_attribute(TAMDParticle self, ParticleIndexKey a0)
4431  remove_attribute(TAMDParticle self, ObjectKey a0)
4432  remove_attribute(TAMDParticle self, SparseFloatKey a0)
4433  remove_attribute(TAMDParticle self, SparseIntKey a0)
4434  remove_attribute(TAMDParticle self, SparseStringKey a0)
4435  remove_attribute(TAMDParticle self, SparseParticleIndexKey a0)
4436  """
4437  return _IMP_atom.TAMDParticle_remove_attribute(self, *args)
4438 
4439  def has_attribute(self, *args):
4440  r"""
4441  has_attribute(TAMDParticle self, FloatKey a0) -> bool
4442  has_attribute(TAMDParticle self, IntKey a0) -> bool
4443  has_attribute(TAMDParticle self, FloatsKey a0) -> bool
4444  has_attribute(TAMDParticle self, IntsKey a0) -> bool
4445  has_attribute(TAMDParticle self, StringKey a0) -> bool
4446  has_attribute(TAMDParticle self, ParticleIndexKey a0) -> bool
4447  has_attribute(TAMDParticle self, ObjectKey a0) -> bool
4448  has_attribute(TAMDParticle self, SparseFloatKey a0) -> bool
4449  has_attribute(TAMDParticle self, SparseIntKey a0) -> bool
4450  has_attribute(TAMDParticle self, SparseStringKey a0) -> bool
4451  has_attribute(TAMDParticle self, SparseParticleIndexKey a0) -> bool
4452  """
4453  return _IMP_atom.TAMDParticle_has_attribute(self, *args)
4454 
4455  def get_derivative(self, a0):
4456  r"""get_derivative(TAMDParticle self, FloatKey a0) -> double"""
4457  return _IMP_atom.TAMDParticle_get_derivative(self, a0)
4458 
4459  def get_name(self):
4460  r"""get_name(TAMDParticle self) -> std::string"""
4461  return _IMP_atom.TAMDParticle_get_name(self)
4462 
4463  def clear_caches(self):
4464  r"""clear_caches(TAMDParticle self)"""
4465  return _IMP_atom.TAMDParticle_clear_caches(self)
4466 
4467  def set_name(self, a0):
4468  r"""set_name(TAMDParticle self, std::string a0)"""
4469  return _IMP_atom.TAMDParticle_set_name(self, a0)
4470 
4471  def set_check_level(self, a0):
4472  r"""set_check_level(TAMDParticle self, IMP::CheckLevel a0)"""
4473  return _IMP_atom.TAMDParticle_set_check_level(self, a0)
4474 
4475  def add_to_derivative(self, a0, a1, a2):
4476  r"""add_to_derivative(TAMDParticle self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
4477  return _IMP_atom.TAMDParticle_add_to_derivative(self, a0, a1, a2)
4478 
4479  def set_is_optimized(self, a0, a1):
4480  r"""set_is_optimized(TAMDParticle self, FloatKey a0, bool a1)"""
4481  return _IMP_atom.TAMDParticle_set_is_optimized(self, a0, a1)
4482 
4483  def get_is_optimized(self, a0):
4484  r"""get_is_optimized(TAMDParticle self, FloatKey a0) -> bool"""
4485  return _IMP_atom.TAMDParticle_get_is_optimized(self, a0)
4486 
4487  def get_check_level(self):
4488  r"""get_check_level(TAMDParticle self) -> IMP::CheckLevel"""
4489  return _IMP_atom.TAMDParticle_get_check_level(self)
4490 
4491  def __eq__(self, *args):
4492  r"""
4493  __eq__(TAMDParticle self, TAMDParticle o) -> bool
4494  __eq__(TAMDParticle self, Particle d) -> bool
4495  """
4496  return _IMP_atom.TAMDParticle___eq__(self, *args)
4497 
4498  def __ne__(self, *args):
4499  r"""
4500  __ne__(TAMDParticle self, TAMDParticle o) -> bool
4501  __ne__(TAMDParticle self, Particle d) -> bool
4502  """
4503  return _IMP_atom.TAMDParticle___ne__(self, *args)
4504 
4505  def __le__(self, *args):
4506  r"""
4507  __le__(TAMDParticle self, TAMDParticle o) -> bool
4508  __le__(TAMDParticle self, Particle d) -> bool
4509  """
4510  return _IMP_atom.TAMDParticle___le__(self, *args)
4511 
4512  def __lt__(self, *args):
4513  r"""
4514  __lt__(TAMDParticle self, TAMDParticle o) -> bool
4515  __lt__(TAMDParticle self, Particle d) -> bool
4516  """
4517  return _IMP_atom.TAMDParticle___lt__(self, *args)
4518 
4519  def __ge__(self, *args):
4520  r"""
4521  __ge__(TAMDParticle self, TAMDParticle o) -> bool
4522  __ge__(TAMDParticle self, Particle d) -> bool
4523  """
4524  return _IMP_atom.TAMDParticle___ge__(self, *args)
4525 
4526  def __gt__(self, *args):
4527  r"""
4528  __gt__(TAMDParticle self, TAMDParticle o) -> bool
4529  __gt__(TAMDParticle self, Particle d) -> bool
4530  """
4531  return _IMP_atom.TAMDParticle___gt__(self, *args)
4532 
4533  def __hash__(self):
4534  r"""__hash__(TAMDParticle self) -> std::size_t"""
4535  return _IMP_atom.TAMDParticle___hash__(self)
4536 
4537  def __str__(self):
4538  r"""__str__(TAMDParticle self) -> std::string"""
4539  return _IMP_atom.TAMDParticle___str__(self)
4540 
4541  def __repr__(self):
4542  r"""__repr__(TAMDParticle self) -> std::string"""
4543  return _IMP_atom.TAMDParticle___repr__(self)
4544 
4545  def _get_as_binary(self):
4546  r"""_get_as_binary(TAMDParticle self) -> PyObject *"""
4547  return _IMP_atom.TAMDParticle__get_as_binary(self)
4548 
4549  def _set_from_binary(self, p):
4550  r"""_set_from_binary(TAMDParticle self, PyObject * p)"""
4551  return _IMP_atom.TAMDParticle__set_from_binary(self, p)
4552 
4553  def __getstate__(self):
4554  p = self._get_as_binary()
4555  if len(self.__dict__) > 1:
4556  d = self.__dict__.copy()
4557  del d['this']
4558  p = (d, p)
4559  return p
4560 
4561  def __setstate__(self, p):
4562  if not hasattr(self, 'this'):
4563  self.__init__()
4564  if isinstance(p, tuple):
4565  d, p = p
4566  self.__dict__.update(d)
4567  return self._set_from_binary(p)
4568 
4569  __swig_destroy__ = _IMP_atom.delete_TAMDParticle
4570 
4571 # Register TAMDParticle in _IMP_atom:
4572 _IMP_atom.TAMDParticle_swigregister(TAMDParticle)
4573 class Charged(IMP.core.XYZ):
4574  r"""Proxy of C++ IMP::atom::Charged class."""
4575 
4576  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4577 
4578  def __init__(self, *args):
4579  r"""
4580  __init__(Charged self) -> Charged
4581  __init__(Charged self, Model m, ParticleIndex id) -> Charged
4582  __init__(Charged self, _ParticleAdaptor d) -> Charged
4583  """
4584  _IMP_atom.Charged_swiginit(self, _IMP_atom.new_Charged(*args))
4585 
4586  def show(self, *args):
4587  r"""show(Charged self, _ostream out=std::cout)"""
4588  return _IMP_atom.Charged_show(self, *args)
4589 
4590  @staticmethod
4591  def setup_particle(*args):
4592  r"""
4593  setup_particle(Model m, ParticleIndex pi, IMP::Float charge) -> Charged
4594  setup_particle(_ParticleAdaptor pa, IMP::Float charge) -> Charged
4595  setup_particle(Model m, ParticleIndex pi, Vector3D v, IMP::Float charge) -> Charged
4596  setup_particle(_ParticleAdaptor pa, Vector3D v, IMP::Float charge) -> Charged
4597  """
4598  return _IMP_atom.Charged_setup_particle(*args)
4599 
4600  def get_charge(self):
4601  r"""get_charge(Charged self) -> IMP::Float"""
4602  return _IMP_atom.Charged_get_charge(self)
4603 
4604  def set_charge(self, t):
4605  r"""set_charge(Charged self, IMP::Float t)"""
4606  return _IMP_atom.Charged_set_charge(self, t)
4607 
4608  @staticmethod
4609  def get_is_setup(*args):
4610  r"""
4611  get_is_setup(_ParticleAdaptor p) -> bool
4612  get_is_setup(Model m, ParticleIndex pi) -> bool
4613  """
4614  return _IMP_atom.Charged_get_is_setup(*args)
4615 
4616  @staticmethod
4617  def get_charge_key():
4618  r"""get_charge_key() -> FloatKey"""
4619  return _IMP_atom.Charged_get_charge_key()
4620 
4621  def add_attribute(self, *args):
4622  r"""
4623  add_attribute(Charged self, FloatKey k, IMP::Float v, bool opt)
4624  add_attribute(Charged self, FloatKey a0, IMP::Float a1)
4625  add_attribute(Charged self, IntKey a0, IMP::Int a1)
4626  add_attribute(Charged self, FloatsKey a0, IMP::Floats a1)
4627  add_attribute(Charged self, IntsKey a0, IMP::Ints a1)
4628  add_attribute(Charged self, StringKey a0, IMP::String a1)
4629  add_attribute(Charged self, ParticleIndexKey a0, Particle a1)
4630  add_attribute(Charged self, ObjectKey a0, Object a1)
4631  add_attribute(Charged self, SparseFloatKey a0, IMP::Float a1)
4632  add_attribute(Charged self, SparseIntKey a0, IMP::Int a1)
4633  add_attribute(Charged self, SparseStringKey a0, IMP::String a1)
4634  add_attribute(Charged self, SparseParticleIndexKey a0, ParticleIndex a1)
4635  """
4636  return _IMP_atom.Charged_add_attribute(self, *args)
4637 
4638  def get_value(self, *args):
4639  r"""
4640  get_value(Charged self, FloatKey a0) -> IMP::Float
4641  get_value(Charged self, IntKey a0) -> IMP::Int
4642  get_value(Charged self, FloatsKey a0) -> IMP::Floats
4643  get_value(Charged self, IntsKey a0) -> IMP::Ints
4644  get_value(Charged self, StringKey a0) -> IMP::String
4645  get_value(Charged self, ParticleIndexKey a0) -> Particle
4646  get_value(Charged self, ObjectKey a0) -> Object
4647  get_value(Charged self, SparseFloatKey a0) -> IMP::Float
4648  get_value(Charged self, SparseIntKey a0) -> IMP::Int
4649  get_value(Charged self, SparseStringKey a0) -> IMP::String
4650  get_value(Charged self, SparseParticleIndexKey a0) -> ParticleIndex
4651  """
4652  return _IMP_atom.Charged_get_value(self, *args)
4653 
4654  def set_value(self, *args):
4655  r"""
4656  set_value(Charged self, FloatKey a0, IMP::Float a1)
4657  set_value(Charged self, IntKey a0, IMP::Int a1)
4658  set_value(Charged self, FloatsKey a0, IMP::Floats a1)
4659  set_value(Charged self, IntsKey a0, IMP::Ints a1)
4660  set_value(Charged self, StringKey a0, IMP::String a1)
4661  set_value(Charged self, ParticleIndexKey a0, Particle a1)
4662  set_value(Charged self, ObjectKey a0, Object a1)
4663  set_value(Charged self, SparseFloatKey a0, IMP::Float a1)
4664  set_value(Charged self, SparseIntKey a0, IMP::Int a1)
4665  set_value(Charged self, SparseStringKey a0, IMP::String a1)
4666  set_value(Charged self, SparseParticleIndexKey a0, ParticleIndex a1)
4667  """
4668  return _IMP_atom.Charged_set_value(self, *args)
4669 
4670  def remove_attribute(self, *args):
4671  r"""
4672  remove_attribute(Charged self, FloatKey a0)
4673  remove_attribute(Charged self, IntKey a0)
4674  remove_attribute(Charged self, FloatsKey a0)
4675  remove_attribute(Charged self, IntsKey a0)
4676  remove_attribute(Charged self, StringKey a0)
4677  remove_attribute(Charged self, ParticleIndexKey a0)
4678  remove_attribute(Charged self, ObjectKey a0)
4679  remove_attribute(Charged self, SparseFloatKey a0)
4680  remove_attribute(Charged self, SparseIntKey a0)
4681  remove_attribute(Charged self, SparseStringKey a0)
4682  remove_attribute(Charged self, SparseParticleIndexKey a0)
4683  """
4684  return _IMP_atom.Charged_remove_attribute(self, *args)
4685 
4686  def has_attribute(self, *args):
4687  r"""
4688  has_attribute(Charged self, FloatKey a0) -> bool
4689  has_attribute(Charged self, IntKey a0) -> bool
4690  has_attribute(Charged self, FloatsKey a0) -> bool
4691  has_attribute(Charged self, IntsKey a0) -> bool
4692  has_attribute(Charged self, StringKey a0) -> bool
4693  has_attribute(Charged self, ParticleIndexKey a0) -> bool
4694  has_attribute(Charged self, ObjectKey a0) -> bool
4695  has_attribute(Charged self, SparseFloatKey a0) -> bool
4696  has_attribute(Charged self, SparseIntKey a0) -> bool
4697  has_attribute(Charged self, SparseStringKey a0) -> bool
4698  has_attribute(Charged self, SparseParticleIndexKey a0) -> bool
4699  """
4700  return _IMP_atom.Charged_has_attribute(self, *args)
4701 
4702  def get_derivative(self, a0):
4703  r"""get_derivative(Charged self, FloatKey a0) -> double"""
4704  return _IMP_atom.Charged_get_derivative(self, a0)
4705 
4706  def get_name(self):
4707  r"""get_name(Charged self) -> std::string"""
4708  return _IMP_atom.Charged_get_name(self)
4709 
4710  def clear_caches(self):
4711  r"""clear_caches(Charged self)"""
4712  return _IMP_atom.Charged_clear_caches(self)
4713 
4714  def set_name(self, a0):
4715  r"""set_name(Charged self, std::string a0)"""
4716  return _IMP_atom.Charged_set_name(self, a0)
4717 
4718  def set_check_level(self, a0):
4719  r"""set_check_level(Charged self, IMP::CheckLevel a0)"""
4720  return _IMP_atom.Charged_set_check_level(self, a0)
4721 
4722  def add_to_derivative(self, a0, a1, a2):
4723  r"""add_to_derivative(Charged self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
4724  return _IMP_atom.Charged_add_to_derivative(self, a0, a1, a2)
4725 
4726  def set_is_optimized(self, a0, a1):
4727  r"""set_is_optimized(Charged self, FloatKey a0, bool a1)"""
4728  return _IMP_atom.Charged_set_is_optimized(self, a0, a1)
4729 
4730  def get_is_optimized(self, a0):
4731  r"""get_is_optimized(Charged self, FloatKey a0) -> bool"""
4732  return _IMP_atom.Charged_get_is_optimized(self, a0)
4733 
4734  def get_check_level(self):
4735  r"""get_check_level(Charged self) -> IMP::CheckLevel"""
4736  return _IMP_atom.Charged_get_check_level(self)
4737 
4738  def __eq__(self, *args):
4739  r"""
4740  __eq__(Charged self, Charged o) -> bool
4741  __eq__(Charged self, Particle d) -> bool
4742  """
4743  return _IMP_atom.Charged___eq__(self, *args)
4744 
4745  def __ne__(self, *args):
4746  r"""
4747  __ne__(Charged self, Charged o) -> bool
4748  __ne__(Charged self, Particle d) -> bool
4749  """
4750  return _IMP_atom.Charged___ne__(self, *args)
4751 
4752  def __le__(self, *args):
4753  r"""
4754  __le__(Charged self, Charged o) -> bool
4755  __le__(Charged self, Particle d) -> bool
4756  """
4757  return _IMP_atom.Charged___le__(self, *args)
4758 
4759  def __lt__(self, *args):
4760  r"""
4761  __lt__(Charged self, Charged o) -> bool
4762  __lt__(Charged self, Particle d) -> bool
4763  """
4764  return _IMP_atom.Charged___lt__(self, *args)
4765 
4766  def __ge__(self, *args):
4767  r"""
4768  __ge__(Charged self, Charged o) -> bool
4769  __ge__(Charged self, Particle d) -> bool
4770  """
4771  return _IMP_atom.Charged___ge__(self, *args)
4772 
4773  def __gt__(self, *args):
4774  r"""
4775  __gt__(Charged self, Charged o) -> bool
4776  __gt__(Charged self, Particle d) -> bool
4777  """
4778  return _IMP_atom.Charged___gt__(self, *args)
4779 
4780  def __hash__(self):
4781  r"""__hash__(Charged self) -> std::size_t"""
4782  return _IMP_atom.Charged___hash__(self)
4783 
4784  def __str__(self):
4785  r"""__str__(Charged self) -> std::string"""
4786  return _IMP_atom.Charged___str__(self)
4787 
4788  def __repr__(self):
4789  r"""__repr__(Charged self) -> std::string"""
4790  return _IMP_atom.Charged___repr__(self)
4791 
4792  def _get_as_binary(self):
4793  r"""_get_as_binary(Charged self) -> PyObject *"""
4794  return _IMP_atom.Charged__get_as_binary(self)
4795 
4796  def _set_from_binary(self, p):
4797  r"""_set_from_binary(Charged self, PyObject * p)"""
4798  return _IMP_atom.Charged__set_from_binary(self, p)
4799 
4800  def __getstate__(self):
4801  p = self._get_as_binary()
4802  if len(self.__dict__) > 1:
4803  d = self.__dict__.copy()
4804  del d['this']
4805  p = (d, p)
4806  return p
4807 
4808  def __setstate__(self, p):
4809  if not hasattr(self, 'this'):
4810  self.__init__()
4811  if isinstance(p, tuple):
4812  d, p = p
4813  self.__dict__.update(d)
4814  return self._set_from_binary(p)
4815 
4816  __swig_destroy__ = _IMP_atom.delete_Charged
4817 
4818 # Register Charged in _IMP_atom:
4819 _IMP_atom.Charged_swigregister(Charged)
4820 class CoulombPairScore(IMP.PairScore):
4821  r"""Proxy of C++ IMP::atom::CoulombPairScore class."""
4822 
4823  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4824 
4825  def __init__(self, f):
4826  r"""__init__(CoulombPairScore self, SmoothingFunction f) -> CoulombPairScore"""
4827  _IMP_atom.CoulombPairScore_swiginit(self, _IMP_atom.new_CoulombPairScore(f))
4828 
4829  def set_relative_dielectric(self, relative_dielectric):
4830  r"""set_relative_dielectric(CoulombPairScore self, double relative_dielectric)"""
4831  return _IMP_atom.CoulombPairScore_set_relative_dielectric(self, relative_dielectric)
4832 
4833  def get_relative_dielectric(self):
4834  r"""get_relative_dielectric(CoulombPairScore self) -> double"""
4835  return _IMP_atom.CoulombPairScore_get_relative_dielectric(self)
4836 
4837  def get_smoothing_function(self):
4838  r"""get_smoothing_function(CoulombPairScore self) -> SmoothingFunction"""
4839  return _IMP_atom.CoulombPairScore_get_smoothing_function(self)
4840 
4841  def do_get_inputs(self, m, pis):
4842  r"""do_get_inputs(CoulombPairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4843  return _IMP_atom.CoulombPairScore_do_get_inputs(self, m, pis)
4844 
4845  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
4846  r"""evaluate_indexes(CoulombPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
4847  return _IMP_atom.CoulombPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
4848 
4849  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
4850  r"""evaluate_indexes_scores(CoulombPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
4851  return _IMP_atom.CoulombPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
4852 
4853  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
4854  r"""evaluate_indexes_delta(CoulombPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
4855  return _IMP_atom.CoulombPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
4856 
4857  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
4858  r"""evaluate_if_good_indexes(CoulombPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
4859  return _IMP_atom.CoulombPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
4860 
4861  def get_version_info(self):
4862  r"""get_version_info(CoulombPairScore self) -> VersionInfo"""
4863  return _IMP_atom.CoulombPairScore_get_version_info(self)
4864  __swig_destroy__ = _IMP_atom.delete_CoulombPairScore
4865 
4866  def __str__(self):
4867  r"""__str__(CoulombPairScore self) -> std::string"""
4868  return _IMP_atom.CoulombPairScore___str__(self)
4869 
4870  def __repr__(self):
4871  r"""__repr__(CoulombPairScore self) -> std::string"""
4872  return _IMP_atom.CoulombPairScore___repr__(self)
4873 
4874  @staticmethod
4875  def get_from(o):
4876  return _object_cast_to_CoulombPairScore(o)
4877 
4878 
4879  def _get_jax(self, m, indexes, space):
4880  import math
4881  import jax
4882  import jax.numpy as jnp
4883  # 1 / (4pi * epsilon) * conversion factor to get score in kcal/mol
4884  # if distances are in angstroms
4885  avogadro = 6.02214179e23 # /mole
4886  electron_charge = 1.6021892e-19 # Coulomb
4887  permittivity_vacuum = 8.854187818e-12 # C/V/m
4888  kcal2joule = 4186.8
4889  factor = (avogadro * electron_charge * electron_charge *
4890  1.0e10 / permittivity_vacuum / kcal2joule /
4891  (4.0 * math.pi * self.get_relative_dielectric()))
4892  sf = self.get_smoothing_function().get_derived_object()
4893  # Function operates on a single distance + score; make it work on
4894  # an array instead using jax.vmap
4895  smoothing_function = jax.vmap(sf._get_jax())
4896  def score(jm):
4897  xyzs = jm['xyz'][indexes]
4898  qs = jm['charge'][indexes]
4899  diff = xyzs[:,0] - xyzs[:,1]
4900  drs = space.distance(diff)
4901  scores = factor * jnp.prod(qs, axis=-1) / drs
4902  return smoothing_function(scores, drs)
4903  return self._wrap_jax(m, score, keys=[Charged.get_charge_key()])
4904 
4905 
4906 # Register CoulombPairScore in _IMP_atom:
4907 _IMP_atom.CoulombPairScore_swigregister(CoulombPairScore)
4908 class Domain(Hierarchy):
4909  r"""Proxy of C++ IMP::atom::Domain class."""
4910 
4911  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4912 
4913  def set_index_range(self, ir):
4914  r"""set_index_range(Domain self, IMP::IntRange ir)"""
4915  return _IMP_atom.Domain_set_index_range(self, ir)
4916 
4917  def get_index_range(self):
4918  r"""get_index_range(Domain self) -> IMP::IntRange"""
4919  return _IMP_atom.Domain_get_index_range(self)
4920 
4921  def __init__(self, *args):
4922  r"""
4923  __init__(Domain self) -> Domain
4924  __init__(Domain self, Model m, ParticleIndex id) -> Domain
4925  __init__(Domain self, _ParticleAdaptor d) -> Domain
4926  """
4927  _IMP_atom.Domain_swiginit(self, _IMP_atom.new_Domain(*args))
4928 
4929  @staticmethod
4930  def get_is_setup(*args):
4931  r"""
4932  get_is_setup(Model m, ParticleIndex pi) -> bool
4933  get_is_setup(_ParticleAdaptor p) -> bool
4934  """
4935  return _IMP_atom.Domain_get_is_setup(*args)
4936 
4937  def show(self, *args):
4938  r"""show(Domain self, _ostream out=std::cout)"""
4939  return _IMP_atom.Domain_show(self, *args)
4940 
4941  @staticmethod
4942  def setup_particle(*args):
4943  r"""
4944  setup_particle(Model m, ParticleIndex pi, Domain other) -> Domain
4945  setup_particle(_ParticleAdaptor pa, Domain other) -> Domain
4946  setup_particle(Model m, ParticleIndex pi, IMP::IntRange residues) -> Domain
4947  setup_particle(_ParticleAdaptor pa, IMP::IntRange residues) -> Domain
4948  """
4949  return _IMP_atom.Domain_setup_particle(*args)
4950 
4951  def add_attribute(self, *args):
4952  r"""
4953  add_attribute(Domain self, FloatKey k, IMP::Float v, bool opt)
4954  add_attribute(Domain self, FloatKey a0, IMP::Float a1)
4955  add_attribute(Domain self, IntKey a0, IMP::Int a1)
4956  add_attribute(Domain self, FloatsKey a0, IMP::Floats a1)
4957  add_attribute(Domain self, IntsKey a0, IMP::Ints a1)
4958  add_attribute(Domain self, StringKey a0, IMP::String a1)
4959  add_attribute(Domain self, ParticleIndexKey a0, Particle a1)
4960  add_attribute(Domain self, ObjectKey a0, Object a1)
4961  add_attribute(Domain self, SparseFloatKey a0, IMP::Float a1)
4962  add_attribute(Domain self, SparseIntKey a0, IMP::Int a1)
4963  add_attribute(Domain self, SparseStringKey a0, IMP::String a1)
4964  add_attribute(Domain self, SparseParticleIndexKey a0, ParticleIndex a1)
4965  """
4966  return _IMP_atom.Domain_add_attribute(self, *args)
4967 
4968  def get_value(self, *args):
4969  r"""
4970  get_value(Domain self, FloatKey a0) -> IMP::Float
4971  get_value(Domain self, IntKey a0) -> IMP::Int
4972  get_value(Domain self, FloatsKey a0) -> IMP::Floats
4973  get_value(Domain self, IntsKey a0) -> IMP::Ints
4974  get_value(Domain self, StringKey a0) -> IMP::String
4975  get_value(Domain self, ParticleIndexKey a0) -> Particle
4976  get_value(Domain self, ObjectKey a0) -> Object
4977  get_value(Domain self, SparseFloatKey a0) -> IMP::Float
4978  get_value(Domain self, SparseIntKey a0) -> IMP::Int
4979  get_value(Domain self, SparseStringKey a0) -> IMP::String
4980  get_value(Domain self, SparseParticleIndexKey a0) -> ParticleIndex
4981  """
4982  return _IMP_atom.Domain_get_value(self, *args)
4983 
4984  def set_value(self, *args):
4985  r"""
4986  set_value(Domain self, FloatKey a0, IMP::Float a1)
4987  set_value(Domain self, IntKey a0, IMP::Int a1)
4988  set_value(Domain self, FloatsKey a0, IMP::Floats a1)
4989  set_value(Domain self, IntsKey a0, IMP::Ints a1)
4990  set_value(Domain self, StringKey a0, IMP::String a1)
4991  set_value(Domain self, ParticleIndexKey a0, Particle a1)
4992  set_value(Domain self, ObjectKey a0, Object a1)
4993  set_value(Domain self, SparseFloatKey a0, IMP::Float a1)
4994  set_value(Domain self, SparseIntKey a0, IMP::Int a1)
4995  set_value(Domain self, SparseStringKey a0, IMP::String a1)
4996  set_value(Domain self, SparseParticleIndexKey a0, ParticleIndex a1)
4997  """
4998  return _IMP_atom.Domain_set_value(self, *args)
4999 
5000  def remove_attribute(self, *args):
5001  r"""
5002  remove_attribute(Domain self, FloatKey a0)
5003  remove_attribute(Domain self, IntKey a0)
5004  remove_attribute(Domain self, FloatsKey a0)
5005  remove_attribute(Domain self, IntsKey a0)
5006  remove_attribute(Domain self, StringKey a0)
5007  remove_attribute(Domain self, ParticleIndexKey a0)
5008  remove_attribute(Domain self, ObjectKey a0)
5009  remove_attribute(Domain self, SparseFloatKey a0)
5010  remove_attribute(Domain self, SparseIntKey a0)
5011  remove_attribute(Domain self, SparseStringKey a0)
5012  remove_attribute(Domain self, SparseParticleIndexKey a0)
5013  """
5014  return _IMP_atom.Domain_remove_attribute(self, *args)
5015 
5016  def has_attribute(self, *args):
5017  r"""
5018  has_attribute(Domain self, FloatKey a0) -> bool
5019  has_attribute(Domain self, IntKey a0) -> bool
5020  has_attribute(Domain self, FloatsKey a0) -> bool
5021  has_attribute(Domain self, IntsKey a0) -> bool
5022  has_attribute(Domain self, StringKey a0) -> bool
5023  has_attribute(Domain self, ParticleIndexKey a0) -> bool
5024  has_attribute(Domain self, ObjectKey a0) -> bool
5025  has_attribute(Domain self, SparseFloatKey a0) -> bool
5026  has_attribute(Domain self, SparseIntKey a0) -> bool
5027  has_attribute(Domain self, SparseStringKey a0) -> bool
5028  has_attribute(Domain self, SparseParticleIndexKey a0) -> bool
5029  """
5030  return _IMP_atom.Domain_has_attribute(self, *args)
5031 
5032  def get_derivative(self, a0):
5033  r"""get_derivative(Domain self, FloatKey a0) -> double"""
5034  return _IMP_atom.Domain_get_derivative(self, a0)
5035 
5036  def get_name(self):
5037  r"""get_name(Domain self) -> std::string"""
5038  return _IMP_atom.Domain_get_name(self)
5039 
5040  def clear_caches(self):
5041  r"""clear_caches(Domain self)"""
5042  return _IMP_atom.Domain_clear_caches(self)
5043 
5044  def set_name(self, a0):
5045  r"""set_name(Domain self, std::string a0)"""
5046  return _IMP_atom.Domain_set_name(self, a0)
5047 
5048  def set_check_level(self, a0):
5049  r"""set_check_level(Domain self, IMP::CheckLevel a0)"""
5050  return _IMP_atom.Domain_set_check_level(self, a0)
5051 
5052  def add_to_derivative(self, a0, a1, a2):
5053  r"""add_to_derivative(Domain self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
5054  return _IMP_atom.Domain_add_to_derivative(self, a0, a1, a2)
5055 
5056  def set_is_optimized(self, a0, a1):
5057  r"""set_is_optimized(Domain self, FloatKey a0, bool a1)"""
5058  return _IMP_atom.Domain_set_is_optimized(self, a0, a1)
5059 
5060  def get_is_optimized(self, a0):
5061  r"""get_is_optimized(Domain self, FloatKey a0) -> bool"""
5062  return _IMP_atom.Domain_get_is_optimized(self, a0)
5063 
5064  def get_check_level(self):
5065  r"""get_check_level(Domain self) -> IMP::CheckLevel"""
5066  return _IMP_atom.Domain_get_check_level(self)
5067 
5068  def __eq__(self, *args):
5069  r"""
5070  __eq__(Domain self, Domain o) -> bool
5071  __eq__(Domain self, Particle d) -> bool
5072  """
5073  return _IMP_atom.Domain___eq__(self, *args)
5074 
5075  def __ne__(self, *args):
5076  r"""
5077  __ne__(Domain self, Domain o) -> bool
5078  __ne__(Domain self, Particle d) -> bool
5079  """
5080  return _IMP_atom.Domain___ne__(self, *args)
5081 
5082  def __le__(self, *args):
5083  r"""
5084  __le__(Domain self, Domain o) -> bool
5085  __le__(Domain self, Particle d) -> bool
5086  """
5087  return _IMP_atom.Domain___le__(self, *args)
5088 
5089  def __lt__(self, *args):
5090  r"""
5091  __lt__(Domain self, Domain o) -> bool
5092  __lt__(Domain self, Particle d) -> bool
5093  """
5094  return _IMP_atom.Domain___lt__(self, *args)
5095 
5096  def __ge__(self, *args):
5097  r"""
5098  __ge__(Domain self, Domain o) -> bool
5099  __ge__(Domain self, Particle d) -> bool
5100  """
5101  return _IMP_atom.Domain___ge__(self, *args)
5102 
5103  def __gt__(self, *args):
5104  r"""
5105  __gt__(Domain self, Domain o) -> bool
5106  __gt__(Domain self, Particle d) -> bool
5107  """
5108  return _IMP_atom.Domain___gt__(self, *args)
5109 
5110  def __hash__(self):
5111  r"""__hash__(Domain self) -> std::size_t"""
5112  return _IMP_atom.Domain___hash__(self)
5113 
5114  def __str__(self):
5115  r"""__str__(Domain self) -> std::string"""
5116  return _IMP_atom.Domain___str__(self)
5117 
5118  def __repr__(self):
5119  r"""__repr__(Domain self) -> std::string"""
5120  return _IMP_atom.Domain___repr__(self)
5121 
5122  def _get_as_binary(self):
5123  r"""_get_as_binary(Domain self) -> PyObject *"""
5124  return _IMP_atom.Domain__get_as_binary(self)
5125 
5126  def _set_from_binary(self, p):
5127  r"""_set_from_binary(Domain self, PyObject * p)"""
5128  return _IMP_atom.Domain__set_from_binary(self, p)
5129 
5130  def __getstate__(self):
5131  p = self._get_as_binary()
5132  if len(self.__dict__) > 1:
5133  d = self.__dict__.copy()
5134  del d['this']
5135  p = (d, p)
5136  return p
5137 
5138  def __setstate__(self, p):
5139  if not hasattr(self, 'this'):
5140  self.__init__()
5141  if isinstance(p, tuple):
5142  d, p = p
5143  self.__dict__.update(d)
5144  return self._set_from_binary(p)
5145 
5146  __swig_destroy__ = _IMP_atom.delete_Domain
5147 
5148 # Register Domain in _IMP_atom:
5149 _IMP_atom.Domain_swigregister(Domain)
5150 class LennardJonesType(IMP.Object):
5151  r"""Proxy of C++ IMP::atom::LennardJonesType class."""
5152 
5153  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5154 
5155  def __init__(self, *args):
5156  r"""__init__(LennardJonesType self, double well_depth, double radius, std::string name="LennardJonesType%1%") -> LennardJonesType"""
5157  _IMP_atom.LennardJonesType_swiginit(self, _IMP_atom.new_LennardJonesType(*args))
5158 
5159  def get_well_depth(self):
5160  r"""get_well_depth(LennardJonesType self) -> double"""
5161  return _IMP_atom.LennardJonesType_get_well_depth(self)
5162 
5163  def set_well_depth(self, d):
5164  r"""set_well_depth(LennardJonesType self, double d)"""
5165  return _IMP_atom.LennardJonesType_set_well_depth(self, d)
5166 
5167  def get_radius(self):
5168  r"""get_radius(LennardJonesType self) -> double"""
5169  return _IMP_atom.LennardJonesType_get_radius(self)
5170 
5171  def set_radius(self, r):
5172  r"""set_radius(LennardJonesType self, double r)"""
5173  return _IMP_atom.LennardJonesType_set_radius(self, r)
5174 
5175  def get_index(self):
5176  r"""get_index(LennardJonesType self) -> int"""
5177  return _IMP_atom.LennardJonesType_get_index(self)
5178 
5179  def get_version_info(self):
5180  r"""get_version_info(LennardJonesType self) -> VersionInfo"""
5181  return _IMP_atom.LennardJonesType_get_version_info(self)
5182  __swig_destroy__ = _IMP_atom.delete_LennardJonesType
5183 
5184  def __str__(self):
5185  r"""__str__(LennardJonesType self) -> std::string"""
5186  return _IMP_atom.LennardJonesType___str__(self)
5187 
5188  def __repr__(self):
5189  r"""__repr__(LennardJonesType self) -> std::string"""
5190  return _IMP_atom.LennardJonesType___repr__(self)
5191 
5192  @staticmethod
5193  def get_from(o):
5194  return _object_cast_to_LennardJonesType(o)
5195 
5196 
5197 # Register LennardJonesType in _IMP_atom:
5198 _IMP_atom.LennardJonesType_swigregister(LennardJonesType)
5199 class LennardJonesTyped(IMP.core.XYZ):
5200  r"""Proxy of C++ IMP::atom::LennardJonesTyped class."""
5201 
5202  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5203 
5204  def __init__(self, *args):
5205  r"""
5206  __init__(LennardJonesTyped self) -> LennardJonesTyped
5207  __init__(LennardJonesTyped self, Model m, ParticleIndex id) -> LennardJonesTyped
5208  __init__(LennardJonesTyped self, _ParticleAdaptor d) -> LennardJonesTyped
5209  """
5210  _IMP_atom.LennardJonesTyped_swiginit(self, _IMP_atom.new_LennardJonesTyped(*args))
5211 
5212  def show(self, *args):
5213  r"""show(LennardJonesTyped self, _ostream out=std::cout)"""
5214  return _IMP_atom.LennardJonesTyped_show(self, *args)
5215 
5216  @staticmethod
5217  def setup_particle(*args):
5218  r"""
5219  setup_particle(Model m, ParticleIndex pi, LennardJonesType type) -> LennardJonesTyped
5220  setup_particle(_ParticleAdaptor pa, LennardJonesType type) -> LennardJonesTyped
5221  """
5222  return _IMP_atom.LennardJonesTyped_setup_particle(*args)
5223 
5224  @staticmethod
5225  def get_is_setup(*args):
5226  r"""
5227  get_is_setup(_ParticleAdaptor p) -> bool
5228  get_is_setup(Model m, ParticleIndex pi) -> bool
5229  """
5230  return _IMP_atom.LennardJonesTyped_get_is_setup(*args)
5231 
5232  def set_type(self, type):
5233  r"""set_type(LennardJonesTyped self, LennardJonesType type)"""
5234  return _IMP_atom.LennardJonesTyped_set_type(self, type)
5235 
5236  def get_type(self):
5237  r"""get_type(LennardJonesTyped self) -> LennardJonesType"""
5238  return _IMP_atom.LennardJonesTyped_get_type(self)
5239 
5240  def get_index(self):
5241  r"""get_index(LennardJonesTyped self) -> int"""
5242  return _IMP_atom.LennardJonesTyped_get_index(self)
5243 
5244  def get_well_depth(self):
5245  r"""get_well_depth(LennardJonesTyped self) -> double"""
5246  return _IMP_atom.LennardJonesTyped_get_well_depth(self)
5247 
5248  def get_radius(self):
5249  r"""get_radius(LennardJonesTyped self) -> double"""
5250  return _IMP_atom.LennardJonesTyped_get_radius(self)
5251 
5252  @staticmethod
5253  def get_type_key():
5254  r"""get_type_key() -> IntKey"""
5255  return _IMP_atom.LennardJonesTyped_get_type_key()
5256 
5257  def add_attribute(self, *args):
5258  r"""
5259  add_attribute(LennardJonesTyped self, FloatKey k, IMP::Float v, bool opt)
5260  add_attribute(LennardJonesTyped self, FloatKey a0, IMP::Float a1)
5261  add_attribute(LennardJonesTyped self, IntKey a0, IMP::Int a1)
5262  add_attribute(LennardJonesTyped self, FloatsKey a0, IMP::Floats a1)
5263  add_attribute(LennardJonesTyped self, IntsKey a0, IMP::Ints a1)
5264  add_attribute(LennardJonesTyped self, StringKey a0, IMP::String a1)
5265  add_attribute(LennardJonesTyped self, ParticleIndexKey a0, Particle a1)
5266  add_attribute(LennardJonesTyped self, ObjectKey a0, Object a1)
5267  add_attribute(LennardJonesTyped self, SparseFloatKey a0, IMP::Float a1)
5268  add_attribute(LennardJonesTyped self, SparseIntKey a0, IMP::Int a1)
5269  add_attribute(LennardJonesTyped self, SparseStringKey a0, IMP::String a1)
5270  add_attribute(LennardJonesTyped self, SparseParticleIndexKey a0, ParticleIndex a1)
5271  """
5272  return _IMP_atom.LennardJonesTyped_add_attribute(self, *args)
5273 
5274  def get_value(self, *args):
5275  r"""
5276  get_value(LennardJonesTyped self, FloatKey a0) -> IMP::Float
5277  get_value(LennardJonesTyped self, IntKey a0) -> IMP::Int
5278  get_value(LennardJonesTyped self, FloatsKey a0) -> IMP::Floats
5279  get_value(LennardJonesTyped self, IntsKey a0) -> IMP::Ints
5280  get_value(LennardJonesTyped self, StringKey a0) -> IMP::String
5281  get_value(LennardJonesTyped self, ParticleIndexKey a0) -> Particle
5282  get_value(LennardJonesTyped self, ObjectKey a0) -> Object
5283  get_value(LennardJonesTyped self, SparseFloatKey a0) -> IMP::Float
5284  get_value(LennardJonesTyped self, SparseIntKey a0) -> IMP::Int
5285  get_value(LennardJonesTyped self, SparseStringKey a0) -> IMP::String
5286  get_value(LennardJonesTyped self, SparseParticleIndexKey a0) -> ParticleIndex
5287  """
5288  return _IMP_atom.LennardJonesTyped_get_value(self, *args)
5289 
5290  def set_value(self, *args):
5291  r"""
5292  set_value(LennardJonesTyped self, FloatKey a0, IMP::Float a1)
5293  set_value(LennardJonesTyped self, IntKey a0, IMP::Int a1)
5294  set_value(LennardJonesTyped self, FloatsKey a0, IMP::Floats a1)
5295  set_value(LennardJonesTyped self, IntsKey a0, IMP::Ints a1)
5296  set_value(LennardJonesTyped self, StringKey a0, IMP::String a1)
5297  set_value(LennardJonesTyped self, ParticleIndexKey a0, Particle a1)
5298  set_value(LennardJonesTyped self, ObjectKey a0, Object a1)
5299  set_value(LennardJonesTyped self, SparseFloatKey a0, IMP::Float a1)
5300  set_value(LennardJonesTyped self, SparseIntKey a0, IMP::Int a1)
5301  set_value(LennardJonesTyped self, SparseStringKey a0, IMP::String a1)
5302  set_value(LennardJonesTyped self, SparseParticleIndexKey a0, ParticleIndex a1)
5303  """
5304  return _IMP_atom.LennardJonesTyped_set_value(self, *args)
5305 
5306  def remove_attribute(self, *args):
5307  r"""
5308  remove_attribute(LennardJonesTyped self, FloatKey a0)
5309  remove_attribute(LennardJonesTyped self, IntKey a0)
5310  remove_attribute(LennardJonesTyped self, FloatsKey a0)
5311  remove_attribute(LennardJonesTyped self, IntsKey a0)
5312  remove_attribute(LennardJonesTyped self, StringKey a0)
5313  remove_attribute(LennardJonesTyped self, ParticleIndexKey a0)
5314  remove_attribute(LennardJonesTyped self, ObjectKey a0)
5315  remove_attribute(LennardJonesTyped self, SparseFloatKey a0)
5316  remove_attribute(LennardJonesTyped self, SparseIntKey a0)
5317  remove_attribute(LennardJonesTyped self, SparseStringKey a0)
5318  remove_attribute(LennardJonesTyped self, SparseParticleIndexKey a0)
5319  """
5320  return _IMP_atom.LennardJonesTyped_remove_attribute(self, *args)
5321 
5322  def has_attribute(self, *args):
5323  r"""
5324  has_attribute(LennardJonesTyped self, FloatKey a0) -> bool
5325  has_attribute(LennardJonesTyped self, IntKey a0) -> bool
5326  has_attribute(LennardJonesTyped self, FloatsKey a0) -> bool
5327  has_attribute(LennardJonesTyped self, IntsKey a0) -> bool
5328  has_attribute(LennardJonesTyped self, StringKey a0) -> bool
5329  has_attribute(LennardJonesTyped self, ParticleIndexKey a0) -> bool
5330  has_attribute(LennardJonesTyped self, ObjectKey a0) -> bool
5331  has_attribute(LennardJonesTyped self, SparseFloatKey a0) -> bool
5332  has_attribute(LennardJonesTyped self, SparseIntKey a0) -> bool
5333  has_attribute(LennardJonesTyped self, SparseStringKey a0) -> bool
5334  has_attribute(LennardJonesTyped self, SparseParticleIndexKey a0) -> bool
5335  """
5336  return _IMP_atom.LennardJonesTyped_has_attribute(self, *args)
5337 
5338  def get_derivative(self, a0):
5339  r"""get_derivative(LennardJonesTyped self, FloatKey a0) -> double"""
5340  return _IMP_atom.LennardJonesTyped_get_derivative(self, a0)
5341 
5342  def get_name(self):
5343  r"""get_name(LennardJonesTyped self) -> std::string"""
5344  return _IMP_atom.LennardJonesTyped_get_name(self)
5345 
5346  def clear_caches(self):
5347  r"""clear_caches(LennardJonesTyped self)"""
5348  return _IMP_atom.LennardJonesTyped_clear_caches(self)
5349 
5350  def set_name(self, a0):
5351  r"""set_name(LennardJonesTyped self, std::string a0)"""
5352  return _IMP_atom.LennardJonesTyped_set_name(self, a0)
5353 
5354  def set_check_level(self, a0):
5355  r"""set_check_level(LennardJonesTyped self, IMP::CheckLevel a0)"""
5356  return _IMP_atom.LennardJonesTyped_set_check_level(self, a0)
5357 
5358  def add_to_derivative(self, a0, a1, a2):
5359  r"""add_to_derivative(LennardJonesTyped self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
5360  return _IMP_atom.LennardJonesTyped_add_to_derivative(self, a0, a1, a2)
5361 
5362  def set_is_optimized(self, a0, a1):
5363  r"""set_is_optimized(LennardJonesTyped self, FloatKey a0, bool a1)"""
5364  return _IMP_atom.LennardJonesTyped_set_is_optimized(self, a0, a1)
5365 
5366  def get_is_optimized(self, a0):
5367  r"""get_is_optimized(LennardJonesTyped self, FloatKey a0) -> bool"""
5368  return _IMP_atom.LennardJonesTyped_get_is_optimized(self, a0)
5369 
5370  def get_check_level(self):
5371  r"""get_check_level(LennardJonesTyped self) -> IMP::CheckLevel"""
5372  return _IMP_atom.LennardJonesTyped_get_check_level(self)
5373 
5374  def __eq__(self, *args):
5375  r"""
5376  __eq__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5377  __eq__(LennardJonesTyped self, Particle d) -> bool
5378  """
5379  return _IMP_atom.LennardJonesTyped___eq__(self, *args)
5380 
5381  def __ne__(self, *args):
5382  r"""
5383  __ne__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5384  __ne__(LennardJonesTyped self, Particle d) -> bool
5385  """
5386  return _IMP_atom.LennardJonesTyped___ne__(self, *args)
5387 
5388  def __le__(self, *args):
5389  r"""
5390  __le__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5391  __le__(LennardJonesTyped self, Particle d) -> bool
5392  """
5393  return _IMP_atom.LennardJonesTyped___le__(self, *args)
5394 
5395  def __lt__(self, *args):
5396  r"""
5397  __lt__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5398  __lt__(LennardJonesTyped self, Particle d) -> bool
5399  """
5400  return _IMP_atom.LennardJonesTyped___lt__(self, *args)
5401 
5402  def __ge__(self, *args):
5403  r"""
5404  __ge__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5405  __ge__(LennardJonesTyped self, Particle d) -> bool
5406  """
5407  return _IMP_atom.LennardJonesTyped___ge__(self, *args)
5408 
5409  def __gt__(self, *args):
5410  r"""
5411  __gt__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5412  __gt__(LennardJonesTyped self, Particle d) -> bool
5413  """
5414  return _IMP_atom.LennardJonesTyped___gt__(self, *args)
5415 
5416  def __hash__(self):
5417  r"""__hash__(LennardJonesTyped self) -> std::size_t"""
5418  return _IMP_atom.LennardJonesTyped___hash__(self)
5419 
5420  def __str__(self):
5421  r"""__str__(LennardJonesTyped self) -> std::string"""
5422  return _IMP_atom.LennardJonesTyped___str__(self)
5423 
5424  def __repr__(self):
5425  r"""__repr__(LennardJonesTyped self) -> std::string"""
5426  return _IMP_atom.LennardJonesTyped___repr__(self)
5427 
5428  def _get_as_binary(self):
5429  r"""_get_as_binary(LennardJonesTyped self) -> PyObject *"""
5430  return _IMP_atom.LennardJonesTyped__get_as_binary(self)
5431 
5432  def _set_from_binary(self, p):
5433  r"""_set_from_binary(LennardJonesTyped self, PyObject * p)"""
5434  return _IMP_atom.LennardJonesTyped__set_from_binary(self, p)
5435 
5436  def __getstate__(self):
5437  p = self._get_as_binary()
5438  if len(self.__dict__) > 1:
5439  d = self.__dict__.copy()
5440  del d['this']
5441  p = (d, p)
5442  return p
5443 
5444  def __setstate__(self, p):
5445  if not hasattr(self, 'this'):
5446  self.__init__()
5447  if isinstance(p, tuple):
5448  d, p = p
5449  self.__dict__.update(d)
5450  return self._set_from_binary(p)
5451 
5452  __swig_destroy__ = _IMP_atom.delete_LennardJonesTyped
5453 
5454 # Register LennardJonesTyped in _IMP_atom:
5455 _IMP_atom.LennardJonesTyped_swigregister(LennardJonesTyped)
5456 class LinearVelocity(IMP.Decorator):
5457  r"""Proxy of C++ IMP::atom::LinearVelocity class."""
5458 
5459  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5460 
5461  @staticmethod
5462  def get_velocity_key():
5463  r"""get_velocity_key() -> Vector3DKey"""
5464  return _IMP_atom.LinearVelocity_get_velocity_key()
5465 
5466  def __init__(self, *args):
5467  r"""
5468  __init__(LinearVelocity self) -> LinearVelocity
5469  __init__(LinearVelocity self, Model m, ParticleIndex id) -> LinearVelocity
5470  __init__(LinearVelocity self, _ParticleAdaptor d) -> LinearVelocity
5471  """
5472  _IMP_atom.LinearVelocity_swiginit(self, _IMP_atom.new_LinearVelocity(*args))
5473 
5474  @staticmethod
5475  def get_is_setup(*args):
5476  r"""
5477  get_is_setup(Model m, ParticleIndex pi) -> bool
5478  get_is_setup(_ParticleAdaptor p) -> bool
5479  """
5480  return _IMP_atom.LinearVelocity_get_is_setup(*args)
5481 
5482  def show(self, *args):
5483  r"""show(LinearVelocity self, _ostream out=std::cout)"""
5484  return _IMP_atom.LinearVelocity_show(self, *args)
5485 
5486  @staticmethod
5487  def setup_particle(*args):
5488  r"""
5489  setup_particle(Model m, ParticleIndex pi) -> LinearVelocity
5490  setup_particle(_ParticleAdaptor pa) -> LinearVelocity
5491  setup_particle(Model m, ParticleIndex pi, Vector3D v) -> LinearVelocity
5492  setup_particle(_ParticleAdaptor pa, Vector3D v) -> LinearVelocity
5493  """
5494  return _IMP_atom.LinearVelocity_setup_particle(*args)
5495 
5496  def set_velocity(self, v):
5497  r"""set_velocity(LinearVelocity self, Vector3D v)"""
5498  return _IMP_atom.LinearVelocity_set_velocity(self, v)
5499 
5500  def get_velocity(self):
5501  r"""get_velocity(LinearVelocity self) -> Vector3D"""
5502  return _IMP_atom.LinearVelocity_get_velocity(self)
5503 
5504  def add_attribute(self, *args):
5505  r"""
5506  add_attribute(LinearVelocity self, FloatKey k, IMP::Float v, bool opt)
5507  add_attribute(LinearVelocity self, FloatKey a0, IMP::Float a1)
5508  add_attribute(LinearVelocity self, IntKey a0, IMP::Int a1)
5509  add_attribute(LinearVelocity self, FloatsKey a0, IMP::Floats a1)
5510  add_attribute(LinearVelocity self, IntsKey a0, IMP::Ints a1)
5511  add_attribute(LinearVelocity self, StringKey a0, IMP::String a1)
5512  add_attribute(LinearVelocity self, ParticleIndexKey a0, Particle a1)
5513  add_attribute(LinearVelocity self, ObjectKey a0, Object a1)
5514  add_attribute(LinearVelocity self, SparseFloatKey a0, IMP::Float a1)
5515  add_attribute(LinearVelocity self, SparseIntKey a0, IMP::Int a1)
5516  add_attribute(LinearVelocity self, SparseStringKey a0, IMP::String a1)
5517  add_attribute(LinearVelocity self, SparseParticleIndexKey a0, ParticleIndex a1)
5518  """
5519  return _IMP_atom.LinearVelocity_add_attribute(self, *args)
5520 
5521  def get_value(self, *args):
5522  r"""
5523  get_value(LinearVelocity self, FloatKey a0) -> IMP::Float
5524  get_value(LinearVelocity self, IntKey a0) -> IMP::Int
5525  get_value(LinearVelocity self, FloatsKey a0) -> IMP::Floats
5526  get_value(LinearVelocity self, IntsKey a0) -> IMP::Ints
5527  get_value(LinearVelocity self, StringKey a0) -> IMP::String
5528  get_value(LinearVelocity self, ParticleIndexKey a0) -> Particle
5529  get_value(LinearVelocity self, ObjectKey a0) -> Object
5530  get_value(LinearVelocity self, SparseFloatKey a0) -> IMP::Float
5531  get_value(LinearVelocity self, SparseIntKey a0) -> IMP::Int
5532  get_value(LinearVelocity self, SparseStringKey a0) -> IMP::String
5533  get_value(LinearVelocity self, SparseParticleIndexKey a0) -> ParticleIndex
5534  """
5535  return _IMP_atom.LinearVelocity_get_value(self, *args)
5536 
5537  def set_value(self, *args):
5538  r"""
5539  set_value(LinearVelocity self, FloatKey a0, IMP::Float a1)
5540  set_value(LinearVelocity self, IntKey a0, IMP::Int a1)
5541  set_value(LinearVelocity self, FloatsKey a0, IMP::Floats a1)
5542  set_value(LinearVelocity self, IntsKey a0, IMP::Ints a1)
5543  set_value(LinearVelocity self, StringKey a0, IMP::String a1)
5544  set_value(LinearVelocity self, ParticleIndexKey a0, Particle a1)
5545  set_value(LinearVelocity self, ObjectKey a0, Object a1)
5546  set_value(LinearVelocity self, SparseFloatKey a0, IMP::Float a1)
5547  set_value(LinearVelocity self, SparseIntKey a0, IMP::Int a1)
5548  set_value(LinearVelocity self, SparseStringKey a0, IMP::String a1)
5549  set_value(LinearVelocity self, SparseParticleIndexKey a0, ParticleIndex a1)
5550  """
5551  return _IMP_atom.LinearVelocity_set_value(self, *args)
5552 
5553  def remove_attribute(self, *args):
5554  r"""
5555  remove_attribute(LinearVelocity self, FloatKey a0)
5556  remove_attribute(LinearVelocity self, IntKey a0)
5557  remove_attribute(LinearVelocity self, FloatsKey a0)
5558  remove_attribute(LinearVelocity self, IntsKey a0)
5559  remove_attribute(LinearVelocity self, StringKey a0)
5560  remove_attribute(LinearVelocity self, ParticleIndexKey a0)
5561  remove_attribute(LinearVelocity self, ObjectKey a0)
5562  remove_attribute(LinearVelocity self, SparseFloatKey a0)
5563  remove_attribute(LinearVelocity self, SparseIntKey a0)
5564  remove_attribute(LinearVelocity self, SparseStringKey a0)
5565  remove_attribute(LinearVelocity self, SparseParticleIndexKey a0)
5566  """
5567  return _IMP_atom.LinearVelocity_remove_attribute(self, *args)
5568 
5569  def has_attribute(self, *args):
5570  r"""
5571  has_attribute(LinearVelocity self, FloatKey a0) -> bool
5572  has_attribute(LinearVelocity self, IntKey a0) -> bool
5573  has_attribute(LinearVelocity self, FloatsKey a0) -> bool
5574  has_attribute(LinearVelocity self, IntsKey a0) -> bool
5575  has_attribute(LinearVelocity self, StringKey a0) -> bool
5576  has_attribute(LinearVelocity self, ParticleIndexKey a0) -> bool
5577  has_attribute(LinearVelocity self, ObjectKey a0) -> bool
5578  has_attribute(LinearVelocity self, SparseFloatKey a0) -> bool
5579  has_attribute(LinearVelocity self, SparseIntKey a0) -> bool
5580  has_attribute(LinearVelocity self, SparseStringKey a0) -> bool
5581  has_attribute(LinearVelocity self, SparseParticleIndexKey a0) -> bool
5582  """
5583  return _IMP_atom.LinearVelocity_has_attribute(self, *args)
5584 
5585  def get_derivative(self, a0):
5586  r"""get_derivative(LinearVelocity self, FloatKey a0) -> double"""
5587  return _IMP_atom.LinearVelocity_get_derivative(self, a0)
5588 
5589  def get_name(self):
5590  r"""get_name(LinearVelocity self) -> std::string"""
5591  return _IMP_atom.LinearVelocity_get_name(self)
5592 
5593  def clear_caches(self):
5594  r"""clear_caches(LinearVelocity self)"""
5595  return _IMP_atom.LinearVelocity_clear_caches(self)
5596 
5597  def set_name(self, a0):
5598  r"""set_name(LinearVelocity self, std::string a0)"""
5599  return _IMP_atom.LinearVelocity_set_name(self, a0)
5600 
5601  def set_check_level(self, a0):
5602  r"""set_check_level(LinearVelocity self, IMP::CheckLevel a0)"""
5603  return _IMP_atom.LinearVelocity_set_check_level(self, a0)
5604 
5605  def add_to_derivative(self, a0, a1, a2):
5606  r"""add_to_derivative(LinearVelocity self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
5607  return _IMP_atom.LinearVelocity_add_to_derivative(self, a0, a1, a2)
5608 
5609  def set_is_optimized(self, a0, a1):
5610  r"""set_is_optimized(LinearVelocity self, FloatKey a0, bool a1)"""
5611  return _IMP_atom.LinearVelocity_set_is_optimized(self, a0, a1)
5612 
5613  def get_is_optimized(self, a0):
5614  r"""get_is_optimized(LinearVelocity self, FloatKey a0) -> bool"""
5615  return _IMP_atom.LinearVelocity_get_is_optimized(self, a0)
5616 
5617  def get_check_level(self):
5618  r"""get_check_level(LinearVelocity self) -> IMP::CheckLevel"""
5619  return _IMP_atom.LinearVelocity_get_check_level(self)
5620 
5621  def __eq__(self, *args):
5622  r"""
5623  __eq__(LinearVelocity self, LinearVelocity o) -> bool
5624  __eq__(LinearVelocity self, Particle d) -> bool
5625  """
5626  return _IMP_atom.LinearVelocity___eq__(self, *args)
5627 
5628  def __ne__(self, *args):
5629  r"""
5630  __ne__(LinearVelocity self, LinearVelocity o) -> bool
5631  __ne__(LinearVelocity self, Particle d) -> bool
5632  """
5633  return _IMP_atom.LinearVelocity___ne__(self, *args)
5634 
5635  def __le__(self, *args):
5636  r"""
5637  __le__(LinearVelocity self, LinearVelocity o) -> bool
5638  __le__(LinearVelocity self, Particle d) -> bool
5639  """
5640  return _IMP_atom.LinearVelocity___le__(self, *args)
5641 
5642  def __lt__(self, *args):
5643  r"""
5644  __lt__(LinearVelocity self, LinearVelocity o) -> bool
5645  __lt__(LinearVelocity self, Particle d) -> bool
5646  """
5647  return _IMP_atom.LinearVelocity___lt__(self, *args)
5648 
5649  def __ge__(self, *args):
5650  r"""
5651  __ge__(LinearVelocity self, LinearVelocity o) -> bool
5652  __ge__(LinearVelocity self, Particle d) -> bool
5653  """
5654  return _IMP_atom.LinearVelocity___ge__(self, *args)
5655 
5656  def __gt__(self, *args):
5657  r"""
5658  __gt__(LinearVelocity self, LinearVelocity o) -> bool
5659  __gt__(LinearVelocity self, Particle d) -> bool
5660  """
5661  return _IMP_atom.LinearVelocity___gt__(self, *args)
5662 
5663  def __hash__(self):
5664  r"""__hash__(LinearVelocity self) -> std::size_t"""
5665  return _IMP_atom.LinearVelocity___hash__(self)
5666 
5667  def __str__(self):
5668  r"""__str__(LinearVelocity self) -> std::string"""
5669  return _IMP_atom.LinearVelocity___str__(self)
5670 
5671  def __repr__(self):
5672  r"""__repr__(LinearVelocity self) -> std::string"""
5673  return _IMP_atom.LinearVelocity___repr__(self)
5674 
5675  def _get_as_binary(self):
5676  r"""_get_as_binary(LinearVelocity self) -> PyObject *"""
5677  return _IMP_atom.LinearVelocity__get_as_binary(self)
5678 
5679  def _set_from_binary(self, p):
5680  r"""_set_from_binary(LinearVelocity self, PyObject * p)"""
5681  return _IMP_atom.LinearVelocity__set_from_binary(self, p)
5682 
5683  def __getstate__(self):
5684  p = self._get_as_binary()
5685  if len(self.__dict__) > 1:
5686  d = self.__dict__.copy()
5687  del d['this']
5688  p = (d, p)
5689  return p
5690 
5691  def __setstate__(self, p):
5692  if not hasattr(self, 'this'):
5693  self.__init__()
5694  if isinstance(p, tuple):
5695  d, p = p
5696  self.__dict__.update(d)
5697  return self._set_from_binary(p)
5698 
5699  __swig_destroy__ = _IMP_atom.delete_LinearVelocity
5700 
5701 # Register LinearVelocity in _IMP_atom:
5702 _IMP_atom.LinearVelocity_swigregister(LinearVelocity)
5703 class AngularVelocity(IMP.Decorator):
5704  r"""Proxy of C++ IMP::atom::AngularVelocity class."""
5705 
5706  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5707 
5708  def __init__(self, *args):
5709  r"""
5710  __init__(AngularVelocity self) -> AngularVelocity
5711  __init__(AngularVelocity self, Model m, ParticleIndex id) -> AngularVelocity
5712  __init__(AngularVelocity self, _ParticleAdaptor d) -> AngularVelocity
5713  """
5714  _IMP_atom.AngularVelocity_swiginit(self, _IMP_atom.new_AngularVelocity(*args))
5715 
5716  @staticmethod
5717  def get_is_setup(*args):
5718  r"""
5719  get_is_setup(Model m, ParticleIndex pi) -> bool
5720  get_is_setup(_ParticleAdaptor p) -> bool
5721  """
5722  return _IMP_atom.AngularVelocity_get_is_setup(*args)
5723 
5724  def show(self, *args):
5725  r"""show(AngularVelocity self, _ostream out=std::cout)"""
5726  return _IMP_atom.AngularVelocity_show(self, *args)
5727 
5728  @staticmethod
5729  def setup_particle(*args):
5730  r"""
5731  setup_particle(Model m, ParticleIndex pi) -> AngularVelocity
5732  setup_particle(_ParticleAdaptor pa) -> AngularVelocity
5733  setup_particle(Model m, ParticleIndex pi, Vector4D v) -> AngularVelocity
5734  setup_particle(_ParticleAdaptor pa, Vector4D v) -> AngularVelocity
5735  """
5736  return _IMP_atom.AngularVelocity_setup_particle(*args)
5737 
5738  def set_velocity(self, v):
5739  r"""set_velocity(AngularVelocity self, Vector4D v)"""
5740  return _IMP_atom.AngularVelocity_set_velocity(self, v)
5741 
5742  def get_velocity(self):
5743  r"""get_velocity(AngularVelocity self) -> Vector4D"""
5744  return _IMP_atom.AngularVelocity_get_velocity(self)
5745 
5746  def add_attribute(self, *args):
5747  r"""
5748  add_attribute(AngularVelocity self, FloatKey k, IMP::Float v, bool opt)
5749  add_attribute(AngularVelocity self, FloatKey a0, IMP::Float a1)
5750  add_attribute(AngularVelocity self, IntKey a0, IMP::Int a1)
5751  add_attribute(AngularVelocity self, FloatsKey a0, IMP::Floats a1)
5752  add_attribute(AngularVelocity self, IntsKey a0, IMP::Ints a1)
5753  add_attribute(AngularVelocity self, StringKey a0, IMP::String a1)
5754  add_attribute(AngularVelocity self, ParticleIndexKey a0, Particle a1)
5755  add_attribute(AngularVelocity self, ObjectKey a0, Object a1)
5756  add_attribute(AngularVelocity self, SparseFloatKey a0, IMP::Float a1)
5757  add_attribute(AngularVelocity self, SparseIntKey a0, IMP::Int a1)
5758  add_attribute(AngularVelocity self, SparseStringKey a0, IMP::String a1)
5759  add_attribute(AngularVelocity self, SparseParticleIndexKey a0, ParticleIndex a1)
5760  """
5761  return _IMP_atom.AngularVelocity_add_attribute(self, *args)
5762 
5763  def get_value(self, *args):
5764  r"""
5765  get_value(AngularVelocity self, FloatKey a0) -> IMP::Float
5766  get_value(AngularVelocity self, IntKey a0) -> IMP::Int
5767  get_value(AngularVelocity self, FloatsKey a0) -> IMP::Floats
5768  get_value(AngularVelocity self, IntsKey a0) -> IMP::Ints
5769  get_value(AngularVelocity self, StringKey a0) -> IMP::String
5770  get_value(AngularVelocity self, ParticleIndexKey a0) -> Particle
5771  get_value(AngularVelocity self, ObjectKey a0) -> Object
5772  get_value(AngularVelocity self, SparseFloatKey a0) -> IMP::Float
5773  get_value(AngularVelocity self, SparseIntKey a0) -> IMP::Int
5774  get_value(AngularVelocity self, SparseStringKey a0) -> IMP::String
5775  get_value(AngularVelocity self, SparseParticleIndexKey a0) -> ParticleIndex
5776  """
5777  return _IMP_atom.AngularVelocity_get_value(self, *args)
5778 
5779  def set_value(self, *args):
5780  r"""
5781  set_value(AngularVelocity self, FloatKey a0, IMP::Float a1)
5782  set_value(AngularVelocity self, IntKey a0, IMP::Int a1)
5783  set_value(AngularVelocity self, FloatsKey a0, IMP::Floats a1)
5784  set_value(AngularVelocity self, IntsKey a0, IMP::Ints a1)
5785  set_value(AngularVelocity self, StringKey a0, IMP::String a1)
5786  set_value(AngularVelocity self, ParticleIndexKey a0, Particle a1)
5787  set_value(AngularVelocity self, ObjectKey a0, Object a1)
5788  set_value(AngularVelocity self, SparseFloatKey a0, IMP::Float a1)
5789  set_value(AngularVelocity self, SparseIntKey a0, IMP::Int a1)
5790  set_value(AngularVelocity self, SparseStringKey a0, IMP::String a1)
5791  set_value(AngularVelocity self, SparseParticleIndexKey a0, ParticleIndex a1)
5792  """
5793  return _IMP_atom.AngularVelocity_set_value(self, *args)
5794 
5795  def remove_attribute(self, *args):
5796  r"""
5797  remove_attribute(AngularVelocity self, FloatKey a0)
5798  remove_attribute(AngularVelocity self, IntKey a0)
5799  remove_attribute(AngularVelocity self, FloatsKey a0)
5800  remove_attribute(AngularVelocity self, IntsKey a0)
5801  remove_attribute(AngularVelocity self, StringKey a0)
5802  remove_attribute(AngularVelocity self, ParticleIndexKey a0)
5803  remove_attribute(AngularVelocity self, ObjectKey a0)
5804  remove_attribute(AngularVelocity self, SparseFloatKey a0)
5805  remove_attribute(AngularVelocity self, SparseIntKey a0)
5806  remove_attribute(AngularVelocity self, SparseStringKey a0)
5807  remove_attribute(AngularVelocity self, SparseParticleIndexKey a0)
5808  """
5809  return _IMP_atom.AngularVelocity_remove_attribute(self, *args)
5810 
5811  def has_attribute(self, *args):
5812  r"""
5813  has_attribute(AngularVelocity self, FloatKey a0) -> bool
5814  has_attribute(AngularVelocity self, IntKey a0) -> bool
5815  has_attribute(AngularVelocity self, FloatsKey a0) -> bool
5816  has_attribute(AngularVelocity self, IntsKey a0) -> bool
5817  has_attribute(AngularVelocity self, StringKey a0) -> bool
5818  has_attribute(AngularVelocity self, ParticleIndexKey a0) -> bool
5819  has_attribute(AngularVelocity self, ObjectKey a0) -> bool
5820  has_attribute(AngularVelocity self, SparseFloatKey a0) -> bool
5821  has_attribute(AngularVelocity self, SparseIntKey a0) -> bool
5822  has_attribute(AngularVelocity self, SparseStringKey a0) -> bool
5823  has_attribute(AngularVelocity self, SparseParticleIndexKey a0) -> bool
5824  """
5825  return _IMP_atom.AngularVelocity_has_attribute(self, *args)
5826 
5827  def get_derivative(self, a0):
5828  r"""get_derivative(AngularVelocity self, FloatKey a0) -> double"""
5829  return _IMP_atom.AngularVelocity_get_derivative(self, a0)
5830 
5831  def get_name(self):
5832  r"""get_name(AngularVelocity self) -> std::string"""
5833  return _IMP_atom.AngularVelocity_get_name(self)
5834 
5835  def clear_caches(self):
5836  r"""clear_caches(AngularVelocity self)"""
5837  return _IMP_atom.AngularVelocity_clear_caches(self)
5838 
5839  def set_name(self, a0):
5840  r"""set_name(AngularVelocity self, std::string a0)"""
5841  return _IMP_atom.AngularVelocity_set_name(self, a0)
5842 
5843  def set_check_level(self, a0):
5844  r"""set_check_level(AngularVelocity self, IMP::CheckLevel a0)"""
5845  return _IMP_atom.AngularVelocity_set_check_level(self, a0)
5846 
5847  def add_to_derivative(self, a0, a1, a2):
5848  r"""add_to_derivative(AngularVelocity self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
5849  return _IMP_atom.AngularVelocity_add_to_derivative(self, a0, a1, a2)
5850 
5851  def set_is_optimized(self, a0, a1):
5852  r"""set_is_optimized(AngularVelocity self, FloatKey a0, bool a1)"""
5853  return _IMP_atom.AngularVelocity_set_is_optimized(self, a0, a1)
5854 
5855  def get_is_optimized(self, a0):
5856  r"""get_is_optimized(AngularVelocity self, FloatKey a0) -> bool"""
5857  return _IMP_atom.AngularVelocity_get_is_optimized(self, a0)
5858 
5859  def get_check_level(self):
5860  r"""get_check_level(AngularVelocity self) -> IMP::CheckLevel"""
5861  return _IMP_atom.AngularVelocity_get_check_level(self)
5862 
5863  def __eq__(self, *args):
5864  r"""
5865  __eq__(AngularVelocity self, AngularVelocity o) -> bool
5866  __eq__(AngularVelocity self, Particle d) -> bool
5867  """
5868  return _IMP_atom.AngularVelocity___eq__(self, *args)
5869 
5870  def __ne__(self, *args):
5871  r"""
5872  __ne__(AngularVelocity self, AngularVelocity o) -> bool
5873  __ne__(AngularVelocity self, Particle d) -> bool
5874  """
5875  return _IMP_atom.AngularVelocity___ne__(self, *args)
5876 
5877  def __le__(self, *args):
5878  r"""
5879  __le__(AngularVelocity self, AngularVelocity o) -> bool
5880  __le__(AngularVelocity self, Particle d) -> bool
5881  """
5882  return _IMP_atom.AngularVelocity___le__(self, *args)
5883 
5884  def __lt__(self, *args):
5885  r"""
5886  __lt__(AngularVelocity self, AngularVelocity o) -> bool
5887  __lt__(AngularVelocity self, Particle d) -> bool
5888  """
5889  return _IMP_atom.AngularVelocity___lt__(self, *args)
5890 
5891  def __ge__(self, *args):
5892  r"""
5893  __ge__(AngularVelocity self, AngularVelocity o) -> bool
5894  __ge__(AngularVelocity self, Particle d) -> bool
5895  """
5896  return _IMP_atom.AngularVelocity___ge__(self, *args)
5897 
5898  def __gt__(self, *args):
5899  r"""
5900  __gt__(AngularVelocity self, AngularVelocity o) -> bool
5901  __gt__(AngularVelocity self, Particle d) -> bool
5902  """
5903  return _IMP_atom.AngularVelocity___gt__(self, *args)
5904 
5905  def __hash__(self):
5906  r"""__hash__(AngularVelocity self) -> std::size_t"""
5907  return _IMP_atom.AngularVelocity___hash__(self)
5908 
5909  def __str__(self):
5910  r"""__str__(AngularVelocity self) -> std::string"""
5911  return _IMP_atom.AngularVelocity___str__(self)
5912 
5913  def __repr__(self):
5914  r"""__repr__(AngularVelocity self) -> std::string"""
5915  return _IMP_atom.AngularVelocity___repr__(self)
5916 
5917  def _get_as_binary(self):
5918  r"""_get_as_binary(AngularVelocity self) -> PyObject *"""
5919  return _IMP_atom.AngularVelocity__get_as_binary(self)
5920 
5921  def _set_from_binary(self, p):
5922  r"""_set_from_binary(AngularVelocity self, PyObject * p)"""
5923  return _IMP_atom.AngularVelocity__set_from_binary(self, p)
5924 
5925  def __getstate__(self):
5926  p = self._get_as_binary()
5927  if len(self.__dict__) > 1:
5928  d = self.__dict__.copy()
5929  del d['this']
5930  p = (d, p)
5931  return p
5932 
5933  def __setstate__(self, p):
5934  if not hasattr(self, 'this'):
5935  self.__init__()
5936  if isinstance(p, tuple):
5937  d, p = p
5938  self.__dict__.update(d)
5939  return self._set_from_binary(p)
5940 
5941  __swig_destroy__ = _IMP_atom.delete_AngularVelocity
5942 
5943 # Register AngularVelocity in _IMP_atom:
5944 _IMP_atom.AngularVelocity_swigregister(AngularVelocity)
5945 class MolecularDynamics(Simulator):
5946  r"""Proxy of C++ IMP::atom::MolecularDynamics class."""
5947 
5948  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5949 
5950  def __init__(self, *args):
5951  r"""
5952  __init__(MolecularDynamics self, Model m) -> MolecularDynamics
5953  __init__(MolecularDynamics self) -> MolecularDynamics
5954  """
5955  _IMP_atom.MolecularDynamics_swiginit(self, _IMP_atom.new_MolecularDynamics(*args))
5956 
5957  def get_kinetic_energy(self):
5958  r"""get_kinetic_energy(MolecularDynamics self) -> IMP::Float"""
5959  return _IMP_atom.MolecularDynamics_get_kinetic_energy(self)
5960 
5961  def get_kinetic_temperature(self, ekinetic):
5962  r"""get_kinetic_temperature(MolecularDynamics self, IMP::Float ekinetic) -> IMP::Float"""
5963  return _IMP_atom.MolecularDynamics_get_kinetic_temperature(self, ekinetic)
5964 
5965  def set_velocity_cap(self, velocity_cap):
5966  r"""set_velocity_cap(MolecularDynamics self, IMP::Float velocity_cap)"""
5967  return _IMP_atom.MolecularDynamics_set_velocity_cap(self, velocity_cap)
5968 
5969  def get_velocity_cap(self):
5970  r"""get_velocity_cap(MolecularDynamics self) -> IMP::Float"""
5971  return _IMP_atom.MolecularDynamics_get_velocity_cap(self)
5972 
5973  def get_degrees_of_freedom(self):
5974  r"""get_degrees_of_freedom(MolecularDynamics self) -> int"""
5975  return _IMP_atom.MolecularDynamics_get_degrees_of_freedom(self)
5976 
5977  def assign_velocities(self, temperature):
5978  r"""assign_velocities(MolecularDynamics self, IMP::Float temperature)"""
5979  return _IMP_atom.MolecularDynamics_assign_velocities(self, temperature)
5980 
5981  def setup(self, ps):
5982  r"""setup(MolecularDynamics self, IMP::ParticleIndexes const & ps)"""
5983  return _IMP_atom.MolecularDynamics_setup(self, ps)
5984 
5985  def do_step(self, sc, dt):
5986  r"""do_step(MolecularDynamics self, IMP::ParticleIndexes const & sc, double dt) -> double"""
5987  return _IMP_atom.MolecularDynamics_do_step(self, sc, dt)
5988 
5989  def get_is_simulation_particle(self, p):
5990  r"""get_is_simulation_particle(MolecularDynamics self, ParticleIndex p) -> bool"""
5991  return _IMP_atom.MolecularDynamics_get_is_simulation_particle(self, p)
5992 
5993  def get_version_info(self):
5994  r"""get_version_info(MolecularDynamics self) -> VersionInfo"""
5995  return _IMP_atom.MolecularDynamics_get_version_info(self)
5996  __swig_destroy__ = _IMP_atom.delete_MolecularDynamics
5997 
5998  def __str__(self):
5999  r"""__str__(MolecularDynamics self) -> std::string"""
6000  return _IMP_atom.MolecularDynamics___str__(self)
6001 
6002  def __repr__(self):
6003  r"""__repr__(MolecularDynamics self) -> std::string"""
6004  return _IMP_atom.MolecularDynamics___repr__(self)
6005 
6006  @staticmethod
6007  def get_from(o):
6008  return _object_cast_to_MolecularDynamics(o)
6009 
6010 
6011  def _get_as_binary(self):
6012  r"""_get_as_binary(MolecularDynamics self) -> PyObject *"""
6013  return _IMP_atom.MolecularDynamics__get_as_binary(self)
6014 
6015  def _set_from_binary(self, p):
6016  r"""_set_from_binary(MolecularDynamics self, PyObject * p)"""
6017  return _IMP_atom.MolecularDynamics__set_from_binary(self, p)
6018 
6019  def __getstate__(self):
6020  p = self._get_as_binary()
6021  if len(self.__dict__) > 1:
6022  d = self.__dict__.copy()
6023  del d['this']
6024  p = (d, p)
6025  return p
6026 
6027  def __setstate__(self, p):
6028  if not hasattr(self, 'this'):
6029  self.__init__()
6030  if isinstance(p, tuple):
6031  d, p = p
6032  self.__dict__.update(d)
6033  return self._set_from_binary(p)
6034 
6035 
6036  def _get_jax(self, space=None):
6037  from IMP.atom._jax_util import _MDJAXInfo
6038  return _MDJAXInfo(self, space)
6039 
6040  def _get_jax_optimizer(self, max_steps, space=None):
6041  import IMP.atom._jax_util
6042  return IMP.atom._jax_util._MDJAXOptimizer(self, max_steps, space)
6043 
6044  def _optimize_jax(self, max_steps, space=None):
6045  opt = self._get_jax_optimizer(max_steps, space=space)
6046  score, md_state = opt.optimize(opt.get_initial_state())
6047  return score
6048 
6049 
6050 # Register MolecularDynamics in _IMP_atom:
6051 _IMP_atom.MolecularDynamics_swigregister(MolecularDynamics)
6052 class VelocityScalingOptimizerState(IMP.OptimizerState):
6053  r"""Proxy of C++ IMP::atom::VelocityScalingOptimizerState class."""
6054 
6055  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6056 
6057  def __init__(self, m, pis, temperature):
6058  r"""__init__(VelocityScalingOptimizerState self, Model m, _ParticleIndexesAdaptor pis, double temperature) -> VelocityScalingOptimizerState"""
6059  _IMP_atom.VelocityScalingOptimizerState_swiginit(self, _IMP_atom.new_VelocityScalingOptimizerState(m, pis, temperature))
6060 
6061  def set_particles(self, pis):
6062  r"""set_particles(VelocityScalingOptimizerState self, IMP::Particles const & pis)"""
6063  return _IMP_atom.VelocityScalingOptimizerState_set_particles(self, pis)
6064 
6065  def set_temperature(self, temperature):
6066  r"""set_temperature(VelocityScalingOptimizerState self, IMP::Float temperature)"""
6067  return _IMP_atom.VelocityScalingOptimizerState_set_temperature(self, temperature)
6068 
6069  def get_particles(self):
6070  r"""get_particles(VelocityScalingOptimizerState self) -> IMP::Particles"""
6071  return _IMP_atom.VelocityScalingOptimizerState_get_particles(self)
6072 
6073  def get_temperature(self):
6074  r"""get_temperature(VelocityScalingOptimizerState self) -> IMP::Float"""
6075  return _IMP_atom.VelocityScalingOptimizerState_get_temperature(self)
6076 
6077  def rescale_velocities(self):
6078  r"""rescale_velocities(VelocityScalingOptimizerState self)"""
6079  return _IMP_atom.VelocityScalingOptimizerState_rescale_velocities(self)
6080 
6081  def get_version_info(self):
6082  r"""get_version_info(VelocityScalingOptimizerState self) -> VersionInfo"""
6083  return _IMP_atom.VelocityScalingOptimizerState_get_version_info(self)
6084  __swig_destroy__ = _IMP_atom.delete_VelocityScalingOptimizerState
6085 
6086  def __str__(self):
6087  r"""__str__(VelocityScalingOptimizerState self) -> std::string"""
6088  return _IMP_atom.VelocityScalingOptimizerState___str__(self)
6089 
6090  def __repr__(self):
6091  r"""__repr__(VelocityScalingOptimizerState self) -> std::string"""
6092  return _IMP_atom.VelocityScalingOptimizerState___repr__(self)
6093 
6094  @staticmethod
6095  def get_from(o):
6096  return _object_cast_to_VelocityScalingOptimizerState(o)
6097 
6098 
6099  def _get_jax(self, state_index):
6100  import jax
6101  import jax.numpy as jnp
6102  temperature = self.get_temperature()
6103  indexes = jnp.asarray(IMP.get_indexes(self.get_particles()))
6104 
6105  def scale_velocities(linvel, tkinetic):
6106  scale = jnp.sqrt(temperature / tkinetic)
6107  return jnp.where(tkinetic > 1e-8,
6108  linvel.at[indexes].multiply(scale), linvel)
6109 
6110  def apply_func(md):
6111  ekinetic = md.get_kinetic_energy()
6112  tkinetic = md.get_kinetic_temperature(ekinetic)
6113  scale = scale_velocities
6114  # If we have multiple attribute sets, vmap our scale function
6115  # to apply to all of them
6116  if hasattr(tkinetic, 'ndim') and tkinetic.ndim >= 1:
6117  scale = jax.vmap(scale_velocities, in_axes=0)
6118  md.jm['linvel'] = scale(md.jm['linvel'], tkinetic)
6119  return md
6120 
6121  return self._wrap_jax(lambda x: x, apply_func)
6122 
6123 
6124 # Register VelocityScalingOptimizerState in _IMP_atom:
6125 _IMP_atom.VelocityScalingOptimizerState_swigregister(VelocityScalingOptimizerState)
6126 class Fragment(Hierarchy):
6127  r"""Proxy of C++ IMP::atom::Fragment class."""
6128 
6129  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6130 
6131  def set_residue_indexes(self, o):
6132  r"""set_residue_indexes(Fragment self, IMP::Ints o)"""
6133  return _IMP_atom.Fragment_set_residue_indexes(self, o)
6134 
6135  def get_residue_indexes(self):
6136  r"""get_residue_indexes(Fragment self) -> IMP::Ints"""
6137  return _IMP_atom.Fragment_get_residue_indexes(self)
6138 
6139  def get_contains_residue(self, rindex):
6140  r"""get_contains_residue(Fragment self, int rindex) -> bool"""
6141  return _IMP_atom.Fragment_get_contains_residue(self, rindex)
6142 
6143  def get_contains_any_sorted_residue(self, rinds):
6144  r"""get_contains_any_sorted_residue(Fragment self, IMP::Ints const & rinds) -> bool"""
6145  return _IMP_atom.Fragment_get_contains_any_sorted_residue(self, rinds)
6146 
6147  def __init__(self, *args):
6148  r"""
6149  __init__(Fragment self) -> Fragment
6150  __init__(Fragment self, Model m, ParticleIndex id) -> Fragment
6151  __init__(Fragment self, _ParticleAdaptor d) -> Fragment
6152  """
6153  _IMP_atom.Fragment_swiginit(self, _IMP_atom.new_Fragment(*args))
6154 
6155  @staticmethod
6156  def get_is_setup(*args):
6157  r"""
6158  get_is_setup(Model m, ParticleIndex pi) -> bool
6159  get_is_setup(_ParticleAdaptor p) -> bool
6160  """
6161  return _IMP_atom.Fragment_get_is_setup(*args)
6162 
6163  def show(self, *args):
6164  r"""show(Fragment self, _ostream out=std::cout)"""
6165  return _IMP_atom.Fragment_show(self, *args)
6166 
6167  @staticmethod
6168  def setup_particle(*args):
6169  r"""
6170  setup_particle(Model m, ParticleIndex pi) -> Fragment
6171  setup_particle(_ParticleAdaptor pa) -> Fragment
6172  setup_particle(Model m, ParticleIndex pi, Fragment other) -> Fragment
6173  setup_particle(_ParticleAdaptor pa, Fragment other) -> Fragment
6174  setup_particle(Model m, ParticleIndex pi, IMP::Ints residue_indexes) -> Fragment
6175  setup_particle(_ParticleAdaptor pa, IMP::Ints residue_indexes) -> Fragment
6176  """
6177  return _IMP_atom.Fragment_setup_particle(*args)
6178 
6179  def add_attribute(self, *args):
6180  r"""
6181  add_attribute(Fragment self, FloatKey k, IMP::Float v, bool opt)
6182  add_attribute(Fragment self, FloatKey a0, IMP::Float a1)
6183  add_attribute(Fragment self, IntKey a0, IMP::Int a1)
6184  add_attribute(Fragment self, FloatsKey a0, IMP::Floats a1)
6185  add_attribute(Fragment self, IntsKey a0, IMP::Ints a1)
6186  add_attribute(Fragment self, StringKey a0, IMP::String a1)
6187  add_attribute(Fragment self, ParticleIndexKey a0, Particle a1)
6188  add_attribute(Fragment self, ObjectKey a0, Object a1)
6189  add_attribute(Fragment self, SparseFloatKey a0, IMP::Float a1)
6190  add_attribute(Fragment self, SparseIntKey a0, IMP::Int a1)
6191  add_attribute(Fragment self, SparseStringKey a0, IMP::String a1)
6192  add_attribute(Fragment self, SparseParticleIndexKey a0, ParticleIndex a1)
6193  """
6194  return _IMP_atom.Fragment_add_attribute(self, *args)
6195 
6196  def get_value(self, *args):
6197  r"""
6198  get_value(Fragment self, FloatKey a0) -> IMP::Float
6199  get_value(Fragment self, IntKey a0) -> IMP::Int
6200  get_value(Fragment self, FloatsKey a0) -> IMP::Floats
6201  get_value(Fragment self, IntsKey a0) -> IMP::Ints
6202  get_value(Fragment self, StringKey a0) -> IMP::String
6203  get_value(Fragment self, ParticleIndexKey a0) -> Particle
6204  get_value(Fragment self, ObjectKey a0) -> Object
6205  get_value(Fragment self, SparseFloatKey a0) -> IMP::Float
6206  get_value(Fragment self, SparseIntKey a0) -> IMP::Int
6207  get_value(Fragment self, SparseStringKey a0) -> IMP::String
6208  get_value(Fragment self, SparseParticleIndexKey a0) -> ParticleIndex
6209  """
6210  return _IMP_atom.Fragment_get_value(self, *args)
6211 
6212  def set_value(self, *args):
6213  r"""
6214  set_value(Fragment self, FloatKey a0, IMP::Float a1)
6215  set_value(Fragment self, IntKey a0, IMP::Int a1)
6216  set_value(Fragment self, FloatsKey a0, IMP::Floats a1)
6217  set_value(Fragment self, IntsKey a0, IMP::Ints a1)
6218  set_value(Fragment self, StringKey a0, IMP::String a1)
6219  set_value(Fragment self, ParticleIndexKey a0, Particle a1)
6220  set_value(Fragment self, ObjectKey a0, Object a1)
6221  set_value(Fragment self, SparseFloatKey a0, IMP::Float a1)
6222  set_value(Fragment self, SparseIntKey a0, IMP::Int a1)
6223  set_value(Fragment self, SparseStringKey a0, IMP::String a1)
6224  set_value(Fragment self, SparseParticleIndexKey a0, ParticleIndex a1)
6225  """
6226  return _IMP_atom.Fragment_set_value(self, *args)
6227 
6228  def remove_attribute(self, *args):
6229  r"""
6230  remove_attribute(Fragment self, FloatKey a0)
6231  remove_attribute(Fragment self, IntKey a0)
6232  remove_attribute(Fragment self, FloatsKey a0)
6233  remove_attribute(Fragment self, IntsKey a0)
6234  remove_attribute(Fragment self, StringKey a0)
6235  remove_attribute(Fragment self, ParticleIndexKey a0)
6236  remove_attribute(Fragment self, ObjectKey a0)
6237  remove_attribute(Fragment self, SparseFloatKey a0)
6238  remove_attribute(Fragment self, SparseIntKey a0)
6239  remove_attribute(Fragment self, SparseStringKey a0)
6240  remove_attribute(Fragment self, SparseParticleIndexKey a0)
6241  """
6242  return _IMP_atom.Fragment_remove_attribute(self, *args)
6243 
6244  def has_attribute(self, *args):
6245  r"""
6246  has_attribute(Fragment self, FloatKey a0) -> bool
6247  has_attribute(Fragment self, IntKey a0) -> bool
6248  has_attribute(Fragment self, FloatsKey a0) -> bool
6249  has_attribute(Fragment self, IntsKey a0) -> bool
6250  has_attribute(Fragment self, StringKey a0) -> bool
6251  has_attribute(Fragment self, ParticleIndexKey a0) -> bool
6252  has_attribute(Fragment self, ObjectKey a0) -> bool
6253  has_attribute(Fragment self, SparseFloatKey a0) -> bool
6254  has_attribute(Fragment self, SparseIntKey a0) -> bool
6255  has_attribute(Fragment self, SparseStringKey a0) -> bool
6256  has_attribute(Fragment self, SparseParticleIndexKey a0) -> bool
6257  """
6258  return _IMP_atom.Fragment_has_attribute(self, *args)
6259 
6260  def get_derivative(self, a0):
6261  r"""get_derivative(Fragment self, FloatKey a0) -> double"""
6262  return _IMP_atom.Fragment_get_derivative(self, a0)
6263 
6264  def get_name(self):
6265  r"""get_name(Fragment self) -> std::string"""
6266  return _IMP_atom.Fragment_get_name(self)
6267 
6268  def clear_caches(self):
6269  r"""clear_caches(Fragment self)"""
6270  return _IMP_atom.Fragment_clear_caches(self)
6271 
6272  def set_name(self, a0):
6273  r"""set_name(Fragment self, std::string a0)"""
6274  return _IMP_atom.Fragment_set_name(self, a0)
6275 
6276  def set_check_level(self, a0):
6277  r"""set_check_level(Fragment self, IMP::CheckLevel a0)"""
6278  return _IMP_atom.Fragment_set_check_level(self, a0)
6279 
6280  def add_to_derivative(self, a0, a1, a2):
6281  r"""add_to_derivative(Fragment self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
6282  return _IMP_atom.Fragment_add_to_derivative(self, a0, a1, a2)
6283 
6284  def set_is_optimized(self, a0, a1):
6285  r"""set_is_optimized(Fragment self, FloatKey a0, bool a1)"""
6286  return _IMP_atom.Fragment_set_is_optimized(self, a0, a1)
6287 
6288  def get_is_optimized(self, a0):
6289  r"""get_is_optimized(Fragment self, FloatKey a0) -> bool"""
6290  return _IMP_atom.Fragment_get_is_optimized(self, a0)
6291 
6292  def get_check_level(self):
6293  r"""get_check_level(Fragment self) -> IMP::CheckLevel"""
6294  return _IMP_atom.Fragment_get_check_level(self)
6295 
6296  def __eq__(self, *args):
6297  r"""
6298  __eq__(Fragment self, Fragment o) -> bool
6299  __eq__(Fragment self, Particle d) -> bool
6300  """
6301  return _IMP_atom.Fragment___eq__(self, *args)
6302 
6303  def __ne__(self, *args):
6304  r"""
6305  __ne__(Fragment self, Fragment o) -> bool
6306  __ne__(Fragment self, Particle d) -> bool
6307  """
6308  return _IMP_atom.Fragment___ne__(self, *args)
6309 
6310  def __le__(self, *args):
6311  r"""
6312  __le__(Fragment self, Fragment o) -> bool
6313  __le__(Fragment self, Particle d) -> bool
6314  """
6315  return _IMP_atom.Fragment___le__(self, *args)
6316 
6317  def __lt__(self, *args):
6318  r"""
6319  __lt__(Fragment self, Fragment o) -> bool
6320  __lt__(Fragment self, Particle d) -> bool
6321  """
6322  return _IMP_atom.Fragment___lt__(self, *args)
6323 
6324  def __ge__(self, *args):
6325  r"""
6326  __ge__(Fragment self, Fragment o) -> bool
6327  __ge__(Fragment self, Particle d) -> bool
6328  """
6329  return _IMP_atom.Fragment___ge__(self, *args)
6330 
6331  def __gt__(self, *args):
6332  r"""
6333  __gt__(Fragment self, Fragment o) -> bool
6334  __gt__(Fragment self, Particle d) -> bool
6335  """
6336  return _IMP_atom.Fragment___gt__(self, *args)
6337 
6338  def __hash__(self):
6339  r"""__hash__(Fragment self) -> std::size_t"""
6340  return _IMP_atom.Fragment___hash__(self)
6341 
6342  def __str__(self):
6343  r"""__str__(Fragment self) -> std::string"""
6344  return _IMP_atom.Fragment___str__(self)
6345 
6346  def __repr__(self):
6347  r"""__repr__(Fragment self) -> std::string"""
6348  return _IMP_atom.Fragment___repr__(self)
6349 
6350  def _get_as_binary(self):
6351  r"""_get_as_binary(Fragment self) -> PyObject *"""
6352  return _IMP_atom.Fragment__get_as_binary(self)
6353 
6354  def _set_from_binary(self, p):
6355  r"""_set_from_binary(Fragment self, PyObject * p)"""
6356  return _IMP_atom.Fragment__set_from_binary(self, p)
6357 
6358  def __getstate__(self):
6359  p = self._get_as_binary()
6360  if len(self.__dict__) > 1:
6361  d = self.__dict__.copy()
6362  del d['this']
6363  p = (d, p)
6364  return p
6365 
6366  def __setstate__(self, p):
6367  if not hasattr(self, 'this'):
6368  self.__init__()
6369  if isinstance(p, tuple):
6370  d, p = p
6371  self.__dict__.update(d)
6372  return self._set_from_binary(p)
6373 
6374  __swig_destroy__ = _IMP_atom.delete_Fragment
6375 
6376 # Register Fragment in _IMP_atom:
6377 _IMP_atom.Fragment_swigregister(Fragment)
6378 class StereochemistryPairFilter(IMP.PairPredicate):
6379  r"""Proxy of C++ IMP::atom::StereochemistryPairFilter class."""
6380 
6381  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6382 
6383  def __init__(self):
6384  r"""__init__(StereochemistryPairFilter self) -> StereochemistryPairFilter"""
6385  _IMP_atom.StereochemistryPairFilter_swiginit(self, _IMP_atom.new_StereochemistryPairFilter())
6386 
6387  def set_bonds(self, bonds):
6388  r"""set_bonds(StereochemistryPairFilter self, IMP::Particles const & bonds)"""
6389  return _IMP_atom.StereochemistryPairFilter_set_bonds(self, bonds)
6390 
6391  def set_angles(self, angles):
6392  r"""set_angles(StereochemistryPairFilter self, IMP::Particles const & angles)"""
6393  return _IMP_atom.StereochemistryPairFilter_set_angles(self, angles)
6394 
6395  def set_dihedrals(self, dihedrals):
6396  r"""set_dihedrals(StereochemistryPairFilter self, IMP::Particles const & dihedrals)"""
6397  return _IMP_atom.StereochemistryPairFilter_set_dihedrals(self, dihedrals)
6398 
6399  def do_get_inputs(self, m, pis):
6400  r"""do_get_inputs(StereochemistryPairFilter self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6401  return _IMP_atom.StereochemistryPairFilter_do_get_inputs(self, m, pis)
6402 
6403  def get_value(self, *args):
6404  r"""
6405  get_value(StereochemistryPairFilter self, IMP::ParticlePair const & a) -> int
6406  get_value(StereochemistryPairFilter self, IMP::ParticlePairsTemp const & o) -> IMP::Ints
6407  """
6408  return _IMP_atom.StereochemistryPairFilter_get_value(self, *args)
6409 
6410  def get_value_index(self, *args):
6411  r"""
6412  get_value_index(StereochemistryPairFilter self, Model m, IMP::ParticleIndexPair const & p) -> int
6413  get_value_index(StereochemistryPairFilter self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
6414  """
6415  return _IMP_atom.StereochemistryPairFilter_get_value_index(self, *args)
6416 
6417  def get_version_info(self):
6418  r"""get_version_info(StereochemistryPairFilter self) -> VersionInfo"""
6419  return _IMP_atom.StereochemistryPairFilter_get_version_info(self)
6420  __swig_destroy__ = _IMP_atom.delete_StereochemistryPairFilter
6421 
6422  def __str__(self):
6423  r"""__str__(StereochemistryPairFilter self) -> std::string"""
6424  return _IMP_atom.StereochemistryPairFilter___str__(self)
6425 
6426  def __repr__(self):
6427  r"""__repr__(StereochemistryPairFilter self) -> std::string"""
6428  return _IMP_atom.StereochemistryPairFilter___repr__(self)
6429 
6430  @staticmethod
6431  def get_from(o):
6432  return _object_cast_to_StereochemistryPairFilter(o)
6433 
6434 
6435 # Register StereochemistryPairFilter in _IMP_atom:
6436 _IMP_atom.StereochemistryPairFilter_swigregister(StereochemistryPairFilter)
6437 class SoapPairFilter(IMP.PairPredicate):
6438  r"""Proxy of C++ IMP::atom::SoapPairFilter class."""
6439 
6440  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6441 
6442  def __init__(self, library):
6443  r"""__init__(SoapPairFilter self, std::string library) -> SoapPairFilter"""
6444  _IMP_atom.SoapPairFilter_swiginit(self, _IMP_atom.new_SoapPairFilter(library))
6445 
6446  def do_get_inputs(self, m, pis):
6447  r"""do_get_inputs(SoapPairFilter self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6448  return _IMP_atom.SoapPairFilter_do_get_inputs(self, m, pis)
6449 
6450  def get_value(self, *args):
6451  r"""
6452  get_value(SoapPairFilter self, IMP::ParticlePair const & a) -> int
6453  get_value(SoapPairFilter self, IMP::ParticlePairsTemp const & o) -> IMP::Ints
6454  """
6455  return _IMP_atom.SoapPairFilter_get_value(self, *args)
6456 
6457  def get_value_index(self, *args):
6458  r"""
6459  get_value_index(SoapPairFilter self, Model m, IMP::ParticleIndexPair const & p) -> int
6460  get_value_index(SoapPairFilter self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
6461  """
6462  return _IMP_atom.SoapPairFilter_get_value_index(self, *args)
6463 
6464  def get_version_info(self):
6465  r"""get_version_info(SoapPairFilter self) -> VersionInfo"""
6466  return _IMP_atom.SoapPairFilter_get_version_info(self)
6467  __swig_destroy__ = _IMP_atom.delete_SoapPairFilter
6468 
6469  def __str__(self):
6470  r"""__str__(SoapPairFilter self) -> std::string"""
6471  return _IMP_atom.SoapPairFilter___str__(self)
6472 
6473  def __repr__(self):
6474  r"""__repr__(SoapPairFilter self) -> std::string"""
6475  return _IMP_atom.SoapPairFilter___repr__(self)
6476 
6477  @staticmethod
6478  def get_from(o):
6479  return _object_cast_to_SoapPairFilter(o)
6480 
6481 
6482 # Register SoapPairFilter in _IMP_atom:
6483 _IMP_atom.SoapPairFilter_swigregister(SoapPairFilter)
6484 class Mass(IMP.Decorator):
6485  r"""Proxy of C++ IMP::atom::Mass class."""
6486 
6487  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6488 
6489  def get_mass(self):
6490  r"""get_mass(Mass self) -> IMP::Float"""
6491  return _IMP_atom.Mass_get_mass(self)
6492 
6493  def set_mass(self, d):
6494  r"""set_mass(Mass self, IMP::Float d)"""
6495  return _IMP_atom.Mass_set_mass(self, d)
6496 
6497  def __init__(self, *args):
6498  r"""
6499  __init__(Mass self) -> Mass
6500  __init__(Mass self, Model m, ParticleIndex id) -> Mass
6501  __init__(Mass self, _ParticleAdaptor d) -> Mass
6502  """
6503  _IMP_atom.Mass_swiginit(self, _IMP_atom.new_Mass(*args))
6504 
6505  @staticmethod
6506  def get_is_setup(*args):
6507  r"""
6508  get_is_setup(Model m, ParticleIndex pi) -> bool
6509  get_is_setup(_ParticleAdaptor p) -> bool
6510  """
6511  return _IMP_atom.Mass_get_is_setup(*args)
6512 
6513  def show(self, *args):
6514  r"""show(Mass self, _ostream out=std::cout)"""
6515  return _IMP_atom.Mass_show(self, *args)
6516 
6517  @staticmethod
6518  def setup_particle(*args):
6519  r"""
6520  setup_particle(Model m, ParticleIndex pi, IMP::Float mass) -> Mass
6521  setup_particle(_ParticleAdaptor pa, IMP::Float mass) -> Mass
6522  setup_particle(Model m, ParticleIndex pi, Mass other) -> Mass
6523  setup_particle(_ParticleAdaptor pa, Mass other) -> Mass
6524  """
6525  return _IMP_atom.Mass_setup_particle(*args)
6526 
6527  @staticmethod
6528  def get_mass_key():
6529  r"""get_mass_key() -> FloatKey"""
6530  return _IMP_atom.Mass_get_mass_key()
6531 
6532  def add_attribute(self, *args):
6533  r"""
6534  add_attribute(Mass self, FloatKey k, IMP::Float v, bool opt)
6535  add_attribute(Mass self, FloatKey a0, IMP::Float a1)
6536  add_attribute(Mass self, IntKey a0, IMP::Int a1)
6537  add_attribute(Mass self, FloatsKey a0, IMP::Floats a1)
6538  add_attribute(Mass self, IntsKey a0, IMP::Ints a1)
6539  add_attribute(Mass self, StringKey a0, IMP::String a1)
6540  add_attribute(Mass self, ParticleIndexKey a0, Particle a1)
6541  add_attribute(Mass self, ObjectKey a0, Object a1)
6542  add_attribute(Mass self, SparseFloatKey a0, IMP::Float a1)
6543  add_attribute(Mass self, SparseIntKey a0, IMP::Int a1)
6544  add_attribute(Mass self, SparseStringKey a0, IMP::String a1)
6545  add_attribute(Mass self, SparseParticleIndexKey a0, ParticleIndex a1)
6546  """
6547  return _IMP_atom.Mass_add_attribute(self, *args)
6548 
6549  def get_value(self, *args):
6550  r"""
6551  get_value(Mass self, FloatKey a0) -> IMP::Float
6552  get_value(Mass self, IntKey a0) -> IMP::Int
6553  get_value(Mass self, FloatsKey a0) -> IMP::Floats
6554  get_value(Mass self, IntsKey a0) -> IMP::Ints
6555  get_value(Mass self, StringKey a0) -> IMP::String
6556  get_value(Mass self, ParticleIndexKey a0) -> Particle
6557  get_value(Mass self, ObjectKey a0) -> Object
6558  get_value(Mass self, SparseFloatKey a0) -> IMP::Float
6559  get_value(Mass self, SparseIntKey a0) -> IMP::Int
6560  get_value(Mass self, SparseStringKey a0) -> IMP::String
6561  get_value(Mass self, SparseParticleIndexKey a0) -> ParticleIndex
6562  """
6563  return _IMP_atom.Mass_get_value(self, *args)
6564 
6565  def set_value(self, *args):
6566  r"""
6567  set_value(Mass self, FloatKey a0, IMP::Float a1)
6568  set_value(Mass self, IntKey a0, IMP::Int a1)
6569  set_value(Mass self, FloatsKey a0, IMP::Floats a1)
6570  set_value(Mass self, IntsKey a0, IMP::Ints a1)
6571  set_value(Mass self, StringKey a0, IMP::String a1)
6572  set_value(Mass self, ParticleIndexKey a0, Particle a1)
6573  set_value(Mass self, ObjectKey a0, Object a1)
6574  set_value(Mass self, SparseFloatKey a0, IMP::Float a1)
6575  set_value(Mass self, SparseIntKey a0, IMP::Int a1)
6576  set_value(Mass self, SparseStringKey a0, IMP::String a1)
6577  set_value(Mass self, SparseParticleIndexKey a0, ParticleIndex a1)
6578  """
6579  return _IMP_atom.Mass_set_value(self, *args)
6580 
6581  def remove_attribute(self, *args):
6582  r"""
6583  remove_attribute(Mass self, FloatKey a0)
6584  remove_attribute(Mass self, IntKey a0)
6585  remove_attribute(Mass self, FloatsKey a0)
6586  remove_attribute(Mass self, IntsKey a0)
6587  remove_attribute(Mass self, StringKey a0)
6588  remove_attribute(Mass self, ParticleIndexKey a0)
6589  remove_attribute(Mass self, ObjectKey a0)
6590  remove_attribute(Mass self, SparseFloatKey a0)
6591  remove_attribute(Mass self, SparseIntKey a0)
6592  remove_attribute(Mass self, SparseStringKey a0)
6593  remove_attribute(Mass self, SparseParticleIndexKey a0)
6594  """
6595  return _IMP_atom.Mass_remove_attribute(self, *args)
6596 
6597  def has_attribute(self, *args):
6598  r"""
6599  has_attribute(Mass self, FloatKey a0) -> bool
6600  has_attribute(Mass self, IntKey a0) -> bool
6601  has_attribute(Mass self, FloatsKey a0) -> bool
6602  has_attribute(Mass self, IntsKey a0) -> bool
6603  has_attribute(Mass self, StringKey a0) -> bool
6604  has_attribute(Mass self, ParticleIndexKey a0) -> bool
6605  has_attribute(Mass self, ObjectKey a0) -> bool
6606  has_attribute(Mass self, SparseFloatKey a0) -> bool
6607  has_attribute(Mass self, SparseIntKey a0) -> bool
6608  has_attribute(Mass self, SparseStringKey a0) -> bool
6609  has_attribute(Mass self, SparseParticleIndexKey a0) -> bool
6610  """
6611  return _IMP_atom.Mass_has_attribute(self, *args)
6612 
6613  def get_derivative(self, a0):
6614  r"""get_derivative(Mass self, FloatKey a0) -> double"""
6615  return _IMP_atom.Mass_get_derivative(self, a0)
6616 
6617  def get_name(self):
6618  r"""get_name(Mass self) -> std::string"""
6619  return _IMP_atom.Mass_get_name(self)
6620 
6621  def clear_caches(self):
6622  r"""clear_caches(Mass self)"""
6623  return _IMP_atom.Mass_clear_caches(self)
6624 
6625  def set_name(self, a0):
6626  r"""set_name(Mass self, std::string a0)"""
6627  return _IMP_atom.Mass_set_name(self, a0)
6628 
6629  def set_check_level(self, a0):
6630  r"""set_check_level(Mass self, IMP::CheckLevel a0)"""
6631  return _IMP_atom.Mass_set_check_level(self, a0)
6632 
6633  def add_to_derivative(self, a0, a1, a2):
6634  r"""add_to_derivative(Mass self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
6635  return _IMP_atom.Mass_add_to_derivative(self, a0, a1, a2)
6636 
6637  def set_is_optimized(self, a0, a1):
6638  r"""set_is_optimized(Mass self, FloatKey a0, bool a1)"""
6639  return _IMP_atom.Mass_set_is_optimized(self, a0, a1)
6640 
6641  def get_is_optimized(self, a0):
6642  r"""get_is_optimized(Mass self, FloatKey a0) -> bool"""
6643  return _IMP_atom.Mass_get_is_optimized(self, a0)
6644 
6645  def get_check_level(self):
6646  r"""get_check_level(Mass self) -> IMP::CheckLevel"""
6647  return _IMP_atom.Mass_get_check_level(self)
6648 
6649  def __eq__(self, *args):
6650  r"""
6651  __eq__(Mass self, Mass o) -> bool
6652  __eq__(Mass self, Particle d) -> bool
6653  """
6654  return _IMP_atom.Mass___eq__(self, *args)
6655 
6656  def __ne__(self, *args):
6657  r"""
6658  __ne__(Mass self, Mass o) -> bool
6659  __ne__(Mass self, Particle d) -> bool
6660  """
6661  return _IMP_atom.Mass___ne__(self, *args)
6662 
6663  def __le__(self, *args):
6664  r"""
6665  __le__(Mass self, Mass o) -> bool
6666  __le__(Mass self, Particle d) -> bool
6667  """
6668  return _IMP_atom.Mass___le__(self, *args)
6669 
6670  def __lt__(self, *args):
6671  r"""
6672  __lt__(Mass self, Mass o) -> bool
6673  __lt__(Mass self, Particle d) -> bool
6674  """
6675  return _IMP_atom.Mass___lt__(self, *args)
6676 
6677  def __ge__(self, *args):
6678  r"""
6679  __ge__(Mass self, Mass o) -> bool
6680  __ge__(Mass self, Particle d) -> bool
6681  """
6682  return _IMP_atom.Mass___ge__(self, *args)
6683 
6684  def __gt__(self, *args):
6685  r"""
6686  __gt__(Mass self, Mass o) -> bool
6687  __gt__(Mass self, Particle d) -> bool
6688  """
6689  return _IMP_atom.Mass___gt__(self, *args)
6690 
6691  def __hash__(self):
6692  r"""__hash__(Mass self) -> std::size_t"""
6693  return _IMP_atom.Mass___hash__(self)
6694 
6695  def __str__(self):
6696  r"""__str__(Mass self) -> std::string"""
6697  return _IMP_atom.Mass___str__(self)
6698 
6699  def __repr__(self):
6700  r"""__repr__(Mass self) -> std::string"""
6701  return _IMP_atom.Mass___repr__(self)
6702 
6703  def _get_as_binary(self):
6704  r"""_get_as_binary(Mass self) -> PyObject *"""
6705  return _IMP_atom.Mass__get_as_binary(self)
6706 
6707  def _set_from_binary(self, p):
6708  r"""_set_from_binary(Mass self, PyObject * p)"""
6709  return _IMP_atom.Mass__set_from_binary(self, p)
6710 
6711  def __getstate__(self):
6712  p = self._get_as_binary()
6713  if len(self.__dict__) > 1:
6714  d = self.__dict__.copy()
6715  del d['this']
6716  p = (d, p)
6717  return p
6718 
6719  def __setstate__(self, p):
6720  if not hasattr(self, 'this'):
6721  self.__init__()
6722  if isinstance(p, tuple):
6723  d, p = p
6724  self.__dict__.update(d)
6725  return self._set_from_binary(p)
6726 
6727  __swig_destroy__ = _IMP_atom.delete_Mass
6728 
6729 # Register Mass in _IMP_atom:
6730 _IMP_atom.Mass_swigregister(Mass)
6731 class BondedPairFilter(IMP.PairPredicate):
6732  r"""Proxy of C++ IMP::atom::BondedPairFilter class."""
6733 
6734  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6735 
6736  def __init__(self):
6737  r"""__init__(BondedPairFilter self) -> BondedPairFilter"""
6738  _IMP_atom.BondedPairFilter_swiginit(self, _IMP_atom.new_BondedPairFilter())
6739 
6740  def do_get_inputs(self, m, pis):
6741  r"""do_get_inputs(BondedPairFilter self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6742  return _IMP_atom.BondedPairFilter_do_get_inputs(self, m, pis)
6743 
6744  def get_value(self, *args):
6745  r"""
6746  get_value(BondedPairFilter self, IMP::ParticlePair const & a) -> int
6747  get_value(BondedPairFilter self, IMP::ParticlePairsTemp const & o) -> IMP::Ints
6748  """
6749  return _IMP_atom.BondedPairFilter_get_value(self, *args)
6750 
6751  def get_value_index(self, *args):
6752  r"""
6753  get_value_index(BondedPairFilter self, Model m, IMP::ParticleIndexPair const & p) -> int
6754  get_value_index(BondedPairFilter self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
6755  """
6756  return _IMP_atom.BondedPairFilter_get_value_index(self, *args)
6757 
6758  def get_version_info(self):
6759  r"""get_version_info(BondedPairFilter self) -> VersionInfo"""
6760  return _IMP_atom.BondedPairFilter_get_version_info(self)
6761  __swig_destroy__ = _IMP_atom.delete_BondedPairFilter
6762 
6763  def __str__(self):
6764  r"""__str__(BondedPairFilter self) -> std::string"""
6765  return _IMP_atom.BondedPairFilter___str__(self)
6766 
6767  def __repr__(self):
6768  r"""__repr__(BondedPairFilter self) -> std::string"""
6769  return _IMP_atom.BondedPairFilter___repr__(self)
6770 
6771  @staticmethod
6772  def get_from(o):
6773  return _object_cast_to_BondedPairFilter(o)
6774 
6775 
6776 # Register BondedPairFilter in _IMP_atom:
6777 _IMP_atom.BondedPairFilter_swigregister(BondedPairFilter)
6778 class Mol2Selector(IMP.Object):
6779  r"""Proxy of C++ IMP::atom::Mol2Selector class."""
6780 
6781  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6782 
6783  def __init__(self, *args, **kwargs):
6784  raise AttributeError("No constructor defined - class is abstract")
6785 
6786  def get_is_selected(self, atom_line):
6787  r"""get_is_selected(Mol2Selector self, std::string const & atom_line) -> bool"""
6788  return _IMP_atom.Mol2Selector_get_is_selected(self, atom_line)
6789  __swig_destroy__ = _IMP_atom.delete_Mol2Selector
6790 
6791  def __str__(self):
6792  r"""__str__(Mol2Selector self) -> std::string"""
6793  return _IMP_atom.Mol2Selector___str__(self)
6794 
6795  def __repr__(self):
6796  r"""__repr__(Mol2Selector self) -> std::string"""
6797  return _IMP_atom.Mol2Selector___repr__(self)
6798 
6799  @staticmethod
6800  def get_from(o):
6801  return _object_cast_to_Mol2Selector(o)
6802 
6803 
6804 # Register Mol2Selector in _IMP_atom:
6805 _IMP_atom.Mol2Selector_swigregister(Mol2Selector)
6806 class AllMol2Selector(Mol2Selector):
6807  r"""Proxy of C++ IMP::atom::AllMol2Selector class."""
6808 
6809  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6810 
6811  def __str__(self):
6812  r"""__str__(AllMol2Selector self) -> std::string"""
6813  return _IMP_atom.AllMol2Selector___str__(self)
6814 
6815  def __repr__(self):
6816  r"""__repr__(AllMol2Selector self) -> std::string"""
6817  return _IMP_atom.AllMol2Selector___repr__(self)
6818 
6819  @staticmethod
6820  def get_from(o):
6821  return _object_cast_to_AllMol2Selector(o)
6822 
6823 
6824  def __init__(self):
6825  r"""__init__(AllMol2Selector self) -> AllMol2Selector"""
6826  _IMP_atom.AllMol2Selector_swiginit(self, _IMP_atom.new_AllMol2Selector())
6827  __swig_destroy__ = _IMP_atom.delete_AllMol2Selector
6828 
6829 # Register AllMol2Selector in _IMP_atom:
6830 _IMP_atom.AllMol2Selector_swigregister(AllMol2Selector)
6831 class NonHydrogenMol2Selector(Mol2Selector):
6832  r"""Proxy of C++ IMP::atom::NonHydrogenMol2Selector class."""
6833 
6834  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6835 
6836  def __str__(self):
6837  r"""__str__(NonHydrogenMol2Selector self) -> std::string"""
6838  return _IMP_atom.NonHydrogenMol2Selector___str__(self)
6839 
6840  def __repr__(self):
6841  r"""__repr__(NonHydrogenMol2Selector self) -> std::string"""
6842  return _IMP_atom.NonHydrogenMol2Selector___repr__(self)
6843 
6844  @staticmethod
6845  def get_from(o):
6846  return _object_cast_to_NonHydrogenMol2Selector(o)
6847 
6848 
6849  def __init__(self):
6850  r"""__init__(NonHydrogenMol2Selector self) -> NonHydrogenMol2Selector"""
6851  _IMP_atom.NonHydrogenMol2Selector_swiginit(self, _IMP_atom.new_NonHydrogenMol2Selector())
6852  __swig_destroy__ = _IMP_atom.delete_NonHydrogenMol2Selector
6853 
6854 # Register NonHydrogenMol2Selector in _IMP_atom:
6855 _IMP_atom.NonHydrogenMol2Selector_swigregister(NonHydrogenMol2Selector)
6856 
6857 def read_mol2(mol2_file, model, mol2sel=None):
6858  r"""read_mol2(TextInput mol2_file, Model model, Mol2Selector mol2sel=None) -> Hierarchy"""
6859  return _IMP_atom.read_mol2(mol2_file, model, mol2sel)
6860 
6861 def write_mol2(rhd, file_name):
6862  r"""write_mol2(Hierarchy rhd, TextOutput file_name)"""
6863  return _IMP_atom.write_mol2(rhd, file_name)
6864 class SecondaryStructureResidue(IMP.Decorator):
6865  r"""Proxy of C++ IMP::atom::SecondaryStructureResidue class."""
6866 
6867  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6868 
6869  def __init__(self, *args):
6870  r"""
6871  __init__(SecondaryStructureResidue self) -> SecondaryStructureResidue
6872  __init__(SecondaryStructureResidue self, Model m, ParticleIndex id) -> SecondaryStructureResidue
6873  __init__(SecondaryStructureResidue self, _ParticleAdaptor d) -> SecondaryStructureResidue
6874  """
6875  _IMP_atom.SecondaryStructureResidue_swiginit(self, _IMP_atom.new_SecondaryStructureResidue(*args))
6876 
6877  def show(self, *args):
6878  r"""show(SecondaryStructureResidue self, _ostream out=std::cout)"""
6879  return _IMP_atom.SecondaryStructureResidue_show(self, *args)
6880 
6881  @staticmethod
6882  def setup_particle(*args):
6883  r"""
6884  setup_particle(Model m, ParticleIndex pi, IMP::Float prob_helix, IMP::Float prob_strand, IMP::Float prob_coil) -> SecondaryStructureResidue
6885  setup_particle(_ParticleAdaptor pa, IMP::Float prob_helix, IMP::Float prob_strand, IMP::Float prob_coil) -> SecondaryStructureResidue
6886  setup_particle(Particle res_p) -> SecondaryStructureResidue
6887  """
6888  return _IMP_atom.SecondaryStructureResidue_setup_particle(*args)
6889 
6890  @staticmethod
6891  def get_is_setup(*args):
6892  r"""
6893  get_is_setup(_ParticleAdaptor p) -> bool
6894  get_is_setup(Model m, ParticleIndex pi) -> bool
6895  """
6896  return _IMP_atom.SecondaryStructureResidue_get_is_setup(*args)
6897 
6898  def get_particle(self):
6899  r"""get_particle(SecondaryStructureResidue self) -> Particle"""
6900  return _IMP_atom.SecondaryStructureResidue_get_particle(self)
6901 
6902  def get_all_probabilities(self):
6903  r"""get_all_probabilities(SecondaryStructureResidue self) -> IMP::Floats"""
6904  return _IMP_atom.SecondaryStructureResidue_get_all_probabilities(self)
6905 
6906  def get_prob_helix(self):
6907  r"""get_prob_helix(SecondaryStructureResidue self) -> IMP::Float"""
6908  return _IMP_atom.SecondaryStructureResidue_get_prob_helix(self)
6909 
6910  def set_prob_helix(self, t):
6911  r"""set_prob_helix(SecondaryStructureResidue self, IMP::Float t)"""
6912  return _IMP_atom.SecondaryStructureResidue_set_prob_helix(self, t)
6913 
6914  def get_prob_strand(self):
6915  r"""get_prob_strand(SecondaryStructureResidue self) -> IMP::Float"""
6916  return _IMP_atom.SecondaryStructureResidue_get_prob_strand(self)
6917 
6918  def set_prob_strand(self, t):
6919  r"""set_prob_strand(SecondaryStructureResidue self, IMP::Float t)"""
6920  return _IMP_atom.SecondaryStructureResidue_set_prob_strand(self, t)
6921 
6922  def get_prob_coil(self):
6923  r"""get_prob_coil(SecondaryStructureResidue self) -> IMP::Float"""
6924  return _IMP_atom.SecondaryStructureResidue_get_prob_coil(self)
6925 
6926  def set_prob_coil(self, t):
6927  r"""set_prob_coil(SecondaryStructureResidue self, IMP::Float t)"""
6928  return _IMP_atom.SecondaryStructureResidue_set_prob_coil(self, t)
6929 
6930  @staticmethod
6931  def get_prob_helix_key():
6932  r"""get_prob_helix_key() -> FloatKey"""
6933  return _IMP_atom.SecondaryStructureResidue_get_prob_helix_key()
6934 
6935  @staticmethod
6936  def get_prob_strand_key():
6937  r"""get_prob_strand_key() -> FloatKey"""
6938  return _IMP_atom.SecondaryStructureResidue_get_prob_strand_key()
6939 
6940  @staticmethod
6941  def get_prob_coil_key():
6942  r"""get_prob_coil_key() -> FloatKey"""
6943  return _IMP_atom.SecondaryStructureResidue_get_prob_coil_key()
6944 
6945  def add_attribute(self, *args):
6946  r"""
6947  add_attribute(SecondaryStructureResidue self, FloatKey k, IMP::Float v, bool opt)
6948  add_attribute(SecondaryStructureResidue self, FloatKey a0, IMP::Float a1)
6949  add_attribute(SecondaryStructureResidue self, IntKey a0, IMP::Int a1)
6950  add_attribute(SecondaryStructureResidue self, FloatsKey a0, IMP::Floats a1)
6951  add_attribute(SecondaryStructureResidue self, IntsKey a0, IMP::Ints a1)
6952  add_attribute(SecondaryStructureResidue self, StringKey a0, IMP::String a1)
6953  add_attribute(SecondaryStructureResidue self, ParticleIndexKey a0, Particle a1)
6954  add_attribute(SecondaryStructureResidue self, ObjectKey a0, Object a1)
6955  add_attribute(SecondaryStructureResidue self, SparseFloatKey a0, IMP::Float a1)
6956  add_attribute(SecondaryStructureResidue self, SparseIntKey a0, IMP::Int a1)
6957  add_attribute(SecondaryStructureResidue self, SparseStringKey a0, IMP::String a1)
6958  add_attribute(SecondaryStructureResidue self, SparseParticleIndexKey a0, ParticleIndex a1)
6959  """
6960  return _IMP_atom.SecondaryStructureResidue_add_attribute(self, *args)
6961 
6962  def get_value(self, *args):
6963  r"""
6964  get_value(SecondaryStructureResidue self, FloatKey a0) -> IMP::Float
6965  get_value(SecondaryStructureResidue self, IntKey a0) -> IMP::Int
6966  get_value(SecondaryStructureResidue self, FloatsKey a0) -> IMP::Floats
6967  get_value(SecondaryStructureResidue self, IntsKey a0) -> IMP::Ints
6968  get_value(SecondaryStructureResidue self, StringKey a0) -> IMP::String
6969  get_value(SecondaryStructureResidue self, ParticleIndexKey a0) -> Particle
6970  get_value(SecondaryStructureResidue self, ObjectKey a0) -> Object
6971  get_value(SecondaryStructureResidue self, SparseFloatKey a0) -> IMP::Float
6972  get_value(SecondaryStructureResidue self, SparseIntKey a0) -> IMP::Int
6973  get_value(SecondaryStructureResidue self, SparseStringKey a0) -> IMP::String
6974  get_value(SecondaryStructureResidue self, SparseParticleIndexKey a0) -> ParticleIndex
6975  """
6976  return _IMP_atom.SecondaryStructureResidue_get_value(self, *args)
6977 
6978  def set_value(self, *args):
6979  r"""
6980  set_value(SecondaryStructureResidue self, FloatKey a0, IMP::Float a1)
6981  set_value(SecondaryStructureResidue self, IntKey a0, IMP::Int a1)
6982  set_value(SecondaryStructureResidue self, FloatsKey a0, IMP::Floats a1)
6983  set_value(SecondaryStructureResidue self, IntsKey a0, IMP::Ints a1)
6984  set_value(SecondaryStructureResidue self, StringKey a0, IMP::String a1)
6985  set_value(SecondaryStructureResidue self, ParticleIndexKey a0, Particle a1)
6986  set_value(SecondaryStructureResidue self, ObjectKey a0, Object a1)
6987  set_value(SecondaryStructureResidue self, SparseFloatKey a0, IMP::Float a1)
6988  set_value(SecondaryStructureResidue self, SparseIntKey a0, IMP::Int a1)
6989  set_value(SecondaryStructureResidue self, SparseStringKey a0, IMP::String a1)
6990  set_value(SecondaryStructureResidue self, SparseParticleIndexKey a0, ParticleIndex a1)
6991  """
6992  return _IMP_atom.SecondaryStructureResidue_set_value(self, *args)
6993 
6994  def remove_attribute(self, *args):
6995  r"""
6996  remove_attribute(SecondaryStructureResidue self, FloatKey a0)
6997  remove_attribute(SecondaryStructureResidue self, IntKey a0)
6998  remove_attribute(SecondaryStructureResidue self, FloatsKey a0)
6999  remove_attribute(SecondaryStructureResidue self, IntsKey a0)
7000  remove_attribute(SecondaryStructureResidue self, StringKey a0)
7001  remove_attribute(SecondaryStructureResidue self, ParticleIndexKey a0)
7002  remove_attribute(SecondaryStructureResidue self, ObjectKey a0)
7003  remove_attribute(SecondaryStructureResidue self, SparseFloatKey a0)
7004  remove_attribute(SecondaryStructureResidue self, SparseIntKey a0)
7005  remove_attribute(SecondaryStructureResidue self, SparseStringKey a0)
7006  remove_attribute(SecondaryStructureResidue self, SparseParticleIndexKey a0)
7007  """
7008  return _IMP_atom.SecondaryStructureResidue_remove_attribute(self, *args)
7009 
7010  def has_attribute(self, *args):
7011  r"""
7012  has_attribute(SecondaryStructureResidue self, FloatKey a0) -> bool
7013  has_attribute(SecondaryStructureResidue self, IntKey a0) -> bool
7014  has_attribute(SecondaryStructureResidue self, FloatsKey a0) -> bool
7015  has_attribute(SecondaryStructureResidue self, IntsKey a0) -> bool
7016  has_attribute(SecondaryStructureResidue self, StringKey a0) -> bool
7017  has_attribute(SecondaryStructureResidue self, ParticleIndexKey a0) -> bool
7018  has_attribute(SecondaryStructureResidue self, ObjectKey a0) -> bool
7019  has_attribute(SecondaryStructureResidue self, SparseFloatKey a0) -> bool
7020  has_attribute(SecondaryStructureResidue self, SparseIntKey a0) -> bool
7021  has_attribute(SecondaryStructureResidue self, SparseStringKey a0) -> bool
7022  has_attribute(SecondaryStructureResidue self, SparseParticleIndexKey a0) -> bool
7023  """
7024  return _IMP_atom.SecondaryStructureResidue_has_attribute(self, *args)
7025 
7026  def get_derivative(self, a0):
7027  r"""get_derivative(SecondaryStructureResidue self, FloatKey a0) -> double"""
7028  return _IMP_atom.SecondaryStructureResidue_get_derivative(self, a0)
7029 
7030  def get_name(self):
7031  r"""get_name(SecondaryStructureResidue self) -> std::string"""
7032  return _IMP_atom.SecondaryStructureResidue_get_name(self)
7033 
7034  def clear_caches(self):
7035  r"""clear_caches(SecondaryStructureResidue self)"""
7036  return _IMP_atom.SecondaryStructureResidue_clear_caches(self)
7037 
7038  def set_name(self, a0):
7039  r"""set_name(SecondaryStructureResidue self, std::string a0)"""
7040  return _IMP_atom.SecondaryStructureResidue_set_name(self, a0)
7041 
7042  def set_check_level(self, a0):
7043  r"""set_check_level(SecondaryStructureResidue self, IMP::CheckLevel a0)"""
7044  return _IMP_atom.SecondaryStructureResidue_set_check_level(self, a0)
7045 
7046  def add_to_derivative(self, a0, a1, a2):
7047  r"""add_to_derivative(SecondaryStructureResidue self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
7048  return _IMP_atom.SecondaryStructureResidue_add_to_derivative(self, a0, a1, a2)
7049 
7050  def set_is_optimized(self, a0, a1):
7051  r"""set_is_optimized(SecondaryStructureResidue self, FloatKey a0, bool a1)"""
7052  return _IMP_atom.SecondaryStructureResidue_set_is_optimized(self, a0, a1)
7053 
7054  def get_is_optimized(self, a0):
7055  r"""get_is_optimized(SecondaryStructureResidue self, FloatKey a0) -> bool"""
7056  return _IMP_atom.SecondaryStructureResidue_get_is_optimized(self, a0)
7057 
7058  def get_check_level(self):
7059  r"""get_check_level(SecondaryStructureResidue self) -> IMP::CheckLevel"""
7060  return _IMP_atom.SecondaryStructureResidue_get_check_level(self)
7061 
7062  def __eq__(self, *args):
7063  r"""
7064  __eq__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7065  __eq__(SecondaryStructureResidue self, Particle d) -> bool
7066  """
7067  return _IMP_atom.SecondaryStructureResidue___eq__(self, *args)
7068 
7069  def __ne__(self, *args):
7070  r"""
7071  __ne__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7072  __ne__(SecondaryStructureResidue self, Particle d) -> bool
7073  """
7074  return _IMP_atom.SecondaryStructureResidue___ne__(self, *args)
7075 
7076  def __le__(self, *args):
7077  r"""
7078  __le__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7079  __le__(SecondaryStructureResidue self, Particle d) -> bool
7080  """
7081  return _IMP_atom.SecondaryStructureResidue___le__(self, *args)
7082 
7083  def __lt__(self, *args):
7084  r"""
7085  __lt__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7086  __lt__(SecondaryStructureResidue self, Particle d) -> bool
7087  """
7088  return _IMP_atom.SecondaryStructureResidue___lt__(self, *args)
7089 
7090  def __ge__(self, *args):
7091  r"""
7092  __ge__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7093  __ge__(SecondaryStructureResidue self, Particle d) -> bool
7094  """
7095  return _IMP_atom.SecondaryStructureResidue___ge__(self, *args)
7096 
7097  def __gt__(self, *args):
7098  r"""
7099  __gt__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7100  __gt__(SecondaryStructureResidue self, Particle d) -> bool
7101  """
7102  return _IMP_atom.SecondaryStructureResidue___gt__(self, *args)
7103 
7104  def __hash__(self):
7105  r"""__hash__(SecondaryStructureResidue self) -> std::size_t"""
7106  return _IMP_atom.SecondaryStructureResidue___hash__(self)
7107 
7108  def __str__(self):
7109  r"""__str__(SecondaryStructureResidue self) -> std::string"""
7110  return _IMP_atom.SecondaryStructureResidue___str__(self)
7111 
7112  def __repr__(self):
7113  r"""__repr__(SecondaryStructureResidue self) -> std::string"""
7114  return _IMP_atom.SecondaryStructureResidue___repr__(self)
7115 
7116  def _get_as_binary(self):
7117  r"""_get_as_binary(SecondaryStructureResidue self) -> PyObject *"""
7118  return _IMP_atom.SecondaryStructureResidue__get_as_binary(self)
7119 
7120  def _set_from_binary(self, p):
7121  r"""_set_from_binary(SecondaryStructureResidue self, PyObject * p)"""
7122  return _IMP_atom.SecondaryStructureResidue__set_from_binary(self, p)
7123 
7124  def __getstate__(self):
7125  p = self._get_as_binary()
7126  if len(self.__dict__) > 1:
7127  d = self.__dict__.copy()
7128  del d['this']
7129  p = (d, p)
7130  return p
7131 
7132  def __setstate__(self, p):
7133  if not hasattr(self, 'this'):
7134  self.__init__()
7135  if isinstance(p, tuple):
7136  d, p = p
7137  self.__dict__.update(d)
7138  return self._set_from_binary(p)
7139 
7140  __swig_destroy__ = _IMP_atom.delete_SecondaryStructureResidue
7141 
7142 # Register SecondaryStructureResidue in _IMP_atom:
7143 _IMP_atom.SecondaryStructureResidue_swigregister(SecondaryStructureResidue)
7144 
7145 def setup_coarse_secondary_structure_residue(ssr_ps, mdl, winner_takes_all_per_res=False):
7146  r"""setup_coarse_secondary_structure_residue(IMP::Particles const & ssr_ps, Model mdl, bool winner_takes_all_per_res=False) -> SecondaryStructureResidue"""
7147  return _IMP_atom.setup_coarse_secondary_structure_residue(ssr_ps, mdl, winner_takes_all_per_res)
7148 
7149 def setup_coarse_secondary_structure_residues(ssr_ps, mdl, coarse_factor, start_res_num, winner_takes_all_per_res=False):
7150  r"""setup_coarse_secondary_structure_residues(IMP::Particles const & ssr_ps, Model mdl, int coarse_factor, int start_res_num, bool winner_takes_all_per_res=False) -> IMP::atom::SecondaryStructureResidues"""
7151  return _IMP_atom.setup_coarse_secondary_structure_residues(ssr_ps, mdl, coarse_factor, start_res_num, winner_takes_all_per_res)
7152 
7153 def get_secondary_structure_match_score(ssr1, ssr2):
7154  r"""get_secondary_structure_match_score(SecondaryStructureResidue ssr1, SecondaryStructureResidue ssr2) -> IMP::Float"""
7155  return _IMP_atom.get_secondary_structure_match_score(ssr1, ssr2)
7156 
7157 def read_psipred(*args):
7158  r"""
7159  read_psipred(TextInput inf, Model mdl) -> IMP::atom::SecondaryStructureResidues
7160  read_psipred(TextInput inf, IMP::Particles ps) -> IMP::atom::SecondaryStructureResidues
7161  """
7162  return _IMP_atom.read_psipred(*args)
7163 class _ADopeBase(IMP.PairScore):
7164  r"""Proxy of C++ IMP::score_functor::DistancePairScore< IMP::score_functor::Dope > class."""
7165 
7166  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7167  __repr__ = _swig_repr
7168 
7169  def __init__(self, *args):
7170  r"""
7171  __init__(_ADopeBase self, Dope t0, std::string name="FunctorDistancePairScore %1%") -> _ADopeBase
7172  __init__(_ADopeBase self) -> _ADopeBase
7173  """
7174  _IMP_atom._ADopeBase_swiginit(self, _IMP_atom.new__ADopeBase(*args))
7175 
7176  def do_get_inputs(self, m, pis):
7177  r"""do_get_inputs(_ADopeBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7178  return _IMP_atom._ADopeBase_do_get_inputs(self, m, pis)
7179 
7180  def get_score_functor(self, *args):
7181  r"""
7182  get_score_functor(_ADopeBase self) -> Dope
7183  get_score_functor(_ADopeBase self) -> Dope
7184  """
7185  return _IMP_atom._ADopeBase_get_score_functor(self, *args)
7186 
7187  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7188  r"""evaluate_indexes(_ADopeBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7189  return _IMP_atom._ADopeBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7190 
7191  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7192  r"""evaluate_indexes_scores(_ADopeBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7193  return _IMP_atom._ADopeBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7194 
7195  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7196  r"""evaluate_indexes_delta(_ADopeBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7197  return _IMP_atom._ADopeBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7198 
7199  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7200  r"""evaluate_if_good_indexes(_ADopeBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7201  return _IMP_atom._ADopeBase_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7202 
7203  def get_version_info(self):
7204  r"""get_version_info(_ADopeBase self) -> VersionInfo"""
7205  return _IMP_atom._ADopeBase_get_version_info(self)
7206  __swig_destroy__ = _IMP_atom.delete__ADopeBase
7207 
7208 # Register _ADopeBase in _IMP_atom:
7209 _IMP_atom._ADopeBase_swigregister(_ADopeBase)
7210 class _BDopeBase(IMP.PairScore):
7211  r"""Proxy of C++ IMP::score_functor::DistancePairScore< IMP::score_functor::Statistical< IMP::atom::DopeType,false,true,false > > class."""
7212 
7213  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7214  __repr__ = _swig_repr
7215 
7216  def __init__(self, *args):
7217  r"""
7218  __init__(_BDopeBase self, IMP::score_functor::DistancePairScore< IMP::score_functor::Statistical< IMP::atom::DopeType,false,true,false > >::DistanceScore const & t0, std::string name="FunctorDistancePairScore %1%") -> _BDopeBase
7219  __init__(_BDopeBase self) -> _BDopeBase
7220  """
7221  _IMP_atom._BDopeBase_swiginit(self, _IMP_atom.new__BDopeBase(*args))
7222 
7223  def do_get_inputs(self, m, pis):
7224  r"""do_get_inputs(_BDopeBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7225  return _IMP_atom._BDopeBase_do_get_inputs(self, m, pis)
7226 
7227  def get_score_functor(self, *args):
7228  r"""
7229  get_score_functor(_BDopeBase self) -> _DopeBase
7230  get_score_functor(_BDopeBase self) -> _DopeBase
7231  """
7232  return _IMP_atom._BDopeBase_get_score_functor(self, *args)
7233 
7234  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7235  r"""evaluate_indexes(_BDopeBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7236  return _IMP_atom._BDopeBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7237 
7238  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7239  r"""evaluate_indexes_scores(_BDopeBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7240  return _IMP_atom._BDopeBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7241 
7242  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7243  r"""evaluate_indexes_delta(_BDopeBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7244  return _IMP_atom._BDopeBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7245 
7246  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7247  r"""evaluate_if_good_indexes(_BDopeBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7248  return _IMP_atom._BDopeBase_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7249 
7250  def get_version_info(self):
7251  r"""get_version_info(_BDopeBase self) -> VersionInfo"""
7252  return _IMP_atom._BDopeBase_get_version_info(self)
7253  __swig_destroy__ = _IMP_atom.delete__BDopeBase
7254 
7255 # Register _BDopeBase in _IMP_atom:
7256 _IMP_atom._BDopeBase_swigregister(_BDopeBase)
7257 class _ALoopStatisticalBase(IMP.PairScore):
7258  r"""Proxy of C++ IMP::score_functor::DistancePairScore< IMP::score_functor::LoopStatistical > class."""
7259 
7260  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7261  __repr__ = _swig_repr
7262 
7263  def __init__(self, *args):
7264  r"""
7265  __init__(_ALoopStatisticalBase self, LoopStatistical t0, std::string name="FunctorDistancePairScore %1%") -> _ALoopStatisticalBase
7266  __init__(_ALoopStatisticalBase self) -> _ALoopStatisticalBase
7267  """
7268  _IMP_atom._ALoopStatisticalBase_swiginit(self, _IMP_atom.new__ALoopStatisticalBase(*args))
7269 
7270  def do_get_inputs(self, m, pis):
7271  r"""do_get_inputs(_ALoopStatisticalBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7272  return _IMP_atom._ALoopStatisticalBase_do_get_inputs(self, m, pis)
7273 
7274  def get_score_functor(self, *args):
7275  r"""
7276  get_score_functor(_ALoopStatisticalBase self) -> LoopStatistical
7277  get_score_functor(_ALoopStatisticalBase self) -> LoopStatistical
7278  """
7279  return _IMP_atom._ALoopStatisticalBase_get_score_functor(self, *args)
7280 
7281  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7282  r"""evaluate_indexes(_ALoopStatisticalBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7283  return _IMP_atom._ALoopStatisticalBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7284 
7285  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7286  r"""evaluate_indexes_scores(_ALoopStatisticalBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7287  return _IMP_atom._ALoopStatisticalBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7288 
7289  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7290  r"""evaluate_indexes_delta(_ALoopStatisticalBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7291  return _IMP_atom._ALoopStatisticalBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7292 
7293  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7294  r"""evaluate_if_good_indexes(_ALoopStatisticalBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7295  return _IMP_atom._ALoopStatisticalBase_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7296 
7297  def get_version_info(self):
7298  r"""get_version_info(_ALoopStatisticalBase self) -> VersionInfo"""
7299  return _IMP_atom._ALoopStatisticalBase_get_version_info(self)
7300  __swig_destroy__ = _IMP_atom.delete__ALoopStatisticalBase
7301 
7302 # Register _ALoopStatisticalBase in _IMP_atom:
7303 _IMP_atom._ALoopStatisticalBase_swigregister(_ALoopStatisticalBase)
7304 class _BLoopStatisticalBase(IMP.PairScore):
7305  r"""Proxy of C++ IMP::score_functor::DistancePairScore< IMP::score_functor::Statistical< IMP::atom::LoopStatisticalType,false,true,false > > class."""
7306 
7307  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7308  __repr__ = _swig_repr
7309 
7310  def __init__(self, *args):
7311  r"""
7312  __init__(_BLoopStatisticalBase self, IMP::score_functor::DistancePairScore< IMP::score_functor::Statistical< IMP::atom::LoopStatisticalType,false,true,false > >::DistanceScore const & t0, std::string name="FunctorDistancePairScore %1%") -> _BLoopStatisticalBase
7313  __init__(_BLoopStatisticalBase self) -> _BLoopStatisticalBase
7314  """
7315  _IMP_atom._BLoopStatisticalBase_swiginit(self, _IMP_atom.new__BLoopStatisticalBase(*args))
7316 
7317  def do_get_inputs(self, m, pis):
7318  r"""do_get_inputs(_BLoopStatisticalBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7319  return _IMP_atom._BLoopStatisticalBase_do_get_inputs(self, m, pis)
7320 
7321  def get_score_functor(self, *args):
7322  r"""
7323  get_score_functor(_BLoopStatisticalBase self) -> _LoopStatisticalBase
7324  get_score_functor(_BLoopStatisticalBase self) -> _LoopStatisticalBase
7325  """
7326  return _IMP_atom._BLoopStatisticalBase_get_score_functor(self, *args)
7327 
7328  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7329  r"""evaluate_indexes(_BLoopStatisticalBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7330  return _IMP_atom._BLoopStatisticalBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7331 
7332  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7333  r"""evaluate_indexes_scores(_BLoopStatisticalBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7334  return _IMP_atom._BLoopStatisticalBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7335 
7336  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7337  r"""evaluate_indexes_delta(_BLoopStatisticalBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7338  return _IMP_atom._BLoopStatisticalBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7339 
7340  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7341  r"""evaluate_if_good_indexes(_BLoopStatisticalBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7342  return _IMP_atom._BLoopStatisticalBase_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7343 
7344  def get_version_info(self):
7345  r"""get_version_info(_BLoopStatisticalBase self) -> VersionInfo"""
7346  return _IMP_atom._BLoopStatisticalBase_get_version_info(self)
7347  __swig_destroy__ = _IMP_atom.delete__BLoopStatisticalBase
7348 
7349 # Register _BLoopStatisticalBase in _IMP_atom:
7350 _IMP_atom._BLoopStatisticalBase_swigregister(_BLoopStatisticalBase)
7351 class _OrientedSoapBase(IMP.PairScore):
7352  r"""Proxy of C++ IMP::score_functor::DistancePairScoreWithCache< IMP::score_functor::OrientedSoap > class."""
7353 
7354  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7355  __repr__ = _swig_repr
7356 
7357  def __init__(self, *args):
7358  r"""__init__(_OrientedSoapBase self, IMP::score_functor::DistancePairScoreWithCache< IMP::score_functor::OrientedSoap >::DistanceScore const & t0, std::string name="FunctorDistancePairScoreWithCache %1%") -> _OrientedSoapBase"""
7359  _IMP_atom._OrientedSoapBase_swiginit(self, _IMP_atom.new__OrientedSoapBase(*args))
7360 
7361  def do_get_inputs(self, m, pis):
7362  r"""do_get_inputs(_OrientedSoapBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7363  return _IMP_atom._OrientedSoapBase_do_get_inputs(self, m, pis)
7364 
7365  def get_score_functor(self):
7366  r"""get_score_functor(_OrientedSoapBase self) -> IMP::score_functor::OrientedSoap &"""
7367  return _IMP_atom._OrientedSoapBase_get_score_functor(self)
7368 
7369  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7370  r"""evaluate_indexes(_OrientedSoapBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7371  return _IMP_atom._OrientedSoapBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7372 
7373  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7374  r"""evaluate_indexes_scores(_OrientedSoapBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7375  return _IMP_atom._OrientedSoapBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7376 
7377  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7378  r"""evaluate_indexes_delta(_OrientedSoapBase self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7379  return _IMP_atom._OrientedSoapBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7380 
7381  def get_version_info(self):
7382  r"""get_version_info(_OrientedSoapBase self) -> VersionInfo"""
7383  return _IMP_atom._OrientedSoapBase_get_version_info(self)
7384  __swig_destroy__ = _IMP_atom.delete__OrientedSoapBase
7385 
7386 # Register _OrientedSoapBase in _IMP_atom:
7387 _IMP_atom._OrientedSoapBase_swigregister(_OrientedSoapBase)
7388 class _SPSFTB(IMP.PairScore):
7389  r"""Proxy of C++ IMP::score_functor::DistancePairScore< score_functor::Statistical< IMP::atom::ProteinLigandType,true,false > > class."""
7390 
7391  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7392  __repr__ = _swig_repr
7393 
7394  def __init__(self, *args):
7395  r"""
7396  __init__(_SPSFTB self, IMP::score_functor::DistancePairScore< IMP::score_functor::Statistical< IMP::atom::ProteinLigandType,true,false > >::DistanceScore const & t0, std::string name="FunctorDistancePairScore %1%") -> _SPSFTB
7397  __init__(_SPSFTB self) -> _SPSFTB
7398  """
7399  _IMP_atom._SPSFTB_swiginit(self, _IMP_atom.new__SPSFTB(*args))
7400 
7401  def do_get_inputs(self, m, pis):
7402  r"""do_get_inputs(_SPSFTB self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7403  return _IMP_atom._SPSFTB_do_get_inputs(self, m, pis)
7404 
7405  def get_score_functor(self, *args):
7406  r"""
7407  get_score_functor(_SPSFTB self) -> IMP::score_functor::Statistical< IMP::atom::ProteinLigandType,true,false,false >
7408  get_score_functor(_SPSFTB self) -> IMP::score_functor::Statistical< IMP::atom::ProteinLigandType,true,false,false > const &
7409  """
7410  return _IMP_atom._SPSFTB_get_score_functor(self, *args)
7411 
7412  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7413  r"""evaluate_indexes(_SPSFTB self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7414  return _IMP_atom._SPSFTB_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7415 
7416  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7417  r"""evaluate_indexes_scores(_SPSFTB self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7418  return _IMP_atom._SPSFTB_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7419 
7420  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7421  r"""evaluate_indexes_delta(_SPSFTB self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7422  return _IMP_atom._SPSFTB_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7423 
7424  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7425  r"""evaluate_if_good_indexes(_SPSFTB self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7426  return _IMP_atom._SPSFTB_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7427 
7428  def get_version_info(self):
7429  r"""get_version_info(_SPSFTB self) -> VersionInfo"""
7430  return _IMP_atom._SPSFTB_get_version_info(self)
7431  __swig_destroy__ = _IMP_atom.delete__SPSFTB
7432 
7433 # Register _SPSFTB in _IMP_atom:
7434 _IMP_atom._SPSFTB_swigregister(_SPSFTB)
7435 class _SPSTF(_SPSFTB):
7436  r"""Proxy of C++ IMP::core::StatisticalPairScore< IMP::atom::ProteinLigandType,true,false > class."""
7437 
7438  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7439  __repr__ = _swig_repr
7440 
7441  def __init__(self, *args):
7442  r"""
7443  __init__(_SPSTF self, IntKey k, double threshold, TextInput data_file) -> _SPSTF
7444  __init__(_SPSTF self, IntKey k, double threshold, TextInput data_file, unsigned int shift) -> _SPSTF
7445  """
7446  _IMP_atom._SPSTF_swiginit(self, _IMP_atom.new__SPSTF(*args))
7447  __swig_destroy__ = _IMP_atom.delete__SPSTF
7448 
7449 # Register _SPSTF in _IMP_atom:
7450 _IMP_atom._SPSTF_swigregister(_SPSTF)
7451 class _SPSFT(_BDopeBase):
7452  r"""Proxy of C++ IMP::core::StatisticalPairScore< IMP::atom::DopeType,false,true > class."""
7453 
7454  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7455  __repr__ = _swig_repr
7456 
7457  def __init__(self, *args):
7458  r"""
7459  __init__(_SPSFT self, IntKey k, double threshold, TextInput data_file) -> _SPSFT
7460  __init__(_SPSFT self, IntKey k, double threshold, TextInput data_file, unsigned int shift) -> _SPSFT
7461  """
7462  _IMP_atom._SPSFT_swiginit(self, _IMP_atom.new__SPSFT(*args))
7463  __swig_destroy__ = _IMP_atom.delete__SPSFT
7464 
7465 # Register _SPSFT in _IMP_atom:
7466 _IMP_atom._SPSFT_swigregister(_SPSFT)
7467 class _SPSFTL(_BLoopStatisticalBase):
7468  r"""Proxy of C++ IMP::core::StatisticalPairScore< IMP::atom::LoopStatisticalType,false,true > class."""
7469 
7470  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7471  __repr__ = _swig_repr
7472 
7473  def __init__(self, *args):
7474  r"""
7475  __init__(_SPSFTL self, IntKey k, double threshold, TextInput data_file) -> _SPSFTL
7476  __init__(_SPSFTL self, IntKey k, double threshold, TextInput data_file, unsigned int shift) -> _SPSFTL
7477  """
7478  _IMP_atom._SPSFTL_swiginit(self, _IMP_atom.new__SPSFTL(*args))
7479  __swig_destroy__ = _IMP_atom.delete__SPSFTL
7480 
7481 # Register _SPSFTL in _IMP_atom:
7482 _IMP_atom._SPSFTL_swigregister(_SPSFTL)
7483 class ProteinLigandAtomPairScore(_SPSTF):
7484  r"""Proxy of C++ IMP::atom::ProteinLigandAtomPairScore class."""
7485 
7486  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7487 
7488  def __init__(self, *args):
7489  r"""
7490  __init__(ProteinLigandAtomPairScore self, double threshold=std::numeric_limits< double >::max()) -> ProteinLigandAtomPairScore
7491  __init__(ProteinLigandAtomPairScore self, double threshold, TextInput data_file) -> ProteinLigandAtomPairScore
7492  """
7493  _IMP_atom.ProteinLigandAtomPairScore_swiginit(self, _IMP_atom.new_ProteinLigandAtomPairScore(*args))
7494 
7495  def get_maximum_distance(self):
7496  r"""get_maximum_distance(ProteinLigandAtomPairScore self) -> double"""
7497  return _IMP_atom.ProteinLigandAtomPairScore_get_maximum_distance(self)
7498 
7499  def __str__(self):
7500  r"""__str__(ProteinLigandAtomPairScore self) -> std::string"""
7501  return _IMP_atom.ProteinLigandAtomPairScore___str__(self)
7502 
7503  def __repr__(self):
7504  r"""__repr__(ProteinLigandAtomPairScore self) -> std::string"""
7505  return _IMP_atom.ProteinLigandAtomPairScore___repr__(self)
7506 
7507  @staticmethod
7508  def get_from(o):
7509  return _object_cast_to_ProteinLigandAtomPairScore(o)
7510 
7511  __swig_destroy__ = _IMP_atom.delete_ProteinLigandAtomPairScore
7512 
7513 # Register ProteinLigandAtomPairScore in _IMP_atom:
7514 _IMP_atom.ProteinLigandAtomPairScore_swigregister(ProteinLigandAtomPairScore)
7515 class ProteinLigandRestraint(IMP.container.PairsRestraint):
7516  r"""Proxy of C++ IMP::atom::ProteinLigandRestraint class."""
7517 
7518  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7519 
7520  def __init__(self, *args):
7521  r"""
7522  __init__(ProteinLigandRestraint self, Hierarchy protein, Hierarchy ligand, double threshold=std::numeric_limits< double >::max()) -> ProteinLigandRestraint
7523  __init__(ProteinLigandRestraint self, Hierarchy protein, Hierarchy ligand, double threshold, TextInput data_file) -> ProteinLigandRestraint
7524  """
7525  _IMP_atom.ProteinLigandRestraint_swiginit(self, _IMP_atom.new_ProteinLigandRestraint(*args))
7526 
7527  def __str__(self):
7528  r"""__str__(ProteinLigandRestraint self) -> std::string"""
7529  return _IMP_atom.ProteinLigandRestraint___str__(self)
7530 
7531  def __repr__(self):
7532  r"""__repr__(ProteinLigandRestraint self) -> std::string"""
7533  return _IMP_atom.ProteinLigandRestraint___repr__(self)
7534 
7535  @staticmethod
7536  def get_from(o):
7537  return _object_cast_to_ProteinLigandRestraint(o)
7538 
7539  __swig_destroy__ = _IMP_atom.delete_ProteinLigandRestraint
7540 
7541 # Register ProteinLigandRestraint in _IMP_atom:
7542 _IMP_atom.ProteinLigandRestraint_swigregister(ProteinLigandRestraint)
7543 
7545  r"""add_protein_ligand_score_data(Hierarchy h)"""
7546  return _IMP_atom.add_protein_ligand_score_data(h)
7547 class AtomType(IMP._Value):
7548  r"""Proxy of C++ IMP::Key< 8974343 > class."""
7549 
7550  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7551 
7552  def __init__(self, *args):
7553  r"""
7554  __init__(AtomType self) -> AtomType
7555  __init__(AtomType self, std::string const & c, bool is_implicit_add_permitted=True) -> AtomType
7556  __init__(AtomType self, unsigned int i) -> AtomType
7557  """
7558  _IMP_atom.AtomType_swiginit(self, _IMP_atom.new_AtomType(*args))
7559 
7560  @staticmethod
7561  def add_key(sc):
7562  r"""add_key(std::string const & sc) -> unsigned int"""
7563  return _IMP_atom.AtomType_add_key(sc)
7564 
7565  @staticmethod
7566  def get_existing_key(sc):
7567  r"""get_existing_key(std::string const & sc) -> AtomType"""
7568  return _IMP_atom.AtomType_get_existing_key(sc)
7569 
7570  @staticmethod
7571  def get_key_exists(sc):
7572  r"""get_key_exists(std::string const & sc) -> bool"""
7573  return _IMP_atom.AtomType_get_key_exists(sc)
7574 
7575  def get_string(self):
7576  r"""get_string(AtomType self) -> std::string const"""
7577  return _IMP_atom.AtomType_get_string(self)
7578 
7579  def __eq__(self, o):
7580  r"""__eq__(AtomType self, AtomType o) -> bool"""
7581  return _IMP_atom.AtomType___eq__(self, o)
7582 
7583  def __ne__(self, o):
7584  r"""__ne__(AtomType self, AtomType o) -> bool"""
7585  return _IMP_atom.AtomType___ne__(self, o)
7586 
7587  def __lt__(self, o):
7588  r"""__lt__(AtomType self, AtomType o) -> bool"""
7589  return _IMP_atom.AtomType___lt__(self, o)
7590 
7591  def __gt__(self, o):
7592  r"""__gt__(AtomType self, AtomType o) -> bool"""
7593  return _IMP_atom.AtomType___gt__(self, o)
7594 
7595  def __ge__(self, o):
7596  r"""__ge__(AtomType self, AtomType o) -> bool"""
7597  return _IMP_atom.AtomType___ge__(self, o)
7598 
7599  def __le__(self, o):
7600  r"""__le__(AtomType self, AtomType o) -> bool"""
7601  return _IMP_atom.AtomType___le__(self, o)
7602 
7603  def __hash__(self):
7604  r"""__hash__(AtomType self) -> std::size_t"""
7605  return _IMP_atom.AtomType___hash__(self)
7606 
7607  def show(self, *args):
7608  r"""show(AtomType self, _ostream out=std::cout)"""
7609  return _IMP_atom.AtomType_show(self, *args)
7610 
7611  @staticmethod
7612  def add_alias(old_key, new_name):
7613  r"""add_alias(AtomType old_key, std::string new_name) -> AtomType"""
7614  return _IMP_atom.AtomType_add_alias(old_key, new_name)
7615 
7616  @staticmethod
7617  def get_number_of_keys():
7618  r"""get_number_of_keys() -> unsigned int"""
7619  return _IMP_atom.AtomType_get_number_of_keys()
7620 
7621  def get_index(self):
7622  r"""get_index(AtomType self) -> unsigned int"""
7623  return _IMP_atom.AtomType_get_index(self)
7624 
7625  @staticmethod
7626  def show_all(out):
7627  r"""show_all(_ostream out)"""
7628  return _IMP_atom.AtomType_show_all(out)
7629 
7630  @staticmethod
7631  def get_all_strings():
7632  r"""get_all_strings() -> IMP::Vector< std::string >"""
7633  return _IMP_atom.AtomType_get_all_strings()
7634 
7635  @staticmethod
7636  def get_number_unique():
7637  r"""get_number_unique() -> unsigned int"""
7638  return _IMP_atom.AtomType_get_number_unique()
7639 
7640  def __str__(self):
7641  r"""__str__(AtomType self) -> std::string"""
7642  return _IMP_atom.AtomType___str__(self)
7643 
7644  def __repr__(self):
7645  r"""__repr__(AtomType self) -> std::string"""
7646  return _IMP_atom.AtomType___repr__(self)
7647  __swig_destroy__ = _IMP_atom.delete_AtomType
7648 
7649 # Register AtomType in _IMP_atom:
7650 _IMP_atom.AtomType_swigregister(AtomType)
7651 class ResidueType(IMP._Value):
7652  r"""Proxy of C++ IMP::Key< 90784334 > class."""
7653 
7654  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7655 
7656  def __init__(self, *args):
7657  r"""
7658  __init__(ResidueType self) -> ResidueType
7659  __init__(ResidueType self, std::string const & c, bool is_implicit_add_permitted=True) -> ResidueType
7660  __init__(ResidueType self, unsigned int i) -> ResidueType
7661  """
7662  _IMP_atom.ResidueType_swiginit(self, _IMP_atom.new_ResidueType(*args))
7663 
7664  @staticmethod
7665  def add_key(sc):
7666  r"""add_key(std::string const & sc) -> unsigned int"""
7667  return _IMP_atom.ResidueType_add_key(sc)
7668 
7669  @staticmethod
7670  def get_existing_key(sc):
7671  r"""get_existing_key(std::string const & sc) -> ResidueType"""
7672  return _IMP_atom.ResidueType_get_existing_key(sc)
7673 
7674  @staticmethod
7675  def get_key_exists(sc):
7676  r"""get_key_exists(std::string const & sc) -> bool"""
7677  return _IMP_atom.ResidueType_get_key_exists(sc)
7678 
7679  def get_string(self):
7680  r"""get_string(ResidueType self) -> std::string const"""
7681  return _IMP_atom.ResidueType_get_string(self)
7682 
7683  def __eq__(self, o):
7684  r"""__eq__(ResidueType self, ResidueType o) -> bool"""
7685  return _IMP_atom.ResidueType___eq__(self, o)
7686 
7687  def __ne__(self, o):
7688  r"""__ne__(ResidueType self, ResidueType o) -> bool"""
7689  return _IMP_atom.ResidueType___ne__(self, o)
7690 
7691  def __lt__(self, o):
7692  r"""__lt__(ResidueType self, ResidueType o) -> bool"""
7693  return _IMP_atom.ResidueType___lt__(self, o)
7694 
7695  def __gt__(self, o):
7696  r"""__gt__(ResidueType self, ResidueType o) -> bool"""
7697  return _IMP_atom.ResidueType___gt__(self, o)
7698 
7699  def __ge__(self, o):
7700  r"""__ge__(ResidueType self, ResidueType o) -> bool"""
7701  return _IMP_atom.ResidueType___ge__(self, o)
7702 
7703  def __le__(self, o):
7704  r"""__le__(ResidueType self, ResidueType o) -> bool"""
7705  return _IMP_atom.ResidueType___le__(self, o)
7706 
7707  def __hash__(self):
7708  r"""__hash__(ResidueType self) -> std::size_t"""
7709  return _IMP_atom.ResidueType___hash__(self)
7710 
7711  def show(self, *args):
7712  r"""show(ResidueType self, _ostream out=std::cout)"""
7713  return _IMP_atom.ResidueType_show(self, *args)
7714 
7715  @staticmethod
7716  def add_alias(old_key, new_name):
7717  r"""add_alias(ResidueType old_key, std::string new_name) -> ResidueType"""
7718  return _IMP_atom.ResidueType_add_alias(old_key, new_name)
7719 
7720  @staticmethod
7721  def get_number_of_keys():
7722  r"""get_number_of_keys() -> unsigned int"""
7723  return _IMP_atom.ResidueType_get_number_of_keys()
7724 
7725  def get_index(self):
7726  r"""get_index(ResidueType self) -> unsigned int"""
7727  return _IMP_atom.ResidueType_get_index(self)
7728 
7729  @staticmethod
7730  def show_all(out):
7731  r"""show_all(_ostream out)"""
7732  return _IMP_atom.ResidueType_show_all(out)
7733 
7734  @staticmethod
7735  def get_all_strings():
7736  r"""get_all_strings() -> IMP::Vector< std::string >"""
7737  return _IMP_atom.ResidueType_get_all_strings()
7738 
7739  @staticmethod
7740  def get_number_unique():
7741  r"""get_number_unique() -> unsigned int"""
7742  return _IMP_atom.ResidueType_get_number_unique()
7743 
7744  def __str__(self):
7745  r"""__str__(ResidueType self) -> std::string"""
7746  return _IMP_atom.ResidueType___str__(self)
7747 
7748  def __repr__(self):
7749  r"""__repr__(ResidueType self) -> std::string"""
7750  return _IMP_atom.ResidueType___repr__(self)
7751  __swig_destroy__ = _IMP_atom.delete_ResidueType
7752 
7753 # Register ResidueType in _IMP_atom:
7754 _IMP_atom.ResidueType_swigregister(ResidueType)
7755 class ChainType(IMP._Value):
7756  r"""Proxy of C++ IMP::Key< 90784336 > class."""
7757 
7758  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7759 
7760  def __init__(self, *args):
7761  r"""
7762  __init__(ChainType self) -> ChainType
7763  __init__(ChainType self, std::string const & c, bool is_implicit_add_permitted=True) -> ChainType
7764  __init__(ChainType self, unsigned int i) -> ChainType
7765  """
7766  _IMP_atom.ChainType_swiginit(self, _IMP_atom.new_ChainType(*args))
7767 
7768  @staticmethod
7769  def add_key(sc):
7770  r"""add_key(std::string const & sc) -> unsigned int"""
7771  return _IMP_atom.ChainType_add_key(sc)
7772 
7773  @staticmethod
7774  def get_existing_key(sc):
7775  r"""get_existing_key(std::string const & sc) -> ChainType"""
7776  return _IMP_atom.ChainType_get_existing_key(sc)
7777 
7778  @staticmethod
7779  def get_key_exists(sc):
7780  r"""get_key_exists(std::string const & sc) -> bool"""
7781  return _IMP_atom.ChainType_get_key_exists(sc)
7782 
7783  def get_string(self):
7784  r"""get_string(ChainType self) -> std::string const"""
7785  return _IMP_atom.ChainType_get_string(self)
7786 
7787  def __eq__(self, o):
7788  r"""__eq__(ChainType self, ChainType o) -> bool"""
7789  return _IMP_atom.ChainType___eq__(self, o)
7790 
7791  def __ne__(self, o):
7792  r"""__ne__(ChainType self, ChainType o) -> bool"""
7793  return _IMP_atom.ChainType___ne__(self, o)
7794 
7795  def __lt__(self, o):
7796  r"""__lt__(ChainType self, ChainType o) -> bool"""
7797  return _IMP_atom.ChainType___lt__(self, o)
7798 
7799  def __gt__(self, o):
7800  r"""__gt__(ChainType self, ChainType o) -> bool"""
7801  return _IMP_atom.ChainType___gt__(self, o)
7802 
7803  def __ge__(self, o):
7804  r"""__ge__(ChainType self, ChainType o) -> bool"""
7805  return _IMP_atom.ChainType___ge__(self, o)
7806 
7807  def __le__(self, o):
7808  r"""__le__(ChainType self, ChainType o) -> bool"""
7809  return _IMP_atom.ChainType___le__(self, o)
7810 
7811  def __hash__(self):
7812  r"""__hash__(ChainType self) -> std::size_t"""
7813  return _IMP_atom.ChainType___hash__(self)
7814 
7815  def show(self, *args):
7816  r"""show(ChainType self, _ostream out=std::cout)"""
7817  return _IMP_atom.ChainType_show(self, *args)
7818 
7819  @staticmethod
7820  def add_alias(old_key, new_name):
7821  r"""add_alias(ChainType old_key, std::string new_name) -> ChainType"""
7822  return _IMP_atom.ChainType_add_alias(old_key, new_name)
7823 
7824  @staticmethod
7825  def get_number_of_keys():
7826  r"""get_number_of_keys() -> unsigned int"""
7827  return _IMP_atom.ChainType_get_number_of_keys()
7828 
7829  def get_index(self):
7830  r"""get_index(ChainType self) -> unsigned int"""
7831  return _IMP_atom.ChainType_get_index(self)
7832 
7833  @staticmethod
7834  def show_all(out):
7835  r"""show_all(_ostream out)"""
7836  return _IMP_atom.ChainType_show_all(out)
7837 
7838  @staticmethod
7839  def get_all_strings():
7840  r"""get_all_strings() -> IMP::Vector< std::string >"""
7841  return _IMP_atom.ChainType_get_all_strings()
7842 
7843  @staticmethod
7844  def get_number_unique():
7845  r"""get_number_unique() -> unsigned int"""
7846  return _IMP_atom.ChainType_get_number_unique()
7847 
7848  def __str__(self):
7849  r"""__str__(ChainType self) -> std::string"""
7850  return _IMP_atom.ChainType___str__(self)
7851 
7852  def __repr__(self):
7853  r"""__repr__(ChainType self) -> std::string"""
7854  return _IMP_atom.ChainType___repr__(self)
7855  __swig_destroy__ = _IMP_atom.delete_ChainType
7856 
7857 # Register ChainType in _IMP_atom:
7858 _IMP_atom.ChainType_swigregister(ChainType)
7859 UNKNOWN_ELEMENT = _IMP_atom.UNKNOWN_ELEMENT
7860 
7861 OH = _IMP_atom.OH
7862 
7863 H2O = _IMP_atom.H2O
7864 
7865 H = _IMP_atom.H
7866 
7867 He = _IMP_atom.He
7868 
7869 Li = _IMP_atom.Li
7870 
7871 Be = _IMP_atom.Be
7872 
7873 B = _IMP_atom.B
7874 
7875 C = _IMP_atom.C
7876 
7877 N = _IMP_atom.N
7878 
7879 O = _IMP_atom.O
7880 
7881 F = _IMP_atom.F
7882 
7883 Ne = _IMP_atom.Ne
7884 
7885 Na = _IMP_atom.Na
7886 
7887 Mg = _IMP_atom.Mg
7888 
7889 Al = _IMP_atom.Al
7890 
7891 Si = _IMP_atom.Si
7892 
7893 P = _IMP_atom.P
7894 
7895 S = _IMP_atom.S
7896 
7897 Cl = _IMP_atom.Cl
7898 
7899 Ar = _IMP_atom.Ar
7900 
7901 K = _IMP_atom.K
7902 
7903 Ca = _IMP_atom.Ca
7904 
7905 Sc = _IMP_atom.Sc
7906 
7907 Ti = _IMP_atom.Ti
7908 
7909 V = _IMP_atom.V
7910 
7911 Cr = _IMP_atom.Cr
7912 
7913 Mn = _IMP_atom.Mn
7914 
7915 Fe = _IMP_atom.Fe
7916 
7917 Co = _IMP_atom.Co
7918 
7919 Ni = _IMP_atom.Ni
7920 
7921 Cu = _IMP_atom.Cu
7922 
7923 Zn = _IMP_atom.Zn
7924 
7925 Ga = _IMP_atom.Ga
7926 
7927 Ge = _IMP_atom.Ge
7928 
7929 As = _IMP_atom.As
7930 
7931 Se = _IMP_atom.Se
7932 
7933 Br = _IMP_atom.Br
7934 
7935 Kr = _IMP_atom.Kr
7936 
7937 Rb = _IMP_atom.Rb
7938 
7939 Sr = _IMP_atom.Sr
7940 
7941 Y = _IMP_atom.Y
7942 
7943 Zr = _IMP_atom.Zr
7944 
7945 Nb = _IMP_atom.Nb
7946 
7947 Mo = _IMP_atom.Mo
7948 
7949 Tc = _IMP_atom.Tc
7950 
7951 Ru = _IMP_atom.Ru
7952 
7953 Rh = _IMP_atom.Rh
7954 
7955 Pd = _IMP_atom.Pd
7956 
7957 Ag = _IMP_atom.Ag
7958 
7959 Cd = _IMP_atom.Cd
7960 
7961 In = _IMP_atom.In
7962 
7963 Sn = _IMP_atom.Sn
7964 
7965 Sb = _IMP_atom.Sb
7966 
7967 Te = _IMP_atom.Te
7968 
7969 I = _IMP_atom.I
7970 
7971 Xe = _IMP_atom.Xe
7972 
7973 Cs = _IMP_atom.Cs
7974 
7975 Ba = _IMP_atom.Ba
7976 
7977 La = _IMP_atom.La
7978 
7979 Ce = _IMP_atom.Ce
7980 
7981 Pr = _IMP_atom.Pr
7982 
7983 Nd = _IMP_atom.Nd
7984 
7985 Pm = _IMP_atom.Pm
7986 
7987 Sm = _IMP_atom.Sm
7988 
7989 Eu = _IMP_atom.Eu
7990 
7991 Gd = _IMP_atom.Gd
7992 
7993 Tb = _IMP_atom.Tb
7994 
7995 Dy = _IMP_atom.Dy
7996 
7997 Ho = _IMP_atom.Ho
7998 
7999 Er = _IMP_atom.Er
8000 
8001 Tm = _IMP_atom.Tm
8002 
8003 Yb = _IMP_atom.Yb
8004 
8005 Lu = _IMP_atom.Lu
8006 
8007 Hf = _IMP_atom.Hf
8008 
8009 Ta = _IMP_atom.Ta
8010 
8011 W = _IMP_atom.W
8012 
8013 Re = _IMP_atom.Re
8014 
8015 Os = _IMP_atom.Os
8016 
8017 Ir = _IMP_atom.Ir
8018 
8019 Pt = _IMP_atom.Pt
8020 
8021 Au = _IMP_atom.Au
8022 
8023 Hg = _IMP_atom.Hg
8024 
8025 Tl = _IMP_atom.Tl
8026 
8027 Pb = _IMP_atom.Pb
8028 
8029 Bi = _IMP_atom.Bi
8030 
8031 Po = _IMP_atom.Po
8032 
8033 At = _IMP_atom.At
8034 
8035 Rn = _IMP_atom.Rn
8036 
8037 Fr = _IMP_atom.Fr
8038 
8039 Ra = _IMP_atom.Ra
8040 
8041 Ac = _IMP_atom.Ac
8042 
8043 Th = _IMP_atom.Th
8044 
8045 Pa = _IMP_atom.Pa
8046 
8047 U = _IMP_atom.U
8048 
8049 Np = _IMP_atom.Np
8050 
8051 Pu = _IMP_atom.Pu
8052 
8053 Am = _IMP_atom.Am
8054 
8055 Cm = _IMP_atom.Cm
8056 
8057 Bk = _IMP_atom.Bk
8058 
8059 Cf = _IMP_atom.Cf
8060 
8061 Es = _IMP_atom.Es
8062 
8063 Fm = _IMP_atom.Fm
8064 
8065 Md = _IMP_atom.Md
8066 
8067 No = _IMP_atom.No
8068 
8069 Lr = _IMP_atom.Lr
8070 
8071 Db = _IMP_atom.Db
8072 
8073 Jl = _IMP_atom.Jl
8074 
8075 Rf = _IMP_atom.Rf
8076 
8077 NUMBER_OF_ELEMENTS = _IMP_atom.NUMBER_OF_ELEMENTS
8078 
8079 
8080 def hash_value(e):
8081  r"""hash_value(IMP::atom::Element e) -> size_t"""
8082  return _IMP_atom.hash_value(e)
8083 class ElementTable(object):
8084  r"""Proxy of C++ IMP::atom::ElementTable class."""
8085 
8086  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8087  __repr__ = _swig_repr
8088 
8089  def __init__(self):
8090  r"""__init__(ElementTable self) -> ElementTable"""
8091  _IMP_atom.ElementTable_swiginit(self, _IMP_atom.new_ElementTable())
8092 
8093  def get_element(self, s):
8094  r"""get_element(ElementTable self, std::string const & s) -> IMP::atom::Element"""
8095  return _IMP_atom.ElementTable_get_element(self, s)
8096 
8097  def get_name(self, e):
8098  r"""get_name(ElementTable self, IMP::atom::Element e) -> std::string"""
8099  return _IMP_atom.ElementTable_get_name(self, e)
8100 
8101  def get_mass(self, e):
8102  r"""get_mass(ElementTable self, IMP::atom::Element e) -> IMP::Float"""
8103  return _IMP_atom.ElementTable_get_mass(self, e)
8104  __swig_destroy__ = _IMP_atom.delete_ElementTable
8105 
8106 # Register ElementTable in _IMP_atom:
8107 _IMP_atom.ElementTable_swigregister(ElementTable)
8108 
8109 def get_element_table():
8110  r"""get_element_table() -> ElementTable"""
8111  return _IMP_atom.get_element_table()
8112 class Atom(Hierarchy):
8113  r"""Proxy of C++ IMP::atom::Atom class."""
8114 
8115  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8116 
8117  def __init__(self, *args):
8118  r"""
8119  __init__(Atom self) -> Atom
8120  __init__(Atom self, Model m, ParticleIndex id) -> Atom
8121  __init__(Atom self, _ParticleAdaptor d) -> Atom
8122  """
8123  _IMP_atom.Atom_swiginit(self, _IMP_atom.new_Atom(*args))
8124 
8125  def show(self, *args):
8126  r"""show(Atom self, _ostream out=std::cout)"""
8127  return _IMP_atom.Atom_show(self, *args)
8128 
8129  @staticmethod
8130  def setup_particle(*args):
8131  r"""
8132  setup_particle(Model m, ParticleIndex pi, Atom other) -> Atom
8133  setup_particle(_ParticleAdaptor pa, Atom other) -> Atom
8134  setup_particle(Model m, ParticleIndex pi, AtomType atom_type) -> Atom
8135  setup_particle(_ParticleAdaptor pa, AtomType atom_type) -> Atom
8136  """
8137  return _IMP_atom.Atom_setup_particle(*args)
8138 
8139  @staticmethod
8140  def get_is_setup(*args):
8141  r"""
8142  get_is_setup(_ParticleAdaptor p) -> bool
8143  get_is_setup(Model m, ParticleIndex pi) -> bool
8144  """
8145  return _IMP_atom.Atom_get_is_setup(*args)
8146 
8147  def get_atom_type(self):
8148  r"""get_atom_type(Atom self) -> AtomType"""
8149  return _IMP_atom.Atom_get_atom_type(self)
8150 
8151  def set_atom_type(self, t):
8152  r"""set_atom_type(Atom self, AtomType t)"""
8153  return _IMP_atom.Atom_set_atom_type(self, t)
8154 
8155  def get_element(self):
8156  r"""get_element(Atom self) -> IMP::atom::Element"""
8157  return _IMP_atom.Atom_get_element(self)
8158 
8159  def set_element(self, e):
8160  r"""set_element(Atom self, IMP::atom::Element e)"""
8161  return _IMP_atom.Atom_set_element(self, e)
8162 
8163  def get_occupancy(self):
8164  r"""get_occupancy(Atom self) -> double"""
8165  return _IMP_atom.Atom_get_occupancy(self)
8166 
8167  def set_occupancy(self, occupancy):
8168  r"""set_occupancy(Atom self, double occupancy)"""
8169  return _IMP_atom.Atom_set_occupancy(self, occupancy)
8170 
8171  def get_temperature_factor(self):
8172  r"""get_temperature_factor(Atom self) -> double"""
8173  return _IMP_atom.Atom_get_temperature_factor(self)
8174 
8175  def set_temperature_factor(self, tempFactor):
8176  r"""set_temperature_factor(Atom self, double tempFactor)"""
8177  return _IMP_atom.Atom_set_temperature_factor(self, tempFactor)
8178 
8179  def get_input_index(self):
8180  r"""get_input_index(Atom self) -> IMP::Int"""
8181  return _IMP_atom.Atom_get_input_index(self)
8182 
8183  def set_input_index(self, t):
8184  r"""set_input_index(Atom self, IMP::Int t)"""
8185  return _IMP_atom.Atom_set_input_index(self, t)
8186 
8187  @staticmethod
8188  def get_atom_type_key():
8189  r"""get_atom_type_key() -> IntKey"""
8190  return _IMP_atom.Atom_get_atom_type_key()
8191 
8192  @staticmethod
8193  def get_element_key():
8194  r"""get_element_key() -> IntKey"""
8195  return _IMP_atom.Atom_get_element_key()
8196 
8197  @staticmethod
8198  def get_input_index_key():
8199  r"""get_input_index_key() -> IntKey"""
8200  return _IMP_atom.Atom_get_input_index_key()
8201 
8202  @staticmethod
8203  def get_occupancy_key():
8204  r"""get_occupancy_key() -> FloatKey"""
8205  return _IMP_atom.Atom_get_occupancy_key()
8206 
8207  @staticmethod
8208  def get_temperature_factor_key():
8209  r"""get_temperature_factor_key() -> FloatKey"""
8210  return _IMP_atom.Atom_get_temperature_factor_key()
8211 
8212  def add_attribute(self, *args):
8213  r"""
8214  add_attribute(Atom self, FloatKey k, IMP::Float v, bool opt)
8215  add_attribute(Atom self, FloatKey a0, IMP::Float a1)
8216  add_attribute(Atom self, IntKey a0, IMP::Int a1)
8217  add_attribute(Atom self, FloatsKey a0, IMP::Floats a1)
8218  add_attribute(Atom self, IntsKey a0, IMP::Ints a1)
8219  add_attribute(Atom self, StringKey a0, IMP::String a1)
8220  add_attribute(Atom self, ParticleIndexKey a0, Particle a1)
8221  add_attribute(Atom self, ObjectKey a0, Object a1)
8222  add_attribute(Atom self, SparseFloatKey a0, IMP::Float a1)
8223  add_attribute(Atom self, SparseIntKey a0, IMP::Int a1)
8224  add_attribute(Atom self, SparseStringKey a0, IMP::String a1)
8225  add_attribute(Atom self, SparseParticleIndexKey a0, ParticleIndex a1)
8226  """
8227  return _IMP_atom.Atom_add_attribute(self, *args)
8228 
8229  def get_value(self, *args):
8230  r"""
8231  get_value(Atom self, FloatKey a0) -> IMP::Float
8232  get_value(Atom self, IntKey a0) -> IMP::Int
8233  get_value(Atom self, FloatsKey a0) -> IMP::Floats
8234  get_value(Atom self, IntsKey a0) -> IMP::Ints
8235  get_value(Atom self, StringKey a0) -> IMP::String
8236  get_value(Atom self, ParticleIndexKey a0) -> Particle
8237  get_value(Atom self, ObjectKey a0) -> Object
8238  get_value(Atom self, SparseFloatKey a0) -> IMP::Float
8239  get_value(Atom self, SparseIntKey a0) -> IMP::Int
8240  get_value(Atom self, SparseStringKey a0) -> IMP::String
8241  get_value(Atom self, SparseParticleIndexKey a0) -> ParticleIndex
8242  """
8243  return _IMP_atom.Atom_get_value(self, *args)
8244 
8245  def set_value(self, *args):
8246  r"""
8247  set_value(Atom self, FloatKey a0, IMP::Float a1)
8248  set_value(Atom self, IntKey a0, IMP::Int a1)
8249  set_value(Atom self, FloatsKey a0, IMP::Floats a1)
8250  set_value(Atom self, IntsKey a0, IMP::Ints a1)
8251  set_value(Atom self, StringKey a0, IMP::String a1)
8252  set_value(Atom self, ParticleIndexKey a0, Particle a1)
8253  set_value(Atom self, ObjectKey a0, Object a1)
8254  set_value(Atom self, SparseFloatKey a0, IMP::Float a1)
8255  set_value(Atom self, SparseIntKey a0, IMP::Int a1)
8256  set_value(Atom self, SparseStringKey a0, IMP::String a1)
8257  set_value(Atom self, SparseParticleIndexKey a0, ParticleIndex a1)
8258  """
8259  return _IMP_atom.Atom_set_value(self, *args)
8260 
8261  def remove_attribute(self, *args):
8262  r"""
8263  remove_attribute(Atom self, FloatKey a0)
8264  remove_attribute(Atom self, IntKey a0)
8265  remove_attribute(Atom self, FloatsKey a0)
8266  remove_attribute(Atom self, IntsKey a0)
8267  remove_attribute(Atom self, StringKey a0)
8268  remove_attribute(Atom self, ParticleIndexKey a0)
8269  remove_attribute(Atom self, ObjectKey a0)
8270  remove_attribute(Atom self, SparseFloatKey a0)
8271  remove_attribute(Atom self, SparseIntKey a0)
8272  remove_attribute(Atom self, SparseStringKey a0)
8273  remove_attribute(Atom self, SparseParticleIndexKey a0)
8274  """
8275  return _IMP_atom.Atom_remove_attribute(self, *args)
8276 
8277  def has_attribute(self, *args):
8278  r"""
8279  has_attribute(Atom self, FloatKey a0) -> bool
8280  has_attribute(Atom self, IntKey a0) -> bool
8281  has_attribute(Atom self, FloatsKey a0) -> bool
8282  has_attribute(Atom self, IntsKey a0) -> bool
8283  has_attribute(Atom self, StringKey a0) -> bool
8284  has_attribute(Atom self, ParticleIndexKey a0) -> bool
8285  has_attribute(Atom self, ObjectKey a0) -> bool
8286  has_attribute(Atom self, SparseFloatKey a0) -> bool
8287  has_attribute(Atom self, SparseIntKey a0) -> bool
8288  has_attribute(Atom self, SparseStringKey a0) -> bool
8289  has_attribute(Atom self, SparseParticleIndexKey a0) -> bool
8290  """
8291  return _IMP_atom.Atom_has_attribute(self, *args)
8292 
8293  def get_derivative(self, a0):
8294  r"""get_derivative(Atom self, FloatKey a0) -> double"""
8295  return _IMP_atom.Atom_get_derivative(self, a0)
8296 
8297  def get_name(self):
8298  r"""get_name(Atom self) -> std::string"""
8299  return _IMP_atom.Atom_get_name(self)
8300 
8301  def clear_caches(self):
8302  r"""clear_caches(Atom self)"""
8303  return _IMP_atom.Atom_clear_caches(self)
8304 
8305  def set_name(self, a0):
8306  r"""set_name(Atom self, std::string a0)"""
8307  return _IMP_atom.Atom_set_name(self, a0)
8308 
8309  def set_check_level(self, a0):
8310  r"""set_check_level(Atom self, IMP::CheckLevel a0)"""
8311  return _IMP_atom.Atom_set_check_level(self, a0)
8312 
8313  def add_to_derivative(self, a0, a1, a2):
8314  r"""add_to_derivative(Atom self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
8315  return _IMP_atom.Atom_add_to_derivative(self, a0, a1, a2)
8316 
8317  def set_is_optimized(self, a0, a1):
8318  r"""set_is_optimized(Atom self, FloatKey a0, bool a1)"""
8319  return _IMP_atom.Atom_set_is_optimized(self, a0, a1)
8320 
8321  def get_is_optimized(self, a0):
8322  r"""get_is_optimized(Atom self, FloatKey a0) -> bool"""
8323  return _IMP_atom.Atom_get_is_optimized(self, a0)
8324 
8325  def get_check_level(self):
8326  r"""get_check_level(Atom self) -> IMP::CheckLevel"""
8327  return _IMP_atom.Atom_get_check_level(self)
8328 
8329  def __eq__(self, *args):
8330  r"""
8331  __eq__(Atom self, Atom o) -> bool
8332  __eq__(Atom self, Particle d) -> bool
8333  """
8334  return _IMP_atom.Atom___eq__(self, *args)
8335 
8336  def __ne__(self, *args):
8337  r"""
8338  __ne__(Atom self, Atom o) -> bool
8339  __ne__(Atom self, Particle d) -> bool
8340  """
8341  return _IMP_atom.Atom___ne__(self, *args)
8342 
8343  def __le__(self, *args):
8344  r"""
8345  __le__(Atom self, Atom o) -> bool
8346  __le__(Atom self, Particle d) -> bool
8347  """
8348  return _IMP_atom.Atom___le__(self, *args)
8349 
8350  def __lt__(self, *args):
8351  r"""
8352  __lt__(Atom self, Atom o) -> bool
8353  __lt__(Atom self, Particle d) -> bool
8354  """
8355  return _IMP_atom.Atom___lt__(self, *args)
8356 
8357  def __ge__(self, *args):
8358  r"""
8359  __ge__(Atom self, Atom o) -> bool
8360  __ge__(Atom self, Particle d) -> bool
8361  """
8362  return _IMP_atom.Atom___ge__(self, *args)
8363 
8364  def __gt__(self, *args):
8365  r"""
8366  __gt__(Atom self, Atom o) -> bool
8367  __gt__(Atom self, Particle d) -> bool
8368  """
8369  return _IMP_atom.Atom___gt__(self, *args)
8370 
8371  def __hash__(self):
8372  r"""__hash__(Atom self) -> std::size_t"""
8373  return _IMP_atom.Atom___hash__(self)
8374 
8375  def __str__(self):
8376  r"""__str__(Atom self) -> std::string"""
8377  return _IMP_atom.Atom___str__(self)
8378 
8379  def __repr__(self):
8380  r"""__repr__(Atom self) -> std::string"""
8381  return _IMP_atom.Atom___repr__(self)
8382 
8383  def _get_as_binary(self):
8384  r"""_get_as_binary(Atom self) -> PyObject *"""
8385  return _IMP_atom.Atom__get_as_binary(self)
8386 
8387  def _set_from_binary(self, p):
8388  r"""_set_from_binary(Atom self, PyObject * p)"""
8389  return _IMP_atom.Atom__set_from_binary(self, p)
8390 
8391  def __getstate__(self):
8392  p = self._get_as_binary()
8393  if len(self.__dict__) > 1:
8394  d = self.__dict__.copy()
8395  del d['this']
8396  p = (d, p)
8397  return p
8398 
8399  def __setstate__(self, p):
8400  if not hasattr(self, 'this'):
8401  self.__init__()
8402  if isinstance(p, tuple):
8403  d, p = p
8404  self.__dict__.update(d)
8405  return self._set_from_binary(p)
8406 
8407  __swig_destroy__ = _IMP_atom.delete_Atom
8408 
8409 # Register Atom in _IMP_atom:
8410 _IMP_atom.Atom_swigregister(Atom)
8411 cvar = _IMP_atom.cvar
8412 AT_UNKNOWN = cvar.AT_UNKNOWN
8413 AT_N = cvar.AT_N
8414 AT_CA = cvar.AT_CA
8415 AT_C = cvar.AT_C
8416 AT_O = cvar.AT_O
8417 AT_H = cvar.AT_H
8418 AT_H1 = cvar.AT_H1
8419 AT_H2 = cvar.AT_H2
8420 AT_H3 = cvar.AT_H3
8421 AT_HA = cvar.AT_HA
8422 AT_HA1 = cvar.AT_HA1
8423 AT_HA2 = cvar.AT_HA2
8424 AT_HA3 = cvar.AT_HA3
8425 AT_CB = cvar.AT_CB
8426 AT_HB = cvar.AT_HB
8427 AT_HB1 = cvar.AT_HB1
8428 AT_HB2 = cvar.AT_HB2
8429 AT_HB3 = cvar.AT_HB3
8430 AT_OXT = cvar.AT_OXT
8431 AT_CH3 = cvar.AT_CH3
8432 AT_CH = cvar.AT_CH
8433 AT_CG = cvar.AT_CG
8434 AT_CG1 = cvar.AT_CG1
8435 AT_CG2 = cvar.AT_CG2
8436 AT_HG = cvar.AT_HG
8437 AT_HG1 = cvar.AT_HG1
8438 AT_HG2 = cvar.AT_HG2
8439 AT_HG3 = cvar.AT_HG3
8440 AT_HG11 = cvar.AT_HG11
8441 AT_HG21 = cvar.AT_HG21
8442 AT_HG31 = cvar.AT_HG31
8443 AT_HG12 = cvar.AT_HG12
8444 AT_HG13 = cvar.AT_HG13
8445 AT_HG22 = cvar.AT_HG22
8446 AT_HG23 = cvar.AT_HG23
8447 AT_HG32 = cvar.AT_HG32
8448 AT_OG = cvar.AT_OG
8449 AT_OG1 = cvar.AT_OG1
8450 AT_SG = cvar.AT_SG
8451 AT_CD = cvar.AT_CD
8452 AT_CD1 = cvar.AT_CD1
8453 AT_CD2 = cvar.AT_CD2
8454 AT_HD = cvar.AT_HD
8455 AT_HD1 = cvar.AT_HD1
8456 AT_HD2 = cvar.AT_HD2
8457 AT_HD3 = cvar.AT_HD3
8458 AT_HD11 = cvar.AT_HD11
8459 AT_HD21 = cvar.AT_HD21
8460 AT_HD31 = cvar.AT_HD31
8461 AT_HD12 = cvar.AT_HD12
8462 AT_HD13 = cvar.AT_HD13
8463 AT_HD22 = cvar.AT_HD22
8464 AT_HD23 = cvar.AT_HD23
8465 AT_HD32 = cvar.AT_HD32
8466 AT_SD = cvar.AT_SD
8467 AT_OD1 = cvar.AT_OD1
8468 AT_OD2 = cvar.AT_OD2
8469 AT_ND1 = cvar.AT_ND1
8470 AT_ND2 = cvar.AT_ND2
8471 AT_CE = cvar.AT_CE
8472 AT_CE1 = cvar.AT_CE1
8473 AT_CE2 = cvar.AT_CE2
8474 AT_CE3 = cvar.AT_CE3
8475 AT_HE = cvar.AT_HE
8476 AT_HE1 = cvar.AT_HE1
8477 AT_HE2 = cvar.AT_HE2
8478 AT_HE3 = cvar.AT_HE3
8479 AT_HE21 = cvar.AT_HE21
8480 AT_HE22 = cvar.AT_HE22
8481 AT_OE1 = cvar.AT_OE1
8482 AT_OE2 = cvar.AT_OE2
8483 AT_NE = cvar.AT_NE
8484 AT_NE1 = cvar.AT_NE1
8485 AT_NE2 = cvar.AT_NE2
8486 AT_CZ = cvar.AT_CZ
8487 AT_CZ2 = cvar.AT_CZ2
8488 AT_CZ3 = cvar.AT_CZ3
8489 AT_NZ = cvar.AT_NZ
8490 AT_HZ = cvar.AT_HZ
8491 AT_HZ1 = cvar.AT_HZ1
8492 AT_HZ2 = cvar.AT_HZ2
8493 AT_HZ3 = cvar.AT_HZ3
8494 AT_CH2 = cvar.AT_CH2
8495 AT_NH1 = cvar.AT_NH1
8496 AT_NH2 = cvar.AT_NH2
8497 AT_OH = cvar.AT_OH
8498 AT_HH = cvar.AT_HH
8499 AT_HH11 = cvar.AT_HH11
8500 AT_HH21 = cvar.AT_HH21
8501 AT_HH2 = cvar.AT_HH2
8502 AT_HH12 = cvar.AT_HH12
8503 AT_HH22 = cvar.AT_HH22
8504 AT_HH13 = cvar.AT_HH13
8505 AT_HH23 = cvar.AT_HH23
8506 AT_HH33 = cvar.AT_HH33
8507 AT_P = cvar.AT_P
8508 AT_OP1 = cvar.AT_OP1
8509 AT_OP2 = cvar.AT_OP2
8510 AT_OP3 = cvar.AT_OP3
8511 AT_O5p = cvar.AT_O5p
8512 AT_C5p = cvar.AT_C5p
8513 AT_H5p = cvar.AT_H5p
8514 AT_H5pp = cvar.AT_H5pp
8515 AT_C4p = cvar.AT_C4p
8516 AT_H4p = cvar.AT_H4p
8517 AT_O4p = cvar.AT_O4p
8518 AT_C1p = cvar.AT_C1p
8519 AT_H1p = cvar.AT_H1p
8520 AT_C3p = cvar.AT_C3p
8521 AT_H3p = cvar.AT_H3p
8522 AT_O3p = cvar.AT_O3p
8523 AT_C2p = cvar.AT_C2p
8524 AT_H2p = cvar.AT_H2p
8525 AT_H2pp = cvar.AT_H2pp
8526 AT_O2p = cvar.AT_O2p
8527 AT_HO2p = cvar.AT_HO2p
8528 AT_N9 = cvar.AT_N9
8529 AT_C8 = cvar.AT_C8
8530 AT_H8 = cvar.AT_H8
8531 AT_N7 = cvar.AT_N7
8532 AT_C5 = cvar.AT_C5
8533 AT_C4 = cvar.AT_C4
8534 AT_N3 = cvar.AT_N3
8535 AT_C2 = cvar.AT_C2
8536 AT_N1 = cvar.AT_N1
8537 AT_C6 = cvar.AT_C6
8538 AT_N6 = cvar.AT_N6
8539 AT_H61 = cvar.AT_H61
8540 AT_H62 = cvar.AT_H62
8541 AT_O6 = cvar.AT_O6
8542 AT_N2 = cvar.AT_N2
8543 AT_NT = cvar.AT_NT
8544 AT_H21 = cvar.AT_H21
8545 AT_H22 = cvar.AT_H22
8546 AT_H6 = cvar.AT_H6
8547 AT_H5 = cvar.AT_H5
8548 AT_O2 = cvar.AT_O2
8549 AT_N4 = cvar.AT_N4
8550 AT_H41 = cvar.AT_H41
8551 AT_H42 = cvar.AT_H42
8552 AT_O4 = cvar.AT_O4
8553 AT_C7 = cvar.AT_C7
8554 AT_H71 = cvar.AT_H71
8555 AT_H72 = cvar.AT_H72
8556 AT_H73 = cvar.AT_H73
8557 AT_O1A = cvar.AT_O1A
8558 AT_O2A = cvar.AT_O2A
8559 AT_O3A = cvar.AT_O3A
8560 AT_O1B = cvar.AT_O1B
8561 AT_O2B = cvar.AT_O2B
8562 AT_O3B = cvar.AT_O3B
8563 AT_CAY = cvar.AT_CAY
8564 AT_CY = cvar.AT_CY
8565 AT_OY = cvar.AT_OY
8566 AT_CAT = cvar.AT_CAT
8567 
8568 
8569 def get_residue(*args):
8570  r"""
8571  get_residue(Hierarchy mhd, unsigned int index) -> Hierarchy
8572  get_residue(Atom d, bool nothrow=False) -> Residue
8573  """
8574  return _IMP_atom.get_residue(*args)
8575 
8576 def get_atom(rd, at):
8577  r"""get_atom(Residue rd, AtomType at) -> Atom"""
8578  return _IMP_atom.get_atom(rd, at)
8579 
8580 def add_atom_type(name, e):
8581  r"""add_atom_type(std::string name, IMP::atom::Element e) -> AtomType"""
8582  return _IMP_atom.add_atom_type(name, e)
8583 
8584 def get_element_for_atom_type(at):
8585  r"""get_element_for_atom_type(AtomType at) -> IMP::atom::Element"""
8586  return _IMP_atom.get_element_for_atom_type(at)
8587 
8588 def get_atom_type_exists(name):
8589  r"""get_atom_type_exists(std::string name) -> bool"""
8590  return _IMP_atom.get_atom_type_exists(name)
8591 class Residue(Hierarchy):
8592  r"""Proxy of C++ IMP::atom::Residue class."""
8593 
8594  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8595 
8596  def __init__(self, *args):
8597  r"""
8598  __init__(Residue self) -> Residue
8599  __init__(Residue self, Model m, ParticleIndex id) -> Residue
8600  __init__(Residue self, _ParticleAdaptor d) -> Residue
8601  """
8602  _IMP_atom.Residue_swiginit(self, _IMP_atom.new_Residue(*args))
8603 
8604  def show(self, *args):
8605  r"""show(Residue self, _ostream out=std::cout)"""
8606  return _IMP_atom.Residue_show(self, *args)
8607 
8608  @staticmethod
8609  def setup_particle(*args):
8610  r"""
8611  setup_particle(Model m, ParticleIndex pi, ResidueType t, int index, int insertion_code) -> Residue
8612  setup_particle(_ParticleAdaptor pa, ResidueType t, int index, int insertion_code) -> Residue
8613  setup_particle(Model m, ParticleIndex pi, ResidueType t, int index) -> Residue
8614  setup_particle(_ParticleAdaptor pa, ResidueType t, int index) -> Residue
8615  setup_particle(Model m, ParticleIndex pi, ResidueType t) -> Residue
8616  setup_particle(_ParticleAdaptor pa, ResidueType t) -> Residue
8617  setup_particle(Model m, ParticleIndex pi, Residue other) -> Residue
8618  setup_particle(_ParticleAdaptor pa, Residue other) -> Residue
8619  """
8620  return _IMP_atom.Residue_setup_particle(*args)
8621 
8622  @staticmethod
8623  def get_is_setup(*args):
8624  r"""
8625  get_is_setup(_ParticleAdaptor p) -> bool
8626  get_is_setup(Model m, ParticleIndex pi) -> bool
8627  """
8628  return _IMP_atom.Residue_get_is_setup(*args)
8629 
8630  def get_residue_type(self):
8631  r"""get_residue_type(Residue self) -> ResidueType"""
8632  return _IMP_atom.Residue_get_residue_type(self)
8633 
8634  def set_residue_type(self, t):
8635  r"""set_residue_type(Residue self, ResidueType t)"""
8636  return _IMP_atom.Residue_set_residue_type(self, t)
8637 
8638  def get_is_protein(self):
8639  r"""get_is_protein(Residue self) -> bool"""
8640  return _IMP_atom.Residue_get_is_protein(self)
8641 
8642  def get_is_dna(self):
8643  r"""get_is_dna(Residue self) -> bool"""
8644  return _IMP_atom.Residue_get_is_dna(self)
8645 
8646  def get_is_rna(self):
8647  r"""get_is_rna(Residue self) -> bool"""
8648  return _IMP_atom.Residue_get_is_rna(self)
8649 
8650  def get_index(self):
8651  r"""get_index(Residue self) -> IMP::Int"""
8652  return _IMP_atom.Residue_get_index(self)
8653 
8654  def set_index(self, t):
8655  r"""set_index(Residue self, IMP::Int t)"""
8656  return _IMP_atom.Residue_set_index(self, t)
8657 
8658  def get_insertion_code(self):
8659  r"""get_insertion_code(Residue self) -> char"""
8660  return _IMP_atom.Residue_get_insertion_code(self)
8661 
8662  def set_insertion_code(self, insertion_code):
8663  r"""set_insertion_code(Residue self, char insertion_code)"""
8664  return _IMP_atom.Residue_set_insertion_code(self, insertion_code)
8665 
8666  @staticmethod
8667  def get_index_key():
8668  r"""get_index_key() -> IntKey"""
8669  return _IMP_atom.Residue_get_index_key()
8670 
8671  @staticmethod
8672  def get_residue_type_key():
8673  r"""get_residue_type_key() -> IntKey"""
8674  return _IMP_atom.Residue_get_residue_type_key()
8675 
8676  @staticmethod
8677  def get_insertion_code_key():
8678  r"""get_insertion_code_key() -> IntKey"""
8679  return _IMP_atom.Residue_get_insertion_code_key()
8680 
8681  @staticmethod
8682  def get_type_changed_key():
8683  r"""get_type_changed_key() -> TriggerKey"""
8684  return _IMP_atom.Residue_get_type_changed_key()
8685 
8686  def add_attribute(self, *args):
8687  r"""
8688  add_attribute(Residue self, FloatKey k, IMP::Float v, bool opt)
8689  add_attribute(Residue self, FloatKey a0, IMP::Float a1)
8690  add_attribute(Residue self, IntKey a0, IMP::Int a1)
8691  add_attribute(Residue self, FloatsKey a0, IMP::Floats a1)
8692  add_attribute(Residue self, IntsKey a0, IMP::Ints a1)
8693  add_attribute(Residue self, StringKey a0, IMP::String a1)
8694  add_attribute(Residue self, ParticleIndexKey a0, Particle a1)
8695  add_attribute(Residue self, ObjectKey a0, Object a1)
8696  add_attribute(Residue self, SparseFloatKey a0, IMP::Float a1)
8697  add_attribute(Residue self, SparseIntKey a0, IMP::Int a1)
8698  add_attribute(Residue self, SparseStringKey a0, IMP::String a1)
8699  add_attribute(Residue self, SparseParticleIndexKey a0, ParticleIndex a1)
8700  """
8701  return _IMP_atom.Residue_add_attribute(self, *args)
8702 
8703  def get_value(self, *args):
8704  r"""
8705  get_value(Residue self, FloatKey a0) -> IMP::Float
8706  get_value(Residue self, IntKey a0) -> IMP::Int
8707  get_value(Residue self, FloatsKey a0) -> IMP::Floats
8708  get_value(Residue self, IntsKey a0) -> IMP::Ints
8709  get_value(Residue self, StringKey a0) -> IMP::String
8710  get_value(Residue self, ParticleIndexKey a0) -> Particle
8711  get_value(Residue self, ObjectKey a0) -> Object
8712  get_value(Residue self, SparseFloatKey a0) -> IMP::Float
8713  get_value(Residue self, SparseIntKey a0) -> IMP::Int
8714  get_value(Residue self, SparseStringKey a0) -> IMP::String
8715  get_value(Residue self, SparseParticleIndexKey a0) -> ParticleIndex
8716  """
8717  return _IMP_atom.Residue_get_value(self, *args)
8718 
8719  def set_value(self, *args):
8720  r"""
8721  set_value(Residue self, FloatKey a0, IMP::Float a1)
8722  set_value(Residue self, IntKey a0, IMP::Int a1)
8723  set_value(Residue self, FloatsKey a0, IMP::Floats a1)
8724  set_value(Residue self, IntsKey a0, IMP::Ints a1)
8725  set_value(Residue self, StringKey a0, IMP::String a1)
8726  set_value(Residue self, ParticleIndexKey a0, Particle a1)
8727  set_value(Residue self, ObjectKey a0, Object a1)
8728  set_value(Residue self, SparseFloatKey a0, IMP::Float a1)
8729  set_value(Residue self, SparseIntKey a0, IMP::Int a1)
8730  set_value(Residue self, SparseStringKey a0, IMP::String a1)
8731  set_value(Residue self, SparseParticleIndexKey a0, ParticleIndex a1)
8732  """
8733  return _IMP_atom.Residue_set_value(self, *args)
8734 
8735  def remove_attribute(self, *args):
8736  r"""
8737  remove_attribute(Residue self, FloatKey a0)
8738  remove_attribute(Residue self, IntKey a0)
8739  remove_attribute(Residue self, FloatsKey a0)
8740  remove_attribute(Residue self, IntsKey a0)
8741  remove_attribute(Residue self, StringKey a0)
8742  remove_attribute(Residue self, ParticleIndexKey a0)
8743  remove_attribute(Residue self, ObjectKey a0)
8744  remove_attribute(Residue self, SparseFloatKey a0)
8745  remove_attribute(Residue self, SparseIntKey a0)
8746  remove_attribute(Residue self, SparseStringKey a0)
8747  remove_attribute(Residue self, SparseParticleIndexKey a0)
8748  """
8749  return _IMP_atom.Residue_remove_attribute(self, *args)
8750 
8751  def has_attribute(self, *args):
8752  r"""
8753  has_attribute(Residue self, FloatKey a0) -> bool
8754  has_attribute(Residue self, IntKey a0) -> bool
8755  has_attribute(Residue self, FloatsKey a0) -> bool
8756  has_attribute(Residue self, IntsKey a0) -> bool
8757  has_attribute(Residue self, StringKey a0) -> bool
8758  has_attribute(Residue self, ParticleIndexKey a0) -> bool
8759  has_attribute(Residue self, ObjectKey a0) -> bool
8760  has_attribute(Residue self, SparseFloatKey a0) -> bool
8761  has_attribute(Residue self, SparseIntKey a0) -> bool
8762  has_attribute(Residue self, SparseStringKey a0) -> bool
8763  has_attribute(Residue self, SparseParticleIndexKey a0) -> bool
8764  """
8765  return _IMP_atom.Residue_has_attribute(self, *args)
8766 
8767  def get_derivative(self, a0):
8768  r"""get_derivative(Residue self, FloatKey a0) -> double"""
8769  return _IMP_atom.Residue_get_derivative(self, a0)
8770 
8771  def get_name(self):
8772  r"""get_name(Residue self) -> std::string"""
8773  return _IMP_atom.Residue_get_name(self)
8774 
8775  def clear_caches(self):
8776  r"""clear_caches(Residue self)"""
8777  return _IMP_atom.Residue_clear_caches(self)
8778 
8779  def set_name(self, a0):
8780  r"""set_name(Residue self, std::string a0)"""
8781  return _IMP_atom.Residue_set_name(self, a0)
8782 
8783  def set_check_level(self, a0):
8784  r"""set_check_level(Residue self, IMP::CheckLevel a0)"""
8785  return _IMP_atom.Residue_set_check_level(self, a0)
8786 
8787  def add_to_derivative(self, a0, a1, a2):
8788  r"""add_to_derivative(Residue self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
8789  return _IMP_atom.Residue_add_to_derivative(self, a0, a1, a2)
8790 
8791  def set_is_optimized(self, a0, a1):
8792  r"""set_is_optimized(Residue self, FloatKey a0, bool a1)"""
8793  return _IMP_atom.Residue_set_is_optimized(self, a0, a1)
8794 
8795  def get_is_optimized(self, a0):
8796  r"""get_is_optimized(Residue self, FloatKey a0) -> bool"""
8797  return _IMP_atom.Residue_get_is_optimized(self, a0)
8798 
8799  def get_check_level(self):
8800  r"""get_check_level(Residue self) -> IMP::CheckLevel"""
8801  return _IMP_atom.Residue_get_check_level(self)
8802 
8803  def __eq__(self, *args):
8804  r"""
8805  __eq__(Residue self, Residue o) -> bool
8806  __eq__(Residue self, Particle d) -> bool
8807  """
8808  return _IMP_atom.Residue___eq__(self, *args)
8809 
8810  def __ne__(self, *args):
8811  r"""
8812  __ne__(Residue self, Residue o) -> bool
8813  __ne__(Residue self, Particle d) -> bool
8814  """
8815  return _IMP_atom.Residue___ne__(self, *args)
8816 
8817  def __le__(self, *args):
8818  r"""
8819  __le__(Residue self, Residue o) -> bool
8820  __le__(Residue self, Particle d) -> bool
8821  """
8822  return _IMP_atom.Residue___le__(self, *args)
8823 
8824  def __lt__(self, *args):
8825  r"""
8826  __lt__(Residue self, Residue o) -> bool
8827  __lt__(Residue self, Particle d) -> bool
8828  """
8829  return _IMP_atom.Residue___lt__(self, *args)
8830 
8831  def __ge__(self, *args):
8832  r"""
8833  __ge__(Residue self, Residue o) -> bool
8834  __ge__(Residue self, Particle d) -> bool
8835  """
8836  return _IMP_atom.Residue___ge__(self, *args)
8837 
8838  def __gt__(self, *args):
8839  r"""
8840  __gt__(Residue self, Residue o) -> bool
8841  __gt__(Residue self, Particle d) -> bool
8842  """
8843  return _IMP_atom.Residue___gt__(self, *args)
8844 
8845  def __hash__(self):
8846  r"""__hash__(Residue self) -> std::size_t"""
8847  return _IMP_atom.Residue___hash__(self)
8848 
8849  def __str__(self):
8850  r"""__str__(Residue self) -> std::string"""
8851  return _IMP_atom.Residue___str__(self)
8852 
8853  def __repr__(self):
8854  r"""__repr__(Residue self) -> std::string"""
8855  return _IMP_atom.Residue___repr__(self)
8856 
8857  def _get_as_binary(self):
8858  r"""_get_as_binary(Residue self) -> PyObject *"""
8859  return _IMP_atom.Residue__get_as_binary(self)
8860 
8861  def _set_from_binary(self, p):
8862  r"""_set_from_binary(Residue self, PyObject * p)"""
8863  return _IMP_atom.Residue__set_from_binary(self, p)
8864 
8865  def __getstate__(self):
8866  p = self._get_as_binary()
8867  if len(self.__dict__) > 1:
8868  d = self.__dict__.copy()
8869  del d['this']
8870  p = (d, p)
8871  return p
8872 
8873  def __setstate__(self, p):
8874  if not hasattr(self, 'this'):
8875  self.__init__()
8876  if isinstance(p, tuple):
8877  d, p = p
8878  self.__dict__.update(d)
8879  return self._set_from_binary(p)
8880 
8881  __swig_destroy__ = _IMP_atom.delete_Residue
8882 
8883 # Register Residue in _IMP_atom:
8884 _IMP_atom.Residue_swigregister(Residue)
8885 UNK = cvar.UNK
8886 GLY = cvar.GLY
8887 ALA = cvar.ALA
8888 VAL = cvar.VAL
8889 LEU = cvar.LEU
8890 ILE = cvar.ILE
8891 SER = cvar.SER
8892 THR = cvar.THR
8893 CYS = cvar.CYS
8894 MET = cvar.MET
8895 PRO = cvar.PRO
8896 ASP = cvar.ASP
8897 ASN = cvar.ASN
8898 GLU = cvar.GLU
8899 GLN = cvar.GLN
8900 LYS = cvar.LYS
8901 ARG = cvar.ARG
8902 HIS = cvar.HIS
8903 PHE = cvar.PHE
8904 TYR = cvar.TYR
8905 TRP = cvar.TRP
8906 ACE = cvar.ACE
8907 NH2 = cvar.NH2
8908 MSE = cvar.MSE
8909 ADE = cvar.ADE
8910 URA = cvar.URA
8911 CYT = cvar.CYT
8912 GUA = cvar.GUA
8913 THY = cvar.THY
8914 DADE = cvar.DADE
8915 DURA = cvar.DURA
8916 DCYT = cvar.DCYT
8917 DGUA = cvar.DGUA
8918 DTHY = cvar.DTHY
8919 HOH = cvar.HOH
8920 HEME = cvar.HEME
8921 POP = cvar.POP
8922 
8923 
8924 def get_next_residue(rd):
8925  r"""get_next_residue(Residue rd) -> Hierarchy"""
8926  return _IMP_atom.get_next_residue(rd)
8927 
8928 def get_previous_residue(rd):
8929  r"""get_previous_residue(Residue rd) -> Hierarchy"""
8930  return _IMP_atom.get_previous_residue(rd)
8931 
8932 def get_one_letter_code(c):
8933  r"""get_one_letter_code(ResidueType c) -> char"""
8934  return _IMP_atom.get_one_letter_code(c)
8935 BALLS = _IMP_atom.BALLS
8936 
8937 DENSITIES = _IMP_atom.DENSITIES
8938 
8939 class Representation(Hierarchy):
8940  r"""Proxy of C++ IMP::atom::Representation class."""
8941 
8942  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8943 
8944  @staticmethod
8945  def setup_particle(*args):
8946  r"""
8947  setup_particle(Model m, ParticleIndex pi) -> Representation
8948  setup_particle(_ParticleAdaptor pa) -> Representation
8949  setup_particle(Model m, ParticleIndex pi, double resolution) -> Representation
8950  setup_particle(_ParticleAdaptor pa, double resolution) -> Representation
8951  setup_particle(Model m, ParticleIndex pi, Representation other) -> Representation
8952  setup_particle(_ParticleAdaptor pa, Representation other) -> Representation
8953  """
8954  return _IMP_atom.Representation_setup_particle(*args)
8955 
8956  def __init__(self, *args):
8957  r"""
8958  __init__(Representation self) -> Representation
8959  __init__(Representation self, Model m, ParticleIndex id) -> Representation
8960  __init__(Representation self, _ParticleAdaptor d) -> Representation
8961  """
8962  _IMP_atom.Representation_swiginit(self, _IMP_atom.new_Representation(*args))
8963 
8964  def show(self, *args):
8965  r"""show(Representation self, _ostream out=std::cout)"""
8966  return _IMP_atom.Representation_show(self, *args)
8967 
8968  @staticmethod
8969  def get_is_setup(*args):
8970  r"""
8971  get_is_setup(_ParticleAdaptor p) -> bool
8972  get_is_setup(Model m, ParticleIndex pi) -> bool
8973  """
8974  return _IMP_atom.Representation_get_is_setup(*args)
8975 
8976  def get_representation(self, *args):
8977  r"""get_representation(Representation self, double resolution, IMP::atom::RepresentationType type=BALLS) -> Hierarchy"""
8978  return _IMP_atom.Representation_get_representation(self, *args)
8979 
8980  def get_representations(self, *args):
8981  r"""get_representations(Representation self, IMP::atom::RepresentationType type=BALLS) -> IMP::atom::Hierarchies"""
8982  return _IMP_atom.Representation_get_representations(self, *args)
8983 
8984  def add_representation(self, *args):
8985  r"""add_representation(Representation self, _ParticleIndexAdaptor rep, IMP::atom::RepresentationType type=BALLS, double resolution=-1)"""
8986  return _IMP_atom.Representation_add_representation(self, *args)
8987 
8988  def get_resolutions(self, *args):
8989  r"""get_resolutions(Representation self, IMP::atom::RepresentationType type=BALLS) -> IMP::Floats"""
8990  return _IMP_atom.Representation_get_resolutions(self, *args)
8991 
8992  def remove_representation(self, rep):
8993  r"""remove_representation(Representation self, _ParticleIndexAdaptor rep)"""
8994  return _IMP_atom.Representation_remove_representation(self, rep)
8995 
8996  def update_parents(self):
8997  r"""update_parents(Representation self)"""
8998  return _IMP_atom.Representation_update_parents(self)
8999 
9000  def add_attribute(self, *args):
9001  r"""
9002  add_attribute(Representation self, FloatKey k, IMP::Float v, bool opt)
9003  add_attribute(Representation self, FloatKey a0, IMP::Float a1)
9004  add_attribute(Representation self, IntKey a0, IMP::Int a1)
9005  add_attribute(Representation self, FloatsKey a0, IMP::Floats a1)
9006  add_attribute(Representation self, IntsKey a0, IMP::Ints a1)
9007  add_attribute(Representation self, StringKey a0, IMP::String a1)
9008  add_attribute(Representation self, ParticleIndexKey a0, Particle a1)
9009  add_attribute(Representation self, ObjectKey a0, Object a1)
9010  add_attribute(Representation self, SparseFloatKey a0, IMP::Float a1)
9011  add_attribute(Representation self, SparseIntKey a0, IMP::Int a1)
9012  add_attribute(Representation self, SparseStringKey a0, IMP::String a1)
9013  add_attribute(Representation self, SparseParticleIndexKey a0, ParticleIndex a1)
9014  """
9015  return _IMP_atom.Representation_add_attribute(self, *args)
9016 
9017  def get_value(self, *args):
9018  r"""
9019  get_value(Representation self, FloatKey a0) -> IMP::Float
9020  get_value(Representation self, IntKey a0) -> IMP::Int
9021  get_value(Representation self, FloatsKey a0) -> IMP::Floats
9022  get_value(Representation self, IntsKey a0) -> IMP::Ints
9023  get_value(Representation self, StringKey a0) -> IMP::String
9024  get_value(Representation self, ParticleIndexKey a0) -> Particle
9025  get_value(Representation self, ObjectKey a0) -> Object
9026  get_value(Representation self, SparseFloatKey a0) -> IMP::Float
9027  get_value(Representation self, SparseIntKey a0) -> IMP::Int
9028  get_value(Representation self, SparseStringKey a0) -> IMP::String
9029  get_value(Representation self, SparseParticleIndexKey a0) -> ParticleIndex
9030  """
9031  return _IMP_atom.Representation_get_value(self, *args)
9032 
9033  def set_value(self, *args):
9034  r"""
9035  set_value(Representation self, FloatKey a0, IMP::Float a1)
9036  set_value(Representation self, IntKey a0, IMP::Int a1)
9037  set_value(Representation self, FloatsKey a0, IMP::Floats a1)
9038  set_value(Representation self, IntsKey a0, IMP::Ints a1)
9039  set_value(Representation self, StringKey a0, IMP::String a1)
9040  set_value(Representation self, ParticleIndexKey a0, Particle a1)
9041  set_value(Representation self, ObjectKey a0, Object a1)
9042  set_value(Representation self, SparseFloatKey a0, IMP::Float a1)
9043  set_value(Representation self, SparseIntKey a0, IMP::Int a1)
9044  set_value(Representation self, SparseStringKey a0, IMP::String a1)
9045  set_value(Representation self, SparseParticleIndexKey a0, ParticleIndex a1)
9046  """
9047  return _IMP_atom.Representation_set_value(self, *args)
9048 
9049  def remove_attribute(self, *args):
9050  r"""
9051  remove_attribute(Representation self, FloatKey a0)
9052  remove_attribute(Representation self, IntKey a0)
9053  remove_attribute(Representation self, FloatsKey a0)
9054  remove_attribute(Representation self, IntsKey a0)
9055  remove_attribute(Representation self, StringKey a0)
9056  remove_attribute(Representation self, ParticleIndexKey a0)
9057  remove_attribute(Representation self, ObjectKey a0)
9058  remove_attribute(Representation self, SparseFloatKey a0)
9059  remove_attribute(Representation self, SparseIntKey a0)
9060  remove_attribute(Representation self, SparseStringKey a0)
9061  remove_attribute(Representation self, SparseParticleIndexKey a0)
9062  """
9063  return _IMP_atom.Representation_remove_attribute(self, *args)
9064 
9065  def has_attribute(self, *args):
9066  r"""
9067  has_attribute(Representation self, FloatKey a0) -> bool
9068  has_attribute(Representation self, IntKey a0) -> bool
9069  has_attribute(Representation self, FloatsKey a0) -> bool
9070  has_attribute(Representation self, IntsKey a0) -> bool
9071  has_attribute(Representation self, StringKey a0) -> bool
9072  has_attribute(Representation self, ParticleIndexKey a0) -> bool
9073  has_attribute(Representation self, ObjectKey a0) -> bool
9074  has_attribute(Representation self, SparseFloatKey a0) -> bool
9075  has_attribute(Representation self, SparseIntKey a0) -> bool
9076  has_attribute(Representation self, SparseStringKey a0) -> bool
9077  has_attribute(Representation self, SparseParticleIndexKey a0) -> bool
9078  """
9079  return _IMP_atom.Representation_has_attribute(self, *args)
9080 
9081  def get_derivative(self, a0):
9082  r"""get_derivative(Representation self, FloatKey a0) -> double"""
9083  return _IMP_atom.Representation_get_derivative(self, a0)
9084 
9085  def get_name(self):
9086  r"""get_name(Representation self) -> std::string"""
9087  return _IMP_atom.Representation_get_name(self)
9088 
9089  def clear_caches(self):
9090  r"""clear_caches(Representation self)"""
9091  return _IMP_atom.Representation_clear_caches(self)
9092 
9093  def set_name(self, a0):
9094  r"""set_name(Representation self, std::string a0)"""
9095  return _IMP_atom.Representation_set_name(self, a0)
9096 
9097  def set_check_level(self, a0):
9098  r"""set_check_level(Representation self, IMP::CheckLevel a0)"""
9099  return _IMP_atom.Representation_set_check_level(self, a0)
9100 
9101  def add_to_derivative(self, a0, a1, a2):
9102  r"""add_to_derivative(Representation self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9103  return _IMP_atom.Representation_add_to_derivative(self, a0, a1, a2)
9104 
9105  def set_is_optimized(self, a0, a1):
9106  r"""set_is_optimized(Representation self, FloatKey a0, bool a1)"""
9107  return _IMP_atom.Representation_set_is_optimized(self, a0, a1)
9108 
9109  def get_is_optimized(self, a0):
9110  r"""get_is_optimized(Representation self, FloatKey a0) -> bool"""
9111  return _IMP_atom.Representation_get_is_optimized(self, a0)
9112 
9113  def get_check_level(self):
9114  r"""get_check_level(Representation self) -> IMP::CheckLevel"""
9115  return _IMP_atom.Representation_get_check_level(self)
9116 
9117  def __eq__(self, *args):
9118  r"""
9119  __eq__(Representation self, Representation o) -> bool
9120  __eq__(Representation self, Particle d) -> bool
9121  """
9122  return _IMP_atom.Representation___eq__(self, *args)
9123 
9124  def __ne__(self, *args):
9125  r"""
9126  __ne__(Representation self, Representation o) -> bool
9127  __ne__(Representation self, Particle d) -> bool
9128  """
9129  return _IMP_atom.Representation___ne__(self, *args)
9130 
9131  def __le__(self, *args):
9132  r"""
9133  __le__(Representation self, Representation o) -> bool
9134  __le__(Representation self, Particle d) -> bool
9135  """
9136  return _IMP_atom.Representation___le__(self, *args)
9137 
9138  def __lt__(self, *args):
9139  r"""
9140  __lt__(Representation self, Representation o) -> bool
9141  __lt__(Representation self, Particle d) -> bool
9142  """
9143  return _IMP_atom.Representation___lt__(self, *args)
9144 
9145  def __ge__(self, *args):
9146  r"""
9147  __ge__(Representation self, Representation o) -> bool
9148  __ge__(Representation self, Particle d) -> bool
9149  """
9150  return _IMP_atom.Representation___ge__(self, *args)
9151 
9152  def __gt__(self, *args):
9153  r"""
9154  __gt__(Representation self, Representation o) -> bool
9155  __gt__(Representation self, Particle d) -> bool
9156  """
9157  return _IMP_atom.Representation___gt__(self, *args)
9158 
9159  def __hash__(self):
9160  r"""__hash__(Representation self) -> std::size_t"""
9161  return _IMP_atom.Representation___hash__(self)
9162 
9163  def __str__(self):
9164  r"""__str__(Representation self) -> std::string"""
9165  return _IMP_atom.Representation___str__(self)
9166 
9167  def __repr__(self):
9168  r"""__repr__(Representation self) -> std::string"""
9169  return _IMP_atom.Representation___repr__(self)
9170 
9171  def _get_as_binary(self):
9172  r"""_get_as_binary(Representation self) -> PyObject *"""
9173  return _IMP_atom.Representation__get_as_binary(self)
9174 
9175  def _set_from_binary(self, p):
9176  r"""_set_from_binary(Representation self, PyObject * p)"""
9177  return _IMP_atom.Representation__set_from_binary(self, p)
9178 
9179  def __getstate__(self):
9180  p = self._get_as_binary()
9181  if len(self.__dict__) > 1:
9182  d = self.__dict__.copy()
9183  del d['this']
9184  p = (d, p)
9185  return p
9186 
9187  def __setstate__(self, p):
9188  if not hasattr(self, 'this'):
9189  self.__init__()
9190  if isinstance(p, tuple):
9191  d, p = p
9192  self.__dict__.update(d)
9193  return self._set_from_binary(p)
9194 
9195  __swig_destroy__ = _IMP_atom.delete_Representation
9196 
9197 # Register Representation in _IMP_atom:
9198 _IMP_atom.Representation_swigregister(Representation)
9199 ALL_RESOLUTIONS = cvar.ALL_RESOLUTIONS
9200 
9201 
9202 def get_resolution(*args):
9203  r"""
9204  get_resolution(Model m, ParticleIndex pi) -> double
9205  get_resolution(Hierarchy h) -> double
9206  """
9207  return _IMP_atom.get_resolution(*args)
9208 
9209 def get_representation(h, nothrow=False):
9210  r"""get_representation(Hierarchy h, bool nothrow=False) -> Representation"""
9211  return _IMP_atom.get_representation(h, nothrow)
9212 
9213 def show_with_representations(*args):
9214  r"""show_with_representations(Hierarchy h, _ostream out=std::cout)"""
9215  return _IMP_atom.show_with_representations(*args)
9216 class State(Hierarchy):
9217  r"""Proxy of C++ IMP::atom::State class."""
9218 
9219  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9220 
9221  @staticmethod
9222  def setup_particle(*args):
9223  r"""
9224  setup_particle(Model m, ParticleIndex pi, unsigned int index) -> State
9225  setup_particle(_ParticleAdaptor pa, unsigned int index) -> State
9226  setup_particle(Model m, ParticleIndex pi, State other) -> State
9227  setup_particle(_ParticleAdaptor pa, State other) -> State
9228  """
9229  return _IMP_atom.State_setup_particle(*args)
9230 
9231  def __init__(self, *args):
9232  r"""
9233  __init__(State self) -> State
9234  __init__(State self, Model m, ParticleIndex id) -> State
9235  __init__(State self, _ParticleAdaptor d) -> State
9236  """
9237  _IMP_atom.State_swiginit(self, _IMP_atom.new_State(*args))
9238 
9239  def show(self, *args):
9240  r"""show(State self, _ostream out=std::cout)"""
9241  return _IMP_atom.State_show(self, *args)
9242 
9243  @staticmethod
9244  def get_is_setup(*args):
9245  r"""
9246  get_is_setup(_ParticleAdaptor p) -> bool
9247  get_is_setup(Model m, ParticleIndex pi) -> bool
9248  """
9249  return _IMP_atom.State_get_is_setup(*args)
9250 
9251  def get_state_index(self):
9252  r"""get_state_index(State self) -> unsigned int"""
9253  return _IMP_atom.State_get_state_index(self)
9254 
9255  def add_attribute(self, *args):
9256  r"""
9257  add_attribute(State self, FloatKey k, IMP::Float v, bool opt)
9258  add_attribute(State self, FloatKey a0, IMP::Float a1)
9259  add_attribute(State self, IntKey a0, IMP::Int a1)
9260  add_attribute(State self, FloatsKey a0, IMP::Floats a1)
9261  add_attribute(State self, IntsKey a0, IMP::Ints a1)
9262  add_attribute(State self, StringKey a0, IMP::String a1)
9263  add_attribute(State self, ParticleIndexKey a0, Particle a1)
9264  add_attribute(State self, ObjectKey a0, Object a1)
9265  add_attribute(State self, SparseFloatKey a0, IMP::Float a1)
9266  add_attribute(State self, SparseIntKey a0, IMP::Int a1)
9267  add_attribute(State self, SparseStringKey a0, IMP::String a1)
9268  add_attribute(State self, SparseParticleIndexKey a0, ParticleIndex a1)
9269  """
9270  return _IMP_atom.State_add_attribute(self, *args)
9271 
9272  def get_value(self, *args):
9273  r"""
9274  get_value(State self, FloatKey a0) -> IMP::Float
9275  get_value(State self, IntKey a0) -> IMP::Int
9276  get_value(State self, FloatsKey a0) -> IMP::Floats
9277  get_value(State self, IntsKey a0) -> IMP::Ints
9278  get_value(State self, StringKey a0) -> IMP::String
9279  get_value(State self, ParticleIndexKey a0) -> Particle
9280  get_value(State self, ObjectKey a0) -> Object
9281  get_value(State self, SparseFloatKey a0) -> IMP::Float
9282  get_value(State self, SparseIntKey a0) -> IMP::Int
9283  get_value(State self, SparseStringKey a0) -> IMP::String
9284  get_value(State self, SparseParticleIndexKey a0) -> ParticleIndex
9285  """
9286  return _IMP_atom.State_get_value(self, *args)
9287 
9288  def set_value(self, *args):
9289  r"""
9290  set_value(State self, FloatKey a0, IMP::Float a1)
9291  set_value(State self, IntKey a0, IMP::Int a1)
9292  set_value(State self, FloatsKey a0, IMP::Floats a1)
9293  set_value(State self, IntsKey a0, IMP::Ints a1)
9294  set_value(State self, StringKey a0, IMP::String a1)
9295  set_value(State self, ParticleIndexKey a0, Particle a1)
9296  set_value(State self, ObjectKey a0, Object a1)
9297  set_value(State self, SparseFloatKey a0, IMP::Float a1)
9298  set_value(State self, SparseIntKey a0, IMP::Int a1)
9299  set_value(State self, SparseStringKey a0, IMP::String a1)
9300  set_value(State self, SparseParticleIndexKey a0, ParticleIndex a1)
9301  """
9302  return _IMP_atom.State_set_value(self, *args)
9303 
9304  def remove_attribute(self, *args):
9305  r"""
9306  remove_attribute(State self, FloatKey a0)
9307  remove_attribute(State self, IntKey a0)
9308  remove_attribute(State self, FloatsKey a0)
9309  remove_attribute(State self, IntsKey a0)
9310  remove_attribute(State self, StringKey a0)
9311  remove_attribute(State self, ParticleIndexKey a0)
9312  remove_attribute(State self, ObjectKey a0)
9313  remove_attribute(State self, SparseFloatKey a0)
9314  remove_attribute(State self, SparseIntKey a0)
9315  remove_attribute(State self, SparseStringKey a0)
9316  remove_attribute(State self, SparseParticleIndexKey a0)
9317  """
9318  return _IMP_atom.State_remove_attribute(self, *args)
9319 
9320  def has_attribute(self, *args):
9321  r"""
9322  has_attribute(State self, FloatKey a0) -> bool
9323  has_attribute(State self, IntKey a0) -> bool
9324  has_attribute(State self, FloatsKey a0) -> bool
9325  has_attribute(State self, IntsKey a0) -> bool
9326  has_attribute(State self, StringKey a0) -> bool
9327  has_attribute(State self, ParticleIndexKey a0) -> bool
9328  has_attribute(State self, ObjectKey a0) -> bool
9329  has_attribute(State self, SparseFloatKey a0) -> bool
9330  has_attribute(State self, SparseIntKey a0) -> bool
9331  has_attribute(State self, SparseStringKey a0) -> bool
9332  has_attribute(State self, SparseParticleIndexKey a0) -> bool
9333  """
9334  return _IMP_atom.State_has_attribute(self, *args)
9335 
9336  def get_derivative(self, a0):
9337  r"""get_derivative(State self, FloatKey a0) -> double"""
9338  return _IMP_atom.State_get_derivative(self, a0)
9339 
9340  def get_name(self):
9341  r"""get_name(State self) -> std::string"""
9342  return _IMP_atom.State_get_name(self)
9343 
9344  def clear_caches(self):
9345  r"""clear_caches(State self)"""
9346  return _IMP_atom.State_clear_caches(self)
9347 
9348  def set_name(self, a0):
9349  r"""set_name(State self, std::string a0)"""
9350  return _IMP_atom.State_set_name(self, a0)
9351 
9352  def set_check_level(self, a0):
9353  r"""set_check_level(State self, IMP::CheckLevel a0)"""
9354  return _IMP_atom.State_set_check_level(self, a0)
9355 
9356  def add_to_derivative(self, a0, a1, a2):
9357  r"""add_to_derivative(State self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9358  return _IMP_atom.State_add_to_derivative(self, a0, a1, a2)
9359 
9360  def set_is_optimized(self, a0, a1):
9361  r"""set_is_optimized(State self, FloatKey a0, bool a1)"""
9362  return _IMP_atom.State_set_is_optimized(self, a0, a1)
9363 
9364  def get_is_optimized(self, a0):
9365  r"""get_is_optimized(State self, FloatKey a0) -> bool"""
9366  return _IMP_atom.State_get_is_optimized(self, a0)
9367 
9368  def get_check_level(self):
9369  r"""get_check_level(State self) -> IMP::CheckLevel"""
9370  return _IMP_atom.State_get_check_level(self)
9371 
9372  def __eq__(self, *args):
9373  r"""
9374  __eq__(State self, State o) -> bool
9375  __eq__(State self, Particle d) -> bool
9376  """
9377  return _IMP_atom.State___eq__(self, *args)
9378 
9379  def __ne__(self, *args):
9380  r"""
9381  __ne__(State self, State o) -> bool
9382  __ne__(State self, Particle d) -> bool
9383  """
9384  return _IMP_atom.State___ne__(self, *args)
9385 
9386  def __le__(self, *args):
9387  r"""
9388  __le__(State self, State o) -> bool
9389  __le__(State self, Particle d) -> bool
9390  """
9391  return _IMP_atom.State___le__(self, *args)
9392 
9393  def __lt__(self, *args):
9394  r"""
9395  __lt__(State self, State o) -> bool
9396  __lt__(State self, Particle d) -> bool
9397  """
9398  return _IMP_atom.State___lt__(self, *args)
9399 
9400  def __ge__(self, *args):
9401  r"""
9402  __ge__(State self, State o) -> bool
9403  __ge__(State self, Particle d) -> bool
9404  """
9405  return _IMP_atom.State___ge__(self, *args)
9406 
9407  def __gt__(self, *args):
9408  r"""
9409  __gt__(State self, State o) -> bool
9410  __gt__(State self, Particle d) -> bool
9411  """
9412  return _IMP_atom.State___gt__(self, *args)
9413 
9414  def __hash__(self):
9415  r"""__hash__(State self) -> std::size_t"""
9416  return _IMP_atom.State___hash__(self)
9417 
9418  def __str__(self):
9419  r"""__str__(State self) -> std::string"""
9420  return _IMP_atom.State___str__(self)
9421 
9422  def __repr__(self):
9423  r"""__repr__(State self) -> std::string"""
9424  return _IMP_atom.State___repr__(self)
9425 
9426  def _get_as_binary(self):
9427  r"""_get_as_binary(State self) -> PyObject *"""
9428  return _IMP_atom.State__get_as_binary(self)
9429 
9430  def _set_from_binary(self, p):
9431  r"""_set_from_binary(State self, PyObject * p)"""
9432  return _IMP_atom.State__set_from_binary(self, p)
9433 
9434  def __getstate__(self):
9435  p = self._get_as_binary()
9436  if len(self.__dict__) > 1:
9437  d = self.__dict__.copy()
9438  del d['this']
9439  p = (d, p)
9440  return p
9441 
9442  def __setstate__(self, p):
9443  if not hasattr(self, 'this'):
9444  self.__init__()
9445  if isinstance(p, tuple):
9446  d, p = p
9447  self.__dict__.update(d)
9448  return self._set_from_binary(p)
9449 
9450  __swig_destroy__ = _IMP_atom.delete_State
9451 
9452 # Register State in _IMP_atom:
9453 _IMP_atom.State_swigregister(State)
9454 
9455 def get_state_index(h):
9456  r"""get_state_index(Hierarchy h) -> int"""
9457  return _IMP_atom.get_state_index(h)
9458 
9459 def get_phi_dihedral_atoms(rd):
9460  r"""get_phi_dihedral_atoms(Residue rd) -> IMP::atom::Atoms"""
9461  return _IMP_atom.get_phi_dihedral_atoms(rd)
9462 
9463 def get_psi_dihedral_atoms(rd):
9464  r"""get_psi_dihedral_atoms(Residue rd) -> IMP::atom::Atoms"""
9465  return _IMP_atom.get_psi_dihedral_atoms(rd)
9466 
9467 def get_omega_dihedral_atoms(rd):
9468  r"""get_omega_dihedral_atoms(Residue rd) -> IMP::atom::Atoms"""
9469  return _IMP_atom.get_omega_dihedral_atoms(rd)
9470 
9472  r"""get_chi_dihedral_atom_types(ResidueType rt) -> IMP::Vector< IMP::atom::AtomTypes >"""
9473  return _IMP_atom.get_chi_dihedral_atom_types(rt)
9474 
9475 def get_chi_dihedral_atoms(rd):
9476  r"""get_chi_dihedral_atoms(Residue rd) -> IMP::Vector< IMP::atom::Atoms >"""
9477  return _IMP_atom.get_chi_dihedral_atoms(rd)
9478 
9480  r"""get_chi_dihedral_particle_indexes(Residue rd) -> IMP::ParticleIndexQuads"""
9481  return _IMP_atom.get_chi_dihedral_particle_indexes(rd)
9482 class Molecule(Hierarchy):
9483  r"""Proxy of C++ IMP::atom::Molecule class."""
9484 
9485  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9486 
9487  def __init__(self, *args):
9488  r"""
9489  __init__(Molecule self) -> Molecule
9490  __init__(Molecule self, Model m, ParticleIndex id) -> Molecule
9491  __init__(Molecule self, _ParticleAdaptor d) -> Molecule
9492  """
9493  _IMP_atom.Molecule_swiginit(self, _IMP_atom.new_Molecule(*args))
9494 
9495  def show(self, *args):
9496  r"""show(Molecule self, _ostream out=std::cout)"""
9497  return _IMP_atom.Molecule_show(self, *args)
9498 
9499  @staticmethod
9500  def setup_particle(*args):
9501  r"""
9502  setup_particle(Model m, ParticleIndex pi) -> Molecule
9503  setup_particle(_ParticleAdaptor pa) -> Molecule
9504  setup_particle(Model m, ParticleIndex pi, Molecule other) -> Molecule
9505  setup_particle(_ParticleAdaptor pa, Molecule other) -> Molecule
9506  """
9507  return _IMP_atom.Molecule_setup_particle(*args)
9508 
9509  @staticmethod
9510  def get_is_setup(*args):
9511  r"""
9512  get_is_setup(_ParticleAdaptor p) -> bool
9513  get_is_setup(Model m, ParticleIndex pi) -> bool
9514  """
9515  return _IMP_atom.Molecule_get_is_setup(*args)
9516 
9517  def add_attribute(self, *args):
9518  r"""
9519  add_attribute(Molecule self, FloatKey k, IMP::Float v, bool opt)
9520  add_attribute(Molecule self, FloatKey a0, IMP::Float a1)
9521  add_attribute(Molecule self, IntKey a0, IMP::Int a1)
9522  add_attribute(Molecule self, FloatsKey a0, IMP::Floats a1)
9523  add_attribute(Molecule self, IntsKey a0, IMP::Ints a1)
9524  add_attribute(Molecule self, StringKey a0, IMP::String a1)
9525  add_attribute(Molecule self, ParticleIndexKey a0, Particle a1)
9526  add_attribute(Molecule self, ObjectKey a0, Object a1)
9527  add_attribute(Molecule self, SparseFloatKey a0, IMP::Float a1)
9528  add_attribute(Molecule self, SparseIntKey a0, IMP::Int a1)
9529  add_attribute(Molecule self, SparseStringKey a0, IMP::String a1)
9530  add_attribute(Molecule self, SparseParticleIndexKey a0, ParticleIndex a1)
9531  """
9532  return _IMP_atom.Molecule_add_attribute(self, *args)
9533 
9534  def get_value(self, *args):
9535  r"""
9536  get_value(Molecule self, FloatKey a0) -> IMP::Float
9537  get_value(Molecule self, IntKey a0) -> IMP::Int
9538  get_value(Molecule self, FloatsKey a0) -> IMP::Floats
9539  get_value(Molecule self, IntsKey a0) -> IMP::Ints
9540  get_value(Molecule self, StringKey a0) -> IMP::String
9541  get_value(Molecule self, ParticleIndexKey a0) -> Particle
9542  get_value(Molecule self, ObjectKey a0) -> Object
9543  get_value(Molecule self, SparseFloatKey a0) -> IMP::Float
9544  get_value(Molecule self, SparseIntKey a0) -> IMP::Int
9545  get_value(Molecule self, SparseStringKey a0) -> IMP::String
9546  get_value(Molecule self, SparseParticleIndexKey a0) -> ParticleIndex
9547  """
9548  return _IMP_atom.Molecule_get_value(self, *args)
9549 
9550  def set_value(self, *args):
9551  r"""
9552  set_value(Molecule self, FloatKey a0, IMP::Float a1)
9553  set_value(Molecule self, IntKey a0, IMP::Int a1)
9554  set_value(Molecule self, FloatsKey a0, IMP::Floats a1)
9555  set_value(Molecule self, IntsKey a0, IMP::Ints a1)
9556  set_value(Molecule self, StringKey a0, IMP::String a1)
9557  set_value(Molecule self, ParticleIndexKey a0, Particle a1)
9558  set_value(Molecule self, ObjectKey a0, Object a1)
9559  set_value(Molecule self, SparseFloatKey a0, IMP::Float a1)
9560  set_value(Molecule self, SparseIntKey a0, IMP::Int a1)
9561  set_value(Molecule self, SparseStringKey a0, IMP::String a1)
9562  set_value(Molecule self, SparseParticleIndexKey a0, ParticleIndex a1)
9563  """
9564  return _IMP_atom.Molecule_set_value(self, *args)
9565 
9566  def remove_attribute(self, *args):
9567  r"""
9568  remove_attribute(Molecule self, FloatKey a0)
9569  remove_attribute(Molecule self, IntKey a0)
9570  remove_attribute(Molecule self, FloatsKey a0)
9571  remove_attribute(Molecule self, IntsKey a0)
9572  remove_attribute(Molecule self, StringKey a0)
9573  remove_attribute(Molecule self, ParticleIndexKey a0)
9574  remove_attribute(Molecule self, ObjectKey a0)
9575  remove_attribute(Molecule self, SparseFloatKey a0)
9576  remove_attribute(Molecule self, SparseIntKey a0)
9577  remove_attribute(Molecule self, SparseStringKey a0)
9578  remove_attribute(Molecule self, SparseParticleIndexKey a0)
9579  """
9580  return _IMP_atom.Molecule_remove_attribute(self, *args)
9581 
9582  def has_attribute(self, *args):
9583  r"""
9584  has_attribute(Molecule self, FloatKey a0) -> bool
9585  has_attribute(Molecule self, IntKey a0) -> bool
9586  has_attribute(Molecule self, FloatsKey a0) -> bool
9587  has_attribute(Molecule self, IntsKey a0) -> bool
9588  has_attribute(Molecule self, StringKey a0) -> bool
9589  has_attribute(Molecule self, ParticleIndexKey a0) -> bool
9590  has_attribute(Molecule self, ObjectKey a0) -> bool
9591  has_attribute(Molecule self, SparseFloatKey a0) -> bool
9592  has_attribute(Molecule self, SparseIntKey a0) -> bool
9593  has_attribute(Molecule self, SparseStringKey a0) -> bool
9594  has_attribute(Molecule self, SparseParticleIndexKey a0) -> bool
9595  """
9596  return _IMP_atom.Molecule_has_attribute(self, *args)
9597 
9598  def get_derivative(self, a0):
9599  r"""get_derivative(Molecule self, FloatKey a0) -> double"""
9600  return _IMP_atom.Molecule_get_derivative(self, a0)
9601 
9602  def get_name(self):
9603  r"""get_name(Molecule self) -> std::string"""
9604  return _IMP_atom.Molecule_get_name(self)
9605 
9606  def clear_caches(self):
9607  r"""clear_caches(Molecule self)"""
9608  return _IMP_atom.Molecule_clear_caches(self)
9609 
9610  def set_name(self, a0):
9611  r"""set_name(Molecule self, std::string a0)"""
9612  return _IMP_atom.Molecule_set_name(self, a0)
9613 
9614  def set_check_level(self, a0):
9615  r"""set_check_level(Molecule self, IMP::CheckLevel a0)"""
9616  return _IMP_atom.Molecule_set_check_level(self, a0)
9617 
9618  def add_to_derivative(self, a0, a1, a2):
9619  r"""add_to_derivative(Molecule self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9620  return _IMP_atom.Molecule_add_to_derivative(self, a0, a1, a2)
9621 
9622  def set_is_optimized(self, a0, a1):
9623  r"""set_is_optimized(Molecule self, FloatKey a0, bool a1)"""
9624  return _IMP_atom.Molecule_set_is_optimized(self, a0, a1)
9625 
9626  def get_is_optimized(self, a0):
9627  r"""get_is_optimized(Molecule self, FloatKey a0) -> bool"""
9628  return _IMP_atom.Molecule_get_is_optimized(self, a0)
9629 
9630  def get_check_level(self):
9631  r"""get_check_level(Molecule self) -> IMP::CheckLevel"""
9632  return _IMP_atom.Molecule_get_check_level(self)
9633 
9634  def __eq__(self, *args):
9635  r"""
9636  __eq__(Molecule self, Molecule o) -> bool
9637  __eq__(Molecule self, Particle d) -> bool
9638  """
9639  return _IMP_atom.Molecule___eq__(self, *args)
9640 
9641  def __ne__(self, *args):
9642  r"""
9643  __ne__(Molecule self, Molecule o) -> bool
9644  __ne__(Molecule self, Particle d) -> bool
9645  """
9646  return _IMP_atom.Molecule___ne__(self, *args)
9647 
9648  def __le__(self, *args):
9649  r"""
9650  __le__(Molecule self, Molecule o) -> bool
9651  __le__(Molecule self, Particle d) -> bool
9652  """
9653  return _IMP_atom.Molecule___le__(self, *args)
9654 
9655  def __lt__(self, *args):
9656  r"""
9657  __lt__(Molecule self, Molecule o) -> bool
9658  __lt__(Molecule self, Particle d) -> bool
9659  """
9660  return _IMP_atom.Molecule___lt__(self, *args)
9661 
9662  def __ge__(self, *args):
9663  r"""
9664  __ge__(Molecule self, Molecule o) -> bool
9665  __ge__(Molecule self, Particle d) -> bool
9666  """
9667  return _IMP_atom.Molecule___ge__(self, *args)
9668 
9669  def __gt__(self, *args):
9670  r"""
9671  __gt__(Molecule self, Molecule o) -> bool
9672  __gt__(Molecule self, Particle d) -> bool
9673  """
9674  return _IMP_atom.Molecule___gt__(self, *args)
9675 
9676  def __hash__(self):
9677  r"""__hash__(Molecule self) -> std::size_t"""
9678  return _IMP_atom.Molecule___hash__(self)
9679 
9680  def __str__(self):
9681  r"""__str__(Molecule self) -> std::string"""
9682  return _IMP_atom.Molecule___str__(self)
9683 
9684  def __repr__(self):
9685  r"""__repr__(Molecule self) -> std::string"""
9686  return _IMP_atom.Molecule___repr__(self)
9687 
9688  def _get_as_binary(self):
9689  r"""_get_as_binary(Molecule self) -> PyObject *"""
9690  return _IMP_atom.Molecule__get_as_binary(self)
9691 
9692  def _set_from_binary(self, p):
9693  r"""_set_from_binary(Molecule self, PyObject * p)"""
9694  return _IMP_atom.Molecule__set_from_binary(self, p)
9695 
9696  def __getstate__(self):
9697  p = self._get_as_binary()
9698  if len(self.__dict__) > 1:
9699  d = self.__dict__.copy()
9700  del d['this']
9701  p = (d, p)
9702  return p
9703 
9704  def __setstate__(self, p):
9705  if not hasattr(self, 'this'):
9706  self.__init__()
9707  if isinstance(p, tuple):
9708  d, p = p
9709  self.__dict__.update(d)
9710  return self._set_from_binary(p)
9711 
9712  __swig_destroy__ = _IMP_atom.delete_Molecule
9713 
9714 # Register Molecule in _IMP_atom:
9715 _IMP_atom.Molecule_swigregister(Molecule)
9716 
9717 def get_molecule_name(h):
9718  r"""get_molecule_name(Hierarchy h) -> std::string"""
9719  return _IMP_atom.get_molecule_name(h)
9720 class Copy(Molecule):
9721  r"""Proxy of C++ IMP::atom::Copy class."""
9722 
9723  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9724 
9725  @staticmethod
9726  def get_copy_index_key():
9727  r"""get_copy_index_key() -> IntKey"""
9728  return _IMP_atom.Copy_get_copy_index_key()
9729 
9730  def __init__(self, *args):
9731  r"""
9732  __init__(Copy self) -> Copy
9733  __init__(Copy self, Model m, ParticleIndex id) -> Copy
9734  __init__(Copy self, _ParticleAdaptor d) -> Copy
9735  """
9736  _IMP_atom.Copy_swiginit(self, _IMP_atom.new_Copy(*args))
9737 
9738  def show(self, *args):
9739  r"""show(Copy self, _ostream out=std::cout)"""
9740  return _IMP_atom.Copy_show(self, *args)
9741 
9742  @staticmethod
9743  def setup_particle(*args):
9744  r"""
9745  setup_particle(Model m, ParticleIndex pi, IMP::Int number) -> Copy
9746  setup_particle(_ParticleAdaptor pa, IMP::Int number) -> Copy
9747  """
9748  return _IMP_atom.Copy_setup_particle(*args)
9749 
9750  @staticmethod
9751  def get_is_setup(*args):
9752  r"""
9753  get_is_setup(_ParticleAdaptor p) -> bool
9754  get_is_setup(Model m, ParticleIndex pi) -> bool
9755  """
9756  return _IMP_atom.Copy_get_is_setup(*args)
9757 
9758  def get_copy_index(self):
9759  r"""get_copy_index(Copy self) -> int"""
9760  return _IMP_atom.Copy_get_copy_index(self)
9761 
9762  def add_attribute(self, *args):
9763  r"""
9764  add_attribute(Copy self, FloatKey k, IMP::Float v, bool opt)
9765  add_attribute(Copy self, FloatKey a0, IMP::Float a1)
9766  add_attribute(Copy self, IntKey a0, IMP::Int a1)
9767  add_attribute(Copy self, FloatsKey a0, IMP::Floats a1)
9768  add_attribute(Copy self, IntsKey a0, IMP::Ints a1)
9769  add_attribute(Copy self, StringKey a0, IMP::String a1)
9770  add_attribute(Copy self, ParticleIndexKey a0, Particle a1)
9771  add_attribute(Copy self, ObjectKey a0, Object a1)
9772  add_attribute(Copy self, SparseFloatKey a0, IMP::Float a1)
9773  add_attribute(Copy self, SparseIntKey a0, IMP::Int a1)
9774  add_attribute(Copy self, SparseStringKey a0, IMP::String a1)
9775  add_attribute(Copy self, SparseParticleIndexKey a0, ParticleIndex a1)
9776  """
9777  return _IMP_atom.Copy_add_attribute(self, *args)
9778 
9779  def get_value(self, *args):
9780  r"""
9781  get_value(Copy self, FloatKey a0) -> IMP::Float
9782  get_value(Copy self, IntKey a0) -> IMP::Int
9783  get_value(Copy self, FloatsKey a0) -> IMP::Floats
9784  get_value(Copy self, IntsKey a0) -> IMP::Ints
9785  get_value(Copy self, StringKey a0) -> IMP::String
9786  get_value(Copy self, ParticleIndexKey a0) -> Particle
9787  get_value(Copy self, ObjectKey a0) -> Object
9788  get_value(Copy self, SparseFloatKey a0) -> IMP::Float
9789  get_value(Copy self, SparseIntKey a0) -> IMP::Int
9790  get_value(Copy self, SparseStringKey a0) -> IMP::String
9791  get_value(Copy self, SparseParticleIndexKey a0) -> ParticleIndex
9792  """
9793  return _IMP_atom.Copy_get_value(self, *args)
9794 
9795  def set_value(self, *args):
9796  r"""
9797  set_value(Copy self, FloatKey a0, IMP::Float a1)
9798  set_value(Copy self, IntKey a0, IMP::Int a1)
9799  set_value(Copy self, FloatsKey a0, IMP::Floats a1)
9800  set_value(Copy self, IntsKey a0, IMP::Ints a1)
9801  set_value(Copy self, StringKey a0, IMP::String a1)
9802  set_value(Copy self, ParticleIndexKey a0, Particle a1)
9803  set_value(Copy self, ObjectKey a0, Object a1)
9804  set_value(Copy self, SparseFloatKey a0, IMP::Float a1)
9805  set_value(Copy self, SparseIntKey a0, IMP::Int a1)
9806  set_value(Copy self, SparseStringKey a0, IMP::String a1)
9807  set_value(Copy self, SparseParticleIndexKey a0, ParticleIndex a1)
9808  """
9809  return _IMP_atom.Copy_set_value(self, *args)
9810 
9811  def remove_attribute(self, *args):
9812  r"""
9813  remove_attribute(Copy self, FloatKey a0)
9814  remove_attribute(Copy self, IntKey a0)
9815  remove_attribute(Copy self, FloatsKey a0)
9816  remove_attribute(Copy self, IntsKey a0)
9817  remove_attribute(Copy self, StringKey a0)
9818  remove_attribute(Copy self, ParticleIndexKey a0)
9819  remove_attribute(Copy self, ObjectKey a0)
9820  remove_attribute(Copy self, SparseFloatKey a0)
9821  remove_attribute(Copy self, SparseIntKey a0)
9822  remove_attribute(Copy self, SparseStringKey a0)
9823  remove_attribute(Copy self, SparseParticleIndexKey a0)
9824  """
9825  return _IMP_atom.Copy_remove_attribute(self, *args)
9826 
9827  def has_attribute(self, *args):
9828  r"""
9829  has_attribute(Copy self, FloatKey a0) -> bool
9830  has_attribute(Copy self, IntKey a0) -> bool
9831  has_attribute(Copy self, FloatsKey a0) -> bool
9832  has_attribute(Copy self, IntsKey a0) -> bool
9833  has_attribute(Copy self, StringKey a0) -> bool
9834  has_attribute(Copy self, ParticleIndexKey a0) -> bool
9835  has_attribute(Copy self, ObjectKey a0) -> bool
9836  has_attribute(Copy self, SparseFloatKey a0) -> bool
9837  has_attribute(Copy self, SparseIntKey a0) -> bool
9838  has_attribute(Copy self, SparseStringKey a0) -> bool
9839  has_attribute(Copy self, SparseParticleIndexKey a0) -> bool
9840  """
9841  return _IMP_atom.Copy_has_attribute(self, *args)
9842 
9843  def get_derivative(self, a0):
9844  r"""get_derivative(Copy self, FloatKey a0) -> double"""
9845  return _IMP_atom.Copy_get_derivative(self, a0)
9846 
9847  def get_name(self):
9848  r"""get_name(Copy self) -> std::string"""
9849  return _IMP_atom.Copy_get_name(self)
9850 
9851  def clear_caches(self):
9852  r"""clear_caches(Copy self)"""
9853  return _IMP_atom.Copy_clear_caches(self)
9854 
9855  def set_name(self, a0):
9856  r"""set_name(Copy self, std::string a0)"""
9857  return _IMP_atom.Copy_set_name(self, a0)
9858 
9859  def set_check_level(self, a0):
9860  r"""set_check_level(Copy self, IMP::CheckLevel a0)"""
9861  return _IMP_atom.Copy_set_check_level(self, a0)
9862 
9863  def add_to_derivative(self, a0, a1, a2):
9864  r"""add_to_derivative(Copy self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9865  return _IMP_atom.Copy_add_to_derivative(self, a0, a1, a2)
9866 
9867  def set_is_optimized(self, a0, a1):
9868  r"""set_is_optimized(Copy self, FloatKey a0, bool a1)"""
9869  return _IMP_atom.Copy_set_is_optimized(self, a0, a1)
9870 
9871  def get_is_optimized(self, a0):
9872  r"""get_is_optimized(Copy self, FloatKey a0) -> bool"""
9873  return _IMP_atom.Copy_get_is_optimized(self, a0)
9874 
9875  def get_check_level(self):
9876  r"""get_check_level(Copy self) -> IMP::CheckLevel"""
9877  return _IMP_atom.Copy_get_check_level(self)
9878 
9879  def __eq__(self, *args):
9880  r"""
9881  __eq__(Copy self, Copy o) -> bool
9882  __eq__(Copy self, Particle d) -> bool
9883  """
9884  return _IMP_atom.Copy___eq__(self, *args)
9885 
9886  def __ne__(self, *args):
9887  r"""
9888  __ne__(Copy self, Copy o) -> bool
9889  __ne__(Copy self, Particle d) -> bool
9890  """
9891  return _IMP_atom.Copy___ne__(self, *args)
9892 
9893  def __le__(self, *args):
9894  r"""
9895  __le__(Copy self, Copy o) -> bool
9896  __le__(Copy self, Particle d) -> bool
9897  """
9898  return _IMP_atom.Copy___le__(self, *args)
9899 
9900  def __lt__(self, *args):
9901  r"""
9902  __lt__(Copy self, Copy o) -> bool
9903  __lt__(Copy self, Particle d) -> bool
9904  """
9905  return _IMP_atom.Copy___lt__(self, *args)
9906 
9907  def __ge__(self, *args):
9908  r"""
9909  __ge__(Copy self, Copy o) -> bool
9910  __ge__(Copy self, Particle d) -> bool
9911  """
9912  return _IMP_atom.Copy___ge__(self, *args)
9913 
9914  def __gt__(self, *args):
9915  r"""
9916  __gt__(Copy self, Copy o) -> bool
9917  __gt__(Copy self, Particle d) -> bool
9918  """
9919  return _IMP_atom.Copy___gt__(self, *args)
9920 
9921  def __hash__(self):
9922  r"""__hash__(Copy self) -> std::size_t"""
9923  return _IMP_atom.Copy___hash__(self)
9924 
9925  def __str__(self):
9926  r"""__str__(Copy self) -> std::string"""
9927  return _IMP_atom.Copy___str__(self)
9928 
9929  def __repr__(self):
9930  r"""__repr__(Copy self) -> std::string"""
9931  return _IMP_atom.Copy___repr__(self)
9932 
9933  def _get_as_binary(self):
9934  r"""_get_as_binary(Copy self) -> PyObject *"""
9935  return _IMP_atom.Copy__get_as_binary(self)
9936 
9937  def _set_from_binary(self, p):
9938  r"""_set_from_binary(Copy self, PyObject * p)"""
9939  return _IMP_atom.Copy__set_from_binary(self, p)
9940 
9941  def __getstate__(self):
9942  p = self._get_as_binary()
9943  if len(self.__dict__) > 1:
9944  d = self.__dict__.copy()
9945  del d['this']
9946  p = (d, p)
9947  return p
9948 
9949  def __setstate__(self, p):
9950  if not hasattr(self, 'this'):
9951  self.__init__()
9952  if isinstance(p, tuple):
9953  d, p = p
9954  self.__dict__.update(d)
9955  return self._set_from_binary(p)
9956 
9957  __swig_destroy__ = _IMP_atom.delete_Copy
9958 
9959 # Register Copy in _IMP_atom:
9960 _IMP_atom.Copy_swigregister(Copy)
9961 
9962 def get_copy_index(h):
9963  r"""get_copy_index(Hierarchy h) -> int"""
9964  return _IMP_atom.get_copy_index(h)
9965 class Chain(Hierarchy):
9966  r"""Proxy of C++ IMP::atom::Chain class."""
9967 
9968  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9969 
9970  def __init__(self, *args):
9971  r"""
9972  __init__(Chain self) -> Chain
9973  __init__(Chain self, Model m, ParticleIndex id) -> Chain
9974  __init__(Chain self, _ParticleAdaptor d) -> Chain
9975  """
9976  _IMP_atom.Chain_swiginit(self, _IMP_atom.new_Chain(*args))
9977 
9978  def show(self, *args):
9979  r"""show(Chain self, _ostream out=std::cout)"""
9980  return _IMP_atom.Chain_show(self, *args)
9981 
9982  @staticmethod
9983  def setup_particle(*args):
9984  r"""
9985  setup_particle(Model m, ParticleIndex pi, std::string id) -> Chain
9986  setup_particle(_ParticleAdaptor pa, std::string id) -> Chain
9987  setup_particle(Model m, ParticleIndex pi, char id) -> Chain
9988  setup_particle(_ParticleAdaptor pa, char id) -> Chain
9989  setup_particle(Model m, ParticleIndex pi, Chain other) -> Chain
9990  setup_particle(_ParticleAdaptor pa, Chain other) -> Chain
9991  """
9992  return _IMP_atom.Chain_setup_particle(*args)
9993 
9994  @staticmethod
9995  def get_is_setup(*args):
9996  r"""
9997  get_is_setup(_ParticleAdaptor p) -> bool
9998  get_is_setup(Model m, ParticleIndex pi) -> bool
9999  """
10000  return _IMP_atom.Chain_get_is_setup(*args)
10001 
10002  def get_id(self):
10003  r"""get_id(Chain self) -> std::string"""
10004  return _IMP_atom.Chain_get_id(self)
10005 
10006  def set_id(self, c):
10007  r"""set_id(Chain self, std::string c)"""
10008  return _IMP_atom.Chain_set_id(self, c)
10009 
10010  def get_label_asym_id(self):
10011  r"""get_label_asym_id(Chain self) -> std::string"""
10012  return _IMP_atom.Chain_get_label_asym_id(self)
10013 
10014  def set_label_asym_id(self, c):
10015  r"""set_label_asym_id(Chain self, std::string c)"""
10016  return _IMP_atom.Chain_set_label_asym_id(self, c)
10017 
10018  def get_sequence(self):
10019  r"""get_sequence(Chain self) -> std::string"""
10020  return _IMP_atom.Chain_get_sequence(self)
10021 
10022  def set_sequence(self, sequence):
10023  r"""set_sequence(Chain self, std::string sequence)"""
10024  return _IMP_atom.Chain_set_sequence(self, sequence)
10025 
10026  def get_sequence_offset(self):
10027  r"""get_sequence_offset(Chain self) -> int"""
10028  return _IMP_atom.Chain_get_sequence_offset(self)
10029 
10030  def set_sequence_offset(self, offset):
10031  r"""set_sequence_offset(Chain self, int offset)"""
10032  return _IMP_atom.Chain_set_sequence_offset(self, offset)
10033 
10034  def get_uniprot_accession(self):
10035  r"""get_uniprot_accession(Chain self) -> std::string"""
10036  return _IMP_atom.Chain_get_uniprot_accession(self)
10037 
10038  def set_uniprot_accession(self, accession):
10039  r"""set_uniprot_accession(Chain self, std::string accession)"""
10040  return _IMP_atom.Chain_set_uniprot_accession(self, accession)
10041 
10042  def get_chain_type(self):
10043  r"""get_chain_type(Chain self) -> ChainType"""
10044  return _IMP_atom.Chain_get_chain_type(self)
10045 
10046  def set_chain_type(self, t):
10047  r"""set_chain_type(Chain self, ChainType t)"""
10048  return _IMP_atom.Chain_set_chain_type(self, t)
10049 
10050  @staticmethod
10051  def get_id_key():
10052  r"""get_id_key() -> SparseStringKey"""
10053  return _IMP_atom.Chain_get_id_key()
10054 
10055  @staticmethod
10056  def get_label_asym_id_key():
10057  r"""get_label_asym_id_key() -> SparseStringKey"""
10058  return _IMP_atom.Chain_get_label_asym_id_key()
10059 
10060  @staticmethod
10061  def get_sequence_key():
10062  r"""get_sequence_key() -> SparseStringKey"""
10063  return _IMP_atom.Chain_get_sequence_key()
10064 
10065  @staticmethod
10066  def get_sequence_offset_key():
10067  r"""get_sequence_offset_key() -> SparseIntKey"""
10068  return _IMP_atom.Chain_get_sequence_offset_key()
10069 
10070  @staticmethod
10071  def get_uniprot_accession_key():
10072  r"""get_uniprot_accession_key() -> SparseStringKey"""
10073  return _IMP_atom.Chain_get_uniprot_accession_key()
10074 
10075  @staticmethod
10076  def get_chain_type_key():
10077  r"""get_chain_type_key() -> SparseIntKey"""
10078  return _IMP_atom.Chain_get_chain_type_key()
10079 
10080  def add_attribute(self, *args):
10081  r"""
10082  add_attribute(Chain self, FloatKey k, IMP::Float v, bool opt)
10083  add_attribute(Chain self, FloatKey a0, IMP::Float a1)
10084  add_attribute(Chain self, IntKey a0, IMP::Int a1)
10085  add_attribute(Chain self, FloatsKey a0, IMP::Floats a1)
10086  add_attribute(Chain self, IntsKey a0, IMP::Ints a1)
10087  add_attribute(Chain self, StringKey a0, IMP::String a1)
10088  add_attribute(Chain self, ParticleIndexKey a0, Particle a1)
10089  add_attribute(Chain self, ObjectKey a0, Object a1)
10090  add_attribute(Chain self, SparseFloatKey a0, IMP::Float a1)
10091  add_attribute(Chain self, SparseIntKey a0, IMP::Int a1)
10092  add_attribute(Chain self, SparseStringKey a0, IMP::String a1)
10093  add_attribute(Chain self, SparseParticleIndexKey a0, ParticleIndex a1)
10094  """
10095  return _IMP_atom.Chain_add_attribute(self, *args)
10096 
10097  def get_value(self, *args):
10098  r"""
10099  get_value(Chain self, FloatKey a0) -> IMP::Float
10100  get_value(Chain self, IntKey a0) -> IMP::Int
10101  get_value(Chain self, FloatsKey a0) -> IMP::Floats
10102  get_value(Chain self, IntsKey a0) -> IMP::Ints
10103  get_value(Chain self, StringKey a0) -> IMP::String
10104  get_value(Chain self, ParticleIndexKey a0) -> Particle
10105  get_value(Chain self, ObjectKey a0) -> Object
10106  get_value(Chain self, SparseFloatKey a0) -> IMP::Float
10107  get_value(Chain self, SparseIntKey a0) -> IMP::Int
10108  get_value(Chain self, SparseStringKey a0) -> IMP::String
10109  get_value(Chain self, SparseParticleIndexKey a0) -> ParticleIndex
10110  """
10111  return _IMP_atom.Chain_get_value(self, *args)
10112 
10113  def set_value(self, *args):
10114  r"""
10115  set_value(Chain self, FloatKey a0, IMP::Float a1)
10116  set_value(Chain self, IntKey a0, IMP::Int a1)
10117  set_value(Chain self, FloatsKey a0, IMP::Floats a1)
10118  set_value(Chain self, IntsKey a0, IMP::Ints a1)
10119  set_value(Chain self, StringKey a0, IMP::String a1)
10120  set_value(Chain self, ParticleIndexKey a0, Particle a1)
10121  set_value(Chain self, ObjectKey a0, Object a1)
10122  set_value(Chain self, SparseFloatKey a0, IMP::Float a1)
10123  set_value(Chain self, SparseIntKey a0, IMP::Int a1)
10124  set_value(Chain self, SparseStringKey a0, IMP::String a1)
10125  set_value(Chain self, SparseParticleIndexKey a0, ParticleIndex a1)
10126  """
10127  return _IMP_atom.Chain_set_value(self, *args)
10128 
10129  def remove_attribute(self, *args):
10130  r"""
10131  remove_attribute(Chain self, FloatKey a0)
10132  remove_attribute(Chain self, IntKey a0)
10133  remove_attribute(Chain self, FloatsKey a0)
10134  remove_attribute(Chain self, IntsKey a0)
10135  remove_attribute(Chain self, StringKey a0)
10136  remove_attribute(Chain self, ParticleIndexKey a0)
10137  remove_attribute(Chain self, ObjectKey a0)
10138  remove_attribute(Chain self, SparseFloatKey a0)
10139  remove_attribute(Chain self, SparseIntKey a0)
10140  remove_attribute(Chain self, SparseStringKey a0)
10141  remove_attribute(Chain self, SparseParticleIndexKey a0)
10142  """
10143  return _IMP_atom.Chain_remove_attribute(self, *args)
10144 
10145  def has_attribute(self, *args):
10146  r"""
10147  has_attribute(Chain self, FloatKey a0) -> bool
10148  has_attribute(Chain self, IntKey a0) -> bool
10149  has_attribute(Chain self, FloatsKey a0) -> bool
10150  has_attribute(Chain self, IntsKey a0) -> bool
10151  has_attribute(Chain self, StringKey a0) -> bool
10152  has_attribute(Chain self, ParticleIndexKey a0) -> bool
10153  has_attribute(Chain self, ObjectKey a0) -> bool
10154  has_attribute(Chain self, SparseFloatKey a0) -> bool
10155  has_attribute(Chain self, SparseIntKey a0) -> bool
10156  has_attribute(Chain self, SparseStringKey a0) -> bool
10157  has_attribute(Chain self, SparseParticleIndexKey a0) -> bool
10158  """
10159  return _IMP_atom.Chain_has_attribute(self, *args)
10160 
10161  def get_derivative(self, a0):
10162  r"""get_derivative(Chain self, FloatKey a0) -> double"""
10163  return _IMP_atom.Chain_get_derivative(self, a0)
10164 
10165  def get_name(self):
10166  r"""get_name(Chain self) -> std::string"""
10167  return _IMP_atom.Chain_get_name(self)
10168 
10169  def clear_caches(self):
10170  r"""clear_caches(Chain self)"""
10171  return _IMP_atom.Chain_clear_caches(self)
10172 
10173  def set_name(self, a0):
10174  r"""set_name(Chain self, std::string a0)"""
10175  return _IMP_atom.Chain_set_name(self, a0)
10176 
10177  def set_check_level(self, a0):
10178  r"""set_check_level(Chain self, IMP::CheckLevel a0)"""
10179  return _IMP_atom.Chain_set_check_level(self, a0)
10180 
10181  def add_to_derivative(self, a0, a1, a2):
10182  r"""add_to_derivative(Chain self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
10183  return _IMP_atom.Chain_add_to_derivative(self, a0, a1, a2)
10184 
10185  def set_is_optimized(self, a0, a1):
10186  r"""set_is_optimized(Chain self, FloatKey a0, bool a1)"""
10187  return _IMP_atom.Chain_set_is_optimized(self, a0, a1)
10188 
10189  def get_is_optimized(self, a0):
10190  r"""get_is_optimized(Chain self, FloatKey a0) -> bool"""
10191  return _IMP_atom.Chain_get_is_optimized(self, a0)
10192 
10193  def get_check_level(self):
10194  r"""get_check_level(Chain self) -> IMP::CheckLevel"""
10195  return _IMP_atom.Chain_get_check_level(self)
10196 
10197  def __eq__(self, *args):
10198  r"""
10199  __eq__(Chain self, Chain o) -> bool
10200  __eq__(Chain self, Particle d) -> bool
10201  """
10202  return _IMP_atom.Chain___eq__(self, *args)
10203 
10204  def __ne__(self, *args):
10205  r"""
10206  __ne__(Chain self, Chain o) -> bool
10207  __ne__(Chain self, Particle d) -> bool
10208  """
10209  return _IMP_atom.Chain___ne__(self, *args)
10210 
10211  def __le__(self, *args):
10212  r"""
10213  __le__(Chain self, Chain o) -> bool
10214  __le__(Chain self, Particle d) -> bool
10215  """
10216  return _IMP_atom.Chain___le__(self, *args)
10217 
10218  def __lt__(self, *args):
10219  r"""
10220  __lt__(Chain self, Chain o) -> bool
10221  __lt__(Chain self, Particle d) -> bool
10222  """
10223  return _IMP_atom.Chain___lt__(self, *args)
10224 
10225  def __ge__(self, *args):
10226  r"""
10227  __ge__(Chain self, Chain o) -> bool
10228  __ge__(Chain self, Particle d) -> bool
10229  """
10230  return _IMP_atom.Chain___ge__(self, *args)
10231 
10232  def __gt__(self, *args):
10233  r"""
10234  __gt__(Chain self, Chain o) -> bool
10235  __gt__(Chain self, Particle d) -> bool
10236  """
10237  return _IMP_atom.Chain___gt__(self, *args)
10238 
10239  def __hash__(self):
10240  r"""__hash__(Chain self) -> std::size_t"""
10241  return _IMP_atom.Chain___hash__(self)
10242 
10243  def __str__(self):
10244  r"""__str__(Chain self) -> std::string"""
10245  return _IMP_atom.Chain___str__(self)
10246 
10247  def __repr__(self):
10248  r"""__repr__(Chain self) -> std::string"""
10249  return _IMP_atom.Chain___repr__(self)
10250 
10251  def _get_as_binary(self):
10252  r"""_get_as_binary(Chain self) -> PyObject *"""
10253  return _IMP_atom.Chain__get_as_binary(self)
10254 
10255  def _set_from_binary(self, p):
10256  r"""_set_from_binary(Chain self, PyObject * p)"""
10257  return _IMP_atom.Chain__set_from_binary(self, p)
10258 
10259  def __getstate__(self):
10260  p = self._get_as_binary()
10261  if len(self.__dict__) > 1:
10262  d = self.__dict__.copy()
10263  del d['this']
10264  p = (d, p)
10265  return p
10266 
10267  def __setstate__(self, p):
10268  if not hasattr(self, 'this'):
10269  self.__init__()
10270  if isinstance(p, tuple):
10271  d, p = p
10272  self.__dict__.update(d)
10273  return self._set_from_binary(p)
10274 
10275  __swig_destroy__ = _IMP_atom.delete_Chain
10276 
10277 # Register Chain in _IMP_atom:
10278 _IMP_atom.Chain_swigregister(Chain)
10279 UnknownChainType = cvar.UnknownChainType
10280 DPolypeptide = cvar.DPolypeptide
10281 LPolypeptide = cvar.LPolypeptide
10282 Polydeoxyribonucleotide = cvar.Polydeoxyribonucleotide
10283 Polyribonucleotide = cvar.Polyribonucleotide
10284 DPolysaccharide = cvar.DPolysaccharide
10285 LPolysaccharide = cvar.LPolysaccharide
10286 Protein = cvar.Protein
10287 DNA = cvar.DNA
10288 RNA = cvar.RNA
10289 
10290 
10291 def get_chain(h):
10292  r"""get_chain(Hierarchy h) -> Chain"""
10293  return _IMP_atom.get_chain(h)
10294 
10295 def get_chain_id(h):
10296  r"""get_chain_id(Hierarchy h) -> std::string"""
10297  return _IMP_atom.get_chain_id(h)
10298 class Selection(IMP._ParticleIndexesAdaptor):
10299  r"""Proxy of C++ IMP::atom::Selection class."""
10300 
10301  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10302  NONE = _IMP_atom.Selection_NONE
10303 
10304  C = _IMP_atom.Selection_C
10305 
10306  N = _IMP_atom.Selection_N
10307 
10308 
10309  def __init__(self, *args):
10310  r"""
10311  __init__(Selection self) -> Selection
10312  __init__(Selection self, Hierarchy h) -> Selection
10313  __init__(Selection self, Particle h) -> Selection
10314  __init__(Selection self, Model m, IMP::ParticleIndexes const & pis) -> Selection
10315  __init__(Selection self, IMP::ParticlesTemp const & h) -> Selection
10316  """
10317  _IMP_atom.Selection_swiginit(self, _IMP_atom.new_Selection(*args))
10318 
10319  def create_clone(self):
10320  r"""create_clone(Selection self) -> Selection"""
10321  return _IMP_atom.Selection_create_clone(self)
10322 
10323  def get_hierarchies(self):
10324  r"""get_hierarchies(Selection self) -> IMP::atom::Hierarchies"""
10325  return _IMP_atom.Selection_get_hierarchies(self)
10326 
10327  def set_molecules(self, mols):
10328  r"""set_molecules(Selection self, IMP::Strings mols)"""
10329  return _IMP_atom.Selection_set_molecules(self, mols)
10330 
10331  def set_resolution(self, r):
10332  r"""set_resolution(Selection self, double r)"""
10333  return _IMP_atom.Selection_set_resolution(self, r)
10334 
10335  def set_representation_type(self, t):
10336  r"""set_representation_type(Selection self, IMP::atom::RepresentationType t)"""
10337  return _IMP_atom.Selection_set_representation_type(self, t)
10338 
10339  def set_state_index(self, state):
10340  r"""set_state_index(Selection self, int state)"""
10341  return _IMP_atom.Selection_set_state_index(self, state)
10342 
10343  def set_state_indexes(self, states):
10344  r"""set_state_indexes(Selection self, IMP::Ints states)"""
10345  return _IMP_atom.Selection_set_state_indexes(self, states)
10346 
10347  def set_terminus(self, t):
10348  r"""set_terminus(Selection self, IMP::atom::Selection::Terminus t)"""
10349  return _IMP_atom.Selection_set_terminus(self, t)
10350 
10351  def set_element(self, e):
10352  r"""set_element(Selection self, IMP::atom::Element e)"""
10353  return _IMP_atom.Selection_set_element(self, e)
10354 
10355  def set_chain_ids(self, chains):
10356  r"""set_chain_ids(Selection self, IMP::Strings chains)"""
10357  return _IMP_atom.Selection_set_chain_ids(self, chains)
10358 
10359  def set_chains(self, chains):
10360  r"""set_chains(Selection self, IMP::Strings chains)"""
10361  return _IMP_atom.Selection_set_chains(self, chains)
10362 
10363  def set_residue_indexes(self, indexes):
10364  r"""set_residue_indexes(Selection self, IMP::Ints indexes)"""
10365  return _IMP_atom.Selection_set_residue_indexes(self, indexes)
10366 
10367  def set_atom_types(self, types):
10368  r"""set_atom_types(Selection self, IMP::atom::AtomTypes types)"""
10369  return _IMP_atom.Selection_set_atom_types(self, types)
10370 
10371  def set_residue_types(self, types):
10372  r"""set_residue_types(Selection self, IMP::atom::ResidueTypes types)"""
10373  return _IMP_atom.Selection_set_residue_types(self, types)
10374 
10375  def set_domains(self, names):
10376  r"""set_domains(Selection self, IMP::Strings names)"""
10377  return _IMP_atom.Selection_set_domains(self, names)
10378 
10379  def set_molecule(self, mol):
10380  r"""set_molecule(Selection self, std::string mol)"""
10381  return _IMP_atom.Selection_set_molecule(self, mol)
10382 
10383  def set_chain_id(self, c):
10384  r"""set_chain_id(Selection self, std::string c)"""
10385  return _IMP_atom.Selection_set_chain_id(self, c)
10386 
10387  def set_chain(self, c):
10388  r"""set_chain(Selection self, std::string c)"""
10389  return _IMP_atom.Selection_set_chain(self, c)
10390 
10391  def set_residue_index(self, i):
10392  r"""set_residue_index(Selection self, int i)"""
10393  return _IMP_atom.Selection_set_residue_index(self, i)
10394 
10395  def set_atom_type(self, types):
10396  r"""set_atom_type(Selection self, AtomType types)"""
10397  return _IMP_atom.Selection_set_atom_type(self, types)
10398 
10399  def set_residue_type(self, type):
10400  r"""set_residue_type(Selection self, ResidueType type)"""
10401  return _IMP_atom.Selection_set_residue_type(self, type)
10402 
10403  def set_domain(self, name):
10404  r"""set_domain(Selection self, std::string name)"""
10405  return _IMP_atom.Selection_set_domain(self, name)
10406 
10407  def set_copy_index(self, copy):
10408  r"""set_copy_index(Selection self, unsigned int copy)"""
10409  return _IMP_atom.Selection_set_copy_index(self, copy)
10410 
10411  def set_copy_indexes(self, copies):
10412  r"""set_copy_indexes(Selection self, IMP::Ints copies)"""
10413  return _IMP_atom.Selection_set_copy_indexes(self, copies)
10414 
10415  def set_particle_type(self, t):
10416  r"""set_particle_type(Selection self, ParticleType t)"""
10417  return _IMP_atom.Selection_set_particle_type(self, t)
10418 
10419  def set_particle_types(self, t):
10420  r"""set_particle_types(Selection self, IMP::core::ParticleTypes t)"""
10421  return _IMP_atom.Selection_set_particle_types(self, t)
10422 
10423  def set_hierarchy_types(self, types):
10424  r"""set_hierarchy_types(Selection self, IMP::Ints types)"""
10425  return _IMP_atom.Selection_set_hierarchy_types(self, types)
10426 
10427  def set_intersection(self, s):
10428  r"""set_intersection(Selection self, Selection s)"""
10429  return _IMP_atom.Selection_set_intersection(self, s)
10430 
10431  def set_union(self, s):
10432  r"""set_union(Selection self, Selection s)"""
10433  return _IMP_atom.Selection_set_union(self, s)
10434 
10435  def set_symmetric_difference(self, s):
10436  r"""set_symmetric_difference(Selection self, Selection s)"""
10437  return _IMP_atom.Selection_set_symmetric_difference(self, s)
10438 
10439  def set_difference(self, s):
10440  r"""set_difference(Selection self, Selection s)"""
10441  return _IMP_atom.Selection_set_difference(self, s)
10442 
10443  def get_selected_particles(self, with_representation=True):
10444  r"""get_selected_particles(Selection self, bool with_representation=True) -> IMP::ParticlesTemp"""
10445  return _IMP_atom.Selection_get_selected_particles(self, with_representation)
10446 
10447  def get_selected_particle_indexes(self, with_representation=True):
10448  r"""get_selected_particle_indexes(Selection self, bool with_representation=True) -> IMP::ParticleIndexes"""
10449  return _IMP_atom.Selection_get_selected_particle_indexes(self, with_representation)
10450 
10451  def show(self, *args):
10452  r"""show(Selection self, _ostream out=std::cout)"""
10453  return _IMP_atom.Selection_show(self, *args)
10454 
10455  def __str__(self):
10456  r"""__str__(Selection self) -> std::string"""
10457  return _IMP_atom.Selection___str__(self)
10458 
10459  def __repr__(self):
10460  r"""__repr__(Selection self) -> std::string"""
10461  return _IMP_atom.Selection___repr__(self)
10462 
10463  def __init__(self, hierarchy=None,
10464  hierarchies=None, **params):
10465  if hierarchy and hierarchies:
10466  raise RuntimeError("You can't pass both hierarchy and hierarchies to Selection")
10467  if hierarchy:
10468  this = _IMP_atom.new_Selection(hierarchy)
10469  try: self.this.append(this)
10470  except: self.this = this
10471  elif hierarchies:
10472  this = _IMP_atom.new_Selection(hierarchies)
10473  try: self.this.append(this)
10474  except: self.this = this
10475  else:
10476  raise ValueError("Either hierarchy or hierarchies must be provided.")
10477  for k in params.keys():
10478  eval("self.set_%s(params[k])"%k)
10479 
10480  def union(self, s):
10481  news = self.create_clone()
10482  news.union_update(s)
10483  return news
10484  def intersection(self, s):
10485  news = self.create_clone()
10486  news.intersection_update(s)
10487  return news
10488  def symmetric_difference(self, s):
10489  news = self.create_clone()
10490  news.symmetric_difference_update(s)
10491  return news
10492  def difference(self, s):
10493  news = self.create_clone()
10494  news.difference_update(s)
10495  return news
10496  def union_update(self, s):
10497  self.set_union(s)
10498  return self
10499  def intersection_update(self, s):
10500  self.set_intersection(s)
10501  return self
10502  def symmetric_difference_update(self, s):
10503  self.set_symmetric_difference(s)
10504  return self
10505  def difference_update(self, s):
10506  self.set_difference(s)
10507  return self
10508  __or__ = union
10509  __and__ = intersection
10510  __xor__ = symmetric_difference
10511  __sub__ = difference
10512  __ior__ = union_update
10513  __iand__ = intersection_update
10514  __ixor__ = symmetric_difference_update
10515  __isub__ = difference_update
10516 
10517  __swig_destroy__ = _IMP_atom.delete_Selection
10518 
10519 # Register Selection in _IMP_atom:
10520 _IMP_atom.Selection_swigregister(Selection)
10521 
10522 def create_distance_restraint(*args):
10523  r"""create_distance_restraint(Selection n0, Selection n1, double x0, double k, std::string name="Distance%1%") -> Restraint"""
10524  return _IMP_atom.create_distance_restraint(*args)
10525 
10527  r"""
10528  create_connectivity_restraint(IMP::atom::Selections const & s, double k, std::string name="Connectivity%1%") -> Restraint
10529  create_connectivity_restraint(IMP::atom::Selections const & s, double x0, double k, std::string name="Connectivity%1%") -> Restraint
10530  """
10531  return _IMP_atom.create_connectivity_restraint(*args)
10532 
10534  r"""
10535  create_internal_connectivity_restraint(Selection s, double k, std::string name="Connectivity%1%") -> Restraint
10536  create_internal_connectivity_restraint(Selection s, double x0, double k, std::string name="Connectivity%1%") -> Restraint
10537  """
10538  return _IMP_atom.create_internal_connectivity_restraint(*args)
10539 
10540 def create_cover(*args):
10541  r"""create_cover(Selection s, std::string name=std::string()) -> XYZR"""
10542  return _IMP_atom.create_cover(*args)
10543 
10544 def get_mass(*args):
10545  r"""
10546  get_mass(ResidueType c) -> double
10547  get_mass(Selection s) -> double
10548  """
10549  return _IMP_atom.get_mass(*args)
10550 
10551 def get_volume(s):
10552  r"""get_volume(Selection s) -> double"""
10553  return _IMP_atom.get_volume(s)
10554 
10555 def get_surface_area(s):
10556  r"""get_surface_area(Selection s) -> double"""
10557  return _IMP_atom.get_surface_area(s)
10558 
10559 def get_leaves(*args):
10560  r"""
10561  get_leaves(Hierarchy h) -> IMP::atom::Hierarchies
10562  get_leaves(IMP::atom::Hierarchies const & h) -> IMP::atom::Hierarchies
10563  get_leaves(Selection h) -> IMP::atom::Hierarchies
10564  """
10565  return _IMP_atom.get_leaves(*args)
10566 class SelectionGeometry(IMP.display.Geometry):
10567  r"""Proxy of C++ IMP::atom::SelectionGeometry class."""
10568 
10569  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10570 
10571  def __init__(self, *args):
10572  r"""__init__(SelectionGeometry self, Selection d, std::string name="Selection") -> SelectionGeometry"""
10573  _IMP_atom.SelectionGeometry_swiginit(self, _IMP_atom.new_SelectionGeometry(*args))
10574 
10575  def get_version_info(self):
10576  r"""get_version_info(SelectionGeometry self) -> VersionInfo"""
10577  return _IMP_atom.SelectionGeometry_get_version_info(self)
10578  __swig_destroy__ = _IMP_atom.delete_SelectionGeometry
10579 
10580  def __str__(self):
10581  r"""__str__(SelectionGeometry self) -> std::string"""
10582  return _IMP_atom.SelectionGeometry___str__(self)
10583 
10584  def __repr__(self):
10585  r"""__repr__(SelectionGeometry self) -> std::string"""
10586  return _IMP_atom.SelectionGeometry___repr__(self)
10587 
10588  @staticmethod
10589  def get_from(o):
10590  return _object_cast_to_SelectionGeometry(o)
10591 
10592 
10593 # Register SelectionGeometry in _IMP_atom:
10594 _IMP_atom.SelectionGeometry_swigregister(SelectionGeometry)
10595 
10596 def get_rmsd(*args):
10597  r"""
10598  get_rmsd(IMP::core::XYZs const & s0, IMP::core::XYZs const & s1) -> double
10599  get_rmsd(Selection s0, Selection s1) -> double
10600  """
10601  return _IMP_atom.get_rmsd(*args)
10602 
10603 def get_rmsd_transforming_first(*args):
10604  r"""
10605  get_rmsd_transforming_first(Transformation3D tr, IMP::core::XYZs const & s0, IMP::core::XYZs const & s1) -> double
10606  get_rmsd_transforming_first(Transformation3D tr, Selection s0, Selection s1) -> double
10607  """
10608  return _IMP_atom.get_rmsd_transforming_first(*args)
10609 
10610 def get_placement_score(source, target):
10611  r"""get_placement_score(IMP::core::XYZs const & source, IMP::core::XYZs const & target) -> IMP::FloatPair"""
10612  return _IMP_atom.get_placement_score(source, target)
10613 
10614 def get_component_placement_score(ref1, ref2, mdl1, mdl2):
10615  r"""get_component_placement_score(IMP::core::XYZs const & ref1, IMP::core::XYZs const & ref2, IMP::core::XYZs const & mdl1, IMP::core::XYZs const & mdl2) -> IMP::FloatPair"""
10616  return _IMP_atom.get_component_placement_score(ref1, ref2, mdl1, mdl2)
10617 
10618 def get_pairwise_rmsd_score(ref1, ref2, mdl1, mdl2):
10619  r"""get_pairwise_rmsd_score(IMP::core::XYZs const & ref1, IMP::core::XYZs const & ref2, IMP::core::XYZs const & mdl1, IMP::core::XYZs const & mdl2) -> double"""
10620  return _IMP_atom.get_pairwise_rmsd_score(ref1, ref2, mdl1, mdl2)
10621 
10622 def get_radius_of_gyration(*args):
10623  r"""
10624  get_radius_of_gyration(Selection s) -> double
10625  get_radius_of_gyration(IMP::ParticlesTemp const & ps, bool weighted=True) -> double
10626  """
10627  return _IMP_atom.get_radius_of_gyration(*args)
10628 class ForceFieldParameters(IMP.Object):
10629  r"""Proxy of C++ IMP::atom::ForceFieldParameters class."""
10630 
10631  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10632 
10633  def __init__(self):
10634  r"""__init__(ForceFieldParameters self) -> ForceFieldParameters"""
10635  _IMP_atom.ForceFieldParameters_swiginit(self, _IMP_atom.new_ForceFieldParameters())
10636 
10637  def get_radius(self, atom):
10638  r"""get_radius(ForceFieldParameters self, Atom atom) -> IMP::Float"""
10639  return _IMP_atom.ForceFieldParameters_get_radius(self, atom)
10640 
10641  def get_epsilon(self, atom):
10642  r"""get_epsilon(ForceFieldParameters self, Atom atom) -> IMP::Float"""
10643  return _IMP_atom.ForceFieldParameters_get_epsilon(self, atom)
10644 
10645  def add_radii(self, *args):
10646  r"""add_radii(ForceFieldParameters self, Hierarchy mhd, double scale=1.0, FloatKey radius_key=IMP::FloatKey("radius"))"""
10647  return _IMP_atom.ForceFieldParameters_add_radii(self, *args)
10648 
10649  def add_lennard_jones_types(self, mhd):
10650  r"""add_lennard_jones_types(ForceFieldParameters self, Hierarchy mhd)"""
10651  return _IMP_atom.ForceFieldParameters_add_lennard_jones_types(self, mhd)
10652 
10653  def add_bonds(self, mhd):
10654  r"""add_bonds(ForceFieldParameters self, Hierarchy mhd)"""
10655  return _IMP_atom.ForceFieldParameters_add_bonds(self, mhd)
10656  __swig_destroy__ = _IMP_atom.delete_ForceFieldParameters
10657 
10658  def __str__(self):
10659  r"""__str__(ForceFieldParameters self) -> std::string"""
10660  return _IMP_atom.ForceFieldParameters___str__(self)
10661 
10662  def __repr__(self):
10663  r"""__repr__(ForceFieldParameters self) -> std::string"""
10664  return _IMP_atom.ForceFieldParameters___repr__(self)
10665 
10666  @staticmethod
10667  def get_from(o):
10668  return _object_cast_to_ForceFieldParameters(o)
10669 
10670 
10671 # Register ForceFieldParameters in _IMP_atom:
10672 _IMP_atom.ForceFieldParameters_swigregister(ForceFieldParameters)
10673 class CHARMMAtomTopology(object):
10674  r"""Proxy of C++ IMP::atom::CHARMMAtomTopology class."""
10675 
10676  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10677 
10678  def __init__(self, *args):
10679  r"""
10680  __init__(CHARMMAtomTopology self) -> CHARMMAtomTopology
10681  __init__(CHARMMAtomTopology self, std::string name) -> CHARMMAtomTopology
10682  __init__(CHARMMAtomTopology self, std::string name, CHARMMAtomTopology other) -> CHARMMAtomTopology
10683  """
10684  _IMP_atom.CHARMMAtomTopology_swiginit(self, _IMP_atom.new_CHARMMAtomTopology(*args))
10685 
10686  def get_name(self):
10687  r"""get_name(CHARMMAtomTopology self) -> std::string"""
10688  return _IMP_atom.CHARMMAtomTopology_get_name(self)
10689 
10690  def get_charmm_type(self):
10691  r"""get_charmm_type(CHARMMAtomTopology self) -> std::string"""
10692  return _IMP_atom.CHARMMAtomTopology_get_charmm_type(self)
10693 
10694  def get_charge(self):
10695  r"""get_charge(CHARMMAtomTopology self) -> double"""
10696  return _IMP_atom.CHARMMAtomTopology_get_charge(self)
10697 
10698  def set_charmm_type(self, charmm_type):
10699  r"""set_charmm_type(CHARMMAtomTopology self, std::string charmm_type)"""
10700  return _IMP_atom.CHARMMAtomTopology_set_charmm_type(self, charmm_type)
10701 
10702  def set_charge(self, charge):
10703  r"""set_charge(CHARMMAtomTopology self, double charge)"""
10704  return _IMP_atom.CHARMMAtomTopology_set_charge(self, charge)
10705 
10706  def show(self, *args):
10707  r"""show(CHARMMAtomTopology self, _ostream out=std::cout)"""
10708  return _IMP_atom.CHARMMAtomTopology_show(self, *args)
10709 
10710  def __str__(self):
10711  r"""__str__(CHARMMAtomTopology self) -> std::string"""
10712  return _IMP_atom.CHARMMAtomTopology___str__(self)
10713 
10714  def __repr__(self):
10715  r"""__repr__(CHARMMAtomTopology self) -> std::string"""
10716  return _IMP_atom.CHARMMAtomTopology___repr__(self)
10717 
10718  def _get_as_binary(self):
10719  r"""_get_as_binary(CHARMMAtomTopology self) -> PyObject *"""
10720  return _IMP_atom.CHARMMAtomTopology__get_as_binary(self)
10721 
10722  def _set_from_binary(self, p):
10723  r"""_set_from_binary(CHARMMAtomTopology self, PyObject * p)"""
10724  return _IMP_atom.CHARMMAtomTopology__set_from_binary(self, p)
10725 
10726  def __getstate__(self):
10727  p = self._get_as_binary()
10728  if len(self.__dict__) > 1:
10729  d = self.__dict__.copy()
10730  del d['this']
10731  p = (d, p)
10732  return p
10733 
10734  def __setstate__(self, p):
10735  if not hasattr(self, 'this'):
10736  self.__init__()
10737  if isinstance(p, tuple):
10738  d, p = p
10739  self.__dict__.update(d)
10740  return self._set_from_binary(p)
10741 
10742  __swig_destroy__ = _IMP_atom.delete_CHARMMAtomTopology
10743 
10744 # Register CHARMMAtomTopology in _IMP_atom:
10745 _IMP_atom.CHARMMAtomTopology_swigregister(CHARMMAtomTopology)
10746 class CHARMMBondEndpoint(object):
10747  r"""Proxy of C++ IMP::atom::CHARMMBondEndpoint class."""
10748 
10749  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10750 
10751  def __init__(self, atom_name, residue=None):
10752  r"""__init__(CHARMMBondEndpoint self, std::string atom_name, CHARMMResidueTopology residue=None) -> CHARMMBondEndpoint"""
10753  _IMP_atom.CHARMMBondEndpoint_swiginit(self, _IMP_atom.new_CHARMMBondEndpoint(atom_name, residue))
10754 
10755  def get_atom_name(self):
10756  r"""get_atom_name(CHARMMBondEndpoint self) -> std::string"""
10757  return _IMP_atom.CHARMMBondEndpoint_get_atom_name(self)
10758 
10759  def get_atom(self, current_residue, previous_residue, next_residue, resmap):
10760  r"""get_atom(CHARMMBondEndpoint self, CHARMMResidueTopology current_residue, CHARMMResidueTopology previous_residue, CHARMMResidueTopology next_residue, std::map< IMP::atom::CHARMMResidueTopology const *,IMP::atom::Hierarchy > const & resmap) -> Atom"""
10761  return _IMP_atom.CHARMMBondEndpoint_get_atom(self, current_residue, previous_residue, next_residue, resmap)
10762 
10763  def show(self, *args):
10764  r"""show(CHARMMBondEndpoint self, _ostream out=std::cout)"""
10765  return _IMP_atom.CHARMMBondEndpoint_show(self, *args)
10766 
10767  def __str__(self):
10768  r"""__str__(CHARMMBondEndpoint self) -> std::string"""
10769  return _IMP_atom.CHARMMBondEndpoint___str__(self)
10770 
10771  def __repr__(self):
10772  r"""__repr__(CHARMMBondEndpoint self) -> std::string"""
10773  return _IMP_atom.CHARMMBondEndpoint___repr__(self)
10774  __swig_destroy__ = _IMP_atom.delete_CHARMMBondEndpoint
10775 
10776 # Register CHARMMBondEndpoint in _IMP_atom:
10777 _IMP_atom.CHARMMBondEndpoint_swigregister(CHARMMBondEndpoint)
10778 class CHARMMDihedral(object):
10779  r"""Proxy of C++ IMP::atom::CHARMMConnection< 4 > class."""
10780 
10781  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10782  __repr__ = _swig_repr
10783 
10784  def __init__(self, atoms):
10785  r"""__init__(CHARMMDihedral self, IMP::Strings const & atoms) -> CHARMMDihedral"""
10786  _IMP_atom.CHARMMDihedral_swiginit(self, _IMP_atom.new_CHARMMDihedral(atoms))
10787 
10788  def get_endpoint(self, i):
10789  r"""get_endpoint(CHARMMDihedral self, unsigned int i) -> CHARMMBondEndpoint"""
10790  return _IMP_atom.CHARMMDihedral_get_endpoint(self, i)
10791 
10792  def get_contains_atom(self, name):
10793  r"""get_contains_atom(CHARMMDihedral self, std::string name) -> bool"""
10794  return _IMP_atom.CHARMMDihedral_get_contains_atom(self, name)
10795 
10796  def show(self, *args):
10797  r"""show(CHARMMDihedral self, _ostream out=std::cout)"""
10798  return _IMP_atom.CHARMMDihedral_show(self, *args)
10799  __swig_destroy__ = _IMP_atom.delete_CHARMMDihedral
10800 
10801 # Register CHARMMDihedral in _IMP_atom:
10802 _IMP_atom.CHARMMDihedral_swigregister(CHARMMDihedral)
10803 class CHARMMInternalCoordinate(CHARMMDihedral):
10804  r"""Proxy of C++ IMP::atom::CHARMMInternalCoordinate class."""
10805 
10806  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10807 
10808  def __init__(self, *args):
10809  r"""
10810  __init__(CHARMMInternalCoordinate self, IMP::Strings const & atoms, float first_distance, float first_angle, float dihedral, float second_angle, float second_distance, bool improper) -> CHARMMInternalCoordinate
10811  __init__(CHARMMInternalCoordinate self, IMP::Vector< IMP::atom::CHARMMBondEndpoint > const endpoints, float first_distance, float first_angle, float dihedral, float second_angle, float second_distance, bool improper) -> CHARMMInternalCoordinate
10812  """
10813  _IMP_atom.CHARMMInternalCoordinate_swiginit(self, _IMP_atom.new_CHARMMInternalCoordinate(*args))
10814 
10815  def get_first_distance(self):
10816  r"""get_first_distance(CHARMMInternalCoordinate self) -> float"""
10817  return _IMP_atom.CHARMMInternalCoordinate_get_first_distance(self)
10818 
10819  def get_second_distance(self):
10820  r"""get_second_distance(CHARMMInternalCoordinate self) -> float"""
10821  return _IMP_atom.CHARMMInternalCoordinate_get_second_distance(self)
10822 
10823  def get_first_angle(self):
10824  r"""get_first_angle(CHARMMInternalCoordinate self) -> float"""
10825  return _IMP_atom.CHARMMInternalCoordinate_get_first_angle(self)
10826 
10827  def get_second_angle(self):
10828  r"""get_second_angle(CHARMMInternalCoordinate self) -> float"""
10829  return _IMP_atom.CHARMMInternalCoordinate_get_second_angle(self)
10830 
10831  def get_dihedral(self):
10832  r"""get_dihedral(CHARMMInternalCoordinate self) -> float"""
10833  return _IMP_atom.CHARMMInternalCoordinate_get_dihedral(self)
10834 
10835  def get_improper(self):
10836  r"""get_improper(CHARMMInternalCoordinate self) -> bool"""
10837  return _IMP_atom.CHARMMInternalCoordinate_get_improper(self)
10838 
10839  def show(self, *args):
10840  r"""show(CHARMMInternalCoordinate self, _ostream out=std::cout)"""
10841  return _IMP_atom.CHARMMInternalCoordinate_show(self, *args)
10842 
10843  def __str__(self):
10844  r"""__str__(CHARMMInternalCoordinate self) -> std::string"""
10845  return _IMP_atom.CHARMMInternalCoordinate___str__(self)
10846 
10847  def __repr__(self):
10848  r"""__repr__(CHARMMInternalCoordinate self) -> std::string"""
10849  return _IMP_atom.CHARMMInternalCoordinate___repr__(self)
10850  __swig_destroy__ = _IMP_atom.delete_CHARMMInternalCoordinate
10851 
10852 # Register CHARMMInternalCoordinate in _IMP_atom:
10853 _IMP_atom.CHARMMInternalCoordinate_swigregister(CHARMMInternalCoordinate)
10854 class CHARMMResidueTopologyBase(IMP.Object):
10855  r"""Proxy of C++ IMP::atom::CHARMMResidueTopologyBase class."""
10856 
10857  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10858 
10859  def __init__(self, *args, **kwargs):
10860  raise AttributeError("No constructor defined")
10861 
10862  def get_type(self):
10863  r"""get_type(CHARMMResidueTopologyBase self) -> std::string"""
10864  return _IMP_atom.CHARMMResidueTopologyBase_get_type(self)
10865 
10866  def get_number_of_atoms(self):
10867  r"""get_number_of_atoms(CHARMMResidueTopologyBase self) -> unsigned int"""
10868  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_atoms(self)
10869 
10870  def add_atom(self, atom):
10871  r"""add_atom(CHARMMResidueTopologyBase self, CHARMMAtomTopology atom)"""
10872  return _IMP_atom.CHARMMResidueTopologyBase_add_atom(self, atom)
10873 
10874  def get_atom(self, *args):
10875  r"""
10876  get_atom(CHARMMResidueTopologyBase self, unsigned int i) -> CHARMMAtomTopology
10877  get_atom(CHARMMResidueTopologyBase self, AtomType type) -> CHARMMAtomTopology
10878  get_atom(CHARMMResidueTopologyBase self, std::string name) -> CHARMMAtomTopology
10879  """
10880  return _IMP_atom.CHARMMResidueTopologyBase_get_atom(self, *args)
10881 
10882  def get_number_of_bonds(self):
10883  r"""get_number_of_bonds(CHARMMResidueTopologyBase self) -> unsigned int"""
10884  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_bonds(self)
10885 
10886  def add_bond(self, bond):
10887  r"""add_bond(CHARMMResidueTopologyBase self, CHARMMBond bond)"""
10888  return _IMP_atom.CHARMMResidueTopologyBase_add_bond(self, bond)
10889 
10890  def get_number_of_angles(self):
10891  r"""get_number_of_angles(CHARMMResidueTopologyBase self) -> unsigned int"""
10892  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_angles(self)
10893 
10894  def add_angle(self, bond):
10895  r"""add_angle(CHARMMResidueTopologyBase self, CHARMMAngle bond)"""
10896  return _IMP_atom.CHARMMResidueTopologyBase_add_angle(self, bond)
10897 
10898  def get_number_of_dihedrals(self):
10899  r"""get_number_of_dihedrals(CHARMMResidueTopologyBase self) -> unsigned int"""
10900  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_dihedrals(self)
10901 
10902  def add_dihedral(self, bond):
10903  r"""add_dihedral(CHARMMResidueTopologyBase self, CHARMMDihedral bond)"""
10904  return _IMP_atom.CHARMMResidueTopologyBase_add_dihedral(self, bond)
10905 
10906  def get_number_of_impropers(self):
10907  r"""get_number_of_impropers(CHARMMResidueTopologyBase self) -> unsigned int"""
10908  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_impropers(self)
10909 
10910  def add_improper(self, bond):
10911  r"""add_improper(CHARMMResidueTopologyBase self, CHARMMDihedral bond)"""
10912  return _IMP_atom.CHARMMResidueTopologyBase_add_improper(self, bond)
10913 
10914  def get_number_of_internal_coordinates(self):
10915  r"""get_number_of_internal_coordinates(CHARMMResidueTopologyBase self) -> unsigned int"""
10916  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_internal_coordinates(self)
10917 
10918  def add_internal_coordinate(self, ic):
10919  r"""add_internal_coordinate(CHARMMResidueTopologyBase self, CHARMMInternalCoordinate ic)"""
10920  return _IMP_atom.CHARMMResidueTopologyBase_add_internal_coordinate(self, ic)
10921 
10922  def get_internal_coordinate(self, index):
10923  r"""get_internal_coordinate(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMInternalCoordinate"""
10924  return _IMP_atom.CHARMMResidueTopologyBase_get_internal_coordinate(self, index)
10925 
10926  def get_bond(self, index):
10927  r"""get_bond(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMBond"""
10928  return _IMP_atom.CHARMMResidueTopologyBase_get_bond(self, index)
10929 
10930  def get_angle(self, index):
10931  r"""get_angle(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMAngle"""
10932  return _IMP_atom.CHARMMResidueTopologyBase_get_angle(self, index)
10933 
10934  def get_dihedral(self, index):
10935  r"""get_dihedral(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMDihedral"""
10936  return _IMP_atom.CHARMMResidueTopologyBase_get_dihedral(self, index)
10937 
10938  def get_improper(self, index):
10939  r"""get_improper(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMDihedral"""
10940  return _IMP_atom.CHARMMResidueTopologyBase_get_improper(self, index)
10941 
10942  def get_version_info(self):
10943  r"""get_version_info(CHARMMResidueTopologyBase self) -> VersionInfo"""
10944  return _IMP_atom.CHARMMResidueTopologyBase_get_version_info(self)
10945  __swig_destroy__ = _IMP_atom.delete_CHARMMResidueTopologyBase
10946 
10947  def __str__(self):
10948  r"""__str__(CHARMMResidueTopologyBase self) -> std::string"""
10949  return _IMP_atom.CHARMMResidueTopologyBase___str__(self)
10950 
10951  def __repr__(self):
10952  r"""__repr__(CHARMMResidueTopologyBase self) -> std::string"""
10953  return _IMP_atom.CHARMMResidueTopologyBase___repr__(self)
10954 
10955  @staticmethod
10956  def get_from(o):
10957  return _object_cast_to_CHARMMResidueTopologyBase(o)
10958 
10959 
10960 # Register CHARMMResidueTopologyBase in _IMP_atom:
10961 _IMP_atom.CHARMMResidueTopologyBase_swigregister(CHARMMResidueTopologyBase)
10962 class CHARMMIdealResidueTopology(CHARMMResidueTopologyBase):
10963  r"""Proxy of C++ IMP::atom::CHARMMIdealResidueTopology class."""
10964 
10965  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10966 
10967  def __init__(self, *args):
10968  r"""
10969  __init__(CHARMMIdealResidueTopology self, std::string type) -> CHARMMIdealResidueTopology
10970  __init__(CHARMMIdealResidueTopology self, ResidueType type) -> CHARMMIdealResidueTopology
10971  """
10972  _IMP_atom.CHARMMIdealResidueTopology_swiginit(self, _IMP_atom.new_CHARMMIdealResidueTopology(*args))
10973 
10974  def remove_atom(self, name):
10975  r"""remove_atom(CHARMMIdealResidueTopology self, std::string name)"""
10976  return _IMP_atom.CHARMMIdealResidueTopology_remove_atom(self, name)
10977 
10978  def set_default_first_patch(self, patch):
10979  r"""set_default_first_patch(CHARMMIdealResidueTopology self, std::string patch)"""
10980  return _IMP_atom.CHARMMIdealResidueTopology_set_default_first_patch(self, patch)
10981 
10982  def set_default_last_patch(self, patch):
10983  r"""set_default_last_patch(CHARMMIdealResidueTopology self, std::string patch)"""
10984  return _IMP_atom.CHARMMIdealResidueTopology_set_default_last_patch(self, patch)
10985 
10986  def get_default_first_patch(self):
10987  r"""get_default_first_patch(CHARMMIdealResidueTopology self) -> std::string"""
10988  return _IMP_atom.CHARMMIdealResidueTopology_get_default_first_patch(self)
10989 
10990  def get_default_last_patch(self):
10991  r"""get_default_last_patch(CHARMMIdealResidueTopology self) -> std::string"""
10992  return _IMP_atom.CHARMMIdealResidueTopology_get_default_last_patch(self)
10993  __swig_destroy__ = _IMP_atom.delete_CHARMMIdealResidueTopology
10994 
10995  def __str__(self):
10996  r"""__str__(CHARMMIdealResidueTopology self) -> std::string"""
10997  return _IMP_atom.CHARMMIdealResidueTopology___str__(self)
10998 
10999  def __repr__(self):
11000  r"""__repr__(CHARMMIdealResidueTopology self) -> std::string"""
11001  return _IMP_atom.CHARMMIdealResidueTopology___repr__(self)
11002 
11003  @staticmethod
11004  def get_from(o):
11005  return _object_cast_to_CHARMMIdealResidueTopology(o)
11006 
11007 
11008 # Register CHARMMIdealResidueTopology in _IMP_atom:
11009 _IMP_atom.CHARMMIdealResidueTopology_swigregister(CHARMMIdealResidueTopology)
11010 class CHARMMPatch(CHARMMResidueTopologyBase):
11011  r"""Proxy of C++ IMP::atom::CHARMMPatch class."""
11012 
11013  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11014 
11015  def __init__(self, type):
11016  r"""__init__(CHARMMPatch self, std::string type) -> CHARMMPatch"""
11017  _IMP_atom.CHARMMPatch_swiginit(self, _IMP_atom.new_CHARMMPatch(type))
11018 
11019  def add_removed_atom(self, name):
11020  r"""add_removed_atom(CHARMMPatch self, std::string name)"""
11021  return _IMP_atom.CHARMMPatch_add_removed_atom(self, name)
11022 
11023  def get_number_of_removed_atoms(self):
11024  r"""get_number_of_removed_atoms(CHARMMPatch self) -> unsigned int"""
11025  return _IMP_atom.CHARMMPatch_get_number_of_removed_atoms(self)
11026 
11027  def get_removed_atom(self, i):
11028  r"""get_removed_atom(CHARMMPatch self, unsigned int i) -> std::string"""
11029  return _IMP_atom.CHARMMPatch_get_removed_atom(self, i)
11030 
11031  def set_atom_element(self, name, e):
11032  r"""set_atom_element(CHARMMPatch self, std::string name, IMP::atom::Element e)"""
11033  return _IMP_atom.CHARMMPatch_set_atom_element(self, name, e)
11034 
11035  def get_atom_element(self, name):
11036  r"""get_atom_element(CHARMMPatch self, std::string name) -> IMP::atom::Element"""
11037  return _IMP_atom.CHARMMPatch_get_atom_element(self, name)
11038 
11039  def apply(self, *args):
11040  r"""
11041  apply(CHARMMPatch self, CHARMMResidueTopology res)
11042  apply(CHARMMPatch self, CHARMMResidueTopology res1, CHARMMResidueTopology res2)
11043  """
11044  return _IMP_atom.CHARMMPatch_apply(self, *args)
11045  __swig_destroy__ = _IMP_atom.delete_CHARMMPatch
11046 
11047  def __str__(self):
11048  r"""__str__(CHARMMPatch self) -> std::string"""
11049  return _IMP_atom.CHARMMPatch___str__(self)
11050 
11051  def __repr__(self):
11052  r"""__repr__(CHARMMPatch self) -> std::string"""
11053  return _IMP_atom.CHARMMPatch___repr__(self)
11054 
11055  @staticmethod
11056  def get_from(o):
11057  return _object_cast_to_CHARMMPatch(o)
11058 
11059 
11060 # Register CHARMMPatch in _IMP_atom:
11061 _IMP_atom.CHARMMPatch_swigregister(CHARMMPatch)
11062 class CHARMMResidueTopology(CHARMMIdealResidueTopology):
11063  r"""Proxy of C++ IMP::atom::CHARMMResidueTopology class."""
11064 
11065  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11066 
11067  def __init__(self, *args):
11068  r"""
11069  __init__(CHARMMResidueTopology self, ResidueType type) -> CHARMMResidueTopology
11070  __init__(CHARMMResidueTopology self, CHARMMIdealResidueTopology ideal) -> CHARMMResidueTopology
11071  """
11072  _IMP_atom.CHARMMResidueTopology_swiginit(self, _IMP_atom.new_CHARMMResidueTopology(*args))
11073 
11074  def get_patched(self):
11075  r"""get_patched(CHARMMResidueTopology self) -> bool"""
11076  return _IMP_atom.CHARMMResidueTopology_get_patched(self)
11077 
11078  def set_patched(self, patched):
11079  r"""set_patched(CHARMMResidueTopology self, bool patched)"""
11080  return _IMP_atom.CHARMMResidueTopology_set_patched(self, patched)
11081  __swig_destroy__ = _IMP_atom.delete_CHARMMResidueTopology
11082 
11083  def __str__(self):
11084  r"""__str__(CHARMMResidueTopology self) -> std::string"""
11085  return _IMP_atom.CHARMMResidueTopology___str__(self)
11086 
11087  def __repr__(self):
11088  r"""__repr__(CHARMMResidueTopology self) -> std::string"""
11089  return _IMP_atom.CHARMMResidueTopology___repr__(self)
11090 
11091  @staticmethod
11092  def get_from(o):
11093  return _object_cast_to_CHARMMResidueTopology(o)
11094 
11095 
11096 # Register CHARMMResidueTopology in _IMP_atom:
11097 _IMP_atom.CHARMMResidueTopology_swigregister(CHARMMResidueTopology)
11098 class CHARMMAtom(Atom):
11099  r"""Proxy of C++ IMP::atom::CHARMMAtom class."""
11100 
11101  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11102 
11103  def __init__(self, *args):
11104  r"""
11105  __init__(CHARMMAtom self) -> CHARMMAtom
11106  __init__(CHARMMAtom self, Model m, ParticleIndex id) -> CHARMMAtom
11107  __init__(CHARMMAtom self, _ParticleAdaptor d) -> CHARMMAtom
11108  """
11109  _IMP_atom.CHARMMAtom_swiginit(self, _IMP_atom.new_CHARMMAtom(*args))
11110 
11111  def show(self, *args):
11112  r"""show(CHARMMAtom self, _ostream out=std::cout)"""
11113  return _IMP_atom.CHARMMAtom_show(self, *args)
11114 
11115  @staticmethod
11116  def setup_particle(*args):
11117  r"""
11118  setup_particle(Model m, ParticleIndex pi, IMP::String charmm_type) -> CHARMMAtom
11119  setup_particle(_ParticleAdaptor pa, IMP::String charmm_type) -> CHARMMAtom
11120  """
11121  return _IMP_atom.CHARMMAtom_setup_particle(*args)
11122 
11123  def get_charmm_type(self):
11124  r"""get_charmm_type(CHARMMAtom self) -> IMP::String"""
11125  return _IMP_atom.CHARMMAtom_get_charmm_type(self)
11126 
11127  def set_charmm_type(self, t):
11128  r"""set_charmm_type(CHARMMAtom self, IMP::String t)"""
11129  return _IMP_atom.CHARMMAtom_set_charmm_type(self, t)
11130 
11131  @staticmethod
11132  def get_is_setup(*args):
11133  r"""
11134  get_is_setup(_ParticleAdaptor p) -> bool
11135  get_is_setup(Model m, ParticleIndex pi) -> bool
11136  """
11137  return _IMP_atom.CHARMMAtom_get_is_setup(*args)
11138 
11139  @staticmethod
11140  def get_charmm_type_key():
11141  r"""get_charmm_type_key() -> StringKey"""
11142  return _IMP_atom.CHARMMAtom_get_charmm_type_key()
11143 
11144  def add_attribute(self, *args):
11145  r"""
11146  add_attribute(CHARMMAtom self, FloatKey k, IMP::Float v, bool opt)
11147  add_attribute(CHARMMAtom self, FloatKey a0, IMP::Float a1)
11148  add_attribute(CHARMMAtom self, IntKey a0, IMP::Int a1)
11149  add_attribute(CHARMMAtom self, FloatsKey a0, IMP::Floats a1)
11150  add_attribute(CHARMMAtom self, IntsKey a0, IMP::Ints a1)
11151  add_attribute(CHARMMAtom self, StringKey a0, IMP::String a1)
11152  add_attribute(CHARMMAtom self, ParticleIndexKey a0, Particle a1)
11153  add_attribute(CHARMMAtom self, ObjectKey a0, Object a1)
11154  add_attribute(CHARMMAtom self, SparseFloatKey a0, IMP::Float a1)
11155  add_attribute(CHARMMAtom self, SparseIntKey a0, IMP::Int a1)
11156  add_attribute(CHARMMAtom self, SparseStringKey a0, IMP::String a1)
11157  add_attribute(CHARMMAtom self, SparseParticleIndexKey a0, ParticleIndex a1)
11158  """
11159  return _IMP_atom.CHARMMAtom_add_attribute(self, *args)
11160 
11161  def get_value(self, *args):
11162  r"""
11163  get_value(CHARMMAtom self, FloatKey a0) -> IMP::Float
11164  get_value(CHARMMAtom self, IntKey a0) -> IMP::Int
11165  get_value(CHARMMAtom self, FloatsKey a0) -> IMP::Floats
11166  get_value(CHARMMAtom self, IntsKey a0) -> IMP::Ints
11167  get_value(CHARMMAtom self, StringKey a0) -> IMP::String
11168  get_value(CHARMMAtom self, ParticleIndexKey a0) -> Particle
11169  get_value(CHARMMAtom self, ObjectKey a0) -> Object
11170  get_value(CHARMMAtom self, SparseFloatKey a0) -> IMP::Float
11171  get_value(CHARMMAtom self, SparseIntKey a0) -> IMP::Int
11172  get_value(CHARMMAtom self, SparseStringKey a0) -> IMP::String
11173  get_value(CHARMMAtom self, SparseParticleIndexKey a0) -> ParticleIndex
11174  """
11175  return _IMP_atom.CHARMMAtom_get_value(self, *args)
11176 
11177  def set_value(self, *args):
11178  r"""
11179  set_value(CHARMMAtom self, FloatKey a0, IMP::Float a1)
11180  set_value(CHARMMAtom self, IntKey a0, IMP::Int a1)
11181  set_value(CHARMMAtom self, FloatsKey a0, IMP::Floats a1)
11182  set_value(CHARMMAtom self, IntsKey a0, IMP::Ints a1)
11183  set_value(CHARMMAtom self, StringKey a0, IMP::String a1)
11184  set_value(CHARMMAtom self, ParticleIndexKey a0, Particle a1)
11185  set_value(CHARMMAtom self, ObjectKey a0, Object a1)
11186  set_value(CHARMMAtom self, SparseFloatKey a0, IMP::Float a1)
11187  set_value(CHARMMAtom self, SparseIntKey a0, IMP::Int a1)
11188  set_value(CHARMMAtom self, SparseStringKey a0, IMP::String a1)
11189  set_value(CHARMMAtom self, SparseParticleIndexKey a0, ParticleIndex a1)
11190  """
11191  return _IMP_atom.CHARMMAtom_set_value(self, *args)
11192 
11193  def remove_attribute(self, *args):
11194  r"""
11195  remove_attribute(CHARMMAtom self, FloatKey a0)
11196  remove_attribute(CHARMMAtom self, IntKey a0)
11197  remove_attribute(CHARMMAtom self, FloatsKey a0)
11198  remove_attribute(CHARMMAtom self, IntsKey a0)
11199  remove_attribute(CHARMMAtom self, StringKey a0)
11200  remove_attribute(CHARMMAtom self, ParticleIndexKey a0)
11201  remove_attribute(CHARMMAtom self, ObjectKey a0)
11202  remove_attribute(CHARMMAtom self, SparseFloatKey a0)
11203  remove_attribute(CHARMMAtom self, SparseIntKey a0)
11204  remove_attribute(CHARMMAtom self, SparseStringKey a0)
11205  remove_attribute(CHARMMAtom self, SparseParticleIndexKey a0)
11206  """
11207  return _IMP_atom.CHARMMAtom_remove_attribute(self, *args)
11208 
11209  def has_attribute(self, *args):
11210  r"""
11211  has_attribute(CHARMMAtom self, FloatKey a0) -> bool
11212  has_attribute(CHARMMAtom self, IntKey a0) -> bool
11213  has_attribute(CHARMMAtom self, FloatsKey a0) -> bool
11214  has_attribute(CHARMMAtom self, IntsKey a0) -> bool
11215  has_attribute(CHARMMAtom self, StringKey a0) -> bool
11216  has_attribute(CHARMMAtom self, ParticleIndexKey a0) -> bool
11217  has_attribute(CHARMMAtom self, ObjectKey a0) -> bool
11218  has_attribute(CHARMMAtom self, SparseFloatKey a0) -> bool
11219  has_attribute(CHARMMAtom self, SparseIntKey a0) -> bool
11220  has_attribute(CHARMMAtom self, SparseStringKey a0) -> bool
11221  has_attribute(CHARMMAtom self, SparseParticleIndexKey a0) -> bool
11222  """
11223  return _IMP_atom.CHARMMAtom_has_attribute(self, *args)
11224 
11225  def get_derivative(self, a0):
11226  r"""get_derivative(CHARMMAtom self, FloatKey a0) -> double"""
11227  return _IMP_atom.CHARMMAtom_get_derivative(self, a0)
11228 
11229  def get_name(self):
11230  r"""get_name(CHARMMAtom self) -> std::string"""
11231  return _IMP_atom.CHARMMAtom_get_name(self)
11232 
11233  def clear_caches(self):
11234  r"""clear_caches(CHARMMAtom self)"""
11235  return _IMP_atom.CHARMMAtom_clear_caches(self)
11236 
11237  def set_name(self, a0):
11238  r"""set_name(CHARMMAtom self, std::string a0)"""
11239  return _IMP_atom.CHARMMAtom_set_name(self, a0)
11240 
11241  def set_check_level(self, a0):
11242  r"""set_check_level(CHARMMAtom self, IMP::CheckLevel a0)"""
11243  return _IMP_atom.CHARMMAtom_set_check_level(self, a0)
11244 
11245  def add_to_derivative(self, a0, a1, a2):
11246  r"""add_to_derivative(CHARMMAtom self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
11247  return _IMP_atom.CHARMMAtom_add_to_derivative(self, a0, a1, a2)
11248 
11249  def set_is_optimized(self, a0, a1):
11250  r"""set_is_optimized(CHARMMAtom self, FloatKey a0, bool a1)"""
11251  return _IMP_atom.CHARMMAtom_set_is_optimized(self, a0, a1)
11252 
11253  def get_is_optimized(self, a0):
11254  r"""get_is_optimized(CHARMMAtom self, FloatKey a0) -> bool"""
11255  return _IMP_atom.CHARMMAtom_get_is_optimized(self, a0)
11256 
11257  def get_check_level(self):
11258  r"""get_check_level(CHARMMAtom self) -> IMP::CheckLevel"""
11259  return _IMP_atom.CHARMMAtom_get_check_level(self)
11260 
11261  def __eq__(self, *args):
11262  r"""
11263  __eq__(CHARMMAtom self, CHARMMAtom o) -> bool
11264  __eq__(CHARMMAtom self, Particle d) -> bool
11265  """
11266  return _IMP_atom.CHARMMAtom___eq__(self, *args)
11267 
11268  def __ne__(self, *args):
11269  r"""
11270  __ne__(CHARMMAtom self, CHARMMAtom o) -> bool
11271  __ne__(CHARMMAtom self, Particle d) -> bool
11272  """
11273  return _IMP_atom.CHARMMAtom___ne__(self, *args)
11274 
11275  def __le__(self, *args):
11276  r"""
11277  __le__(CHARMMAtom self, CHARMMAtom o) -> bool
11278  __le__(CHARMMAtom self, Particle d) -> bool
11279  """
11280  return _IMP_atom.CHARMMAtom___le__(self, *args)
11281 
11282  def __lt__(self, *args):
11283  r"""
11284  __lt__(CHARMMAtom self, CHARMMAtom o) -> bool
11285  __lt__(CHARMMAtom self, Particle d) -> bool
11286  """
11287  return _IMP_atom.CHARMMAtom___lt__(self, *args)
11288 
11289  def __ge__(self, *args):
11290  r"""
11291  __ge__(CHARMMAtom self, CHARMMAtom o) -> bool
11292  __ge__(CHARMMAtom self, Particle d) -> bool
11293  """
11294  return _IMP_atom.CHARMMAtom___ge__(self, *args)
11295 
11296  def __gt__(self, *args):
11297  r"""
11298  __gt__(CHARMMAtom self, CHARMMAtom o) -> bool
11299  __gt__(CHARMMAtom self, Particle d) -> bool
11300  """
11301  return _IMP_atom.CHARMMAtom___gt__(self, *args)
11302 
11303  def __hash__(self):
11304  r"""__hash__(CHARMMAtom self) -> std::size_t"""
11305  return _IMP_atom.CHARMMAtom___hash__(self)
11306 
11307  def __str__(self):
11308  r"""__str__(CHARMMAtom self) -> std::string"""
11309  return _IMP_atom.CHARMMAtom___str__(self)
11310 
11311  def __repr__(self):
11312  r"""__repr__(CHARMMAtom self) -> std::string"""
11313  return _IMP_atom.CHARMMAtom___repr__(self)
11314 
11315  def _get_as_binary(self):
11316  r"""_get_as_binary(CHARMMAtom self) -> PyObject *"""
11317  return _IMP_atom.CHARMMAtom__get_as_binary(self)
11318 
11319  def _set_from_binary(self, p):
11320  r"""_set_from_binary(CHARMMAtom self, PyObject * p)"""
11321  return _IMP_atom.CHARMMAtom__set_from_binary(self, p)
11322 
11323  def __getstate__(self):
11324  p = self._get_as_binary()
11325  if len(self.__dict__) > 1:
11326  d = self.__dict__.copy()
11327  del d['this']
11328  p = (d, p)
11329  return p
11330 
11331  def __setstate__(self, p):
11332  if not hasattr(self, 'this'):
11333  self.__init__()
11334  if isinstance(p, tuple):
11335  d, p = p
11336  self.__dict__.update(d)
11337  return self._set_from_binary(p)
11338 
11339  __swig_destroy__ = _IMP_atom.delete_CHARMMAtom
11340 
11341 # Register CHARMMAtom in _IMP_atom:
11342 _IMP_atom.CHARMMAtom_swigregister(CHARMMAtom)
11343 
11344 def get_charmm_untyped_atoms(hierarchy):
11345  r"""get_charmm_untyped_atoms(Hierarchy hierarchy) -> IMP::atom::Atoms"""
11346  return _IMP_atom.get_charmm_untyped_atoms(hierarchy)
11347 
11348 def remove_charmm_untyped_atoms(hierarchy):
11349  r"""remove_charmm_untyped_atoms(Hierarchy hierarchy)"""
11350  return _IMP_atom.remove_charmm_untyped_atoms(hierarchy)
11351 class CHARMMBondParameters(object):
11352  r"""Proxy of C++ IMP::atom::CHARMMBondParameters class."""
11353 
11354  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11355  force_constant = property(_IMP_atom.CHARMMBondParameters_force_constant_get, _IMP_atom.CHARMMBondParameters_force_constant_set, doc=r"""force_constant : double""")
11356  ideal = property(_IMP_atom.CHARMMBondParameters_ideal_get, _IMP_atom.CHARMMBondParameters_ideal_set, doc=r"""ideal : double""")
11357 
11358  def __init__(self):
11359  r"""__init__(CHARMMBondParameters self) -> CHARMMBondParameters"""
11360  _IMP_atom.CHARMMBondParameters_swiginit(self, _IMP_atom.new_CHARMMBondParameters())
11361 
11362  def show(self, *args):
11363  r"""show(CHARMMBondParameters self, _ostream out=std::cout)"""
11364  return _IMP_atom.CHARMMBondParameters_show(self, *args)
11365 
11366  def __str__(self):
11367  r"""__str__(CHARMMBondParameters self) -> std::string"""
11368  return _IMP_atom.CHARMMBondParameters___str__(self)
11369 
11370  def __repr__(self):
11371  r"""__repr__(CHARMMBondParameters self) -> std::string"""
11372  return _IMP_atom.CHARMMBondParameters___repr__(self)
11373 
11374  def _get_as_binary(self):
11375  r"""_get_as_binary(CHARMMBondParameters self) -> PyObject *"""
11376  return _IMP_atom.CHARMMBondParameters__get_as_binary(self)
11377 
11378  def _set_from_binary(self, p):
11379  r"""_set_from_binary(CHARMMBondParameters self, PyObject * p)"""
11380  return _IMP_atom.CHARMMBondParameters__set_from_binary(self, p)
11381 
11382  def __getstate__(self):
11383  p = self._get_as_binary()
11384  if len(self.__dict__) > 1:
11385  d = self.__dict__.copy()
11386  del d['this']
11387  p = (d, p)
11388  return p
11389 
11390  def __setstate__(self, p):
11391  if not hasattr(self, 'this'):
11392  self.__init__()
11393  if isinstance(p, tuple):
11394  d, p = p
11395  self.__dict__.update(d)
11396  return self._set_from_binary(p)
11397 
11398  __swig_destroy__ = _IMP_atom.delete_CHARMMBondParameters
11399 
11400 # Register CHARMMBondParameters in _IMP_atom:
11401 _IMP_atom.CHARMMBondParameters_swigregister(CHARMMBondParameters)
11402 class CHARMMDihedralParameters(object):
11403  r"""Proxy of C++ IMP::atom::CHARMMDihedralParameters class."""
11404 
11405  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11406  force_constant = property(_IMP_atom.CHARMMDihedralParameters_force_constant_get, _IMP_atom.CHARMMDihedralParameters_force_constant_set, doc=r"""force_constant : double""")
11407  multiplicity = property(_IMP_atom.CHARMMDihedralParameters_multiplicity_get, _IMP_atom.CHARMMDihedralParameters_multiplicity_set, doc=r"""multiplicity : int""")
11408  ideal = property(_IMP_atom.CHARMMDihedralParameters_ideal_get, _IMP_atom.CHARMMDihedralParameters_ideal_set, doc=r"""ideal : double""")
11409 
11410  def __init__(self):
11411  r"""__init__(CHARMMDihedralParameters self) -> CHARMMDihedralParameters"""
11412  _IMP_atom.CHARMMDihedralParameters_swiginit(self, _IMP_atom.new_CHARMMDihedralParameters())
11413 
11414  def show(self, *args):
11415  r"""show(CHARMMDihedralParameters self, _ostream out=std::cout)"""
11416  return _IMP_atom.CHARMMDihedralParameters_show(self, *args)
11417 
11418  def __str__(self):
11419  r"""__str__(CHARMMDihedralParameters self) -> std::string"""
11420  return _IMP_atom.CHARMMDihedralParameters___str__(self)
11421 
11422  def __repr__(self):
11423  r"""__repr__(CHARMMDihedralParameters self) -> std::string"""
11424  return _IMP_atom.CHARMMDihedralParameters___repr__(self)
11425 
11426  def _get_as_binary(self):
11427  r"""_get_as_binary(CHARMMDihedralParameters self) -> PyObject *"""
11428  return _IMP_atom.CHARMMDihedralParameters__get_as_binary(self)
11429 
11430  def _set_from_binary(self, p):
11431  r"""_set_from_binary(CHARMMDihedralParameters self, PyObject * p)"""
11432  return _IMP_atom.CHARMMDihedralParameters__set_from_binary(self, p)
11433 
11434  def __getstate__(self):
11435  p = self._get_as_binary()
11436  if len(self.__dict__) > 1:
11437  d = self.__dict__.copy()
11438  del d['this']
11439  p = (d, p)
11440  return p
11441 
11442  def __setstate__(self, p):
11443  if not hasattr(self, 'this'):
11444  self.__init__()
11445  if isinstance(p, tuple):
11446  d, p = p
11447  self.__dict__.update(d)
11448  return self._set_from_binary(p)
11449 
11450  __swig_destroy__ = _IMP_atom.delete_CHARMMDihedralParameters
11451 
11452 # Register CHARMMDihedralParameters in _IMP_atom:
11453 _IMP_atom.CHARMMDihedralParameters_swigregister(CHARMMDihedralParameters)
11454 class CHARMMParameters(ForceFieldParameters):
11455  r"""Proxy of C++ IMP::atom::CHARMMParameters class."""
11456 
11457  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11458 
11459  def __init__(self, *args):
11460  r"""__init__(CHARMMParameters self, TextInput topology_file_name, TextInput par_file_name=IMP::TextInput(), bool translate_names_to_pdb=False) -> CHARMMParameters"""
11461  _IMP_atom.CHARMMParameters_swiginit(self, _IMP_atom.new_CHARMMParameters(*args))
11462 
11463  def add_residue_topology(self, res):
11464  r"""add_residue_topology(CHARMMParameters self, CHARMMIdealResidueTopology res)"""
11465  return _IMP_atom.CHARMMParameters_add_residue_topology(self, res)
11466 
11467  def get_residue_topology(self, type):
11468  r"""get_residue_topology(CHARMMParameters self, ResidueType type) -> CHARMMIdealResidueTopology"""
11469  return _IMP_atom.CHARMMParameters_get_residue_topology(self, type)
11470 
11471  def add_patch(self, patch):
11472  r"""add_patch(CHARMMParameters self, CHARMMPatch patch)"""
11473  return _IMP_atom.CHARMMParameters_add_patch(self, patch)
11474 
11475  def get_patch(self, name):
11476  r"""get_patch(CHARMMParameters self, std::string name) -> CHARMMPatch"""
11477  return _IMP_atom.CHARMMParameters_get_patch(self, name)
11478 
11479  def create_topology(self, hierarchy):
11480  r"""create_topology(CHARMMParameters self, Hierarchy hierarchy) -> CHARMMTopology"""
11481  return _IMP_atom.CHARMMParameters_create_topology(self, hierarchy)
11482 
11483  def get_bond_parameters(self, type1, type2):
11484  r"""get_bond_parameters(CHARMMParameters self, std::string type1, std::string type2) -> CHARMMBondParameters"""
11485  return _IMP_atom.CHARMMParameters_get_bond_parameters(self, type1, type2)
11486 
11487  def get_angle_parameters(self, type1, type2, type3):
11488  r"""get_angle_parameters(CHARMMParameters self, std::string type1, std::string type2, std::string type3) -> CHARMMBondParameters"""
11489  return _IMP_atom.CHARMMParameters_get_angle_parameters(self, type1, type2, type3)
11490 
11491  def get_dihedral_parameters(self, type1, type2, type3, type4):
11492  r"""get_dihedral_parameters(CHARMMParameters self, std::string type1, std::string type2, std::string type3, std::string type4) -> IMP::atom::CHARMMDihedralParametersList"""
11493  return _IMP_atom.CHARMMParameters_get_dihedral_parameters(self, type1, type2, type3, type4)
11494 
11495  def get_improper_parameters(self, type1, type2, type3, type4):
11496  r"""get_improper_parameters(CHARMMParameters self, std::string type1, std::string type2, std::string type3, std::string type4) -> CHARMMDihedralParameters"""
11497  return _IMP_atom.CHARMMParameters_get_improper_parameters(self, type1, type2, type3, type4)
11498 
11499  def create_angles(self, bonds):
11500  r"""create_angles(CHARMMParameters self, IMP::Particles bonds) -> IMP::Particles"""
11501  return _IMP_atom.CHARMMParameters_create_angles(self, bonds)
11502 
11503  def create_dihedrals(self, bonds):
11504  r"""create_dihedrals(CHARMMParameters self, IMP::Particles bonds) -> IMP::Particles"""
11505  return _IMP_atom.CHARMMParameters_create_dihedrals(self, bonds)
11506 
11507  def get_version_info(self):
11508  r"""get_version_info(CHARMMParameters self) -> VersionInfo"""
11509  return _IMP_atom.CHARMMParameters_get_version_info(self)
11510  __swig_destroy__ = _IMP_atom.delete_CHARMMParameters
11511 
11512  def __str__(self):
11513  r"""__str__(CHARMMParameters self) -> std::string"""
11514  return _IMP_atom.CHARMMParameters___str__(self)
11515 
11516  def __repr__(self):
11517  r"""__repr__(CHARMMParameters self) -> std::string"""
11518  return _IMP_atom.CHARMMParameters___repr__(self)
11519 
11520  @staticmethod
11521  def get_from(o):
11522  return _object_cast_to_CHARMMParameters(o)
11523 
11524 
11525 # Register CHARMMParameters in _IMP_atom:
11526 _IMP_atom.CHARMMParameters_swigregister(CHARMMParameters)
11527 
11529  r"""get_heavy_atom_CHARMM_parameters() -> CHARMMParameters"""
11530  return _IMP_atom.get_heavy_atom_CHARMM_parameters()
11531 
11533  r"""get_all_atom_CHARMM_parameters() -> CHARMMParameters"""
11534  return _IMP_atom.get_all_atom_CHARMM_parameters()
11535 class CHARMMSegmentTopology(IMP.Object):
11536  r"""Proxy of C++ IMP::atom::CHARMMSegmentTopology class."""
11537 
11538  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11539  def __get_residues(self): return IMP._list_util.VarList(getdimfunc=self.get_number_of_residues, getfunc=self.get_residue, erasefunc=self.erase_residue, appendfunc=self.add_residue, extendfunc=self.add_residues, clearfunc=self.clear_residues, indexfunc=self._python_index_residue)
11540  def __set_residues(self, obj): IMP._list_util.set_varlist(self.residues, obj)
11541  def __del_residues(self): IMP._list_util.del_varlist(self.residues)
11542  residues = property(__get_residues, __set_residues, __del_residues, doc="List of ##ucnames")
11543 
11544  def remove_residue(self, d):
11545  r"""remove_residue(CHARMMSegmentTopology self, CHARMMResidueTopology d)"""
11546  return _IMP_atom.CHARMMSegmentTopology_remove_residue(self, d)
11547 
11548  def _python_index_residue(self, d, start, stop):
11549  r"""_python_index_residue(CHARMMSegmentTopology self, CHARMMResidueTopology d, unsigned int start, unsigned int stop) -> unsigned int"""
11550  return _IMP_atom.CHARMMSegmentTopology__python_index_residue(self, d, start, stop)
11551 
11552  def remove_residues(self, d):
11553  r"""remove_residues(CHARMMSegmentTopology self, IMP::atom::CHARMMResidueTopologies const & d)"""
11554  return _IMP_atom.CHARMMSegmentTopology_remove_residues(self, d)
11555 
11556  def set_residues(self, ps):
11557  r"""set_residues(CHARMMSegmentTopology self, IMP::atom::CHARMMResidueTopologies const & ps)"""
11558  return _IMP_atom.CHARMMSegmentTopology_set_residues(self, ps)
11559 
11560  def set_residues_order(self, objs):
11561  r"""set_residues_order(CHARMMSegmentTopology self, IMP::atom::CHARMMResidueTopologies const & objs)"""
11562  return _IMP_atom.CHARMMSegmentTopology_set_residues_order(self, objs)
11563 
11564  def add_residue(self, obj):
11565  r"""add_residue(CHARMMSegmentTopology self, CHARMMResidueTopology obj) -> unsigned int"""
11566  return _IMP_atom.CHARMMSegmentTopology_add_residue(self, obj)
11567 
11568  def add_residues(self, objs):
11569  r"""add_residues(CHARMMSegmentTopology self, IMP::atom::CHARMMResidueTopologies const & objs)"""
11570  return _IMP_atom.CHARMMSegmentTopology_add_residues(self, objs)
11571 
11572  def clear_residues(self):
11573  r"""clear_residues(CHARMMSegmentTopology self)"""
11574  return _IMP_atom.CHARMMSegmentTopology_clear_residues(self)
11575 
11576  def get_number_of_residues(self):
11577  r"""get_number_of_residues(CHARMMSegmentTopology self) -> unsigned int"""
11578  return _IMP_atom.CHARMMSegmentTopology_get_number_of_residues(self)
11579 
11580  def get_has_residues(self):
11581  r"""get_has_residues(CHARMMSegmentTopology self) -> bool"""
11582  return _IMP_atom.CHARMMSegmentTopology_get_has_residues(self)
11583 
11584  def get_residue(self, i):
11585  r"""get_residue(CHARMMSegmentTopology self, unsigned int i) -> CHARMMResidueTopology"""
11586  return _IMP_atom.CHARMMSegmentTopology_get_residue(self, i)
11587 
11588  def get_residues(self):
11589  r"""get_residues(CHARMMSegmentTopology self) -> IMP::atom::CHARMMResidueTopologies"""
11590  return _IMP_atom.CHARMMSegmentTopology_get_residues(self)
11591 
11592  def erase_residue(self, i):
11593  r"""erase_residue(CHARMMSegmentTopology self, unsigned int i)"""
11594  return _IMP_atom.CHARMMSegmentTopology_erase_residue(self, i)
11595 
11596  def reserve_residues(self, sz):
11597  r"""reserve_residues(CHARMMSegmentTopology self, unsigned int sz)"""
11598  return _IMP_atom.CHARMMSegmentTopology_reserve_residues(self, sz)
11599 
11600  def get_version_info(self):
11601  r"""get_version_info(CHARMMSegmentTopology self) -> VersionInfo"""
11602  return _IMP_atom.CHARMMSegmentTopology_get_version_info(self)
11603  __swig_destroy__ = _IMP_atom.delete_CHARMMSegmentTopology
11604 
11605  def __init__(self, *args):
11606  r"""__init__(CHARMMSegmentTopology self, std::string name="CHARMM segment topology %1%") -> CHARMMSegmentTopology"""
11607  _IMP_atom.CHARMMSegmentTopology_swiginit(self, _IMP_atom.new_CHARMMSegmentTopology(*args))
11608 
11609  def apply_default_patches(self, ff):
11610  r"""apply_default_patches(CHARMMSegmentTopology self, CHARMMParameters ff)"""
11611  return _IMP_atom.CHARMMSegmentTopology_apply_default_patches(self, ff)
11612 
11613  def __str__(self):
11614  r"""__str__(CHARMMSegmentTopology self) -> std::string"""
11615  return _IMP_atom.CHARMMSegmentTopology___str__(self)
11616 
11617  def __repr__(self):
11618  r"""__repr__(CHARMMSegmentTopology self) -> std::string"""
11619  return _IMP_atom.CHARMMSegmentTopology___repr__(self)
11620 
11621  @staticmethod
11622  def get_from(o):
11623  return _object_cast_to_CHARMMSegmentTopology(o)
11624 
11625 
11626 # Register CHARMMSegmentTopology in _IMP_atom:
11627 _IMP_atom.CHARMMSegmentTopology_swigregister(CHARMMSegmentTopology)
11628 class CHARMMTopology(IMP.Object):
11629  r"""Proxy of C++ IMP::atom::CHARMMTopology class."""
11630 
11631  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11632 
11633  def __init__(self, *args):
11634  r"""__init__(CHARMMTopology self, CHARMMParameters force_field, std::string name="CHARMM topology %1%") -> CHARMMTopology"""
11635  _IMP_atom.CHARMMTopology_swiginit(self, _IMP_atom.new_CHARMMTopology(*args))
11636 
11637  def get_parameters(self):
11638  r"""get_parameters(CHARMMTopology self) -> CHARMMParameters"""
11639  return _IMP_atom.CHARMMTopology_get_parameters(self)
11640 
11641  def add_sequence(self, sequence):
11642  r"""add_sequence(CHARMMTopology self, std::string sequence)"""
11643  return _IMP_atom.CHARMMTopology_add_sequence(self, sequence)
11644 
11645  def apply_default_patches(self):
11646  r"""apply_default_patches(CHARMMTopology self)"""
11647  return _IMP_atom.CHARMMTopology_apply_default_patches(self)
11648 
11649  def create_hierarchy(self, model):
11650  r"""create_hierarchy(CHARMMTopology self, Model model) -> Hierarchy"""
11651  return _IMP_atom.CHARMMTopology_create_hierarchy(self, model)
11652 
11653  def add_atom_types(self, hierarchy):
11654  r"""add_atom_types(CHARMMTopology self, Hierarchy hierarchy)"""
11655  return _IMP_atom.CHARMMTopology_add_atom_types(self, hierarchy)
11656 
11657  def add_coordinates(self, hierarchy):
11658  r"""add_coordinates(CHARMMTopology self, Hierarchy hierarchy)"""
11659  return _IMP_atom.CHARMMTopology_add_coordinates(self, hierarchy)
11660 
11661  def add_missing_atoms(self, hierarchy):
11662  r"""add_missing_atoms(CHARMMTopology self, Hierarchy hierarchy)"""
11663  return _IMP_atom.CHARMMTopology_add_missing_atoms(self, hierarchy)
11664 
11665  def setup_hierarchy(self, hierarchy):
11666  r"""setup_hierarchy(CHARMMTopology self, Hierarchy hierarchy)"""
11667  return _IMP_atom.CHARMMTopology_setup_hierarchy(self, hierarchy)
11668 
11669  def add_charges(self, hierarchy):
11670  r"""add_charges(CHARMMTopology self, Hierarchy hierarchy)"""
11671  return _IMP_atom.CHARMMTopology_add_charges(self, hierarchy)
11672 
11673  def add_bonds(self, hierarchy):
11674  r"""add_bonds(CHARMMTopology self, Hierarchy hierarchy) -> IMP::Particles"""
11675  return _IMP_atom.CHARMMTopology_add_bonds(self, hierarchy)
11676 
11677  def add_dihedrals(self, hierarchy):
11678  r"""add_dihedrals(CHARMMTopology self, Hierarchy hierarchy) -> IMP::Particles"""
11679  return _IMP_atom.CHARMMTopology_add_dihedrals(self, hierarchy)
11680 
11681  def add_impropers(self, hierarchy):
11682  r"""add_impropers(CHARMMTopology self, Hierarchy hierarchy) -> IMP::Particles"""
11683  return _IMP_atom.CHARMMTopology_add_impropers(self, hierarchy)
11684  def __get_segments(self): return IMP._list_util.VarList(getdimfunc=self.get_number_of_segments, getfunc=self.get_segment, erasefunc=self.erase_segment, appendfunc=self.add_segment, extendfunc=self.add_segments, clearfunc=self.clear_segments, indexfunc=self._python_index_segment)
11685  def __set_segments(self, obj): IMP._list_util.set_varlist(self.segments, obj)
11686  def __del_segments(self): IMP._list_util.del_varlist(self.segments)
11687  segments = property(__get_segments, __set_segments, __del_segments, doc="List of ##ucnames")
11688 
11689  def remove_segment(self, d):
11690  r"""remove_segment(CHARMMTopology self, CHARMMSegmentTopology d)"""
11691  return _IMP_atom.CHARMMTopology_remove_segment(self, d)
11692 
11693  def _python_index_segment(self, d, start, stop):
11694  r"""_python_index_segment(CHARMMTopology self, CHARMMSegmentTopology d, unsigned int start, unsigned int stop) -> unsigned int"""
11695  return _IMP_atom.CHARMMTopology__python_index_segment(self, d, start, stop)
11696 
11697  def remove_segments(self, d):
11698  r"""remove_segments(CHARMMTopology self, IMP::atom::CHARMMSegmentTopologies const & d)"""
11699  return _IMP_atom.CHARMMTopology_remove_segments(self, d)
11700 
11701  def set_segments(self, ps):
11702  r"""set_segments(CHARMMTopology self, IMP::atom::CHARMMSegmentTopologies const & ps)"""
11703  return _IMP_atom.CHARMMTopology_set_segments(self, ps)
11704 
11705  def set_segments_order(self, objs):
11706  r"""set_segments_order(CHARMMTopology self, IMP::atom::CHARMMSegmentTopologies const & objs)"""
11707  return _IMP_atom.CHARMMTopology_set_segments_order(self, objs)
11708 
11709  def add_segment(self, obj):
11710  r"""add_segment(CHARMMTopology self, CHARMMSegmentTopology obj) -> unsigned int"""
11711  return _IMP_atom.CHARMMTopology_add_segment(self, obj)
11712 
11713  def add_segments(self, objs):
11714  r"""add_segments(CHARMMTopology self, IMP::atom::CHARMMSegmentTopologies const & objs)"""
11715  return _IMP_atom.CHARMMTopology_add_segments(self, objs)
11716 
11717  def clear_segments(self):
11718  r"""clear_segments(CHARMMTopology self)"""
11719  return _IMP_atom.CHARMMTopology_clear_segments(self)
11720 
11721  def get_number_of_segments(self):
11722  r"""get_number_of_segments(CHARMMTopology self) -> unsigned int"""
11723  return _IMP_atom.CHARMMTopology_get_number_of_segments(self)
11724 
11725  def get_has_segments(self):
11726  r"""get_has_segments(CHARMMTopology self) -> bool"""
11727  return _IMP_atom.CHARMMTopology_get_has_segments(self)
11728 
11729  def get_segment(self, i):
11730  r"""get_segment(CHARMMTopology self, unsigned int i) -> CHARMMSegmentTopology"""
11731  return _IMP_atom.CHARMMTopology_get_segment(self, i)
11732 
11733  def get_segments(self):
11734  r"""get_segments(CHARMMTopology self) -> IMP::atom::CHARMMSegmentTopologies"""
11735  return _IMP_atom.CHARMMTopology_get_segments(self)
11736 
11737  def erase_segment(self, i):
11738  r"""erase_segment(CHARMMTopology self, unsigned int i)"""
11739  return _IMP_atom.CHARMMTopology_erase_segment(self, i)
11740 
11741  def reserve_segments(self, sz):
11742  r"""reserve_segments(CHARMMTopology self, unsigned int sz)"""
11743  return _IMP_atom.CHARMMTopology_reserve_segments(self, sz)
11744 
11745  def get_version_info(self):
11746  r"""get_version_info(CHARMMTopology self) -> VersionInfo"""
11747  return _IMP_atom.CHARMMTopology_get_version_info(self)
11748  __swig_destroy__ = _IMP_atom.delete_CHARMMTopology
11749 
11750  def __str__(self):
11751  r"""__str__(CHARMMTopology self) -> std::string"""
11752  return _IMP_atom.CHARMMTopology___str__(self)
11753 
11754  def __repr__(self):
11755  r"""__repr__(CHARMMTopology self) -> std::string"""
11756  return _IMP_atom.CHARMMTopology___repr__(self)
11757 
11758  @staticmethod
11759  def get_from(o):
11760  return _object_cast_to_CHARMMTopology(o)
11761 
11762 
11763 # Register CHARMMTopology in _IMP_atom:
11764 _IMP_atom.CHARMMTopology_swigregister(CHARMMTopology)
11765 class CHARMMStereochemistryRestraint(IMP.Restraint):
11766  r"""Proxy of C++ IMP::atom::CHARMMStereochemistryRestraint class."""
11767 
11768  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11769 
11770  def __init__(self, *args):
11771  r"""
11772  __init__(CHARMMStereochemistryRestraint self, Hierarchy h, CHARMMTopology topology) -> CHARMMStereochemistryRestraint
11773  __init__(CHARMMStereochemistryRestraint self, Hierarchy h, CHARMMTopology topology, IMP::ParticlesTemp limit_to_these_particles) -> CHARMMStereochemistryRestraint
11774  """
11775  _IMP_atom.CHARMMStereochemistryRestraint_swiginit(self, _IMP_atom.new_CHARMMStereochemistryRestraint(*args))
11776 
11777  def get_pair_filter(self):
11778  r"""get_pair_filter(CHARMMStereochemistryRestraint self) -> StereochemistryPairFilter"""
11779  return _IMP_atom.CHARMMStereochemistryRestraint_get_pair_filter(self)
11780 
11781  def get_full_pair_filter(self):
11782  r"""get_full_pair_filter(CHARMMStereochemistryRestraint self) -> StereochemistryPairFilter"""
11783  return _IMP_atom.CHARMMStereochemistryRestraint_get_full_pair_filter(self)
11784 
11785  def do_get_inputs(self):
11786  r"""do_get_inputs(CHARMMStereochemistryRestraint self) -> IMP::ModelObjectsTemp"""
11787  return _IMP_atom.CHARMMStereochemistryRestraint_do_get_inputs(self)
11788 
11789  def get_version_info(self):
11790  r"""get_version_info(CHARMMStereochemistryRestraint self) -> VersionInfo"""
11791  return _IMP_atom.CHARMMStereochemistryRestraint_get_version_info(self)
11792  __swig_destroy__ = _IMP_atom.delete_CHARMMStereochemistryRestraint
11793 
11794  def __str__(self):
11795  r"""__str__(CHARMMStereochemistryRestraint self) -> std::string"""
11796  return _IMP_atom.CHARMMStereochemistryRestraint___str__(self)
11797 
11798  def __repr__(self):
11799  r"""__repr__(CHARMMStereochemistryRestraint self) -> std::string"""
11800  return _IMP_atom.CHARMMStereochemistryRestraint___repr__(self)
11801 
11802  @staticmethod
11803  def get_from(o):
11804  return _object_cast_to_CHARMMStereochemistryRestraint(o)
11805 
11806 
11807 # Register CHARMMStereochemistryRestraint in _IMP_atom:
11808 _IMP_atom.CHARMMStereochemistryRestraint_swigregister(CHARMMStereochemistryRestraint)
11809 
11810 def add_bonds(*args):
11811  r"""add_bonds(Hierarchy d, ForceFieldParameters ffp=IMP::atom::get_all_atom_CHARMM_parameters())"""
11812  return _IMP_atom.add_bonds(*args)
11813 
11814 def add_radii(*args):
11815  r"""add_radii(Hierarchy d, ForceFieldParameters ffp=IMP::atom::get_all_atom_CHARMM_parameters(), FloatKey radius_key=IMP::FloatKey("radius"))"""
11816  return _IMP_atom.add_radii(*args)
11817 ALBER = _IMP_atom.ALBER
11818 
11819 HARPAZ = _IMP_atom.HARPAZ
11820 
11821 ANDERSSON = _IMP_atom.ANDERSSON
11822 
11823 TSAI = _IMP_atom.TSAI
11824 
11825 QUILLIN = _IMP_atom.QUILLIN
11826 
11827 SQUIRE = _IMP_atom.SQUIRE
11828 
11829 
11830 def get_protein_density_from_reference(densityReference):
11831  r"""get_protein_density_from_reference(IMP::atom::ProteinDensityReference densityReference) -> double"""
11832  return _IMP_atom.get_protein_density_from_reference(densityReference)
11833 
11834 def get_volume_from_mass(*args):
11835  r"""get_volume_from_mass(double m, IMP::atom::ProteinDensityReference ref=ALBER) -> double"""
11836  return _IMP_atom.get_volume_from_mass(*args)
11837 
11838 def get_mass_from_volume(*args):
11839  r"""get_mass_from_volume(double v, IMP::atom::ProteinDensityReference ref=ALBER) -> double"""
11840  return _IMP_atom.get_mass_from_volume(*args)
11841 
11843  r"""get_mass_from_number_of_residues(unsigned int num_aa) -> double"""
11844  return _IMP_atom.get_mass_from_number_of_residues(num_aa)
11845 
11847  r"""get_volume_from_residue_type(ResidueType rt) -> double"""
11848  return _IMP_atom.get_volume_from_residue_type(rt)
11849 
11850 def get_molarity(n, volume):
11851  r"""get_molarity(double n, double volume) -> double"""
11852  return _IMP_atom.get_molarity(n, volume)
11853 
11854 def get_kd(na, nb, nab, volume):
11855  r"""get_kd(double na, double nb, double nab, double volume) -> double"""
11856  return _IMP_atom.get_kd(na, nb, nab, volume)
11857 
11858 def get_einstein_diffusion_coefficient(r, temp=-1):
11859  r"""get_einstein_diffusion_coefficient(double r, double temp=-1) -> double"""
11860  return _IMP_atom.get_einstein_diffusion_coefficient(r, temp)
11861 
11863  r"""get_einstein_rotational_diffusion_coefficient(double r, double temp=-1) -> double"""
11864  return _IMP_atom.get_einstein_rotational_diffusion_coefficient(r, temp)
11865 
11866 def get_diffusion_length(*args):
11867  r"""
11868  get_diffusion_length(double D, double t) -> double
11869  get_diffusion_length(double D, double force, double t, double temp=-1) -> double
11870  """
11871  return _IMP_atom.get_diffusion_length(*args)
11872 
11873 def get_diffusion_angle(D, dtfs):
11874  r"""get_diffusion_angle(double D, double dtfs) -> double"""
11875  return _IMP_atom.get_diffusion_angle(D, dtfs)
11876 
11877 def get_diffusion_coefficient(*args):
11878  r"""
11879  get_diffusion_coefficient(IMP::algebra::Vector3Ds const & displacements, double dt) -> double
11880  get_diffusion_coefficient(IMP::algebra::Vector3Ds const & displacements, IMP::Floats const & dts) -> double
11881  """
11882  return _IMP_atom.get_diffusion_coefficient(*args)
11883 
11884 def get_rotational_diffusion_coefficient(orientations, dt):
11885  r"""get_rotational_diffusion_coefficient(IMP::algebra::Rotation3Ds const & orientations, double dt) -> double"""
11886  return _IMP_atom.get_rotational_diffusion_coefficient(orientations, dt)
11887 
11888 def get_energy_in_femto_joules(energy_in_kcal_per_mol):
11889  r"""get_energy_in_femto_joules(double energy_in_kcal_per_mol) -> double"""
11890  return _IMP_atom.get_energy_in_femto_joules(energy_in_kcal_per_mol)
11891 
11892 def get_force_in_femto_newtons(force_in_kcal_per_mol_per_angstrom):
11893  r"""get_force_in_femto_newtons(double force_in_kcal_per_mol_per_angstrom) -> double"""
11894  return _IMP_atom.get_force_in_femto_newtons(force_in_kcal_per_mol_per_angstrom)
11895 
11896 def get_spring_constant_in_femto_newtons_per_angstrom(k_in_kcal_per_mol_per_angstrom_square):
11897  r"""get_spring_constant_in_femto_newtons_per_angstrom(double k_in_kcal_per_mol_per_angstrom_square) -> double"""
11898  return _IMP_atom.get_spring_constant_in_femto_newtons_per_angstrom(k_in_kcal_per_mol_per_angstrom_square)
11899 class EzRestraint(IMP.Restraint):
11900  r"""Proxy of C++ IMP::atom::EzRestraint class."""
11901 
11902  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11903 
11904  def __init__(self, m, ps):
11905  r"""__init__(EzRestraint self, Model m, _ParticleIndexesAdaptor ps) -> EzRestraint"""
11906  _IMP_atom.EzRestraint_swiginit(self, _IMP_atom.new_EzRestraint(m, ps))
11907 
11908  def get_version_info(self):
11909  r"""get_version_info(EzRestraint self) -> VersionInfo"""
11910  return _IMP_atom.EzRestraint_get_version_info(self)
11911  __swig_destroy__ = _IMP_atom.delete_EzRestraint
11912 
11913  def __str__(self):
11914  r"""__str__(EzRestraint self) -> std::string"""
11915  return _IMP_atom.EzRestraint___str__(self)
11916 
11917  def __repr__(self):
11918  r"""__repr__(EzRestraint self) -> std::string"""
11919  return _IMP_atom.EzRestraint___repr__(self)
11920 
11921  @staticmethod
11922  def get_from(o):
11923  return _object_cast_to_EzRestraint(o)
11924 
11925 
11926 # Register EzRestraint in _IMP_atom:
11927 _IMP_atom.EzRestraint_swigregister(EzRestraint)
11928 
11929 def create_protein(*args):
11930  r"""
11931  create_protein(Model m, std::string name, double target_radius, int number_of_residues, int first_residue_index=0, double volume=-1, bool ismol=True) -> Hierarchy
11932  create_protein(Model m, std::string name, double target_radius, IMP::Ints const domain_boundaries) -> Hierarchy
11933  """
11934  return _IMP_atom.create_protein(*args)
11935 
11937  r"""
11938  create_simplified_along_backbone(Hierarchy input, int num_res, bool keep_detailed=False, Model m=None) -> Hierarchy
11939  create_simplified_along_backbone(Chain input, IMP::IntRanges const & residue_segments, bool keep_detailed=False, Model m=None) -> Hierarchy
11940  """
11941  return _IMP_atom.create_simplified_along_backbone(*args)
11942 
11943 def create_simplified_from_volume(h, resolution):
11944  r"""create_simplified_from_volume(Hierarchy h, double resolution) -> Hierarchy"""
11945  return _IMP_atom.create_simplified_from_volume(h, resolution)
11946 
11947 def create_simplified_assembly_from_volume(h, resolution):
11948  r"""create_simplified_assembly_from_volume(Hierarchy h, double resolution) -> Hierarchy"""
11949  return _IMP_atom.create_simplified_assembly_from_volume(h, resolution)
11950 
11951 def get_residue_indexes(h):
11952  r"""get_residue_indexes(Hierarchy h) -> IMP::Ints"""
11953  return _IMP_atom.get_residue_indexes(h)
11954 
11955 def get_residue_type(*args):
11956  r"""
11957  get_residue_type(char c) -> ResidueType
11958  get_residue_type(Hierarchy h) -> ResidueType
11959  """
11960  return _IMP_atom.get_residue_type(*args)
11961 
11962 def get_atom_type(h):
11963  r"""get_atom_type(Hierarchy h) -> AtomType"""
11964  return _IMP_atom.get_atom_type(h)
11965 
11966 def get_domain_name(h):
11967  r"""get_domain_name(Hierarchy h) -> std::string"""
11968  return _IMP_atom.get_domain_name(h)
11969 
11971  r"""
11972  create_excluded_volume_restraint(IMP::atom::Selections const & s) -> Restraint
11973  create_excluded_volume_restraint(IMP::atom::Hierarchies const & hs, double resolution=-1) -> Restraint
11974  """
11975  return _IMP_atom.create_excluded_volume_restraint(*args)
11976 
11977 def setup_as_approximation(*args):
11978  r"""
11979  setup_as_approximation(Particle h, IMP::ParticlesTemp const & other, double resolution=-1)
11980  setup_as_approximation(Hierarchy h, double resolution=-1)
11981  """
11982  return _IMP_atom.setup_as_approximation(*args)
11983 class _HierarchyTreeVertexIndex(object):
11984  r"""Proxy of C++ IMP::atom::HierarchyTreeVertexIndex class."""
11985 
11986  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11987  __repr__ = _swig_repr
11988 
11989  def __init__(self):
11990  r"""__init__(_HierarchyTreeVertexIndex self) -> _HierarchyTreeVertexIndex"""
11991  _IMP_atom._HierarchyTreeVertexIndex_swiginit(self, _IMP_atom.new__HierarchyTreeVertexIndex())
11992  __swig_destroy__ = _IMP_atom.delete__HierarchyTreeVertexIndex
11993 
11994 # Register _HierarchyTreeVertexIndex in _IMP_atom:
11995 _IMP_atom._HierarchyTreeVertexIndex_swigregister(_HierarchyTreeVertexIndex)
11996 
11997 def show_as_graphviz(name, out):
11998  r"""show_as_graphviz(IMP::atom::HierarchyTree const & name, TextOutput out)"""
11999  return _IMP_atom.show_as_graphviz(name, out)
12000 
12001 def get_vertex_index(g):
12002  r"""get_vertex_index(IMP::atom::HierarchyTree const & g) -> _HierarchyTreeVertexIndex"""
12003  return _IMP_atom.get_vertex_index(g)
12004 
12005 def get_hierarchy_tree(h):
12006  r"""get_hierarchy_tree(Hierarchy h) -> IMP::atom::HierarchyTree"""
12007  return _IMP_atom.get_hierarchy_tree(h)
12008 class HierarchyGeometry(IMP.display.SingletonGeometry):
12009  r"""Proxy of C++ IMP::atom::HierarchyGeometry class."""
12010 
12011  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12012 
12013  def __init__(self, d, resolution=0):
12014  r"""__init__(HierarchyGeometry self, Hierarchy d, double resolution=0) -> HierarchyGeometry"""
12015  _IMP_atom.HierarchyGeometry_swiginit(self, _IMP_atom.new_HierarchyGeometry(d, resolution))
12016 
12017  def get_version_info(self):
12018  r"""get_version_info(HierarchyGeometry self) -> VersionInfo"""
12019  return _IMP_atom.HierarchyGeometry_get_version_info(self)
12020  __swig_destroy__ = _IMP_atom.delete_HierarchyGeometry
12021 
12022  def __str__(self):
12023  r"""__str__(HierarchyGeometry self) -> std::string"""
12024  return _IMP_atom.HierarchyGeometry___str__(self)
12025 
12026  def __repr__(self):
12027  r"""__repr__(HierarchyGeometry self) -> std::string"""
12028  return _IMP_atom.HierarchyGeometry___repr__(self)
12029 
12030  @staticmethod
12031  def get_from(o):
12032  return _object_cast_to_HierarchyGeometry(o)
12033 
12034 
12035 # Register HierarchyGeometry in _IMP_atom:
12036 _IMP_atom.HierarchyGeometry_swigregister(HierarchyGeometry)
12037 class HierarchiesGeometry(IMP.display.SingletonsGeometry):
12038  r"""Proxy of C++ IMP::atom::HierarchiesGeometry class."""
12039 
12040  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12041 
12042  def __init__(self, sc, resolution=-1):
12043  r"""__init__(HierarchiesGeometry self, SingletonContainer sc, double resolution=-1) -> HierarchiesGeometry"""
12044  _IMP_atom.HierarchiesGeometry_swiginit(self, _IMP_atom.new_HierarchiesGeometry(sc, resolution))
12045 
12046  def get_version_info(self):
12047  r"""get_version_info(HierarchiesGeometry self) -> VersionInfo"""
12048  return _IMP_atom.HierarchiesGeometry_get_version_info(self)
12049  __swig_destroy__ = _IMP_atom.delete_HierarchiesGeometry
12050 
12051  def __str__(self):
12052  r"""__str__(HierarchiesGeometry self) -> std::string"""
12053  return _IMP_atom.HierarchiesGeometry___str__(self)
12054 
12055  def __repr__(self):
12056  r"""__repr__(HierarchiesGeometry self) -> std::string"""
12057  return _IMP_atom.HierarchiesGeometry___repr__(self)
12058 
12059  @staticmethod
12060  def get_from(o):
12061  return _object_cast_to_HierarchiesGeometry(o)
12062 
12063 
12064 # Register HierarchiesGeometry in _IMP_atom:
12065 _IMP_atom.HierarchiesGeometry_swigregister(HierarchiesGeometry)
12066 
12067 def transform(*args):
12068  r"""
12069  transform(Hierarchy h, Transformation3D tr)
12070  transform(Hierarchy h, Transformation3D tr)
12071  """
12072  return _IMP_atom.transform(*args)
12073 class DopePairScore(_ADopeBase):
12074  r"""Proxy of C++ IMP::atom::DopePairScore class."""
12075 
12076  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12077 
12078  def __init__(self, *args):
12079  r"""
12080  __init__(DopePairScore self, double threshold=std::numeric_limits< double >::max()) -> DopePairScore
12081  __init__(DopePairScore self, double threshold, TextInput data_file) -> DopePairScore
12082  """
12083  _IMP_atom.DopePairScore_swiginit(self, _IMP_atom.new_DopePairScore(*args))
12084  __swig_destroy__ = _IMP_atom.delete_DopePairScore
12085 
12086  def __str__(self):
12087  r"""__str__(DopePairScore self) -> std::string"""
12088  return _IMP_atom.DopePairScore___str__(self)
12089 
12090  def __repr__(self):
12091  r"""__repr__(DopePairScore self) -> std::string"""
12092  return _IMP_atom.DopePairScore___repr__(self)
12093 
12094  @staticmethod
12095  def get_from(o):
12096  return _object_cast_to_DopePairScore(o)
12097 
12098 
12099  def _get_jax(self, m, indexes, space):
12100  import jax
12101  import numpy as np
12102  import jax.numpy as jnp
12103  from IMP.core._jax_util import _spline
12104  def score_one(jm, index, minrange, maxrange, spacing, values,
12105  second_derivs):
12106  # Score a single atom pair
12107  xyz = jm['xyz'][index]
12108  dr = space.distance(xyz[1] - xyz[0])
12109  dope_type_pair = jm['dope atom type']
12110  # Get index into values/second_derivs tables
12111  i = jnp.max(dope_type_pair[index])
12112  j = jnp.min(dope_type_pair[index])
12113  dope_type = i * (i + 1) // 2 + j
12114  # tabulated values are for the center of each bin, but
12115  # _spline works with the values at the low side of each bin
12116  x = dr - 0.5 * spacing
12117  # determine bin index and thus the cubic fragment to use:
12118  lowbin = jnp.array((x - minrange) / spacing, dtype=int)
12119  spline_score = _spline(x, minrange, lowbin, lowbin + 1, spacing,
12120  values[dope_type], second_derivs[dope_type])
12121  return jnp.where(
12122  dr <= minrange, 0.,
12123  jnp.where(dr >= maxrange, 0., spline_score))
12124  sf = self.get_score_functor()
12125  if sf.get_is_bipartite() or not sf.get_is_interpolated():
12126  raise TypeError("Only implemented for unipartite splines")
12127  ntyp = sf.get_number_of_particle_types()[0]
12128  # Get spline parameters for all atom types. The matrix is symmetric
12129  # so only store the upper diagonal
12130  values = []
12131  second_derivs = []
12132  for i in range(ntyp):
12133  for j in range(0, i + 1):
12134  values.append(sf.get_values(i, j))
12135  second_derivs.append(sf.get_second_derivatives(i, j))
12136  values = np.vstack(values)
12137  second_derivs = np.vstack(second_derivs)
12138  f = functools.partial(
12139  score_one, minrange=sf.get_offset(),
12140  maxrange=min(sf.get_max(), sf.get_threshold()),
12141  spacing=sf.get_spacing(), values=jnp.asarray(values),
12142  second_derivs=jnp.asarray(second_derivs))
12143  # Vectorize to take multiple indexes (second argument)
12144  # The values should show up in the last axis (-1)
12145  vf = jax.vmap(f, in_axes=(None, 0), out_axes=-1)
12146  return self._wrap_jax(m, lambda jm: vf(jm, indexes),
12147  keys=(sf.get_dope_type_key(),))
12148 
12149 
12150 # Register DopePairScore in _IMP_atom:
12151 _IMP_atom.DopePairScore_swigregister(DopePairScore)
12152 
12153 def add_dope_score_data(h):
12154  r"""add_dope_score_data(Hierarchy h)"""
12155  return _IMP_atom.add_dope_score_data(h)
12156 class LoopStatisticalPairScore(_ALoopStatisticalBase):
12157  r"""Proxy of C++ IMP::atom::LoopStatisticalPairScore class."""
12158 
12159  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12160 
12161  def __init__(self, *args):
12162  r"""
12163  __init__(LoopStatisticalPairScore self, double threshold=std::numeric_limits< double >::max()) -> LoopStatisticalPairScore
12164  __init__(LoopStatisticalPairScore self, double threshold, TextInput data_file) -> LoopStatisticalPairScore
12165  """
12166  _IMP_atom.LoopStatisticalPairScore_swiginit(self, _IMP_atom.new_LoopStatisticalPairScore(*args))
12167 
12168  def __str__(self):
12169  r"""__str__(LoopStatisticalPairScore self) -> std::string"""
12170  return _IMP_atom.LoopStatisticalPairScore___str__(self)
12171 
12172  def __repr__(self):
12173  r"""__repr__(LoopStatisticalPairScore self) -> std::string"""
12174  return _IMP_atom.LoopStatisticalPairScore___repr__(self)
12175 
12176  @staticmethod
12177  def get_from(o):
12178  return _object_cast_to_LoopStatisticalPairScore(o)
12179 
12180  __swig_destroy__ = _IMP_atom.delete_LoopStatisticalPairScore
12181 
12182 # Register LoopStatisticalPairScore in _IMP_atom:
12183 _IMP_atom.LoopStatisticalPairScore_swigregister(LoopStatisticalPairScore)
12184 
12186  r"""add_loop_statistical_score_data(Hierarchy h)"""
12187  return _IMP_atom.add_loop_statistical_score_data(h)
12188 class OrientedSoapPairScore(_OrientedSoapBase):
12189  r"""Proxy of C++ IMP::atom::OrientedSoapPairScore class."""
12190 
12191  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12192 
12193  def __init__(self, library):
12194  r"""__init__(OrientedSoapPairScore self, std::string library) -> OrientedSoapPairScore"""
12195  _IMP_atom.OrientedSoapPairScore_swiginit(self, _IMP_atom.new_OrientedSoapPairScore(library))
12196 
12197  def get_pair_filter(self):
12198  r"""get_pair_filter(OrientedSoapPairScore self) -> SoapPairFilter"""
12199  return _IMP_atom.OrientedSoapPairScore_get_pair_filter(self)
12200 
12201  def __str__(self):
12202  r"""__str__(OrientedSoapPairScore self) -> std::string"""
12203  return _IMP_atom.OrientedSoapPairScore___str__(self)
12204 
12205  def __repr__(self):
12206  r"""__repr__(OrientedSoapPairScore self) -> std::string"""
12207  return _IMP_atom.OrientedSoapPairScore___repr__(self)
12208 
12209  @staticmethod
12210  def get_from(o):
12211  return _object_cast_to_OrientedSoapPairScore(o)
12212 
12213  __swig_destroy__ = _IMP_atom.delete_OrientedSoapPairScore
12214 
12215 # Register OrientedSoapPairScore in _IMP_atom:
12216 _IMP_atom.OrientedSoapPairScore_swigregister(OrientedSoapPairScore)
12217 class SameResiduePairFilter(IMP.PairPredicate):
12218  r"""Proxy of C++ IMP::atom::SameResiduePairFilter class."""
12219 
12220  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12221 
12222  def __init__(self):
12223  r"""__init__(SameResiduePairFilter self) -> SameResiduePairFilter"""
12224  _IMP_atom.SameResiduePairFilter_swiginit(self, _IMP_atom.new_SameResiduePairFilter())
12225 
12226  def do_get_inputs(self, m, pis):
12227  r"""do_get_inputs(SameResiduePairFilter self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
12228  return _IMP_atom.SameResiduePairFilter_do_get_inputs(self, m, pis)
12229 
12230  def get_value(self, *args):
12231  r"""
12232  get_value(SameResiduePairFilter self, IMP::ParticlePair const & a) -> int
12233  get_value(SameResiduePairFilter self, IMP::ParticlePairsTemp const & o) -> IMP::Ints
12234  """
12235  return _IMP_atom.SameResiduePairFilter_get_value(self, *args)
12236 
12237  def get_value_index(self, *args):
12238  r"""
12239  get_value_index(SameResiduePairFilter self, Model m, IMP::ParticleIndexPair const & p) -> int
12240  get_value_index(SameResiduePairFilter self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
12241  """
12242  return _IMP_atom.SameResiduePairFilter_get_value_index(self, *args)
12243 
12244  def get_version_info(self):
12245  r"""get_version_info(SameResiduePairFilter self) -> VersionInfo"""
12246  return _IMP_atom.SameResiduePairFilter_get_version_info(self)
12247  __swig_destroy__ = _IMP_atom.delete_SameResiduePairFilter
12248 
12249  def __str__(self):
12250  r"""__str__(SameResiduePairFilter self) -> std::string"""
12251  return _IMP_atom.SameResiduePairFilter___str__(self)
12252 
12253  def __repr__(self):
12254  r"""__repr__(SameResiduePairFilter self) -> std::string"""
12255  return _IMP_atom.SameResiduePairFilter___repr__(self)
12256 
12257  @staticmethod
12258  def get_from(o):
12259  return _object_cast_to_SameResiduePairFilter(o)
12260 
12261 
12262 # Register SameResiduePairFilter in _IMP_atom:
12263 _IMP_atom.SameResiduePairFilter_swigregister(SameResiduePairFilter)
12264 class RemoveRigidMotionOptimizerState(IMP.OptimizerState):
12265  r"""Proxy of C++ IMP::atom::RemoveRigidMotionOptimizerState class."""
12266 
12267  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12268 
12269  def __init__(self, m, pis):
12270  r"""__init__(RemoveRigidMotionOptimizerState self, Model m, _ParticleIndexesAdaptor pis) -> RemoveRigidMotionOptimizerState"""
12271  _IMP_atom.RemoveRigidMotionOptimizerState_swiginit(self, _IMP_atom.new_RemoveRigidMotionOptimizerState(m, pis))
12272 
12273  def set_particles(self, pis):
12274  r"""set_particles(RemoveRigidMotionOptimizerState self, IMP::Particles const & pis)"""
12275  return _IMP_atom.RemoveRigidMotionOptimizerState_set_particles(self, pis)
12276 
12277  def remove_rigid_motion(self):
12278  r"""remove_rigid_motion(RemoveRigidMotionOptimizerState self)"""
12279  return _IMP_atom.RemoveRigidMotionOptimizerState_remove_rigid_motion(self)
12280 
12281  def get_version_info(self):
12282  r"""get_version_info(RemoveRigidMotionOptimizerState self) -> VersionInfo"""
12283  return _IMP_atom.RemoveRigidMotionOptimizerState_get_version_info(self)
12284  __swig_destroy__ = _IMP_atom.delete_RemoveRigidMotionOptimizerState
12285 
12286  def __str__(self):
12287  r"""__str__(RemoveRigidMotionOptimizerState self) -> std::string"""
12288  return _IMP_atom.RemoveRigidMotionOptimizerState___str__(self)
12289 
12290  def __repr__(self):
12291  r"""__repr__(RemoveRigidMotionOptimizerState self) -> std::string"""
12292  return _IMP_atom.RemoveRigidMotionOptimizerState___repr__(self)
12293 
12294  @staticmethod
12295  def get_from(o):
12296  return _object_cast_to_RemoveRigidMotionOptimizerState(o)
12297 
12298 
12299 # Register RemoveRigidMotionOptimizerState in _IMP_atom:
12300 _IMP_atom.RemoveRigidMotionOptimizerState_swigregister(RemoveRigidMotionOptimizerState)
12301 class BerendsenThermostatOptimizerState(IMP.OptimizerState):
12302  r"""Proxy of C++ IMP::atom::BerendsenThermostatOptimizerState class."""
12303 
12304  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12305 
12306  def __init__(self, pis, temperature, tau):
12307  r"""__init__(BerendsenThermostatOptimizerState self, IMP::Particles const & pis, double temperature, double tau) -> BerendsenThermostatOptimizerState"""
12308  _IMP_atom.BerendsenThermostatOptimizerState_swiginit(self, _IMP_atom.new_BerendsenThermostatOptimizerState(pis, temperature, tau))
12309 
12310  def set_particles(self, pis):
12311  r"""set_particles(BerendsenThermostatOptimizerState self, IMP::Particles const & pis)"""
12312  return _IMP_atom.BerendsenThermostatOptimizerState_set_particles(self, pis)
12313 
12314  def get_particles(self):
12315  r"""get_particles(BerendsenThermostatOptimizerState self) -> IMP::Particles"""
12316  return _IMP_atom.BerendsenThermostatOptimizerState_get_particles(self)
12317 
12318  def get_temperature(self):
12319  r"""get_temperature(BerendsenThermostatOptimizerState self) -> double"""
12320  return _IMP_atom.BerendsenThermostatOptimizerState_get_temperature(self)
12321 
12322  def get_tau(self):
12323  r"""get_tau(BerendsenThermostatOptimizerState self) -> double"""
12324  return _IMP_atom.BerendsenThermostatOptimizerState_get_tau(self)
12325 
12326  def set_temperature(self, temperature):
12327  r"""set_temperature(BerendsenThermostatOptimizerState self, double temperature)"""
12328  return _IMP_atom.BerendsenThermostatOptimizerState_set_temperature(self, temperature)
12329 
12330  def set_tau(self, tau):
12331  r"""set_tau(BerendsenThermostatOptimizerState self, double tau)"""
12332  return _IMP_atom.BerendsenThermostatOptimizerState_set_tau(self, tau)
12333 
12334  def rescale_velocities(self):
12335  r"""rescale_velocities(BerendsenThermostatOptimizerState self)"""
12336  return _IMP_atom.BerendsenThermostatOptimizerState_rescale_velocities(self)
12337 
12338  def get_version_info(self):
12339  r"""get_version_info(BerendsenThermostatOptimizerState self) -> VersionInfo"""
12340  return _IMP_atom.BerendsenThermostatOptimizerState_get_version_info(self)
12341  __swig_destroy__ = _IMP_atom.delete_BerendsenThermostatOptimizerState
12342 
12343  def __str__(self):
12344  r"""__str__(BerendsenThermostatOptimizerState self) -> std::string"""
12345  return _IMP_atom.BerendsenThermostatOptimizerState___str__(self)
12346 
12347  def __repr__(self):
12348  r"""__repr__(BerendsenThermostatOptimizerState self) -> std::string"""
12349  return _IMP_atom.BerendsenThermostatOptimizerState___repr__(self)
12350 
12351  @staticmethod
12352  def get_from(o):
12353  return _object_cast_to_BerendsenThermostatOptimizerState(o)
12354 
12355 
12356  def _get_jax(self, state_index):
12357  import jax
12358  import jax.numpy as jnp
12359 
12360  def scale_velocities(linvel, factor, indexes):
12361  return linvel.at[indexes].multiply(factor)
12362 
12363  def apply_func(md, temperature, tau, indexes):
12364  ekinetic = md.get_kinetic_energy()
12365  tkinetic = md.get_kinetic_temperature(ekinetic)
12366  factor = jnp.sqrt(1.0 + (md.time_step / tau)
12367  * (temperature / tkinetic - 1.0))
12368  scale = scale_velocities
12369  if hasattr(tkinetic, 'ndim') and tkinetic.ndim >= 1:
12370  scale = jax.vmap(scale_velocities, in_axes=(0, 0, None))
12371  md.jm['linvel'] = scale(md.jm['linvel'], factor, indexes)
12372  return md
12373 
12374  f = functools.partial(
12375  apply_func, temperature=self.get_temperature(),
12376  tau=self.get_tau(),
12377  indexes=jnp.asarray(IMP.get_indexes(self.get_particles())))
12378  return self._wrap_jax(lambda x: x, f)
12379 
12380 
12381 # Register BerendsenThermostatOptimizerState in _IMP_atom:
12382 _IMP_atom.BerendsenThermostatOptimizerState_swigregister(BerendsenThermostatOptimizerState)
12383 class LangevinThermostatOptimizerState(IMP.OptimizerState):
12384  r"""Proxy of C++ IMP::atom::LangevinThermostatOptimizerState class."""
12385 
12386  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12387 
12388  def __init__(self, m, pis, temperature, gamma):
12389  r"""__init__(LangevinThermostatOptimizerState self, Model m, _ParticleIndexesAdaptor pis, double temperature, double gamma) -> LangevinThermostatOptimizerState"""
12390  _IMP_atom.LangevinThermostatOptimizerState_swiginit(self, _IMP_atom.new_LangevinThermostatOptimizerState(m, pis, temperature, gamma))
12391 
12392  def set_particles(self, pis):
12393  r"""set_particles(LangevinThermostatOptimizerState self, IMP::Particles const & pis)"""
12394  return _IMP_atom.LangevinThermostatOptimizerState_set_particles(self, pis)
12395 
12396  def get_particles(self):
12397  r"""get_particles(LangevinThermostatOptimizerState self) -> IMP::Particles"""
12398  return _IMP_atom.LangevinThermostatOptimizerState_get_particles(self)
12399 
12400  def get_temperature(self):
12401  r"""get_temperature(LangevinThermostatOptimizerState self) -> double"""
12402  return _IMP_atom.LangevinThermostatOptimizerState_get_temperature(self)
12403 
12404  def get_gamma(self):
12405  r"""get_gamma(LangevinThermostatOptimizerState self) -> double"""
12406  return _IMP_atom.LangevinThermostatOptimizerState_get_gamma(self)
12407 
12408  def set_temperature(self, temperature):
12409  r"""set_temperature(LangevinThermostatOptimizerState self, double temperature)"""
12410  return _IMP_atom.LangevinThermostatOptimizerState_set_temperature(self, temperature)
12411 
12412  def set_gamma(self, gamma):
12413  r"""set_gamma(LangevinThermostatOptimizerState self, double gamma)"""
12414  return _IMP_atom.LangevinThermostatOptimizerState_set_gamma(self, gamma)
12415 
12416  def rescale_velocities(self):
12417  r"""rescale_velocities(LangevinThermostatOptimizerState self)"""
12418  return _IMP_atom.LangevinThermostatOptimizerState_rescale_velocities(self)
12419 
12420  def get_version_info(self):
12421  r"""get_version_info(LangevinThermostatOptimizerState self) -> VersionInfo"""
12422  return _IMP_atom.LangevinThermostatOptimizerState_get_version_info(self)
12423  __swig_destroy__ = _IMP_atom.delete_LangevinThermostatOptimizerState
12424 
12425  def __str__(self):
12426  r"""__str__(LangevinThermostatOptimizerState self) -> std::string"""
12427  return _IMP_atom.LangevinThermostatOptimizerState___str__(self)
12428 
12429  def __repr__(self):
12430  r"""__repr__(LangevinThermostatOptimizerState self) -> std::string"""
12431  return _IMP_atom.LangevinThermostatOptimizerState___repr__(self)
12432 
12433  @staticmethod
12434  def get_from(o):
12435  return _object_cast_to_LangevinThermostatOptimizerState(o)
12436 
12437 
12438  def _get_jax(self, state_index):
12439  import jax.numpy as jnp
12440  import jax.random
12441  gas_constant = 8.31441e-7
12442 
12443  def init_func(md):
12444  # Make our own random key split off from MD's key
12445  md.rkey, subkey = jax.random.split(md.rkey)
12446  md.optimizer_states[state_index] = subkey
12447  return md
12448 
12449  def apply_func(md, temperature, gamma, indexes):
12450  c1 = jnp.exp(-gamma * md.time_step)
12451  c2 = jnp.sqrt((1.0 - c1) * gas_constant * temperature)
12452  md.optimizer_states[state_index], subkey = jax.random.split(
12453  md.optimizer_states[state_index])
12454  indshape = md.jm['linvel'].shape[:-2] + (len(indexes),)
12455  sample = jax.random.normal(subkey, shape=indshape + (3,))
12456  mass = md.jm['mass'][..., indexes]
12457  linvel = md.jm['linvel'].at[..., indexes, :]
12458  md.jm['linvel'] = linvel.set(
12459  c1 * linvel.get()
12460  + c2 * jnp.sqrt((c1 + 1.0) / mass)[:, jnp.newaxis] * sample)
12461  return md
12462 
12463  f = functools.partial(
12464  apply_func, temperature=self.get_temperature(),
12465  gamma=self.get_gamma(),
12466  indexes=jnp.asarray(IMP.get_indexes(self.get_particles())))
12467  return self._wrap_jax(init_func, f)
12468 
12469 
12470 # Register LangevinThermostatOptimizerState in _IMP_atom:
12471 _IMP_atom.LangevinThermostatOptimizerState_swigregister(LangevinThermostatOptimizerState)
12472 class PDBRecord(IMP._Value):
12473  r"""Proxy of C++ IMP::atom::PDBRecord class."""
12474 
12475  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12476 
12477  def __init__(self):
12478  r"""__init__(PDBRecord self) -> PDBRecord"""
12479  _IMP_atom.PDBRecord_swiginit(self, _IMP_atom.new_PDBRecord())
12480 
12481  def get_alt_loc_indicator(self):
12482  r"""get_alt_loc_indicator(PDBRecord self) -> std::string"""
12483  return _IMP_atom.PDBRecord_get_alt_loc_indicator(self)
12484 
12485  def get_is_atom(self):
12486  r"""get_is_atom(PDBRecord self) -> bool"""
12487  return _IMP_atom.PDBRecord_get_is_atom(self)
12488 
12489  def get_trimmed_atom_name(self):
12490  r"""get_trimmed_atom_name(PDBRecord self) -> std::string"""
12491  return _IMP_atom.PDBRecord_get_trimmed_atom_name(self)
12492 
12493  def get_padded_atom_name(self):
12494  r"""get_padded_atom_name(PDBRecord self) -> std::string"""
12495  return _IMP_atom.PDBRecord_get_padded_atom_name(self)
12496 
12497  def get_residue_name(self):
12498  r"""get_residue_name(PDBRecord self) -> std::string"""
12499  return _IMP_atom.PDBRecord_get_residue_name(self)
12500 
12501  def get_chain_id(self):
12502  r"""get_chain_id(PDBRecord self) -> std::string"""
12503  return _IMP_atom.PDBRecord_get_chain_id(self)
12504 
12505  def get_element(self):
12506  r"""get_element(PDBRecord self) -> std::string"""
12507  return _IMP_atom.PDBRecord_get_element(self)
12508 
12509  def get_residue_number(self):
12510  r"""get_residue_number(PDBRecord self) -> int"""
12511  return _IMP_atom.PDBRecord_get_residue_number(self)
12512 
12513  def show(self, *args):
12514  r"""show(PDBRecord self, _ostream out=std::cout)"""
12515  return _IMP_atom.PDBRecord_show(self, *args)
12516 
12517  def __str__(self):
12518  r"""__str__(PDBRecord self) -> std::string"""
12519  return _IMP_atom.PDBRecord___str__(self)
12520 
12521  def __repr__(self):
12522  r"""__repr__(PDBRecord self) -> std::string"""
12523  return _IMP_atom.PDBRecord___repr__(self)
12524  __swig_destroy__ = _IMP_atom.delete_PDBRecord
12525 
12526 # Register PDBRecord in _IMP_atom:
12527 _IMP_atom.PDBRecord_swigregister(PDBRecord)
12528 class PDBSelector(IMP.Object):
12529  r"""Proxy of C++ IMP::atom::PDBSelector class."""
12530 
12531  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12532 
12533  def __init__(self, name):
12534  r"""__init__(PDBSelector self, std::string name) -> PDBSelector"""
12535  if self.__class__ == PDBSelector:
12536  _self = None
12537  else:
12538  _self = self
12539  _IMP_atom.PDBSelector_swiginit(self, _IMP_atom.new_PDBSelector(_self, name))
12540 
12541  if self.__class__ != PDBSelector:
12542  _director_objects.register(self)
12543 
12544 
12545 
12546 
12547  def get_is_selected(self, record):
12548  r"""get_is_selected(PDBSelector self, PDBRecord record) -> bool"""
12549  return _IMP_atom.PDBSelector_get_is_selected(self, record)
12550  __swig_destroy__ = _IMP_atom.delete_PDBSelector
12551 
12552  def __str__(self):
12553  r"""__str__(PDBSelector self) -> std::string"""
12554  return _IMP_atom.PDBSelector___str__(self)
12555 
12556  def __repr__(self):
12557  r"""__repr__(PDBSelector self) -> std::string"""
12558  return _IMP_atom.PDBSelector___repr__(self)
12559 
12560  @staticmethod
12561  def get_from(o):
12562  return _object_cast_to_PDBSelector(o)
12563 
12564 
12565  def do_show(self, out):
12566  pass
12567 
12568  @staticmethod
12569  def get_from(o):
12570  return _object_cast_to_PDBSelector(o)
12571 
12572 
12573  def __and__(self, s):
12574  return AndPDBSelector(self, s)
12575  def __or__(self, s):
12576  return OrPDBSelector(self, s)
12577  def __xor__(self, s):
12578  return XorPDBSelector(self, s)
12579  def __invert__(self):
12580  return NotPDBSelector(self)
12581  def __sub__(self, s):
12582  return AndPDBSelector(self, NotPDBSelector(s))
12583 
12584  def __disown__(self):
12585  self.this.disown()
12586  _IMP_atom.disown_PDBSelector(self)
12587  return weakref.proxy(self)
12588 
12589  def do_destroy(self):
12590  r"""do_destroy(PDBSelector self)"""
12591  return _IMP_atom.PDBSelector_do_destroy(self)
12592 
12593 # Register PDBSelector in _IMP_atom:
12594 _IMP_atom.PDBSelector_swigregister(PDBSelector)
12595 class NonAlternativePDBSelector(PDBSelector):
12596  r"""Proxy of C++ IMP::atom::NonAlternativePDBSelector class."""
12597 
12598  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12599 
12600  def __init__(self, *args):
12601  r"""__init__(NonAlternativePDBSelector self, std::string name="NonAlternativePDBSelector%1%") -> NonAlternativePDBSelector"""
12602  _IMP_atom.NonAlternativePDBSelector_swiginit(self, _IMP_atom.new_NonAlternativePDBSelector(*args))
12603 
12604  def get_version_info(self):
12605  r"""get_version_info(NonAlternativePDBSelector self) -> VersionInfo"""
12606  return _IMP_atom.NonAlternativePDBSelector_get_version_info(self)
12607  __swig_destroy__ = _IMP_atom.delete_NonAlternativePDBSelector
12608 
12609  def __str__(self):
12610  r"""__str__(NonAlternativePDBSelector self) -> std::string"""
12611  return _IMP_atom.NonAlternativePDBSelector___str__(self)
12612 
12613  def __repr__(self):
12614  r"""__repr__(NonAlternativePDBSelector self) -> std::string"""
12615  return _IMP_atom.NonAlternativePDBSelector___repr__(self)
12616 
12617  @staticmethod
12618  def get_from(o):
12619  return _object_cast_to_NonAlternativePDBSelector(o)
12620 
12621 
12622 # Register NonAlternativePDBSelector in _IMP_atom:
12623 _IMP_atom.NonAlternativePDBSelector_swigregister(NonAlternativePDBSelector)
12624 class ATOMPDBSelector(NonAlternativePDBSelector):
12625  r"""Proxy of C++ IMP::atom::ATOMPDBSelector class."""
12626 
12627  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12628 
12629  def __init__(self, *args):
12630  r"""__init__(ATOMPDBSelector self, std::string name="ATOMPDBSelector%1%") -> ATOMPDBSelector"""
12631  _IMP_atom.ATOMPDBSelector_swiginit(self, _IMP_atom.new_ATOMPDBSelector(*args))
12632  __swig_destroy__ = _IMP_atom.delete_ATOMPDBSelector
12633 
12634  def __str__(self):
12635  r"""__str__(ATOMPDBSelector self) -> std::string"""
12636  return _IMP_atom.ATOMPDBSelector___str__(self)
12637 
12638  def __repr__(self):
12639  r"""__repr__(ATOMPDBSelector self) -> std::string"""
12640  return _IMP_atom.ATOMPDBSelector___repr__(self)
12641 
12642  @staticmethod
12643  def get_from(o):
12644  return _object_cast_to_ATOMPDBSelector(o)
12645 
12646 
12647 # Register ATOMPDBSelector in _IMP_atom:
12648 _IMP_atom.ATOMPDBSelector_swigregister(ATOMPDBSelector)
12649 class CAlphaPDBSelector(NonAlternativePDBSelector):
12650  r"""Proxy of C++ IMP::atom::CAlphaPDBSelector class."""
12651 
12652  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12653 
12654  def __init__(self, *args):
12655  r"""__init__(CAlphaPDBSelector self, std::string name="CAlphaPDBSelector%1%") -> CAlphaPDBSelector"""
12656  _IMP_atom.CAlphaPDBSelector_swiginit(self, _IMP_atom.new_CAlphaPDBSelector(*args))
12657  __swig_destroy__ = _IMP_atom.delete_CAlphaPDBSelector
12658 
12659  def __str__(self):
12660  r"""__str__(CAlphaPDBSelector self) -> std::string"""
12661  return _IMP_atom.CAlphaPDBSelector___str__(self)
12662 
12663  def __repr__(self):
12664  r"""__repr__(CAlphaPDBSelector self) -> std::string"""
12665  return _IMP_atom.CAlphaPDBSelector___repr__(self)
12666 
12667  @staticmethod
12668  def get_from(o):
12669  return _object_cast_to_CAlphaPDBSelector(o)
12670 
12671 
12672 # Register CAlphaPDBSelector in _IMP_atom:
12673 _IMP_atom.CAlphaPDBSelector_swigregister(CAlphaPDBSelector)
12674 class CBetaPDBSelector(NonAlternativePDBSelector):
12675  r"""Proxy of C++ IMP::atom::CBetaPDBSelector class."""
12676 
12677  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12678 
12679  def __init__(self, *args):
12680  r"""__init__(CBetaPDBSelector self, std::string name="CBetaPDBSelector%1%") -> CBetaPDBSelector"""
12681  _IMP_atom.CBetaPDBSelector_swiginit(self, _IMP_atom.new_CBetaPDBSelector(*args))
12682  __swig_destroy__ = _IMP_atom.delete_CBetaPDBSelector
12683 
12684  def __str__(self):
12685  r"""__str__(CBetaPDBSelector self) -> std::string"""
12686  return _IMP_atom.CBetaPDBSelector___str__(self)
12687 
12688  def __repr__(self):
12689  r"""__repr__(CBetaPDBSelector self) -> std::string"""
12690  return _IMP_atom.CBetaPDBSelector___repr__(self)
12691 
12692  @staticmethod
12693  def get_from(o):
12694  return _object_cast_to_CBetaPDBSelector(o)
12695 
12696 
12697 # Register CBetaPDBSelector in _IMP_atom:
12698 _IMP_atom.CBetaPDBSelector_swigregister(CBetaPDBSelector)
12699 class AtomTypePDBSelector(PDBSelector):
12700  r"""Proxy of C++ IMP::atom::AtomTypePDBSelector class."""
12701 
12702  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12703 
12704  def __init__(self, *args):
12705  r"""__init__(AtomTypePDBSelector self, IMP::Strings atom_types, std::string name="AtomTypePDBSelector%1%") -> AtomTypePDBSelector"""
12706  _IMP_atom.AtomTypePDBSelector_swiginit(self, _IMP_atom.new_AtomTypePDBSelector(*args))
12707 
12708  def get_version_info(self):
12709  r"""get_version_info(AtomTypePDBSelector self) -> VersionInfo"""
12710  return _IMP_atom.AtomTypePDBSelector_get_version_info(self)
12711  __swig_destroy__ = _IMP_atom.delete_AtomTypePDBSelector
12712 
12713  def __str__(self):
12714  r"""__str__(AtomTypePDBSelector self) -> std::string"""
12715  return _IMP_atom.AtomTypePDBSelector___str__(self)
12716 
12717  def __repr__(self):
12718  r"""__repr__(AtomTypePDBSelector self) -> std::string"""
12719  return _IMP_atom.AtomTypePDBSelector___repr__(self)
12720 
12721  @staticmethod
12722  def get_from(o):
12723  return _object_cast_to_AtomTypePDBSelector(o)
12724 
12725 
12726 # Register AtomTypePDBSelector in _IMP_atom:
12727 _IMP_atom.AtomTypePDBSelector_swigregister(AtomTypePDBSelector)
12728 class ResidueTypePDBSelector(PDBSelector):
12729  r"""Proxy of C++ IMP::atom::ResidueTypePDBSelector class."""
12730 
12731  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12732 
12733  def __init__(self, *args):
12734  r"""__init__(ResidueTypePDBSelector self, IMP::Strings residue_types, std::string name="ResidueTypePDBSelector%1%") -> ResidueTypePDBSelector"""
12735  _IMP_atom.ResidueTypePDBSelector_swiginit(self, _IMP_atom.new_ResidueTypePDBSelector(*args))
12736 
12737  def get_version_info(self):
12738  r"""get_version_info(ResidueTypePDBSelector self) -> VersionInfo"""
12739  return _IMP_atom.ResidueTypePDBSelector_get_version_info(self)
12740  __swig_destroy__ = _IMP_atom.delete_ResidueTypePDBSelector
12741 
12742  def __str__(self):
12743  r"""__str__(ResidueTypePDBSelector self) -> std::string"""
12744  return _IMP_atom.ResidueTypePDBSelector___str__(self)
12745 
12746  def __repr__(self):
12747  r"""__repr__(ResidueTypePDBSelector self) -> std::string"""
12748  return _IMP_atom.ResidueTypePDBSelector___repr__(self)
12749 
12750  @staticmethod
12751  def get_from(o):
12752  return _object_cast_to_ResidueTypePDBSelector(o)
12753 
12754 
12755 # Register ResidueTypePDBSelector in _IMP_atom:
12756 _IMP_atom.ResidueTypePDBSelector_swigregister(ResidueTypePDBSelector)
12757 class CPDBSelector(NonAlternativePDBSelector):
12758  r"""Proxy of C++ IMP::atom::CPDBSelector class."""
12759 
12760  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12761 
12762  def __init__(self, *args):
12763  r"""__init__(CPDBSelector self, std::string name="CPDBSelector%1%") -> CPDBSelector"""
12764  _IMP_atom.CPDBSelector_swiginit(self, _IMP_atom.new_CPDBSelector(*args))
12765  __swig_destroy__ = _IMP_atom.delete_CPDBSelector
12766 
12767  def __str__(self):
12768  r"""__str__(CPDBSelector self) -> std::string"""
12769  return _IMP_atom.CPDBSelector___str__(self)
12770 
12771  def __repr__(self):
12772  r"""__repr__(CPDBSelector self) -> std::string"""
12773  return _IMP_atom.CPDBSelector___repr__(self)
12774 
12775  @staticmethod
12776  def get_from(o):
12777  return _object_cast_to_CPDBSelector(o)
12778 
12779 
12780 # Register CPDBSelector in _IMP_atom:
12781 _IMP_atom.CPDBSelector_swigregister(CPDBSelector)
12782 class NPDBSelector(NonAlternativePDBSelector):
12783  r"""Proxy of C++ IMP::atom::NPDBSelector class."""
12784 
12785  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12786 
12787  def __init__(self, *args):
12788  r"""__init__(NPDBSelector self, std::string name="NPDBSelector%1%") -> NPDBSelector"""
12789  _IMP_atom.NPDBSelector_swiginit(self, _IMP_atom.new_NPDBSelector(*args))
12790  __swig_destroy__ = _IMP_atom.delete_NPDBSelector
12791 
12792  def __str__(self):
12793  r"""__str__(NPDBSelector self) -> std::string"""
12794  return _IMP_atom.NPDBSelector___str__(self)
12795 
12796  def __repr__(self):
12797  r"""__repr__(NPDBSelector self) -> std::string"""
12798  return _IMP_atom.NPDBSelector___repr__(self)
12799 
12800  @staticmethod
12801  def get_from(o):
12802  return _object_cast_to_NPDBSelector(o)
12803 
12804 
12805 # Register NPDBSelector in _IMP_atom:
12806 _IMP_atom.NPDBSelector_swigregister(NPDBSelector)
12807 class AllPDBSelector(PDBSelector):
12808  r"""Proxy of C++ IMP::atom::AllPDBSelector class."""
12809 
12810  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12811 
12812  def __init__(self, *args):
12813  r"""__init__(AllPDBSelector self, std::string name="AllPDBSelector%1%") -> AllPDBSelector"""
12814  _IMP_atom.AllPDBSelector_swiginit(self, _IMP_atom.new_AllPDBSelector(*args))
12815 
12816  def get_version_info(self):
12817  r"""get_version_info(AllPDBSelector self) -> VersionInfo"""
12818  return _IMP_atom.AllPDBSelector_get_version_info(self)
12819  __swig_destroy__ = _IMP_atom.delete_AllPDBSelector
12820 
12821  def __str__(self):
12822  r"""__str__(AllPDBSelector self) -> std::string"""
12823  return _IMP_atom.AllPDBSelector___str__(self)
12824 
12825  def __repr__(self):
12826  r"""__repr__(AllPDBSelector self) -> std::string"""
12827  return _IMP_atom.AllPDBSelector___repr__(self)
12828 
12829  @staticmethod
12830  def get_from(o):
12831  return _object_cast_to_AllPDBSelector(o)
12832 
12833 
12834 # Register AllPDBSelector in _IMP_atom:
12835 _IMP_atom.AllPDBSelector_swigregister(AllPDBSelector)
12836 class ChainPDBSelector(NonAlternativePDBSelector):
12837  r"""Proxy of C++ IMP::atom::ChainPDBSelector class."""
12838 
12839  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12840  __swig_destroy__ = _IMP_atom.delete_ChainPDBSelector
12841 
12842  def __init__(self, *args):
12843  r"""__init__(ChainPDBSelector self, IMP::Strings chains, std::string name="ChainPDBSelector%1%") -> ChainPDBSelector"""
12844  _IMP_atom.ChainPDBSelector_swiginit(self, _IMP_atom.new_ChainPDBSelector(*args))
12845 
12846  def __str__(self):
12847  r"""__str__(ChainPDBSelector self) -> std::string"""
12848  return _IMP_atom.ChainPDBSelector___str__(self)
12849 
12850  def __repr__(self):
12851  r"""__repr__(ChainPDBSelector self) -> std::string"""
12852  return _IMP_atom.ChainPDBSelector___repr__(self)
12853 
12854  @staticmethod
12855  def get_from(o):
12856  return _object_cast_to_ChainPDBSelector(o)
12857 
12858 
12859 # Register ChainPDBSelector in _IMP_atom:
12860 _IMP_atom.ChainPDBSelector_swigregister(ChainPDBSelector)
12861 class WaterPDBSelector(NonAlternativePDBSelector):
12862  r"""Proxy of C++ IMP::atom::WaterPDBSelector class."""
12863 
12864  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12865 
12866  def __init__(self, *args):
12867  r"""__init__(WaterPDBSelector self, std::string name="WaterPDBSelector%1%") -> WaterPDBSelector"""
12868  _IMP_atom.WaterPDBSelector_swiginit(self, _IMP_atom.new_WaterPDBSelector(*args))
12869  __swig_destroy__ = _IMP_atom.delete_WaterPDBSelector
12870 
12871  def __str__(self):
12872  r"""__str__(WaterPDBSelector self) -> std::string"""
12873  return _IMP_atom.WaterPDBSelector___str__(self)
12874 
12875  def __repr__(self):
12876  r"""__repr__(WaterPDBSelector self) -> std::string"""
12877  return _IMP_atom.WaterPDBSelector___repr__(self)
12878 
12879  @staticmethod
12880  def get_from(o):
12881  return _object_cast_to_WaterPDBSelector(o)
12882 
12883 
12884 # Register WaterPDBSelector in _IMP_atom:
12885 _IMP_atom.WaterPDBSelector_swigregister(WaterPDBSelector)
12886 class HydrogenPDBSelector(NonAlternativePDBSelector):
12887  r"""Proxy of C++ IMP::atom::HydrogenPDBSelector class."""
12888 
12889  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12890 
12891  def __init__(self, *args):
12892  r"""__init__(HydrogenPDBSelector self, std::string name="HydrogenPDBSelector%1%") -> HydrogenPDBSelector"""
12893  _IMP_atom.HydrogenPDBSelector_swiginit(self, _IMP_atom.new_HydrogenPDBSelector(*args))
12894  __swig_destroy__ = _IMP_atom.delete_HydrogenPDBSelector
12895 
12896  def __str__(self):
12897  r"""__str__(HydrogenPDBSelector self) -> std::string"""
12898  return _IMP_atom.HydrogenPDBSelector___str__(self)
12899 
12900  def __repr__(self):
12901  r"""__repr__(HydrogenPDBSelector self) -> std::string"""
12902  return _IMP_atom.HydrogenPDBSelector___repr__(self)
12903 
12904  @staticmethod
12905  def get_from(o):
12906  return _object_cast_to_HydrogenPDBSelector(o)
12907 
12908 
12909 # Register HydrogenPDBSelector in _IMP_atom:
12910 _IMP_atom.HydrogenPDBSelector_swigregister(HydrogenPDBSelector)
12911 class NonWaterNonHydrogenPDBSelector(NonAlternativePDBSelector):
12912  r"""Proxy of C++ IMP::atom::NonWaterNonHydrogenPDBSelector class."""
12913 
12914  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12915  __swig_destroy__ = _IMP_atom.delete_NonWaterNonHydrogenPDBSelector
12916 
12917  def __init__(self, *args):
12918  r"""
12919  __init__(NonWaterNonHydrogenPDBSelector self, std::string name) -> NonWaterNonHydrogenPDBSelector
12920  __init__(NonWaterNonHydrogenPDBSelector self) -> NonWaterNonHydrogenPDBSelector
12921  """
12922  _IMP_atom.NonWaterNonHydrogenPDBSelector_swiginit(self, _IMP_atom.new_NonWaterNonHydrogenPDBSelector(*args))
12923 
12924  def __str__(self):
12925  r"""__str__(NonWaterNonHydrogenPDBSelector self) -> std::string"""
12926  return _IMP_atom.NonWaterNonHydrogenPDBSelector___str__(self)
12927 
12928  def __repr__(self):
12929  r"""__repr__(NonWaterNonHydrogenPDBSelector self) -> std::string"""
12930  return _IMP_atom.NonWaterNonHydrogenPDBSelector___repr__(self)
12931 
12932  @staticmethod
12933  def get_from(o):
12934  return _object_cast_to_NonWaterNonHydrogenPDBSelector(o)
12935 
12936 
12937 # Register NonWaterNonHydrogenPDBSelector in _IMP_atom:
12938 _IMP_atom.NonWaterNonHydrogenPDBSelector_swigregister(NonWaterNonHydrogenPDBSelector)
12939 class NonHydrogenPDBSelector(NonAlternativePDBSelector):
12940  r"""Proxy of C++ IMP::atom::NonHydrogenPDBSelector class."""
12941 
12942  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12943  __swig_destroy__ = _IMP_atom.delete_NonHydrogenPDBSelector
12944 
12945  def __init__(self, *args):
12946  r"""
12947  __init__(NonHydrogenPDBSelector self, std::string name) -> NonHydrogenPDBSelector
12948  __init__(NonHydrogenPDBSelector self) -> NonHydrogenPDBSelector
12949  """
12950  _IMP_atom.NonHydrogenPDBSelector_swiginit(self, _IMP_atom.new_NonHydrogenPDBSelector(*args))
12951 
12952  def __str__(self):
12953  r"""__str__(NonHydrogenPDBSelector self) -> std::string"""
12954  return _IMP_atom.NonHydrogenPDBSelector___str__(self)
12955 
12956  def __repr__(self):
12957  r"""__repr__(NonHydrogenPDBSelector self) -> std::string"""
12958  return _IMP_atom.NonHydrogenPDBSelector___repr__(self)
12959 
12960  @staticmethod
12961  def get_from(o):
12962  return _object_cast_to_NonHydrogenPDBSelector(o)
12963 
12964 
12965 # Register NonHydrogenPDBSelector in _IMP_atom:
12966 _IMP_atom.NonHydrogenPDBSelector_swigregister(NonHydrogenPDBSelector)
12967 class NonWaterPDBSelector(NonAlternativePDBSelector):
12968  r"""Proxy of C++ IMP::atom::NonWaterPDBSelector class."""
12969 
12970  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12971  __swig_destroy__ = _IMP_atom.delete_NonWaterPDBSelector
12972 
12973  def __init__(self, *args):
12974  r"""
12975  __init__(NonWaterPDBSelector self, std::string name) -> NonWaterPDBSelector
12976  __init__(NonWaterPDBSelector self) -> NonWaterPDBSelector
12977  """
12978  _IMP_atom.NonWaterPDBSelector_swiginit(self, _IMP_atom.new_NonWaterPDBSelector(*args))
12979 
12980  def __str__(self):
12981  r"""__str__(NonWaterPDBSelector self) -> std::string"""
12982  return _IMP_atom.NonWaterPDBSelector___str__(self)
12983 
12984  def __repr__(self):
12985  r"""__repr__(NonWaterPDBSelector self) -> std::string"""
12986  return _IMP_atom.NonWaterPDBSelector___repr__(self)
12987 
12988  @staticmethod
12989  def get_from(o):
12990  return _object_cast_to_NonWaterPDBSelector(o)
12991 
12992 
12993 # Register NonWaterPDBSelector in _IMP_atom:
12994 _IMP_atom.NonWaterPDBSelector_swigregister(NonWaterPDBSelector)
12995 class BackbonePDBSelector(NonWaterNonHydrogenPDBSelector):
12996  r"""Proxy of C++ IMP::atom::BackbonePDBSelector class."""
12997 
12998  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12999 
13000  def __init__(self, *args):
13001  r"""__init__(BackbonePDBSelector self, std::string name="BackbonePDBSelector%1%") -> BackbonePDBSelector"""
13002  _IMP_atom.BackbonePDBSelector_swiginit(self, _IMP_atom.new_BackbonePDBSelector(*args))
13003  __swig_destroy__ = _IMP_atom.delete_BackbonePDBSelector
13004 
13005  def __str__(self):
13006  r"""__str__(BackbonePDBSelector self) -> std::string"""
13007  return _IMP_atom.BackbonePDBSelector___str__(self)
13008 
13009  def __repr__(self):
13010  r"""__repr__(BackbonePDBSelector self) -> std::string"""
13011  return _IMP_atom.BackbonePDBSelector___repr__(self)
13012 
13013  @staticmethod
13014  def get_from(o):
13015  return _object_cast_to_BackbonePDBSelector(o)
13016 
13017 
13018 # Register BackbonePDBSelector in _IMP_atom:
13019 _IMP_atom.BackbonePDBSelector_swigregister(BackbonePDBSelector)
13020 class PPDBSelector(NonAlternativePDBSelector):
13021  r"""Proxy of C++ IMP::atom::PPDBSelector class."""
13022 
13023  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13024 
13025  def __init__(self, *args):
13026  r"""__init__(PPDBSelector self, std::string name="PPDBSelector%1%") -> PPDBSelector"""
13027  _IMP_atom.PPDBSelector_swiginit(self, _IMP_atom.new_PPDBSelector(*args))
13028  __swig_destroy__ = _IMP_atom.delete_PPDBSelector
13029 
13030  def __str__(self):
13031  r"""__str__(PPDBSelector self) -> std::string"""
13032  return _IMP_atom.PPDBSelector___str__(self)
13033 
13034  def __repr__(self):
13035  r"""__repr__(PPDBSelector self) -> std::string"""
13036  return _IMP_atom.PPDBSelector___repr__(self)
13037 
13038  @staticmethod
13039  def get_from(o):
13040  return _object_cast_to_PPDBSelector(o)
13041 
13042 
13043 # Register PPDBSelector in _IMP_atom:
13044 _IMP_atom.PPDBSelector_swigregister(PPDBSelector)
13045 class ResidueRangePDBSelector(PDBSelector):
13046  r"""Proxy of C++ IMP::atom::ResidueRangePDBSelector class."""
13047 
13048  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13049 
13050  def __init__(self, *args):
13051  r"""__init__(ResidueRangePDBSelector self, int low, int high=std::numeric_limits< int >::max(), std::string name="ResidueRangePDBSelector%1%") -> ResidueRangePDBSelector"""
13052  _IMP_atom.ResidueRangePDBSelector_swiginit(self, _IMP_atom.new_ResidueRangePDBSelector(*args))
13053 
13054  def get_version_info(self):
13055  r"""get_version_info(ResidueRangePDBSelector self) -> VersionInfo"""
13056  return _IMP_atom.ResidueRangePDBSelector_get_version_info(self)
13057  __swig_destroy__ = _IMP_atom.delete_ResidueRangePDBSelector
13058 
13059  def __str__(self):
13060  r"""__str__(ResidueRangePDBSelector self) -> std::string"""
13061  return _IMP_atom.ResidueRangePDBSelector___str__(self)
13062 
13063  def __repr__(self):
13064  r"""__repr__(ResidueRangePDBSelector self) -> std::string"""
13065  return _IMP_atom.ResidueRangePDBSelector___repr__(self)
13066 
13067  @staticmethod
13068  def get_from(o):
13069  return _object_cast_to_ResidueRangePDBSelector(o)
13070 
13071 
13072 # Register ResidueRangePDBSelector in _IMP_atom:
13073 _IMP_atom.ResidueRangePDBSelector_swigregister(ResidueRangePDBSelector)
13074 class AndPDBSelector(PDBSelector):
13075  r"""Proxy of C++ IMP::atom::AndPDBSelector class."""
13076 
13077  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13078 
13079  def get_version_info(self):
13080  r"""get_version_info(AndPDBSelector self) -> VersionInfo"""
13081  return _IMP_atom.AndPDBSelector_get_version_info(self)
13082  __swig_destroy__ = _IMP_atom.delete_AndPDBSelector
13083 
13084  def __init__(self, a, b):
13085  r"""__init__(AndPDBSelector self, PDBSelector a, PDBSelector b) -> AndPDBSelector"""
13086  _IMP_atom.AndPDBSelector_swiginit(self, _IMP_atom.new_AndPDBSelector(a, b))
13087 
13088  def __str__(self):
13089  r"""__str__(AndPDBSelector self) -> std::string"""
13090  return _IMP_atom.AndPDBSelector___str__(self)
13091 
13092  def __repr__(self):
13093  r"""__repr__(AndPDBSelector self) -> std::string"""
13094  return _IMP_atom.AndPDBSelector___repr__(self)
13095 
13096  @staticmethod
13097  def get_from(o):
13098  return _object_cast_to_AndPDBSelector(o)
13099 
13100 
13101 # Register AndPDBSelector in _IMP_atom:
13102 _IMP_atom.AndPDBSelector_swigregister(AndPDBSelector)
13103 class OrPDBSelector(PDBSelector):
13104  r"""Proxy of C++ IMP::atom::OrPDBSelector class."""
13105 
13106  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13107 
13108  def get_version_info(self):
13109  r"""get_version_info(OrPDBSelector self) -> VersionInfo"""
13110  return _IMP_atom.OrPDBSelector_get_version_info(self)
13111  __swig_destroy__ = _IMP_atom.delete_OrPDBSelector
13112 
13113  def __init__(self, a, b):
13114  r"""__init__(OrPDBSelector self, PDBSelector a, PDBSelector b) -> OrPDBSelector"""
13115  _IMP_atom.OrPDBSelector_swiginit(self, _IMP_atom.new_OrPDBSelector(a, b))
13116 
13117  def __str__(self):
13118  r"""__str__(OrPDBSelector self) -> std::string"""
13119  return _IMP_atom.OrPDBSelector___str__(self)
13120 
13121  def __repr__(self):
13122  r"""__repr__(OrPDBSelector self) -> std::string"""
13123  return _IMP_atom.OrPDBSelector___repr__(self)
13124 
13125  @staticmethod
13126  def get_from(o):
13127  return _object_cast_to_OrPDBSelector(o)
13128 
13129 
13130 # Register OrPDBSelector in _IMP_atom:
13131 _IMP_atom.OrPDBSelector_swigregister(OrPDBSelector)
13132 class XorPDBSelector(PDBSelector):
13133  r"""Proxy of C++ IMP::atom::XorPDBSelector class."""
13134 
13135  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13136 
13137  def get_version_info(self):
13138  r"""get_version_info(XorPDBSelector self) -> VersionInfo"""
13139  return _IMP_atom.XorPDBSelector_get_version_info(self)
13140  __swig_destroy__ = _IMP_atom.delete_XorPDBSelector
13141 
13142  def __init__(self, a, b):
13143  r"""__init__(XorPDBSelector self, PDBSelector a, PDBSelector b) -> XorPDBSelector"""
13144  _IMP_atom.XorPDBSelector_swiginit(self, _IMP_atom.new_XorPDBSelector(a, b))
13145 
13146  def __str__(self):
13147  r"""__str__(XorPDBSelector self) -> std::string"""
13148  return _IMP_atom.XorPDBSelector___str__(self)
13149 
13150  def __repr__(self):
13151  r"""__repr__(XorPDBSelector self) -> std::string"""
13152  return _IMP_atom.XorPDBSelector___repr__(self)
13153 
13154  @staticmethod
13155  def get_from(o):
13156  return _object_cast_to_XorPDBSelector(o)
13157 
13158 
13159 # Register XorPDBSelector in _IMP_atom:
13160 _IMP_atom.XorPDBSelector_swigregister(XorPDBSelector)
13161 class NotPDBSelector(PDBSelector):
13162  r"""Proxy of C++ IMP::atom::NotPDBSelector class."""
13163 
13164  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13165 
13166  def get_version_info(self):
13167  r"""get_version_info(NotPDBSelector self) -> VersionInfo"""
13168  return _IMP_atom.NotPDBSelector_get_version_info(self)
13169  __swig_destroy__ = _IMP_atom.delete_NotPDBSelector
13170 
13171  def __init__(self, a):
13172  r"""__init__(NotPDBSelector self, PDBSelector a) -> NotPDBSelector"""
13173  _IMP_atom.NotPDBSelector_swiginit(self, _IMP_atom.new_NotPDBSelector(a))
13174 
13175  def __str__(self):
13176  r"""__str__(NotPDBSelector self) -> std::string"""
13177  return _IMP_atom.NotPDBSelector___str__(self)
13178 
13179  def __repr__(self):
13180  r"""__repr__(NotPDBSelector self) -> std::string"""
13181  return _IMP_atom.NotPDBSelector___repr__(self)
13182 
13183  @staticmethod
13184  def get_from(o):
13185  return _object_cast_to_NotPDBSelector(o)
13186 
13187 
13188 # Register NotPDBSelector in _IMP_atom:
13189 _IMP_atom.NotPDBSelector_swigregister(NotPDBSelector)
13190 
13191 def get_default_pdb_selector():
13192  r"""get_default_pdb_selector() -> PDBSelector"""
13193  return _IMP_atom.get_default_pdb_selector()
13194 
13195 def read_pdb(*args):
13196  r"""
13197  read_pdb(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool select_first_model=True, bool no_radii=False) -> Hierarchy
13198  read_pdb(TextInput input, int model, Hierarchy h)
13199  """
13200  return _IMP_atom.read_pdb(*args)
13201 
13202 def read_multimodel_pdb(*args):
13203  r"""read_multimodel_pdb(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool noradii=False) -> IMP::atom::Hierarchies"""
13204  return _IMP_atom.read_multimodel_pdb(*args)
13205 
13206 def write_pdb(mhd, out, model=1):
13207  r"""write_pdb(Selection mhd, TextOutput out, unsigned int model=1)"""
13208  return _IMP_atom.write_pdb(mhd, out, model)
13209 
13210 def write_pdb_of_c_alphas(mhd, out, model=1):
13211  r"""write_pdb_of_c_alphas(Selection mhd, TextOutput out, unsigned int model=1)"""
13212  return _IMP_atom.write_pdb_of_c_alphas(mhd, out, model)
13213 
13214 def write_multimodel_pdb(mhd, out):
13215  r"""write_multimodel_pdb(IMP::atom::Hierarchies const & mhd, TextOutput out)"""
13216  return _IMP_atom.write_multimodel_pdb(mhd, out)
13217 
13218 def get_pdb_string(*args):
13219  r"""get_pdb_string(Vector3D v, int index=-1, AtomType at=AT_CA, ResidueType rt=ALA, char chain=' ', int res_index=1, char res_icode=' ', double occupancy=1.00, double tempFactor=0.00, IMP::atom::Element e=C) -> std::string"""
13220  return _IMP_atom.get_pdb_string(*args)
13221 
13222 def get_pdb_conect_record_string(arg1, arg2):
13223  r"""get_pdb_conect_record_string(int arg1, int arg2) -> std::string"""
13224  return _IMP_atom.get_pdb_conect_record_string(arg1, arg2)
13225 class WritePDBOptimizerState(IMP.OptimizerState):
13226  r"""Proxy of C++ IMP::atom::WritePDBOptimizerState class."""
13227 
13228  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13229 
13230  def __init__(self, *args):
13231  r"""
13232  __init__(WritePDBOptimizerState self, Model m, _ParticleIndexesAdaptor pis, std::string filename) -> WritePDBOptimizerState
13233  __init__(WritePDBOptimizerState self, IMP::atom::Hierarchies const mh, std::string filename) -> WritePDBOptimizerState
13234  __init__(WritePDBOptimizerState self) -> WritePDBOptimizerState
13235  """
13236  _IMP_atom.WritePDBOptimizerState_swiginit(self, _IMP_atom.new_WritePDBOptimizerState(*args))
13237 
13238  def get_version_info(self):
13239  r"""get_version_info(WritePDBOptimizerState self) -> VersionInfo"""
13240  return _IMP_atom.WritePDBOptimizerState_get_version_info(self)
13241  __swig_destroy__ = _IMP_atom.delete_WritePDBOptimizerState
13242 
13243  def __str__(self):
13244  r"""__str__(WritePDBOptimizerState self) -> std::string"""
13245  return _IMP_atom.WritePDBOptimizerState___str__(self)
13246 
13247  def __repr__(self):
13248  r"""__repr__(WritePDBOptimizerState self) -> std::string"""
13249  return _IMP_atom.WritePDBOptimizerState___repr__(self)
13250 
13251  @staticmethod
13252  def get_from(o):
13253  return _object_cast_to_WritePDBOptimizerState(o)
13254 
13255 
13256  def _get_as_binary(self):
13257  r"""_get_as_binary(WritePDBOptimizerState self) -> PyObject *"""
13258  return _IMP_atom.WritePDBOptimizerState__get_as_binary(self)
13259 
13260  def _set_from_binary(self, p):
13261  r"""_set_from_binary(WritePDBOptimizerState self, PyObject * p)"""
13262  return _IMP_atom.WritePDBOptimizerState__set_from_binary(self, p)
13263 
13264  def __getstate__(self):
13265  p = self._get_as_binary()
13266  if len(self.__dict__) > 1:
13267  d = self.__dict__.copy()
13268  del d['this']
13269  p = (d, p)
13270  return p
13271 
13272  def __setstate__(self, p):
13273  if not hasattr(self, 'this'):
13274  self.__init__()
13275  if isinstance(p, tuple):
13276  d, p = p
13277  self.__dict__.update(d)
13278  return self._set_from_binary(p)
13279 
13280 
13281 # Register WritePDBOptimizerState in _IMP_atom:
13282 _IMP_atom.WritePDBOptimizerState_swigregister(WritePDBOptimizerState)
13283 
13284 def read_multimodel_mmcif(*args):
13285  r"""read_multimodel_mmcif(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool noradii=False) -> IMP::atom::Hierarchies"""
13286  return _IMP_atom.read_multimodel_mmcif(*args)
13287 
13288 def read_mmcif(*args):
13289  r"""read_mmcif(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool select_first_model=True, bool noradii=False) -> Hierarchy"""
13290  return _IMP_atom.read_mmcif(*args)
13291 
13292 def read_multimodel_bcif(*args):
13293  r"""read_multimodel_bcif(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool noradii=False) -> IMP::atom::Hierarchies"""
13294  return _IMP_atom.read_multimodel_bcif(*args)
13295 
13296 def read_bcif(*args):
13297  r"""read_bcif(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool select_first_model=True, bool noradii=False) -> Hierarchy"""
13298  return _IMP_atom.read_bcif(*args)
13299 
13300 def read_pdb_any(*args):
13301  r"""read_pdb_any(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool select_first_model=True, bool noradii=False) -> Hierarchy"""
13302  return _IMP_atom.read_pdb_any(*args)
13303 
13304 def read_multimodel_pdb_any(*args):
13305  r"""read_multimodel_pdb_any(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool noradii=False) -> IMP::atom::Hierarchies"""
13306  return _IMP_atom.read_multimodel_pdb_any(*args)
13307 
13308 def get_kt(T):
13309  r"""get_kt(double T) -> double"""
13310  return _IMP_atom.get_kt(T)
13311 class CAAngleRestraint(IMP.Restraint):
13312  r"""Proxy of C++ IMP::atom::CAAngleRestraint class."""
13313 
13314  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13315 
13316  def __init__(self, m, p1, p2, p3, phi0, score):
13317  r"""__init__(CAAngleRestraint self, Model m, _ParticleIndexAdaptor p1, _ParticleIndexAdaptor p2, _ParticleIndexAdaptor p3, IMP::Floats phi0, IMP::Floats score) -> CAAngleRestraint"""
13318  _IMP_atom.CAAngleRestraint_swiginit(self, _IMP_atom.new_CAAngleRestraint(m, p1, p2, p3, phi0, score))
13319 
13320  def do_get_inputs(self):
13321  r"""do_get_inputs(CAAngleRestraint self) -> IMP::ModelObjectsTemp"""
13322  return _IMP_atom.CAAngleRestraint_do_get_inputs(self)
13323 
13324  def get_version_info(self):
13325  r"""get_version_info(CAAngleRestraint self) -> VersionInfo"""
13326  return _IMP_atom.CAAngleRestraint_get_version_info(self)
13327  __swig_destroy__ = _IMP_atom.delete_CAAngleRestraint
13328 
13329  def __str__(self):
13330  r"""__str__(CAAngleRestraint self) -> std::string"""
13331  return _IMP_atom.CAAngleRestraint___str__(self)
13332 
13333  def __repr__(self):
13334  r"""__repr__(CAAngleRestraint self) -> std::string"""
13335  return _IMP_atom.CAAngleRestraint___repr__(self)
13336 
13337  @staticmethod
13338  def get_from(o):
13339  return _object_cast_to_CAAngleRestraint(o)
13340 
13341 
13342 # Register CAAngleRestraint in _IMP_atom:
13343 _IMP_atom.CAAngleRestraint_swigregister(CAAngleRestraint)
13344 class CADihedralRestraint(IMP.Restraint):
13345  r"""Proxy of C++ IMP::atom::CADihedralRestraint class."""
13346 
13347  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13348 
13349  def __init__(self, m, p1, p2, p3, p4, p5, phi0, phi1, score):
13350  r"""__init__(CADihedralRestraint self, Model m, _ParticleIndexAdaptor p1, _ParticleIndexAdaptor p2, _ParticleIndexAdaptor p3, _ParticleIndexAdaptor p4, _ParticleIndexAdaptor p5, IMP::Floats phi0, IMP::Floats phi1, IMP::Floats score) -> CADihedralRestraint"""
13351  _IMP_atom.CADihedralRestraint_swiginit(self, _IMP_atom.new_CADihedralRestraint(m, p1, p2, p3, p4, p5, phi0, phi1, score))
13352 
13353  def do_get_inputs(self):
13354  r"""do_get_inputs(CADihedralRestraint self) -> IMP::ModelObjectsTemp"""
13355  return _IMP_atom.CADihedralRestraint_do_get_inputs(self)
13356 
13357  def get_version_info(self):
13358  r"""get_version_info(CADihedralRestraint self) -> VersionInfo"""
13359  return _IMP_atom.CADihedralRestraint_get_version_info(self)
13360  __swig_destroy__ = _IMP_atom.delete_CADihedralRestraint
13361 
13362  def __str__(self):
13363  r"""__str__(CADihedralRestraint self) -> std::string"""
13364  return _IMP_atom.CADihedralRestraint___str__(self)
13365 
13366  def __repr__(self):
13367  r"""__repr__(CADihedralRestraint self) -> std::string"""
13368  return _IMP_atom.CADihedralRestraint___repr__(self)
13369 
13370  @staticmethod
13371  def get_from(o):
13372  return _object_cast_to_CADihedralRestraint(o)
13373 
13374 
13375 # Register CADihedralRestraint in _IMP_atom:
13376 _IMP_atom.CADihedralRestraint_swigregister(CADihedralRestraint)
13377 class StructureSource(IMP.Decorator):
13378  r"""Proxy of C++ IMP::atom::StructureSource class."""
13379 
13380  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13381 
13382  def get_source_id(self):
13383  r"""get_source_id(StructureSource self) -> std::string"""
13384  return _IMP_atom.StructureSource_get_source_id(self)
13385 
13386  def get_source_chain_id(self):
13387  r"""get_source_chain_id(StructureSource self) -> std::string"""
13388  return _IMP_atom.StructureSource_get_source_chain_id(self)
13389 
13390  def set_source_id(self, source_id):
13391  r"""set_source_id(StructureSource self, std::string source_id)"""
13392  return _IMP_atom.StructureSource_set_source_id(self, source_id)
13393 
13394  def set_source_chain_id(self, source_chain_id):
13395  r"""set_source_chain_id(StructureSource self, std::string source_chain_id)"""
13396  return _IMP_atom.StructureSource_set_source_chain_id(self, source_chain_id)
13397 
13398  def __init__(self, *args):
13399  r"""
13400  __init__(StructureSource self) -> StructureSource
13401  __init__(StructureSource self, Model m, ParticleIndex id) -> StructureSource
13402  __init__(StructureSource self, _ParticleAdaptor d) -> StructureSource
13403  """
13404  _IMP_atom.StructureSource_swiginit(self, _IMP_atom.new_StructureSource(*args))
13405 
13406  @staticmethod
13407  def get_is_setup(*args):
13408  r"""
13409  get_is_setup(Model m, ParticleIndex pi) -> bool
13410  get_is_setup(_ParticleAdaptor p) -> bool
13411  """
13412  return _IMP_atom.StructureSource_get_is_setup(*args)
13413 
13414  def show(self, *args):
13415  r"""show(StructureSource self, _ostream out=std::cout)"""
13416  return _IMP_atom.StructureSource_show(self, *args)
13417 
13418  @staticmethod
13419  def setup_particle(*args):
13420  r"""
13421  setup_particle(Model m, ParticleIndex pi, std::string source_id, std::string source_chain_id) -> StructureSource
13422  setup_particle(_ParticleAdaptor pa, std::string source_id, std::string source_chain_id) -> StructureSource
13423  """
13424  return _IMP_atom.StructureSource_setup_particle(*args)
13425 
13426  def add_attribute(self, *args):
13427  r"""
13428  add_attribute(StructureSource self, FloatKey k, IMP::Float v, bool opt)
13429  add_attribute(StructureSource self, FloatKey a0, IMP::Float a1)
13430  add_attribute(StructureSource self, IntKey a0, IMP::Int a1)
13431  add_attribute(StructureSource self, FloatsKey a0, IMP::Floats a1)
13432  add_attribute(StructureSource self, IntsKey a0, IMP::Ints a1)
13433  add_attribute(StructureSource self, StringKey a0, IMP::String a1)
13434  add_attribute(StructureSource self, ParticleIndexKey a0, Particle a1)
13435  add_attribute(StructureSource self, ObjectKey a0, Object a1)
13436  add_attribute(StructureSource self, SparseFloatKey a0, IMP::Float a1)
13437  add_attribute(StructureSource self, SparseIntKey a0, IMP::Int a1)
13438  add_attribute(StructureSource self, SparseStringKey a0, IMP::String a1)
13439  add_attribute(StructureSource self, SparseParticleIndexKey a0, ParticleIndex a1)
13440  """
13441  return _IMP_atom.StructureSource_add_attribute(self, *args)
13442 
13443  def get_value(self, *args):
13444  r"""
13445  get_value(StructureSource self, FloatKey a0) -> IMP::Float
13446  get_value(StructureSource self, IntKey a0) -> IMP::Int
13447  get_value(StructureSource self, FloatsKey a0) -> IMP::Floats
13448  get_value(StructureSource self, IntsKey a0) -> IMP::Ints
13449  get_value(StructureSource self, StringKey a0) -> IMP::String
13450  get_value(StructureSource self, ParticleIndexKey a0) -> Particle
13451  get_value(StructureSource self, ObjectKey a0) -> Object
13452  get_value(StructureSource self, SparseFloatKey a0) -> IMP::Float
13453  get_value(StructureSource self, SparseIntKey a0) -> IMP::Int
13454  get_value(StructureSource self, SparseStringKey a0) -> IMP::String
13455  get_value(StructureSource self, SparseParticleIndexKey a0) -> ParticleIndex
13456  """
13457  return _IMP_atom.StructureSource_get_value(self, *args)
13458 
13459  def set_value(self, *args):
13460  r"""
13461  set_value(StructureSource self, FloatKey a0, IMP::Float a1)
13462  set_value(StructureSource self, IntKey a0, IMP::Int a1)
13463  set_value(StructureSource self, FloatsKey a0, IMP::Floats a1)
13464  set_value(StructureSource self, IntsKey a0, IMP::Ints a1)
13465  set_value(StructureSource self, StringKey a0, IMP::String a1)
13466  set_value(StructureSource self, ParticleIndexKey a0, Particle a1)
13467  set_value(StructureSource self, ObjectKey a0, Object a1)
13468  set_value(StructureSource self, SparseFloatKey a0, IMP::Float a1)
13469  set_value(StructureSource self, SparseIntKey a0, IMP::Int a1)
13470  set_value(StructureSource self, SparseStringKey a0, IMP::String a1)
13471  set_value(StructureSource self, SparseParticleIndexKey a0, ParticleIndex a1)
13472  """
13473  return _IMP_atom.StructureSource_set_value(self, *args)
13474 
13475  def remove_attribute(self, *args):
13476  r"""
13477  remove_attribute(StructureSource self, FloatKey a0)
13478  remove_attribute(StructureSource self, IntKey a0)
13479  remove_attribute(StructureSource self, FloatsKey a0)
13480  remove_attribute(StructureSource self, IntsKey a0)
13481  remove_attribute(StructureSource self, StringKey a0)
13482  remove_attribute(StructureSource self, ParticleIndexKey a0)
13483  remove_attribute(StructureSource self, ObjectKey a0)
13484  remove_attribute(StructureSource self, SparseFloatKey a0)
13485  remove_attribute(StructureSource self, SparseIntKey a0)
13486  remove_attribute(StructureSource self, SparseStringKey a0)
13487  remove_attribute(StructureSource self, SparseParticleIndexKey a0)
13488  """
13489  return _IMP_atom.StructureSource_remove_attribute(self, *args)
13490 
13491  def has_attribute(self, *args):
13492  r"""
13493  has_attribute(StructureSource self, FloatKey a0) -> bool
13494  has_attribute(StructureSource self, IntKey a0) -> bool
13495  has_attribute(StructureSource self, FloatsKey a0) -> bool
13496  has_attribute(StructureSource self, IntsKey a0) -> bool
13497  has_attribute(StructureSource self, StringKey a0) -> bool
13498  has_attribute(StructureSource self, ParticleIndexKey a0) -> bool
13499  has_attribute(StructureSource self, ObjectKey a0) -> bool
13500  has_attribute(StructureSource self, SparseFloatKey a0) -> bool
13501  has_attribute(StructureSource self, SparseIntKey a0) -> bool
13502  has_attribute(StructureSource self, SparseStringKey a0) -> bool
13503  has_attribute(StructureSource self, SparseParticleIndexKey a0) -> bool
13504  """
13505  return _IMP_atom.StructureSource_has_attribute(self, *args)
13506 
13507  def get_derivative(self, a0):
13508  r"""get_derivative(StructureSource self, FloatKey a0) -> double"""
13509  return _IMP_atom.StructureSource_get_derivative(self, a0)
13510 
13511  def get_name(self):
13512  r"""get_name(StructureSource self) -> std::string"""
13513  return _IMP_atom.StructureSource_get_name(self)
13514 
13515  def clear_caches(self):
13516  r"""clear_caches(StructureSource self)"""
13517  return _IMP_atom.StructureSource_clear_caches(self)
13518 
13519  def set_name(self, a0):
13520  r"""set_name(StructureSource self, std::string a0)"""
13521  return _IMP_atom.StructureSource_set_name(self, a0)
13522 
13523  def set_check_level(self, a0):
13524  r"""set_check_level(StructureSource self, IMP::CheckLevel a0)"""
13525  return _IMP_atom.StructureSource_set_check_level(self, a0)
13526 
13527  def add_to_derivative(self, a0, a1, a2):
13528  r"""add_to_derivative(StructureSource self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
13529  return _IMP_atom.StructureSource_add_to_derivative(self, a0, a1, a2)
13530 
13531  def set_is_optimized(self, a0, a1):
13532  r"""set_is_optimized(StructureSource self, FloatKey a0, bool a1)"""
13533  return _IMP_atom.StructureSource_set_is_optimized(self, a0, a1)
13534 
13535  def get_is_optimized(self, a0):
13536  r"""get_is_optimized(StructureSource self, FloatKey a0) -> bool"""
13537  return _IMP_atom.StructureSource_get_is_optimized(self, a0)
13538 
13539  def get_check_level(self):
13540  r"""get_check_level(StructureSource self) -> IMP::CheckLevel"""
13541  return _IMP_atom.StructureSource_get_check_level(self)
13542 
13543  def __eq__(self, *args):
13544  r"""
13545  __eq__(StructureSource self, StructureSource o) -> bool
13546  __eq__(StructureSource self, Particle d) -> bool
13547  """
13548  return _IMP_atom.StructureSource___eq__(self, *args)
13549 
13550  def __ne__(self, *args):
13551  r"""
13552  __ne__(StructureSource self, StructureSource o) -> bool
13553  __ne__(StructureSource self, Particle d) -> bool
13554  """
13555  return _IMP_atom.StructureSource___ne__(self, *args)
13556 
13557  def __le__(self, *args):
13558  r"""
13559  __le__(StructureSource self, StructureSource o) -> bool
13560  __le__(StructureSource self, Particle d) -> bool
13561  """
13562  return _IMP_atom.StructureSource___le__(self, *args)
13563 
13564  def __lt__(self, *args):
13565  r"""
13566  __lt__(StructureSource self, StructureSource o) -> bool
13567  __lt__(StructureSource self, Particle d) -> bool
13568  """
13569  return _IMP_atom.StructureSource___lt__(self, *args)
13570 
13571  def __ge__(self, *args):
13572  r"""
13573  __ge__(StructureSource self, StructureSource o) -> bool
13574  __ge__(StructureSource self, Particle d) -> bool
13575  """
13576  return _IMP_atom.StructureSource___ge__(self, *args)
13577 
13578  def __gt__(self, *args):
13579  r"""
13580  __gt__(StructureSource self, StructureSource o) -> bool
13581  __gt__(StructureSource self, Particle d) -> bool
13582  """
13583  return _IMP_atom.StructureSource___gt__(self, *args)
13584 
13585  def __hash__(self):
13586  r"""__hash__(StructureSource self) -> std::size_t"""
13587  return _IMP_atom.StructureSource___hash__(self)
13588 
13589  def __str__(self):
13590  r"""__str__(StructureSource self) -> std::string"""
13591  return _IMP_atom.StructureSource___str__(self)
13592 
13593  def __repr__(self):
13594  r"""__repr__(StructureSource self) -> std::string"""
13595  return _IMP_atom.StructureSource___repr__(self)
13596 
13597  def _get_as_binary(self):
13598  r"""_get_as_binary(StructureSource self) -> PyObject *"""
13599  return _IMP_atom.StructureSource__get_as_binary(self)
13600 
13601  def _set_from_binary(self, p):
13602  r"""_set_from_binary(StructureSource self, PyObject * p)"""
13603  return _IMP_atom.StructureSource__set_from_binary(self, p)
13604 
13605  def __getstate__(self):
13606  p = self._get_as_binary()
13607  if len(self.__dict__) > 1:
13608  d = self.__dict__.copy()
13609  del d['this']
13610  p = (d, p)
13611  return p
13612 
13613  def __setstate__(self, p):
13614  if not hasattr(self, 'this'):
13615  self.__init__()
13616  if isinstance(p, tuple):
13617  d, p = p
13618  self.__dict__.update(d)
13619  return self._set_from_binary(p)
13620 
13621  __swig_destroy__ = _IMP_atom.delete_StructureSource
13622 
13623 # Register StructureSource in _IMP_atom:
13624 _IMP_atom.StructureSource_swigregister(StructureSource)
13625 
13626 def __lshift__(*args):
13627  r"""
13628  __lshift__(_ostream out, Bonded n) -> _ostream
13629  __lshift__(_ostream out, Bond n) -> _ostream
13630  __lshift__(_ostream out, Hierarchy n) -> _ostream
13631  __lshift__(_ostream out, Angle n) -> _ostream
13632  __lshift__(_ostream out, Dihedral n) -> _ostream
13633  __lshift__(_ostream out, CenterOfMass n) -> _ostream
13634  __lshift__(_ostream out, Diffusion n) -> _ostream
13635  __lshift__(_ostream out, RigidBodyDiffusion n) -> _ostream
13636  __lshift__(_ostream out, TAMDParticle n) -> _ostream
13637  __lshift__(_ostream out, Charged n) -> _ostream
13638  __lshift__(_ostream out, Domain n) -> _ostream
13639  __lshift__(_ostream out, LennardJonesTyped n) -> _ostream
13640  __lshift__(_ostream out, Fragment n) -> _ostream
13641  __lshift__(_ostream out, SecondaryStructureResidue n) -> _ostream
13642  __lshift__(_ostream out, Atom n) -> _ostream
13643  __lshift__(_ostream out, Residue n) -> _ostream
13644  __lshift__(_ostream out, Representation n) -> _ostream
13645  __lshift__(_ostream out, State n) -> _ostream
13646  __lshift__(_ostream out, Molecule n) -> _ostream
13647  __lshift__(_ostream out, Copy n) -> _ostream
13648  __lshift__(_ostream out, Chain n) -> _ostream
13649  __lshift__(_ostream out, StructureSource n) -> _ostream
13650  """
13651  return _IMP_atom.__lshift__(*args)
13652 class HelixRestraint(IMP.Restraint):
13653  r"""Proxy of C++ IMP::atom::HelixRestraint class."""
13654 
13655  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13656 
13657  def __init__(self, rs, ideal=True):
13658  r"""__init__(HelixRestraint self, IMP::atom::Residues rs, bool ideal=True) -> HelixRestraint"""
13659  _IMP_atom.HelixRestraint_swiginit(self, _IMP_atom.new_HelixRestraint(rs, ideal))
13660 
13661  def get_number_of_bonds(self):
13662  r"""get_number_of_bonds(HelixRestraint self) -> int"""
13663  return _IMP_atom.HelixRestraint_get_number_of_bonds(self)
13664 
13665  def get_number_of_dihedrals(self):
13666  r"""get_number_of_dihedrals(HelixRestraint self) -> int"""
13667  return _IMP_atom.HelixRestraint_get_number_of_dihedrals(self)
13668 
13669  def do_get_inputs(self):
13670  r"""do_get_inputs(HelixRestraint self) -> IMP::ModelObjectsTemp"""
13671  return _IMP_atom.HelixRestraint_do_get_inputs(self)
13672 
13673  def get_version_info(self):
13674  r"""get_version_info(HelixRestraint self) -> VersionInfo"""
13675  return _IMP_atom.HelixRestraint_get_version_info(self)
13676  __swig_destroy__ = _IMP_atom.delete_HelixRestraint
13677 
13678  def __str__(self):
13679  r"""__str__(HelixRestraint self) -> std::string"""
13680  return _IMP_atom.HelixRestraint___str__(self)
13681 
13682  def __repr__(self):
13683  r"""__repr__(HelixRestraint self) -> std::string"""
13684  return _IMP_atom.HelixRestraint___repr__(self)
13685 
13686  @staticmethod
13687  def get_from(o):
13688  return _object_cast_to_HelixRestraint(o)
13689 
13690 
13691 # Register HelixRestraint in _IMP_atom:
13692 _IMP_atom.HelixRestraint_swigregister(HelixRestraint)
13693 
13695  r"""get_transformation_aligning_first_to_second(Selection s1, Selection s2) -> Transformation3D"""
13696  return _IMP_atom.get_transformation_aligning_first_to_second(s1, s2)
13697 
13698 def show_molecular_hierarchy(*args):
13699  r"""show_molecular_hierarchy(Hierarchy h, _ostream out=std::cout) -> _ostream"""
13700  return _IMP_atom.show_molecular_hierarchy(*args)
13701 class CHARMMBond(object):
13702  r"""Proxy of C++ IMP::atom::CHARMMConnection< 2 > class."""
13703 
13704  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13705  __repr__ = _swig_repr
13706 
13707  def __init__(self, atoms):
13708  r"""__init__(CHARMMBond self, IMP::Strings const & atoms) -> CHARMMBond"""
13709  _IMP_atom.CHARMMBond_swiginit(self, _IMP_atom.new_CHARMMBond(atoms))
13710 
13711  def get_endpoint(self, i):
13712  r"""get_endpoint(CHARMMBond self, unsigned int i) -> CHARMMBondEndpoint"""
13713  return _IMP_atom.CHARMMBond_get_endpoint(self, i)
13714 
13715  def get_contains_atom(self, name):
13716  r"""get_contains_atom(CHARMMBond self, std::string name) -> bool"""
13717  return _IMP_atom.CHARMMBond_get_contains_atom(self, name)
13718 
13719  def show(self, *args):
13720  r"""show(CHARMMBond self, _ostream out=std::cout)"""
13721  return _IMP_atom.CHARMMBond_show(self, *args)
13722  __swig_destroy__ = _IMP_atom.delete_CHARMMBond
13723 
13724 # Register CHARMMBond in _IMP_atom:
13725 _IMP_atom.CHARMMBond_swigregister(CHARMMBond)
13726 class CHARMMAngle(object):
13727  r"""Proxy of C++ IMP::atom::CHARMMConnection< 3 > class."""
13728 
13729  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13730  __repr__ = _swig_repr
13731 
13732  def __init__(self, atoms):
13733  r"""__init__(CHARMMAngle self, IMP::Strings const & atoms) -> CHARMMAngle"""
13734  _IMP_atom.CHARMMAngle_swiginit(self, _IMP_atom.new_CHARMMAngle(atoms))
13735 
13736  def get_endpoint(self, i):
13737  r"""get_endpoint(CHARMMAngle self, unsigned int i) -> CHARMMBondEndpoint"""
13738  return _IMP_atom.CHARMMAngle_get_endpoint(self, i)
13739 
13740  def get_contains_atom(self, name):
13741  r"""get_contains_atom(CHARMMAngle self, std::string name) -> bool"""
13742  return _IMP_atom.CHARMMAngle_get_contains_atom(self, name)
13743 
13744  def show(self, *args):
13745  r"""show(CHARMMAngle self, _ostream out=std::cout)"""
13746  return _IMP_atom.CHARMMAngle_show(self, *args)
13747  __swig_destroy__ = _IMP_atom.delete_CHARMMAngle
13748 
13749 # Register CHARMMAngle in _IMP_atom:
13750 _IMP_atom.CHARMMAngle_swigregister(CHARMMAngle)
13751 
13752 def _get_native_overlap_cpp(m1, m2, threshold):
13753  r"""_get_native_overlap_cpp(IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m1, IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m2, double threshold) -> double"""
13754  return _IMP_atom._get_native_overlap_cpp(m1, m2, threshold)
13755 
13756 def _get_drmsd_cpp(m0, m1):
13757  r"""_get_drmsd_cpp(IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m0, IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m1) -> double"""
13758  return _IMP_atom._get_drmsd_cpp(m0, m1)
13759 
13760 def _get_drmsd_Q_cpp(m0, m1, threshold):
13761  r"""_get_drmsd_Q_cpp(IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m0, IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m1, double threshold) -> double"""
13762  return _IMP_atom._get_drmsd_Q_cpp(m0, m1, threshold)
13763 
13764 def _get_drms_cpp(m1, m2):
13765  r"""_get_drms_cpp(IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m1, IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m2) -> double"""
13766  return _IMP_atom._get_drms_cpp(m1, m2)
13767 
13768 def _get_rigid_bodies_drms_cpp(m1, m2, ranges):
13769  r"""_get_rigid_bodies_drms_cpp(IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m1, IMP::Vector< IMP::VectorD< 3 >,std::allocator< IMP::VectorD< 3 > > > const & m2, IMP::IntRanges const & ranges) -> double"""
13770  return _IMP_atom._get_rigid_bodies_drms_cpp(m1, m2, ranges)
13771 
13772 def get_native_overlap(a, b, d):
13773  va= [IMP.algebra.get_vector(x) for x in a]
13774  vb= [IMP.algebra.get_vector(x) for x in b]
13775  return _get_native_overlap_cpp(va, vb, d)
13776 
13777 def get_drmsd(a, b):
13778  va= [IMP.algebra.get_vector(x) for x in a]
13779  vb= [IMP.algebra.get_vector(x) for x in b]
13780  return _get_drmsd_cpp(va, vb)
13781 
13782 def get_drms(a, b):
13783  va= [IMP.algebra.get_vector(x) for x in a]
13784  vb= [IMP.algebra.get_vector(x) for x in b]
13785  return _get_drms_cpp(va, vb)
13786 
13787 def get_drmsd_Q(a, b, t):
13788  va= [IMP.algebra.get_vector(x) for x in a]
13789  vb= [IMP.algebra.get_vector(x) for x in b]
13790  return _get_drmsd_Q_cpp(va, vb, t)
13791 
13792 def get_rigid_bodies_drms(a, b, ranges):
13793  va= [IMP.algebra.get_vector(x) for x in a]
13794  vb= [IMP.algebra.get_vector(x) for x in b]
13795 #rs = [IMP.IntRange(r[0],r[1]) for r in ranges]
13796  return _get_rigid_bodies_drms_cpp(va, vb, ranges)
13797 
13798 
13799 class _LennardJonesTypedPairScore(IMP.PairScore):
13800  r"""Proxy of C++ IMP::atom::LennardJonesTypedPairScore< IMP::atom::SmoothingFunction > class."""
13801 
13802  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13803  __repr__ = _swig_repr
13804 
13805  def __init__(self, f):
13806  r"""__init__(_LennardJonesTypedPairScore self, SmoothingFunction f) -> _LennardJonesTypedPairScore"""
13807  _IMP_atom._LennardJonesTypedPairScore_swiginit(self, _IMP_atom.new__LennardJonesTypedPairScore(f))
13808 
13809  def set_repulsive_weight(self, repulsive_weight):
13810  r"""set_repulsive_weight(_LennardJonesTypedPairScore self, double repulsive_weight)"""
13811  return _IMP_atom._LennardJonesTypedPairScore_set_repulsive_weight(self, repulsive_weight)
13812 
13813  def get_repulsive_weight(self):
13814  r"""get_repulsive_weight(_LennardJonesTypedPairScore self) -> double"""
13815  return _IMP_atom._LennardJonesTypedPairScore_get_repulsive_weight(self)
13816 
13817  def set_attractive_weight(self, attractive_weight):
13818  r"""set_attractive_weight(_LennardJonesTypedPairScore self, double attractive_weight)"""
13819  return _IMP_atom._LennardJonesTypedPairScore_set_attractive_weight(self, attractive_weight)
13820 
13821  def get_attractive_weight(self):
13822  r"""get_attractive_weight(_LennardJonesTypedPairScore self) -> double"""
13823  return _IMP_atom._LennardJonesTypedPairScore_get_attractive_weight(self)
13824 
13825  def get_repulsive_type_factors(self):
13826  r"""get_repulsive_type_factors(_LennardJonesTypedPairScore self) -> IMP::Floats"""
13827  return _IMP_atom._LennardJonesTypedPairScore_get_repulsive_type_factors(self)
13828 
13829  def get_attractive_type_factors(self):
13830  r"""get_attractive_type_factors(_LennardJonesTypedPairScore self) -> IMP::Floats"""
13831  return _IMP_atom._LennardJonesTypedPairScore_get_attractive_type_factors(self)
13832 
13833  def get_smoothing_function(self):
13834  r"""get_smoothing_function(_LennardJonesTypedPairScore self) -> SmoothingFunction"""
13835  return _IMP_atom._LennardJonesTypedPairScore_get_smoothing_function(self)
13836 
13837  def do_get_inputs(self, m, pis):
13838  r"""do_get_inputs(_LennardJonesTypedPairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
13839  return _IMP_atom._LennardJonesTypedPairScore_do_get_inputs(self, m, pis)
13840 
13841  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
13842  r"""evaluate_indexes(_LennardJonesTypedPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
13843  return _IMP_atom._LennardJonesTypedPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
13844 
13845  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
13846  r"""evaluate_indexes_scores(_LennardJonesTypedPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
13847  return _IMP_atom._LennardJonesTypedPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
13848 
13849  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
13850  r"""evaluate_indexes_delta(_LennardJonesTypedPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
13851  return _IMP_atom._LennardJonesTypedPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
13852 
13853  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
13854  r"""evaluate_if_good_indexes(_LennardJonesTypedPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
13855  return _IMP_atom._LennardJonesTypedPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
13856 
13857  def get_version_info(self):
13858  r"""get_version_info(_LennardJonesTypedPairScore self) -> VersionInfo"""
13859  return _IMP_atom._LennardJonesTypedPairScore_get_version_info(self)
13860  __swig_destroy__ = _IMP_atom.delete__LennardJonesTypedPairScore
13861 
13862  @staticmethod
13863  def get_from(o):
13864  return _object_cast_to__LennardJonesTypedPairScore(o)
13865 
13866 
13867  def _get_jax(self, m, indexes, space):
13868  import IMP.atom._jax_util
13869  score = IMP.atom._jax_util._get_lennard_jones_score(
13870  self, indexes, space)
13871  return self._wrap_jax(m, score, keys=[LennardJonesTyped.get_type_key()])
13872 
13873 
13874 # Register _LennardJonesTypedPairScore in _IMP_atom:
13875 _IMP_atom._LennardJonesTypedPairScore_swigregister(_LennardJonesTypedPairScore)
13876 class _SwitchedLennardJonesTypedPairScore(IMP.PairScore):
13877  r"""Proxy of C++ IMP::atom::LennardJonesTypedPairScore< IMP::atom::ForceSwitch > class."""
13878 
13879  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13880  __repr__ = _swig_repr
13881 
13882  def __init__(self, f):
13883  r"""__init__(_SwitchedLennardJonesTypedPairScore self, ForceSwitch f) -> _SwitchedLennardJonesTypedPairScore"""
13884  _IMP_atom._SwitchedLennardJonesTypedPairScore_swiginit(self, _IMP_atom.new__SwitchedLennardJonesTypedPairScore(f))
13885 
13886  def set_repulsive_weight(self, repulsive_weight):
13887  r"""set_repulsive_weight(_SwitchedLennardJonesTypedPairScore self, double repulsive_weight)"""
13888  return _IMP_atom._SwitchedLennardJonesTypedPairScore_set_repulsive_weight(self, repulsive_weight)
13889 
13890  def get_repulsive_weight(self):
13891  r"""get_repulsive_weight(_SwitchedLennardJonesTypedPairScore self) -> double"""
13892  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_repulsive_weight(self)
13893 
13894  def set_attractive_weight(self, attractive_weight):
13895  r"""set_attractive_weight(_SwitchedLennardJonesTypedPairScore self, double attractive_weight)"""
13896  return _IMP_atom._SwitchedLennardJonesTypedPairScore_set_attractive_weight(self, attractive_weight)
13897 
13898  def get_attractive_weight(self):
13899  r"""get_attractive_weight(_SwitchedLennardJonesTypedPairScore self) -> double"""
13900  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_attractive_weight(self)
13901 
13902  def get_repulsive_type_factors(self):
13903  r"""get_repulsive_type_factors(_SwitchedLennardJonesTypedPairScore self) -> IMP::Floats"""
13904  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_repulsive_type_factors(self)
13905 
13906  def get_attractive_type_factors(self):
13907  r"""get_attractive_type_factors(_SwitchedLennardJonesTypedPairScore self) -> IMP::Floats"""
13908  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_attractive_type_factors(self)
13909 
13910  def get_smoothing_function(self):
13911  r"""get_smoothing_function(_SwitchedLennardJonesTypedPairScore self) -> ForceSwitch"""
13912  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_smoothing_function(self)
13913 
13914  def do_get_inputs(self, m, pis):
13915  r"""do_get_inputs(_SwitchedLennardJonesTypedPairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
13916  return _IMP_atom._SwitchedLennardJonesTypedPairScore_do_get_inputs(self, m, pis)
13917 
13918  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
13919  r"""evaluate_indexes(_SwitchedLennardJonesTypedPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
13920  return _IMP_atom._SwitchedLennardJonesTypedPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
13921 
13922  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
13923  r"""evaluate_indexes_scores(_SwitchedLennardJonesTypedPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
13924  return _IMP_atom._SwitchedLennardJonesTypedPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
13925 
13926  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
13927  r"""evaluate_indexes_delta(_SwitchedLennardJonesTypedPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
13928  return _IMP_atom._SwitchedLennardJonesTypedPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
13929 
13930  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
13931  r"""evaluate_if_good_indexes(_SwitchedLennardJonesTypedPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
13932  return _IMP_atom._SwitchedLennardJonesTypedPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
13933 
13934  def get_version_info(self):
13935  r"""get_version_info(_SwitchedLennardJonesTypedPairScore self) -> VersionInfo"""
13936  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_version_info(self)
13937  __swig_destroy__ = _IMP_atom.delete__SwitchedLennardJonesTypedPairScore
13938 
13939  @staticmethod
13940  def get_from(o):
13941  return _object_cast_to__SwitchedLennardJonesTypedPairScore(o)
13942 
13943 
13944  def _get_jax(self, m, indexes, space):
13945  import IMP.atom._jax_util
13946  score = IMP.atom._jax_util._get_lennard_jones_score(
13947  self, indexes, space)
13948  return self._wrap_jax(m, score, keys=[LennardJonesTyped.get_type_key()])
13949 
13950 
13951 # Register _SwitchedLennardJonesTypedPairScore in _IMP_atom:
13952 _IMP_atom._SwitchedLennardJonesTypedPairScore_swigregister(_SwitchedLennardJonesTypedPairScore)
13953 
13954 class LennardJonesTypedPairScore(_SwitchedLennardJonesTypedPairScore.__bases__[0]):
13955  def __init__(self, f):
13956  if isinstance(f, ForceSwitch):
13957  p = _SwitchedLennardJonesTypedPairScore(f)
13958  else:
13959  p = _LennardJonesTypedPairScore(f)
13960  self.__dict__['_proxied'] = p
13961  def __getattr__(self, key):
13962  return getattr(self._proxied, key)
13963  def __setattr__(self, key, val):
13964  return setattr(self._proxied, key, val)
13965 
13966  def _get_jax(self, *args, **kwargs):
13967  return self._proxied._get_jax(*args, **kwargs)
13968 
13969  @staticmethod
13970  def get_from(o):
13971  try:
13972  p = _SwitchedLennardJonesTypedPairScore.get_from(o)
13973  except ValueError:
13974  p = _LennardJonesTypedPairScore.get_from(o)
13975  obj = object.__new__(LennardJonesTypedPairScore)
13976  obj.__dict__['_proxied'] = p
13977  return obj
13978 
13979 
13980 def get_module_name():
13981  r"""get_module_name() -> std::string const"""
13982  return _IMP_atom.get_module_name()
13983 
13984 def get_module_version():
13985  r"""get_module_version() -> std::string const"""
13986  return _IMP_atom.get_module_version()
13987 
13988 def get_example_path(fname):
13989  r"""get_example_path(std::string fname) -> std::string"""
13990  return _IMP_atom.get_example_path(fname)
13991 
13992 def get_data_path(fname):
13993  r"""get_data_path(std::string fname) -> std::string"""
13994  return _IMP_atom.get_data_path(fname)
13995 
13996 from . import _version_check
13997 _version_check.check_version(get_module_version())
13998 __version__ = get_module_version()
13999 
14000 
A base class for geometry contained in particles.
A base class for modifiers of ParticlesTemp.
AtomType add_atom_type(std::string name, Element e)
Create a new AtomType.
double get_kt(double T)
Return kT for a given temperature in units of [kcal/mol].
double get_volume_from_residue_type(ResidueType rt)
Return an estimate for the volume of a given residue.
Abstract class for scoring object(s) of type ParticleIndexPair.
Definition: PairScore.h:44
A shared container for Pairs.
Definition: PairContainer.h:39
CHARMMParameters * get_heavy_atom_CHARMM_parameters()
double get_einstein_rotational_diffusion_coefficient(double r, double temp=-1)
Hierarchy read_mmcif(TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector(), bool select_first_model=true)
Read all the molecules in the first model of the mmCIF file.
Float get_secondary_structure_match_score(SecondaryStructureResidue ssr1, SecondaryStructureResidue ssr2)
Compares the secondary structure probabilities of two residues.
double get_rigid_bodies_drms(const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2, const IMP::IntRanges &ranges)
DRMS between two sets of rigid bodies.
Chain get_chain(Hierarchy h)
Get the containing chain or Chain() if there is none.
CheckLevel get_check_level()
Get the current audit mode.
Definition: exception.h:80
Vector< AtomTypes > get_chi_dihedral_atom_types(ResidueType rt)
setup
Definition: setup.py:1
Atoms get_phi_dihedral_atoms(Residue rd)
Return the atoms comprising the phi dihedral.
void show_molecular_hierarchy(Hierarchy h)
Print out the molecular hierarchy.
double get_drms(const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2)
Hierarchies read_multimodel_pdb_any(TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector())
Read all models from the PDB-like file.
Definition: mmcif.h:86
void remove_charmm_untyped_atoms(Hierarchy hierarchy)
Remove any atom from the Hierarchy that does not have a CHARMM type.
Hierarchies read_multimodel_bcif(TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector())
Read all models from the BinaryCIF file.
double get_protein_density_from_reference(ProteinDensityReference densityReference)
void show_with_representations(Hierarchy h, std::ostream &out=std::cout)
Traverse through the tree and show atom info, including representations.
Hierarchy create_simplified_from_volume(Hierarchy h, double resolution)
void add_particles(RMF::FileHandle fh, const ParticlesTemp &hs)
double get_spring_constant_in_femto_newtons_per_angstrom(double k_in_kcal_per_mol_per_angstrom_square)
Convert spring constant from kcal/mol/A^2 to femtonewton/A.
double get_native_overlap(const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2, double threshold)
Computes the native overlap between two sets of 3D points.
Various classes to hold sets of particles.
The base class for geometry.
IMP::core::RigidBody create_compatible_rigid_body(Hierarchy h, Hierarchy reference)
Rigidify a molecule or collection of molecules.
double get_drmsd(const Vector3DsOrXYZs0 &m0, const Vector3DsOrXYZs1 &m1)
Calculate distance the root mean square deviation between two sets of 3D points.
Definition: atom/distance.h:49
Vector< VectorD< D > > get_vertices(const BoundingBoxD< D > &bb)
Return a list of the 2^D bounding points for the bounding box.
Definition: BoundingBoxD.h:301
double get_mass(ResidueType c)
Get the mass from the residue type.
void add_radii(Hierarchy d, const ForceFieldParameters *ffp=get_all_atom_CHARMM_parameters(), FloatKey radius_key=FloatKey("radius"))
Add vdW radius from given force field.
A base class for geometry from a set of particles.
double get_dihedral(XYZ a, XYZ b, XYZ c, XYZ d)
Compute the dihedral angle (in radians) between the four particles.
double get_mass_from_number_of_residues(unsigned int num_aa)
Estimate the mass of a protein from the number of amino acids.
Make CGAL functionality available to IMP.
Atoms get_omega_dihedral_atoms(Residue rd)
Return the atoms comprising the omega dihedral.
ParticleIndexQuads get_chi_dihedral_particle_indexes(Residue rd)
void write_pdb(const Selection &mhd, TextOutput out, unsigned int model=1)
void setup_as_approximation(Particle *h, const ParticlesTemp &other)
ParticlesTemp get_particles(Model *m, const ParticleIndexes &ps)
Get the particles from a list of indexes.
double get_mass_from_volume(double v, ProteinDensityReference ref=ALBER)
Estimate the mass of a protein from its volume.
void destroy_bond(Bond b)
Destroy the bond connecting two particles.
HierarchyTree get_hierarchy_tree(Hierarchy h)
Get a graph for the passed Hierarchy.
void add_particle(RMF::FileHandle fh, Particle *hs)
Atoms get_charmm_untyped_atoms(Hierarchy hierarchy)
Get all atoms in the Hierarchy that do not have CHARMM types.
std::string get_data_path(std::string file_name)
Return the full path to one of this module's data files.
char get_one_letter_code(ResidueType c)
Get the 1-letter amino acid code from the residue type.
Atom get_atom(Residue rd, AtomType at)
Return a particle atom from the residue.
Composable functors to implement scores via compile-time composition.
Hierarchy create_simplified_along_backbone(Hierarchy input, int num_res, bool keep_detailed=false, Model *m=nullptr)
double get_angle(const Line3D &a, const Line3D &b)
Get angle in radians between two lines around their closest points.
Hierarchy read_bcif(TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector(), bool select_first_model=true)
Read all the molecules in the first model of the BinaryCIF file.
Restraint * create_excluded_volume_restraint(const Hierarchies &hs, double resolution=-1)
Bond create_custom_bond(Bonded a, Bonded b, Float length, Float stiffness=-1)
Connect the two wrapped particles by a custom bond.
void write_pdb_of_c_alphas(const Selection &mhd, TextOutput out, unsigned int model=1)
Write a hierarchy to a PDB as C_alpha atoms.
Hierarchies read_multimodel_mmcif(TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector())
Read all models from the mmCIF file.
double get_kd(double na, double nb, double nab, double volume)
Definition: estimates.h:101
double get_diffusion_angle(double D, double dtfs)
IMP::algebra::Transformation3D get_transformation_aligning_first_to_second(const Vector3DsOrXYZs0 &source, const Vector3DsOrXYZs1 &target)
Compute the rigid transform bringing the first point set to the second.
bool get_atom_type_exists(std::string name)
Return true if that atom type already exists.
Hierarchy read_pdb_any(TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector(), bool select_first_model=true)
Read all the molecules in the first model of the PDB-like file.
Definition: mmcif.h:61
double get_volume(const BoundingBoxD< D > &bb)
See BoundingBoxD.
Definition: BoundingBoxD.h:188
FloatPair get_component_placement_score(const core::XYZs &ref1, const core::XYZs &ref2, const core::XYZs &mdl1, const core::XYZs &mdl2)
Measure the difference between two placements of the same set of points.
ParticleIndexPairs get_indexes(const ParticlePairsTemp &ps)
Get the indexes from a list of particle pairs.
void transform(Hierarchy h, const algebra::Transformation3D &tr)
Transform a hierarchy. This is aware of rigid bodies.
core::XYZR create_cover(const Selection &s, std::string name=std::string())
double get_volume_from_mass(double m, ProteinDensityReference ref=ALBER)
Estimate the volume of a protein from its mass.
Ints get_index(const ParticlesTemp &particles, const Subset &subset, const Subsets &excluded)
double get_radius_of_gyration(const Vector3Ds &ps)
Return the radius of gyration of a set of points.
Definition: Vector3D.h:76
Common base class for heavy weight IMP objects.
Definition: Object.h:111
DensityMap * multiply(const DensityMap *m1, const DensityMap *m2)
Return a density map for which voxel i contains the result of m1[i]*m2[i].
Hierarchy create_protein(Model *m, std::string name, double target_radius, int number_of_residues, int first_residue_index=0, double volume=-1)
Create a coarse grained molecule.
Atoms get_psi_dihedral_atoms(Residue rd)
Return the atoms comprising the psi dihedral.
Abstract class for scoring object(s) of type ParticleIndex.
ParticlesTemp get_order(const Subset &s, const SubsetFilterTables &sft)
Bond create_bond(Bonded a, Bonded b, Int t)
Connect the two wrapped particles by a bond.
double get_rotational_diffusion_coefficient(const algebra::Rotation3Ds &orientations, double dt)
Base class for all optimizers.
Definition: Optimizer.h:48
double get_rmsd(const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2)
Hierarchy get_previous_residue(Residue rd)
Return the residue from the same chain with one lower index.
SecondaryStructureResidue setup_coarse_secondary_structure_residue(const Particles &ssr_ps, Model *mdl, bool winner_takes_all_per_res=false)
Coarsen some SecondaryStructureResidues.
double get_molarity(double n, double volume)
Definition: estimates.h:92
boost::graph HierarchyTree
A graph for representing a Hierarchy so you can view it nicely.
Hierarchy read_mol2(TextInput mol2_file, Model *model, Mol2Selector *mol2sel=nullptr)
Create a hierarchy from a Mol2 file.
A decorator for a particle with x,y,z coordinates.
Definition: XYZ.h:30
void add_loop_statistical_score_data(atom::Hierarchy h)
Restraint * create_internal_connectivity_restraint(const Selection &s, double k, std::string name="Connectivity%1%")
Create a restraint connecting the selection.
void write_mol2(Hierarchy rhd, TextOutput file_name)
Write a ligand hierarchy as a mol2 file.
Hierarchy read_pdb(TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector(), bool select_first_model=true)
Read all the molecules in the first model of the PDB file.
int get_state_index(Hierarchy h)
Walk up the hierarchy to find the current state.
SecondaryStructureResidues setup_coarse_secondary_structure_residues(const Particles &ssr_ps, Model *mdl, int coarse_factor, int start_res_num, bool winner_takes_all_per_res=false)
void add_protein_ligand_score_data(Hierarchy h)
Interface to specialized Particle types (e.g. atoms)
Definition: Decorator.h:119
std::string get_molecule_name(Hierarchy h)
std::ostream & show(Hierarchy h, std::ostream &out=std::cout)
Print the hierarchy using a given decorator to display each node.
Vector< Atoms > get_chi_dihedral_atoms(Residue rd)
double get_pairwise_rmsd_score(const core::XYZs &ref1, const core::XYZs &ref2, const core::XYZs &mdl1, const core::XYZs &mdl2)
Measure the RMSD between two placements of the same set of points.
double get_force_in_femto_newtons(double force_in_kcal_per_mol_per_angstrom)
Convert force from kcal/mol/A to femtonewtons.
Basic functionality that is expected to be used by a wide variety of IMP users.
Abstract predicate function.
Definition: PairPredicate.h:31
General purpose algebraic and geometric methods that are expected to be used by a wide variety of IMP...
Hierarchies read_multimodel_pdb(TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector())
Provenance create_clone(Provenance p, Model *m=nullptr)
Clone provenance (including previous provenance)
std::string get_example_path(std::string file_name)
Return the full path to one of this module's example files.
Residue get_residue(Atom d, bool nothrow=false)
Return the Residue containing this atom.
Shared optimizer state that is invoked upon commitment of new coordinates.
Hierarchy get_root(Hierarchy h)
Return the root of the hierarchy.
Abstract class to implement hierarchical methods.
Definition: Refiner.h:36
void add_dope_score_data(atom::Hierarchy h)
Bond get_bond(Bonded a, Bonded b)
Get the bond between two particles.
std::string show_graphviz(Graph g)
Restraint * create_distance_restraint(const Selection &n0, const Selection &n1, double x0, double k, std::string name="Distance%1%")
Representation get_representation(Hierarchy h, bool nothrow=false)
Return the Representation object containing this hierarchy.
FloatPair get_placement_score(const core::XYZs &source, const core::XYZs &target)
Measure the difference between two placements of the same set of points.
void write_multimodel_pdb(const Hierarchies &mhd, TextOutput out)
int get_copy_index(Hierarchy h)
Walk up the hierarchy to find the current copy index.
A decorator for helping deal with a generalized hierarchy.
double get_maximum_time_step_estimate(BrownianDynamics *bd)
double get_diffusion_coefficient(const algebra::Vector3Ds &displacements, double dt)
double get_surface_area(const Geometry &)
Compute the surface area of any volumetric object.
double get_resolution(Model *m, ParticleIndex pi)
Estimate the resolution of the hierarchy as used by Representation.
double get_rmsd_transforming_first(const Transformation3D &tr, const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2)
Calculate the root mean square deviation between two sets of 3D points.
Hierarchy create_simplified_assembly_from_volume(Hierarchy h, double resolution)
Output IMP model data in various file formats.
std::string get_chain_id(Hierarchy h)
Walk up the hierarchy to determine the chain id.
IMP::core::RigidBody create_rigid_body(const Hierarchies &h, std::string name=std::string("created rigid body"))
Rigidify a molecule or collection of molecules.
CHARMMParameters * get_all_atom_CHARMM_parameters()
Hierarchies get_leaves(const Selection &h)
double get_einstein_diffusion_coefficient(double r, double temp=-1)
double get_drmsd_Q(const Vector3DsOrXYZs0 &m0, const Vector3DsOrXYZs1 &m1, double threshold)
Definition: atom/distance.h:85
DensityMap * get_segment(DensityMap *map_to_segment, int nx_start, int nx_end, int ny_start, int ny_end, int nz_start, int nz_end)
Get a segment of the map according to xyz indexes.
Applies a PairScore to each Pair in a list.
Hierarchy get_next_residue(Residue rd)
Return the residue from the same chain with one higher index.
Restraint * create_connectivity_restraint(const Selections &s, double k, std::string name="Connectivity%1%")
Create a restraint connecting the selections.
void add_bonds(Hierarchy d, const ForceFieldParameters *ffp=get_all_atom_CHARMM_parameters())
Add bonds using definitions from given force field parameters.
void set_check_level(CheckLevel tf)
Control runtime checks in the code.
Definition: exception.h:72
double get_diffusion_length(double D, double t)
std::string get_module_version()
Return the version of this module, as a string.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:56