IMP logo
IMP Reference Guide  develop.345e71cb9a,2026/08/10
The Integrative Modeling Platform
atom/__init__.py
1 # This file was automatically generated by SWIG (https://www.swig.org).
2 # Version 4.5.0
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("ProteinLigandAtomPairScore")
1007 
1008 
1009 def _object_cast_to_ProteinLigandAtomPairScore(o):
1010  r"""_object_cast_to_ProteinLigandAtomPairScore(Object o) -> ProteinLigandAtomPairScore"""
1011  return _IMP_atom._object_cast_to_ProteinLigandAtomPairScore(o)
1012 
1013 _object_types.append("ProteinLigandRestraint")
1014 
1015 
1016 def _object_cast_to_ProteinLigandRestraint(o):
1017  r"""_object_cast_to_ProteinLigandRestraint(Object o) -> ProteinLigandRestraint"""
1018  return _IMP_atom._object_cast_to_ProteinLigandRestraint(o)
1019 
1020 _object_types.append("SameResiduePairFilter")
1021 
1022 
1023 def _object_cast_to_SameResiduePairFilter(o):
1024  r"""_object_cast_to_SameResiduePairFilter(Object o) -> SameResiduePairFilter"""
1025  return _IMP_atom._object_cast_to_SameResiduePairFilter(o)
1026 
1027 _object_types.append("SoapPairFilter")
1028 
1029 
1030 def _object_cast_to_SoapPairFilter(o):
1031  r"""_object_cast_to_SoapPairFilter(Object o) -> SoapPairFilter"""
1032  return _IMP_atom._object_cast_to_SoapPairFilter(o)
1033 
1034 _object_types.append("SmoothingFunction")
1035 
1036 
1037 def _object_cast_to_SmoothingFunction(o):
1038  r"""_object_cast_to_SmoothingFunction(Object o) -> SmoothingFunction"""
1039  return _IMP_atom._object_cast_to_SmoothingFunction(o)
1040 
1041 _object_types.append("StereochemistryPairFilter")
1042 
1043 
1044 def _object_cast_to_StereochemistryPairFilter(o):
1045  r"""_object_cast_to_StereochemistryPairFilter(Object o) -> StereochemistryPairFilter"""
1046  return _IMP_atom._object_cast_to_StereochemistryPairFilter(o)
1047 
1048 _object_types.append("VelocityScalingOptimizerState")
1049 
1050 
1051 def _object_cast_to_VelocityScalingOptimizerState(o):
1052  r"""_object_cast_to_VelocityScalingOptimizerState(Object o) -> VelocityScalingOptimizerState"""
1053  return _IMP_atom._object_cast_to_VelocityScalingOptimizerState(o)
1054 
1055 _object_types.append("WaterPDBSelector")
1056 
1057 
1058 def _object_cast_to_WaterPDBSelector(o):
1059  r"""_object_cast_to_WaterPDBSelector(Object o) -> WaterPDBSelector"""
1060  return _IMP_atom._object_cast_to_WaterPDBSelector(o)
1061 
1062 _object_types.append("WritePDBOptimizerState")
1063 
1064 
1065 def _object_cast_to_WritePDBOptimizerState(o):
1066  r"""_object_cast_to_WritePDBOptimizerState(Object o) -> WritePDBOptimizerState"""
1067  return _IMP_atom._object_cast_to_WritePDBOptimizerState(o)
1068 
1069 AtomTypes=list
1070 _plural_types.append("AtomTypes")
1071 _value_types.append("AtomType")
1072 
1073 
1074 CHARMMAtomTopologies=list
1075 _plural_types.append("CHARMMAtomTopologies")
1076 _value_types.append("CHARMMAtomTopology")
1077 
1078 
1079 CHARMMBondEndpoints=list
1080 _plural_types.append("CHARMMBondEndpoints")
1081 _value_types.append("CHARMMBondEndpoint")
1082 
1083 
1084 CHARMMBondParametersList=list
1085 _plural_types.append("CHARMMBondParametersList")
1086 _value_types.append("CHARMMBondParameters")
1087 
1088 
1089 CHARMMDihedralParametersList=list
1090 _plural_types.append("CHARMMDihedralParametersList")
1091 _value_types.append("CHARMMDihedralParameters")
1092 
1093 
1094 _object_types.append("CHARMMIdealResidueTopology")
1095 
1096 
1097 def _object_cast_to_CHARMMIdealResidueTopology(o):
1098  r"""_object_cast_to_CHARMMIdealResidueTopology(Object o) -> CHARMMIdealResidueTopology"""
1099  return _IMP_atom._object_cast_to_CHARMMIdealResidueTopology(o)
1100 
1101 CHARMMInternalCoordinates=list
1102 _plural_types.append("CHARMMInternalCoordinates")
1103 _value_types.append("CHARMMInternalCoordinate")
1104 
1105 
1106 _object_types.append("CHARMMPatch")
1107 
1108 
1109 def _object_cast_to_CHARMMPatch(o):
1110  r"""_object_cast_to_CHARMMPatch(Object o) -> CHARMMPatch"""
1111  return _IMP_atom._object_cast_to_CHARMMPatch(o)
1112 
1113 _object_types.append("CHARMMResidueTopologyBase")
1114 
1115 
1116 def _object_cast_to_CHARMMResidueTopologyBase(o):
1117  r"""_object_cast_to_CHARMMResidueTopologyBase(Object o) -> CHARMMResidueTopologyBase"""
1118  return _IMP_atom._object_cast_to_CHARMMResidueTopologyBase(o)
1119 
1120 ResidueTypes=list
1121 _plural_types.append("ResidueTypes")
1122 _value_types.append("ResidueType")
1123 
1124 
1125 ChainTypes=list
1126 _plural_types.append("ChainTypes")
1127 _value_types.append("ChainType")
1128 
1129 
1130 Selections=list
1131 _plural_types.append("Selections")
1132 _value_types.append("Selection")
1133 
1134 
1135 _object_types.append("RemoveRigidMotionOptimizerState")
1136 
1137 
1138 def _object_cast_to_RemoveRigidMotionOptimizerState(o):
1139  r"""_object_cast_to_RemoveRigidMotionOptimizerState(Object o) -> RemoveRigidMotionOptimizerState"""
1140  return _IMP_atom._object_cast_to_RemoveRigidMotionOptimizerState(o)
1141 
1142 _object_types.append("BerendsenThermostatOptimizerState")
1143 
1144 
1145 def _object_cast_to_BerendsenThermostatOptimizerState(o):
1146  r"""_object_cast_to_BerendsenThermostatOptimizerState(Object o) -> BerendsenThermostatOptimizerState"""
1147  return _IMP_atom._object_cast_to_BerendsenThermostatOptimizerState(o)
1148 
1149 _object_types.append("LangevinThermostatOptimizerState")
1150 
1151 
1152 def _object_cast_to_LangevinThermostatOptimizerState(o):
1153  r"""_object_cast_to_LangevinThermostatOptimizerState(Object o) -> LangevinThermostatOptimizerState"""
1154  return _IMP_atom._object_cast_to_LangevinThermostatOptimizerState(o)
1155 
1156 _object_types.append("SelectionGeometry")
1157 
1158 
1159 def _object_cast_to_SelectionGeometry(o):
1160  r"""_object_cast_to_SelectionGeometry(Object o) -> SelectionGeometry"""
1161  return _IMP_atom._object_cast_to_SelectionGeometry(o)
1162 
1163 _object_types.append("HierarchyGeometry")
1164 
1165 
1166 def _object_cast_to_HierarchyGeometry(o):
1167  r"""_object_cast_to_HierarchyGeometry(Object o) -> HierarchyGeometry"""
1168  return _IMP_atom._object_cast_to_HierarchyGeometry(o)
1169 
1170 _object_types.append("HierarchiesGeometry")
1171 
1172 
1173 def _object_cast_to_HierarchiesGeometry(o):
1174  r"""_object_cast_to_HierarchiesGeometry(Object o) -> HierarchiesGeometry"""
1175  return _IMP_atom._object_cast_to_HierarchiesGeometry(o)
1176 
1177 _object_types.append("BondGeometry")
1178 
1179 
1180 def _object_cast_to_BondGeometry(o):
1181  r"""_object_cast_to_BondGeometry(Object o) -> BondGeometry"""
1182  return _IMP_atom._object_cast_to_BondGeometry(o)
1183 
1184 _object_types.append("BondsGeometry")
1185 
1186 
1187 def _object_cast_to_BondsGeometry(o):
1188  r"""_object_cast_to_BondsGeometry(Object o) -> BondsGeometry"""
1189  return _IMP_atom._object_cast_to_BondsGeometry(o)
1190 
1191 _object_types.append("CAAngleRestraint")
1192 
1193 
1194 def _object_cast_to_CAAngleRestraint(o):
1195  r"""_object_cast_to_CAAngleRestraint(Object o) -> CAAngleRestraint"""
1196  return _IMP_atom._object_cast_to_CAAngleRestraint(o)
1197 
1198 _object_types.append("CADihedralRestraint")
1199 
1200 
1201 def _object_cast_to_CADihedralRestraint(o):
1202  r"""_object_cast_to_CADihedralRestraint(Object o) -> CADihedralRestraint"""
1203  return _IMP_atom._object_cast_to_CADihedralRestraint(o)
1204 
1205 _object_types.append("HelixRestraint")
1206 
1207 
1208 def _object_cast_to_HelixRestraint(o):
1209  r"""_object_cast_to_HelixRestraint(Object o) -> HelixRestraint"""
1210  return _IMP_atom._object_cast_to_HelixRestraint(o)
1211 
1212 CHARMMDihedrals=list
1213 _plural_types.append("CHARMMDihedrals")
1214 _value_types.append("CHARMMDihedral")
1215 
1216 
1217 CHARMMBonds=list
1218 _plural_types.append("CHARMMBonds")
1219 _value_types.append("CHARMMBond")
1220 
1221 
1222 CHARMMAngles=list
1223 _plural_types.append("CHARMMAngles")
1224 _value_types.append("CHARMMAngle")
1225 
1226 class Bond(IMP.Decorator):
1227  r"""Proxy of C++ IMP::atom::Bond class."""
1228 
1229  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1230 
1231  def __init__(self, *args):
1232  r"""
1233  __init__(Bond self) -> Bond
1234  __init__(Bond self, Model m, ParticleIndex id) -> Bond
1235  __init__(Bond self, _ParticleAdaptor d) -> Bond
1236  """
1237  _IMP_atom.Bond_swiginit(self, _IMP_atom.new_Bond(*args))
1238 
1239  def show(self, *args):
1240  r"""show(Bond self, _ostream out=std::cout)"""
1241  return _IMP_atom.Bond_show(self, *args)
1242 
1243  @staticmethod
1244  def get_is_setup(*args):
1245  r"""
1246  get_is_setup(_ParticleAdaptor p) -> bool
1247  get_is_setup(Model m, ParticleIndex pi) -> bool
1248  """
1249  return _IMP_atom.Bond_get_is_setup(*args)
1250  UNKNOWN = _IMP_atom.Bond_UNKNOWN
1251 
1252  NONBIOLOGICAL = _IMP_atom.Bond_NONBIOLOGICAL
1253 
1254  SINGLE = _IMP_atom.Bond_SINGLE
1255 
1256  DOUBLE = _IMP_atom.Bond_DOUBLE
1257 
1258  TRIPLE = _IMP_atom.Bond_TRIPLE
1259 
1260  HYDROGEN = _IMP_atom.Bond_HYDROGEN
1261 
1262  SALT = _IMP_atom.Bond_SALT
1263 
1264  PEPTIDE = _IMP_atom.Bond_PEPTIDE
1265 
1266  AMIDE = _IMP_atom.Bond_AMIDE
1267 
1268  AROMATIC = _IMP_atom.Bond_AROMATIC
1269 
1270 
1271  def get_bonded(self, i):
1272  r"""get_bonded(Bond self, unsigned int i) -> Bonded"""
1273  return _IMP_atom.Bond_get_bonded(self, i)
1274 
1275  def get_type(self):
1276  r"""get_type(Bond self) -> IMP::Int"""
1277  return _IMP_atom.Bond_get_type(self)
1278 
1279  def set_type(self, t):
1280  r"""set_type(Bond self, IMP::Int t)"""
1281  return _IMP_atom.Bond_set_type(self, t)
1282 
1283  def get_order(self):
1284  r"""get_order(Bond self) -> IMP::Int"""
1285  return _IMP_atom.Bond_get_order(self)
1286 
1287  def set_order(self, t):
1288  r"""set_order(Bond self, IMP::Int t)"""
1289  return _IMP_atom.Bond_set_order(self, t)
1290 
1291  def get_length(self):
1292  r"""get_length(Bond self) -> IMP::Float"""
1293  return _IMP_atom.Bond_get_length(self)
1294 
1295  def set_length(self, t):
1296  r"""set_length(Bond self, IMP::Float t)"""
1297  return _IMP_atom.Bond_set_length(self, t)
1298 
1299  def get_stiffness(self):
1300  r"""get_stiffness(Bond self) -> IMP::Float"""
1301  return _IMP_atom.Bond_get_stiffness(self)
1302 
1303  def set_stiffness(self, t):
1304  r"""set_stiffness(Bond self, IMP::Float t)"""
1305  return _IMP_atom.Bond_set_stiffness(self, t)
1306 
1307  @staticmethod
1308  def get_length_key():
1309  r"""get_length_key() -> FloatKey"""
1310  return _IMP_atom.Bond_get_length_key()
1311 
1312  def add_attribute(self, *args):
1313  r"""
1314  add_attribute(Bond self, FloatKey k, IMP::Float v, bool opt)
1315  add_attribute(Bond self, FloatKey a0, IMP::Float a1)
1316  add_attribute(Bond self, IntKey a0, IMP::Int a1)
1317  add_attribute(Bond self, FloatsKey a0, IMP::Floats a1)
1318  add_attribute(Bond self, IntsKey a0, IMP::Ints a1)
1319  add_attribute(Bond self, StringKey a0, IMP::String a1)
1320  add_attribute(Bond self, ParticleIndexKey a0, Particle a1)
1321  add_attribute(Bond self, ObjectKey a0, Object a1)
1322  add_attribute(Bond self, SparseFloatKey a0, IMP::Float a1)
1323  add_attribute(Bond self, SparseIntKey a0, IMP::Int a1)
1324  add_attribute(Bond self, SparseStringKey a0, IMP::String a1)
1325  add_attribute(Bond self, SparseParticleIndexKey a0, ParticleIndex a1)
1326  """
1327  return _IMP_atom.Bond_add_attribute(self, *args)
1328 
1329  def get_value(self, *args):
1330  r"""
1331  get_value(Bond self, FloatKey a0) -> IMP::Float
1332  get_value(Bond self, IntKey a0) -> IMP::Int
1333  get_value(Bond self, FloatsKey a0) -> IMP::Floats
1334  get_value(Bond self, IntsKey a0) -> IMP::Ints
1335  get_value(Bond self, StringKey a0) -> IMP::String
1336  get_value(Bond self, ParticleIndexKey a0) -> Particle
1337  get_value(Bond self, ObjectKey a0) -> Object
1338  get_value(Bond self, SparseFloatKey a0) -> IMP::Float
1339  get_value(Bond self, SparseIntKey a0) -> IMP::Int
1340  get_value(Bond self, SparseStringKey a0) -> IMP::String
1341  get_value(Bond self, SparseParticleIndexKey a0) -> ParticleIndex
1342  """
1343  return _IMP_atom.Bond_get_value(self, *args)
1344 
1345  def set_value(self, *args):
1346  r"""
1347  set_value(Bond self, FloatKey a0, IMP::Float a1)
1348  set_value(Bond self, IntKey a0, IMP::Int a1)
1349  set_value(Bond self, FloatsKey a0, IMP::Floats a1)
1350  set_value(Bond self, IntsKey a0, IMP::Ints a1)
1351  set_value(Bond self, StringKey a0, IMP::String a1)
1352  set_value(Bond self, ParticleIndexKey a0, Particle a1)
1353  set_value(Bond self, ObjectKey a0, Object a1)
1354  set_value(Bond self, SparseFloatKey a0, IMP::Float a1)
1355  set_value(Bond self, SparseIntKey a0, IMP::Int a1)
1356  set_value(Bond self, SparseStringKey a0, IMP::String a1)
1357  set_value(Bond self, SparseParticleIndexKey a0, ParticleIndex a1)
1358  """
1359  return _IMP_atom.Bond_set_value(self, *args)
1360 
1361  def remove_attribute(self, *args):
1362  r"""
1363  remove_attribute(Bond self, FloatKey a0)
1364  remove_attribute(Bond self, IntKey a0)
1365  remove_attribute(Bond self, FloatsKey a0)
1366  remove_attribute(Bond self, IntsKey a0)
1367  remove_attribute(Bond self, StringKey a0)
1368  remove_attribute(Bond self, ParticleIndexKey a0)
1369  remove_attribute(Bond self, ObjectKey a0)
1370  remove_attribute(Bond self, SparseFloatKey a0)
1371  remove_attribute(Bond self, SparseIntKey a0)
1372  remove_attribute(Bond self, SparseStringKey a0)
1373  remove_attribute(Bond self, SparseParticleIndexKey a0)
1374  """
1375  return _IMP_atom.Bond_remove_attribute(self, *args)
1376 
1377  def has_attribute(self, *args):
1378  r"""
1379  has_attribute(Bond self, FloatKey a0) -> bool
1380  has_attribute(Bond self, IntKey a0) -> bool
1381  has_attribute(Bond self, FloatsKey a0) -> bool
1382  has_attribute(Bond self, IntsKey a0) -> bool
1383  has_attribute(Bond self, StringKey a0) -> bool
1384  has_attribute(Bond self, ParticleIndexKey a0) -> bool
1385  has_attribute(Bond self, ObjectKey a0) -> bool
1386  has_attribute(Bond self, SparseFloatKey a0) -> bool
1387  has_attribute(Bond self, SparseIntKey a0) -> bool
1388  has_attribute(Bond self, SparseStringKey a0) -> bool
1389  has_attribute(Bond self, SparseParticleIndexKey a0) -> bool
1390  """
1391  return _IMP_atom.Bond_has_attribute(self, *args)
1392 
1393  def get_derivative(self, a0):
1394  r"""get_derivative(Bond self, FloatKey a0) -> double"""
1395  return _IMP_atom.Bond_get_derivative(self, a0)
1396 
1397  def get_name(self):
1398  r"""get_name(Bond self) -> std::string"""
1399  return _IMP_atom.Bond_get_name(self)
1400 
1401  def clear_caches(self):
1402  r"""clear_caches(Bond self)"""
1403  return _IMP_atom.Bond_clear_caches(self)
1404 
1405  def set_name(self, a0):
1406  r"""set_name(Bond self, std::string a0)"""
1407  return _IMP_atom.Bond_set_name(self, a0)
1408 
1409  def set_check_level(self, a0):
1410  r"""set_check_level(Bond self, IMP::CheckLevel a0)"""
1411  return _IMP_atom.Bond_set_check_level(self, a0)
1412 
1413  def add_to_derivative(self, a0, a1, a2):
1414  r"""add_to_derivative(Bond self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
1415  return _IMP_atom.Bond_add_to_derivative(self, a0, a1, a2)
1416 
1417  def set_is_optimized(self, a0, a1):
1418  r"""set_is_optimized(Bond self, FloatKey a0, bool a1)"""
1419  return _IMP_atom.Bond_set_is_optimized(self, a0, a1)
1420 
1421  def get_is_optimized(self, a0):
1422  r"""get_is_optimized(Bond self, FloatKey a0) -> bool"""
1423  return _IMP_atom.Bond_get_is_optimized(self, a0)
1424 
1425  def get_check_level(self):
1426  r"""get_check_level(Bond self) -> IMP::CheckLevel"""
1427  return _IMP_atom.Bond_get_check_level(self)
1428 
1429  def __eq__(self, *args):
1430  r"""
1431  __eq__(Bond self, Bond o) -> bool
1432  __eq__(Bond self, Particle d) -> bool
1433  """
1434  return _IMP_atom.Bond___eq__(self, *args)
1435 
1436  def __ne__(self, *args):
1437  r"""
1438  __ne__(Bond self, Bond o) -> bool
1439  __ne__(Bond self, Particle d) -> bool
1440  """
1441  return _IMP_atom.Bond___ne__(self, *args)
1442 
1443  def __le__(self, *args):
1444  r"""
1445  __le__(Bond self, Bond o) -> bool
1446  __le__(Bond self, Particle d) -> bool
1447  """
1448  return _IMP_atom.Bond___le__(self, *args)
1449 
1450  def __lt__(self, *args):
1451  r"""
1452  __lt__(Bond self, Bond o) -> bool
1453  __lt__(Bond self, Particle d) -> bool
1454  """
1455  return _IMP_atom.Bond___lt__(self, *args)
1456 
1457  def __ge__(self, *args):
1458  r"""
1459  __ge__(Bond self, Bond o) -> bool
1460  __ge__(Bond self, Particle d) -> bool
1461  """
1462  return _IMP_atom.Bond___ge__(self, *args)
1463 
1464  def __gt__(self, *args):
1465  r"""
1466  __gt__(Bond self, Bond o) -> bool
1467  __gt__(Bond self, Particle d) -> bool
1468  """
1469  return _IMP_atom.Bond___gt__(self, *args)
1470 
1471  def __hash__(self):
1472  r"""__hash__(Bond self) -> std::size_t"""
1473  return _IMP_atom.Bond___hash__(self)
1474 
1475  def __str__(self):
1476  r"""__str__(Bond self) -> std::string"""
1477  return _IMP_atom.Bond___str__(self)
1478 
1479  def __repr__(self):
1480  r"""__repr__(Bond self) -> std::string"""
1481  return _IMP_atom.Bond___repr__(self)
1482 
1483  def _get_as_binary(self):
1484  r"""_get_as_binary(Bond self) -> PyObject *"""
1485  return _IMP_atom.Bond__get_as_binary(self)
1486 
1487  def _set_from_binary(self, p):
1488  r"""_set_from_binary(Bond self, PyObject * p)"""
1489  return _IMP_atom.Bond__set_from_binary(self, p)
1490 
1491  def __getstate__(self):
1492  p = self._get_as_binary()
1493  if len(self.__dict__) > 1:
1494  d = self.__dict__.copy()
1495  del d['this']
1496  p = (d, p)
1497  return p
1498 
1499  def __setstate__(self, p):
1500  if not hasattr(self, 'this'):
1501  self.__init__()
1502  if isinstance(p, tuple):
1503  d, p = p
1504  self.__dict__.update(d)
1505  return self._set_from_binary(p)
1506 
1507  __swig_destroy__ = _IMP_atom.delete_Bond
1508 
1509 # Register Bond in _IMP_atom:
1510 _IMP_atom.Bond_swigregister(Bond)
1511 class Bonded(IMP.Decorator):
1512  r"""Proxy of C++ IMP::atom::Bonded class."""
1513 
1514  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1515 
1516  def __init__(self, *args):
1517  r"""
1518  __init__(Bonded self) -> Bonded
1519  __init__(Bonded self, Model m, ParticleIndex id) -> Bonded
1520  __init__(Bonded self, _ParticleAdaptor d) -> Bonded
1521  """
1522  _IMP_atom.Bonded_swiginit(self, _IMP_atom.new_Bonded(*args))
1523 
1524  def show(self, *args):
1525  r"""show(Bonded self, _ostream out=std::cout)"""
1526  return _IMP_atom.Bonded_show(self, *args)
1527 
1528  @staticmethod
1529  def setup_particle(*args):
1530  r"""
1531  setup_particle(Model m, ParticleIndex pi) -> Bonded
1532  setup_particle(_ParticleAdaptor pa) -> Bonded
1533  """
1534  return _IMP_atom.Bonded_setup_particle(*args)
1535 
1536  @staticmethod
1537  def get_is_setup(*args):
1538  r"""
1539  get_is_setup(_ParticleAdaptor p) -> bool
1540  get_is_setup(Model m, ParticleIndex pi) -> bool
1541  """
1542  return _IMP_atom.Bonded_get_is_setup(*args)
1543 
1544  def get_number_of_bonds(self):
1545  r"""get_number_of_bonds(Bonded self) -> unsigned int"""
1546  return _IMP_atom.Bonded_get_number_of_bonds(self)
1547 
1548  def get_bond_indexes(self):
1549  r"""get_bond_indexes(Bonded self) -> IMP::ParticleIndexes"""
1550  return _IMP_atom.Bonded_get_bond_indexes(self)
1551 
1552  def get_bond(self, i):
1553  r"""get_bond(Bonded self, unsigned int i) -> Bond"""
1554  return _IMP_atom.Bonded_get_bond(self, i)
1555 
1556  def get_bonded(self, i):
1557  r"""get_bonded(Bonded self, unsigned int i) -> Bonded"""
1558  return _IMP_atom.Bonded_get_bonded(self, i)
1559 
1560  def add_attribute(self, *args):
1561  r"""
1562  add_attribute(Bonded self, FloatKey k, IMP::Float v, bool opt)
1563  add_attribute(Bonded self, FloatKey a0, IMP::Float a1)
1564  add_attribute(Bonded self, IntKey a0, IMP::Int a1)
1565  add_attribute(Bonded self, FloatsKey a0, IMP::Floats a1)
1566  add_attribute(Bonded self, IntsKey a0, IMP::Ints a1)
1567  add_attribute(Bonded self, StringKey a0, IMP::String a1)
1568  add_attribute(Bonded self, ParticleIndexKey a0, Particle a1)
1569  add_attribute(Bonded self, ObjectKey a0, Object a1)
1570  add_attribute(Bonded self, SparseFloatKey a0, IMP::Float a1)
1571  add_attribute(Bonded self, SparseIntKey a0, IMP::Int a1)
1572  add_attribute(Bonded self, SparseStringKey a0, IMP::String a1)
1573  add_attribute(Bonded self, SparseParticleIndexKey a0, ParticleIndex a1)
1574  """
1575  return _IMP_atom.Bonded_add_attribute(self, *args)
1576 
1577  def get_value(self, *args):
1578  r"""
1579  get_value(Bonded self, FloatKey a0) -> IMP::Float
1580  get_value(Bonded self, IntKey a0) -> IMP::Int
1581  get_value(Bonded self, FloatsKey a0) -> IMP::Floats
1582  get_value(Bonded self, IntsKey a0) -> IMP::Ints
1583  get_value(Bonded self, StringKey a0) -> IMP::String
1584  get_value(Bonded self, ParticleIndexKey a0) -> Particle
1585  get_value(Bonded self, ObjectKey a0) -> Object
1586  get_value(Bonded self, SparseFloatKey a0) -> IMP::Float
1587  get_value(Bonded self, SparseIntKey a0) -> IMP::Int
1588  get_value(Bonded self, SparseStringKey a0) -> IMP::String
1589  get_value(Bonded self, SparseParticleIndexKey a0) -> ParticleIndex
1590  """
1591  return _IMP_atom.Bonded_get_value(self, *args)
1592 
1593  def set_value(self, *args):
1594  r"""
1595  set_value(Bonded self, FloatKey a0, IMP::Float a1)
1596  set_value(Bonded self, IntKey a0, IMP::Int a1)
1597  set_value(Bonded self, FloatsKey a0, IMP::Floats a1)
1598  set_value(Bonded self, IntsKey a0, IMP::Ints a1)
1599  set_value(Bonded self, StringKey a0, IMP::String a1)
1600  set_value(Bonded self, ParticleIndexKey a0, Particle a1)
1601  set_value(Bonded self, ObjectKey a0, Object a1)
1602  set_value(Bonded self, SparseFloatKey a0, IMP::Float a1)
1603  set_value(Bonded self, SparseIntKey a0, IMP::Int a1)
1604  set_value(Bonded self, SparseStringKey a0, IMP::String a1)
1605  set_value(Bonded self, SparseParticleIndexKey a0, ParticleIndex a1)
1606  """
1607  return _IMP_atom.Bonded_set_value(self, *args)
1608 
1609  def remove_attribute(self, *args):
1610  r"""
1611  remove_attribute(Bonded self, FloatKey a0)
1612  remove_attribute(Bonded self, IntKey a0)
1613  remove_attribute(Bonded self, FloatsKey a0)
1614  remove_attribute(Bonded self, IntsKey a0)
1615  remove_attribute(Bonded self, StringKey a0)
1616  remove_attribute(Bonded self, ParticleIndexKey a0)
1617  remove_attribute(Bonded self, ObjectKey a0)
1618  remove_attribute(Bonded self, SparseFloatKey a0)
1619  remove_attribute(Bonded self, SparseIntKey a0)
1620  remove_attribute(Bonded self, SparseStringKey a0)
1621  remove_attribute(Bonded self, SparseParticleIndexKey a0)
1622  """
1623  return _IMP_atom.Bonded_remove_attribute(self, *args)
1624 
1625  def has_attribute(self, *args):
1626  r"""
1627  has_attribute(Bonded self, FloatKey a0) -> bool
1628  has_attribute(Bonded self, IntKey a0) -> bool
1629  has_attribute(Bonded self, FloatsKey a0) -> bool
1630  has_attribute(Bonded self, IntsKey a0) -> bool
1631  has_attribute(Bonded self, StringKey a0) -> bool
1632  has_attribute(Bonded self, ParticleIndexKey a0) -> bool
1633  has_attribute(Bonded self, ObjectKey a0) -> bool
1634  has_attribute(Bonded self, SparseFloatKey a0) -> bool
1635  has_attribute(Bonded self, SparseIntKey a0) -> bool
1636  has_attribute(Bonded self, SparseStringKey a0) -> bool
1637  has_attribute(Bonded self, SparseParticleIndexKey a0) -> bool
1638  """
1639  return _IMP_atom.Bonded_has_attribute(self, *args)
1640 
1641  def get_derivative(self, a0):
1642  r"""get_derivative(Bonded self, FloatKey a0) -> double"""
1643  return _IMP_atom.Bonded_get_derivative(self, a0)
1644 
1645  def get_name(self):
1646  r"""get_name(Bonded self) -> std::string"""
1647  return _IMP_atom.Bonded_get_name(self)
1648 
1649  def clear_caches(self):
1650  r"""clear_caches(Bonded self)"""
1651  return _IMP_atom.Bonded_clear_caches(self)
1652 
1653  def set_name(self, a0):
1654  r"""set_name(Bonded self, std::string a0)"""
1655  return _IMP_atom.Bonded_set_name(self, a0)
1656 
1657  def set_check_level(self, a0):
1658  r"""set_check_level(Bonded self, IMP::CheckLevel a0)"""
1659  return _IMP_atom.Bonded_set_check_level(self, a0)
1660 
1661  def add_to_derivative(self, a0, a1, a2):
1662  r"""add_to_derivative(Bonded self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
1663  return _IMP_atom.Bonded_add_to_derivative(self, a0, a1, a2)
1664 
1665  def set_is_optimized(self, a0, a1):
1666  r"""set_is_optimized(Bonded self, FloatKey a0, bool a1)"""
1667  return _IMP_atom.Bonded_set_is_optimized(self, a0, a1)
1668 
1669  def get_is_optimized(self, a0):
1670  r"""get_is_optimized(Bonded self, FloatKey a0) -> bool"""
1671  return _IMP_atom.Bonded_get_is_optimized(self, a0)
1672 
1673  def get_check_level(self):
1674  r"""get_check_level(Bonded self) -> IMP::CheckLevel"""
1675  return _IMP_atom.Bonded_get_check_level(self)
1676 
1677  def __eq__(self, *args):
1678  r"""
1679  __eq__(Bonded self, Bonded o) -> bool
1680  __eq__(Bonded self, Particle d) -> bool
1681  """
1682  return _IMP_atom.Bonded___eq__(self, *args)
1683 
1684  def __ne__(self, *args):
1685  r"""
1686  __ne__(Bonded self, Bonded o) -> bool
1687  __ne__(Bonded self, Particle d) -> bool
1688  """
1689  return _IMP_atom.Bonded___ne__(self, *args)
1690 
1691  def __le__(self, *args):
1692  r"""
1693  __le__(Bonded self, Bonded o) -> bool
1694  __le__(Bonded self, Particle d) -> bool
1695  """
1696  return _IMP_atom.Bonded___le__(self, *args)
1697 
1698  def __lt__(self, *args):
1699  r"""
1700  __lt__(Bonded self, Bonded o) -> bool
1701  __lt__(Bonded self, Particle d) -> bool
1702  """
1703  return _IMP_atom.Bonded___lt__(self, *args)
1704 
1705  def __ge__(self, *args):
1706  r"""
1707  __ge__(Bonded self, Bonded o) -> bool
1708  __ge__(Bonded self, Particle d) -> bool
1709  """
1710  return _IMP_atom.Bonded___ge__(self, *args)
1711 
1712  def __gt__(self, *args):
1713  r"""
1714  __gt__(Bonded self, Bonded o) -> bool
1715  __gt__(Bonded self, Particle d) -> bool
1716  """
1717  return _IMP_atom.Bonded___gt__(self, *args)
1718 
1719  def __hash__(self):
1720  r"""__hash__(Bonded self) -> std::size_t"""
1721  return _IMP_atom.Bonded___hash__(self)
1722 
1723  def __str__(self):
1724  r"""__str__(Bonded self) -> std::string"""
1725  return _IMP_atom.Bonded___str__(self)
1726 
1727  def __repr__(self):
1728  r"""__repr__(Bonded self) -> std::string"""
1729  return _IMP_atom.Bonded___repr__(self)
1730 
1731  def _get_as_binary(self):
1732  r"""_get_as_binary(Bonded self) -> PyObject *"""
1733  return _IMP_atom.Bonded__get_as_binary(self)
1734 
1735  def _set_from_binary(self, p):
1736  r"""_set_from_binary(Bonded self, PyObject * p)"""
1737  return _IMP_atom.Bonded__set_from_binary(self, p)
1738 
1739  def __getstate__(self):
1740  p = self._get_as_binary()
1741  if len(self.__dict__) > 1:
1742  d = self.__dict__.copy()
1743  del d['this']
1744  p = (d, p)
1745  return p
1746 
1747  def __setstate__(self, p):
1748  if not hasattr(self, 'this'):
1749  self.__init__()
1750  if isinstance(p, tuple):
1751  d, p = p
1752  self.__dict__.update(d)
1753  return self._set_from_binary(p)
1754 
1755  __swig_destroy__ = _IMP_atom.delete_Bonded
1756 
1757 # Register Bonded in _IMP_atom:
1758 _IMP_atom.Bonded_swigregister(Bonded)
1759 
1760 def create_custom_bond(a, b, length, stiffness=-1):
1761  r"""create_custom_bond(Bonded a, Bonded b, IMP::Float length, IMP::Float stiffness=-1) -> Bond"""
1762  return _IMP_atom.create_custom_bond(a, b, length, stiffness)
1763 
1764 def create_bond(*args):
1765  r"""
1766  create_bond(Bonded a, Bonded b, IMP::Int t) -> Bond
1767  create_bond(Bonded a, Bonded b, Bond o) -> Bond
1768  """
1769  return _IMP_atom.create_bond(*args)
1770 
1771 def destroy_bond(b):
1772  r"""destroy_bond(Bond b)"""
1773  return _IMP_atom.destroy_bond(b)
1774 
1775 def get_bond(a, b):
1776  r"""get_bond(Bonded a, Bonded b) -> Bond"""
1777  return _IMP_atom.get_bond(a, b)
1778 class BondGeometry(IMP.display.SingletonGeometry):
1779  r"""Proxy of C++ IMP::atom::BondGeometry class."""
1780 
1781  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1782 
1783  def __init__(self, *args):
1784  r"""
1785  __init__(BondGeometry self, Particle p) -> BondGeometry
1786  __init__(BondGeometry self, Bond d) -> BondGeometry
1787  """
1788  _IMP_atom.BondGeometry_swiginit(self, _IMP_atom.new_BondGeometry(*args))
1789 
1790  def get_version_info(self):
1791  r"""get_version_info(BondGeometry self) -> VersionInfo"""
1792  return _IMP_atom.BondGeometry_get_version_info(self)
1793  __swig_destroy__ = _IMP_atom.delete_BondGeometry
1794 
1795  def __str__(self):
1796  r"""__str__(BondGeometry self) -> std::string"""
1797  return _IMP_atom.BondGeometry___str__(self)
1798 
1799  def __repr__(self):
1800  r"""__repr__(BondGeometry self) -> std::string"""
1801  return _IMP_atom.BondGeometry___repr__(self)
1802 
1803  @staticmethod
1804  def get_from(o):
1805  return _object_cast_to_BondGeometry(o)
1806 
1807 
1808 # Register BondGeometry in _IMP_atom:
1809 _IMP_atom.BondGeometry_swigregister(BondGeometry)
1810 class BondsGeometry(IMP.display.SingletonsGeometry):
1811  r"""Proxy of C++ IMP::atom::BondsGeometry class."""
1812 
1813  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1814 
1815  def __init__(self, sc):
1816  r"""__init__(BondsGeometry self, SingletonContainer sc) -> BondsGeometry"""
1817  _IMP_atom.BondsGeometry_swiginit(self, _IMP_atom.new_BondsGeometry(sc))
1818 
1819  def get_version_info(self):
1820  r"""get_version_info(BondsGeometry self) -> VersionInfo"""
1821  return _IMP_atom.BondsGeometry_get_version_info(self)
1822  __swig_destroy__ = _IMP_atom.delete_BondsGeometry
1823 
1824  def __str__(self):
1825  r"""__str__(BondsGeometry self) -> std::string"""
1826  return _IMP_atom.BondsGeometry___str__(self)
1827 
1828  def __repr__(self):
1829  r"""__repr__(BondsGeometry self) -> std::string"""
1830  return _IMP_atom.BondsGeometry___repr__(self)
1831 
1832  @staticmethod
1833  def get_from(o):
1834  return _object_cast_to_BondsGeometry(o)
1835 
1836 
1837 # Register BondsGeometry in _IMP_atom:
1838 _IMP_atom.BondsGeometry_swigregister(BondsGeometry)
1839 class Hierarchy(IMP.core.Hierarchy):
1840  r"""Proxy of C++ IMP::atom::Hierarchy class."""
1841 
1842  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1843 
1844  def __init__(self, *args):
1845  r"""
1846  __init__(Hierarchy self, Model m, ParticleIndex pi) -> Hierarchy
1847  __init__(Hierarchy self, _ParticleAdaptor pi) -> Hierarchy
1848  __init__(Hierarchy self) -> Hierarchy
1849  __init__(Hierarchy self, Hierarchy h) -> Hierarchy
1850  """
1851  _IMP_atom.Hierarchy_swiginit(self, _IMP_atom.new_Hierarchy(*args))
1852 
1853  @staticmethod
1854  def setup_particle(*args):
1855  r"""
1856  setup_particle(Particle p, _ParticleIndexesAdaptor children) -> Hierarchy
1857  setup_particle(Particle p) -> Hierarchy
1858  setup_particle(Model m, ParticleIndex pi, _ParticleIndexesAdaptor children=IMP::ParticleIndexesAdaptor()) -> Hierarchy
1859  """
1860  return _IMP_atom.Hierarchy_setup_particle(*args)
1861 
1862  @staticmethod
1863  def get_is_setup(*args):
1864  r"""
1865  get_is_setup(Particle p) -> bool
1866  get_is_setup(Model m, ParticleIndex p) -> bool
1867  """
1868  return _IMP_atom.Hierarchy_get_is_setup(*args)
1869 
1870  def get_is_valid(self, print_info=False):
1871  r"""get_is_valid(Hierarchy self, bool print_info=False) -> bool"""
1872  return _IMP_atom.Hierarchy_get_is_valid(self, print_info)
1873 
1874  def add_child(self, o):
1875  r"""add_child(Hierarchy self, Hierarchy o)"""
1876  return _IMP_atom.Hierarchy_add_child(self, o)
1877 
1878  def get_child(self, i):
1879  r"""get_child(Hierarchy self, unsigned int i) -> Hierarchy"""
1880  return _IMP_atom.Hierarchy_get_child(self, i)
1881 
1882  def get_children(self):
1883  r"""get_children(Hierarchy self) -> IMP::atom::Hierarchies"""
1884  return _IMP_atom.Hierarchy_get_children(self)
1885 
1886  def get_parent(self):
1887  r"""get_parent(Hierarchy self) -> Hierarchy"""
1888  return _IMP_atom.Hierarchy_get_parent(self)
1889 
1890  @staticmethod
1891  def get_traits():
1892  r"""get_traits() -> HierarchyTraits"""
1893  return _IMP_atom.Hierarchy_get_traits()
1894 
1895  def show(self, *args):
1896  r"""
1897  show(Hierarchy self, _ostream out, std::string delimiter)
1898  show(Hierarchy self, _ostream out=std::cout)
1899  """
1900  return _IMP_atom.Hierarchy_show(self, *args)
1901 
1902  def add_attribute(self, *args):
1903  r"""
1904  add_attribute(Hierarchy self, FloatKey k, IMP::Float v, bool opt)
1905  add_attribute(Hierarchy self, FloatKey a0, IMP::Float a1)
1906  add_attribute(Hierarchy self, IntKey a0, IMP::Int a1)
1907  add_attribute(Hierarchy self, FloatsKey a0, IMP::Floats a1)
1908  add_attribute(Hierarchy self, IntsKey a0, IMP::Ints a1)
1909  add_attribute(Hierarchy self, StringKey a0, IMP::String a1)
1910  add_attribute(Hierarchy self, ParticleIndexKey a0, Particle a1)
1911  add_attribute(Hierarchy self, ObjectKey a0, Object a1)
1912  add_attribute(Hierarchy self, SparseFloatKey a0, IMP::Float a1)
1913  add_attribute(Hierarchy self, SparseIntKey a0, IMP::Int a1)
1914  add_attribute(Hierarchy self, SparseStringKey a0, IMP::String a1)
1915  add_attribute(Hierarchy self, SparseParticleIndexKey a0, ParticleIndex a1)
1916  """
1917  return _IMP_atom.Hierarchy_add_attribute(self, *args)
1918 
1919  def get_value(self, *args):
1920  r"""
1921  get_value(Hierarchy self, FloatKey a0) -> IMP::Float
1922  get_value(Hierarchy self, IntKey a0) -> IMP::Int
1923  get_value(Hierarchy self, FloatsKey a0) -> IMP::Floats
1924  get_value(Hierarchy self, IntsKey a0) -> IMP::Ints
1925  get_value(Hierarchy self, StringKey a0) -> IMP::String
1926  get_value(Hierarchy self, ParticleIndexKey a0) -> Particle
1927  get_value(Hierarchy self, ObjectKey a0) -> Object
1928  get_value(Hierarchy self, SparseFloatKey a0) -> IMP::Float
1929  get_value(Hierarchy self, SparseIntKey a0) -> IMP::Int
1930  get_value(Hierarchy self, SparseStringKey a0) -> IMP::String
1931  get_value(Hierarchy self, SparseParticleIndexKey a0) -> ParticleIndex
1932  """
1933  return _IMP_atom.Hierarchy_get_value(self, *args)
1934 
1935  def set_value(self, *args):
1936  r"""
1937  set_value(Hierarchy self, FloatKey a0, IMP::Float a1)
1938  set_value(Hierarchy self, IntKey a0, IMP::Int a1)
1939  set_value(Hierarchy self, FloatsKey a0, IMP::Floats a1)
1940  set_value(Hierarchy self, IntsKey a0, IMP::Ints a1)
1941  set_value(Hierarchy self, StringKey a0, IMP::String a1)
1942  set_value(Hierarchy self, ParticleIndexKey a0, Particle a1)
1943  set_value(Hierarchy self, ObjectKey a0, Object a1)
1944  set_value(Hierarchy self, SparseFloatKey a0, IMP::Float a1)
1945  set_value(Hierarchy self, SparseIntKey a0, IMP::Int a1)
1946  set_value(Hierarchy self, SparseStringKey a0, IMP::String a1)
1947  set_value(Hierarchy self, SparseParticleIndexKey a0, ParticleIndex a1)
1948  """
1949  return _IMP_atom.Hierarchy_set_value(self, *args)
1950 
1951  def remove_attribute(self, *args):
1952  r"""
1953  remove_attribute(Hierarchy self, FloatKey a0)
1954  remove_attribute(Hierarchy self, IntKey a0)
1955  remove_attribute(Hierarchy self, FloatsKey a0)
1956  remove_attribute(Hierarchy self, IntsKey a0)
1957  remove_attribute(Hierarchy self, StringKey a0)
1958  remove_attribute(Hierarchy self, ParticleIndexKey a0)
1959  remove_attribute(Hierarchy self, ObjectKey a0)
1960  remove_attribute(Hierarchy self, SparseFloatKey a0)
1961  remove_attribute(Hierarchy self, SparseIntKey a0)
1962  remove_attribute(Hierarchy self, SparseStringKey a0)
1963  remove_attribute(Hierarchy self, SparseParticleIndexKey a0)
1964  """
1965  return _IMP_atom.Hierarchy_remove_attribute(self, *args)
1966 
1967  def has_attribute(self, *args):
1968  r"""
1969  has_attribute(Hierarchy self, FloatKey a0) -> bool
1970  has_attribute(Hierarchy self, IntKey a0) -> bool
1971  has_attribute(Hierarchy self, FloatsKey a0) -> bool
1972  has_attribute(Hierarchy self, IntsKey a0) -> bool
1973  has_attribute(Hierarchy self, StringKey a0) -> bool
1974  has_attribute(Hierarchy self, ParticleIndexKey a0) -> bool
1975  has_attribute(Hierarchy self, ObjectKey a0) -> bool
1976  has_attribute(Hierarchy self, SparseFloatKey a0) -> bool
1977  has_attribute(Hierarchy self, SparseIntKey a0) -> bool
1978  has_attribute(Hierarchy self, SparseStringKey a0) -> bool
1979  has_attribute(Hierarchy self, SparseParticleIndexKey a0) -> bool
1980  """
1981  return _IMP_atom.Hierarchy_has_attribute(self, *args)
1982 
1983  def get_derivative(self, a0):
1984  r"""get_derivative(Hierarchy self, FloatKey a0) -> double"""
1985  return _IMP_atom.Hierarchy_get_derivative(self, a0)
1986 
1987  def get_name(self):
1988  r"""get_name(Hierarchy self) -> std::string"""
1989  return _IMP_atom.Hierarchy_get_name(self)
1990 
1991  def clear_caches(self):
1992  r"""clear_caches(Hierarchy self)"""
1993  return _IMP_atom.Hierarchy_clear_caches(self)
1994 
1995  def set_name(self, a0):
1996  r"""set_name(Hierarchy self, std::string a0)"""
1997  return _IMP_atom.Hierarchy_set_name(self, a0)
1998 
1999  def set_check_level(self, a0):
2000  r"""set_check_level(Hierarchy self, IMP::CheckLevel a0)"""
2001  return _IMP_atom.Hierarchy_set_check_level(self, a0)
2002 
2003  def add_to_derivative(self, a0, a1, a2):
2004  r"""add_to_derivative(Hierarchy self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2005  return _IMP_atom.Hierarchy_add_to_derivative(self, a0, a1, a2)
2006 
2007  def set_is_optimized(self, a0, a1):
2008  r"""set_is_optimized(Hierarchy self, FloatKey a0, bool a1)"""
2009  return _IMP_atom.Hierarchy_set_is_optimized(self, a0, a1)
2010 
2011  def get_is_optimized(self, a0):
2012  r"""get_is_optimized(Hierarchy self, FloatKey a0) -> bool"""
2013  return _IMP_atom.Hierarchy_get_is_optimized(self, a0)
2014 
2015  def get_check_level(self):
2016  r"""get_check_level(Hierarchy self) -> IMP::CheckLevel"""
2017  return _IMP_atom.Hierarchy_get_check_level(self)
2018 
2019  def __eq__(self, *args):
2020  r"""
2021  __eq__(Hierarchy self, Hierarchy o) -> bool
2022  __eq__(Hierarchy self, Particle d) -> bool
2023  """
2024  return _IMP_atom.Hierarchy___eq__(self, *args)
2025 
2026  def __ne__(self, *args):
2027  r"""
2028  __ne__(Hierarchy self, Hierarchy o) -> bool
2029  __ne__(Hierarchy self, Particle d) -> bool
2030  """
2031  return _IMP_atom.Hierarchy___ne__(self, *args)
2032 
2033  def __le__(self, *args):
2034  r"""
2035  __le__(Hierarchy self, Hierarchy o) -> bool
2036  __le__(Hierarchy self, Particle d) -> bool
2037  """
2038  return _IMP_atom.Hierarchy___le__(self, *args)
2039 
2040  def __lt__(self, *args):
2041  r"""
2042  __lt__(Hierarchy self, Hierarchy o) -> bool
2043  __lt__(Hierarchy self, Particle d) -> bool
2044  """
2045  return _IMP_atom.Hierarchy___lt__(self, *args)
2046 
2047  def __ge__(self, *args):
2048  r"""
2049  __ge__(Hierarchy self, Hierarchy o) -> bool
2050  __ge__(Hierarchy self, Particle d) -> bool
2051  """
2052  return _IMP_atom.Hierarchy___ge__(self, *args)
2053 
2054  def __gt__(self, *args):
2055  r"""
2056  __gt__(Hierarchy self, Hierarchy o) -> bool
2057  __gt__(Hierarchy self, Particle d) -> bool
2058  """
2059  return _IMP_atom.Hierarchy___gt__(self, *args)
2060 
2061  def __hash__(self):
2062  r"""__hash__(Hierarchy self) -> std::size_t"""
2063  return _IMP_atom.Hierarchy___hash__(self)
2064 
2065  def __str__(self):
2066  r"""__str__(Hierarchy self) -> std::string"""
2067  return _IMP_atom.Hierarchy___str__(self)
2068 
2069  def __repr__(self):
2070  r"""__repr__(Hierarchy self) -> std::string"""
2071  return _IMP_atom.Hierarchy___repr__(self)
2072 
2073  def _get_as_binary(self):
2074  r"""_get_as_binary(Hierarchy self) -> PyObject *"""
2075  return _IMP_atom.Hierarchy__get_as_binary(self)
2076 
2077  def _set_from_binary(self, p):
2078  r"""_set_from_binary(Hierarchy self, PyObject * p)"""
2079  return _IMP_atom.Hierarchy__set_from_binary(self, p)
2080 
2081  def __getstate__(self):
2082  p = self._get_as_binary()
2083  if len(self.__dict__) > 1:
2084  d = self.__dict__.copy()
2085  del d['this']
2086  p = (d, p)
2087  return p
2088 
2089  def __setstate__(self, p):
2090  if not hasattr(self, 'this'):
2091  self.__init__()
2092  if isinstance(p, tuple):
2093  d, p = p
2094  self.__dict__.update(d)
2095  return self._set_from_binary(p)
2096 
2097  __swig_destroy__ = _IMP_atom.delete_Hierarchy
2098 
2099 # Register Hierarchy in _IMP_atom:
2100 _IMP_atom.Hierarchy_swigregister(Hierarchy)
2101 ATOM_TYPE = _IMP_atom.ATOM_TYPE
2102 
2103 RESIDUE_TYPE = _IMP_atom.RESIDUE_TYPE
2104 
2105 CHAIN_TYPE = _IMP_atom.CHAIN_TYPE
2106 
2107 MOLECULE_TYPE = _IMP_atom.MOLECULE_TYPE
2108 
2109 DOMAIN_TYPE = _IMP_atom.DOMAIN_TYPE
2110 
2111 FRAGMENT_TYPE = _IMP_atom.FRAGMENT_TYPE
2112 
2113 XYZ_TYPE = _IMP_atom.XYZ_TYPE
2114 
2115 XYZR_TYPE = _IMP_atom.XYZR_TYPE
2116 
2117 MASS_TYPE = _IMP_atom.MASS_TYPE
2118 
2119 STATE_TYPE = _IMP_atom.STATE_TYPE
2120 
2121 
2122 def get_by_type(mhd, t):
2123  r"""get_by_type(Hierarchy mhd, IMP::atom::GetByType t) -> IMP::atom::Hierarchies"""
2124  return _IMP_atom.get_by_type(mhd, t)
2125 
2126 def create_fragment(ps):
2127  r"""create_fragment(IMP::atom::Hierarchies const & ps) -> Hierarchy"""
2128  return _IMP_atom.create_fragment(ps)
2129 
2130 def get_internal_bonds(mhd, with_representations=False):
2131  r"""get_internal_bonds(Hierarchy mhd, bool with_representations=False) -> IMP::atom::Bonds"""
2132  return _IMP_atom.get_internal_bonds(mhd, with_representations)
2133 
2134 def get_root(h):
2135  r"""get_root(Hierarchy h) -> Hierarchy"""
2136  return _IMP_atom.get_root(h)
2137 
2138 def show(*args):
2139  r"""show(Hierarchy h, _ostream out=std::cout)"""
2140  return _IMP_atom.show(*args)
2141 
2142 def create_rigid_body(*args):
2143  r"""
2144  create_rigid_body(IMP::atom::Hierarchies const & h, std::string name=std::string("created rigid body")) -> RigidBody
2145  create_rigid_body(Hierarchy h) -> RigidBody
2146  """
2147  return _IMP_atom.create_rigid_body(*args)
2148 
2149 def create_compatible_rigid_body(h, reference):
2150  r"""create_compatible_rigid_body(Hierarchy h, Hierarchy reference) -> RigidBody"""
2151  return _IMP_atom.create_compatible_rigid_body(h, reference)
2152 
2153 def get_is_heterogen(h):
2154  r"""get_is_heterogen(Hierarchy h) -> bool"""
2155  return _IMP_atom.get_is_heterogen(h)
2156 
2157 def create_clone(d):
2158  r"""create_clone(Hierarchy d) -> Hierarchy"""
2159  return _IMP_atom.create_clone(d)
2160 
2161 def create_clone_one(d):
2162  r"""create_clone_one(Hierarchy d) -> Hierarchy"""
2163  return _IMP_atom.create_clone_one(d)
2164 
2165 def destroy(d):
2166  r"""destroy(Hierarchy d)"""
2167  return _IMP_atom.destroy(d)
2168 
2169 def get_bounding_box(h):
2170  r"""get_bounding_box(Hierarchy h) -> BoundingBox3D"""
2171  return _IMP_atom.get_bounding_box(h)
2172 
2173 def get_bounding_sphere(h):
2174  r"""get_bounding_sphere(Hierarchy h) -> Sphere3D"""
2175  return _IMP_atom.get_bounding_sphere(h)
2176 class Angle(IMP.Decorator):
2177  r"""Proxy of C++ IMP::atom::Angle class."""
2178 
2179  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2180 
2181  def __init__(self, *args):
2182  r"""
2183  __init__(Angle self) -> Angle
2184  __init__(Angle self, Model m, ParticleIndex id) -> Angle
2185  __init__(Angle self, _ParticleAdaptor d) -> Angle
2186  """
2187  _IMP_atom.Angle_swiginit(self, _IMP_atom.new_Angle(*args))
2188 
2189  def show(self, *args):
2190  r"""show(Angle self, _ostream out=std::cout)"""
2191  return _IMP_atom.Angle_show(self, *args)
2192 
2193  @staticmethod
2194  def setup_particle(*args):
2195  r"""
2196  setup_particle(Model m, ParticleIndex pi, XYZ a, XYZ b, XYZ c) -> Angle
2197  setup_particle(_ParticleAdaptor pa, XYZ a, XYZ b, XYZ c) -> Angle
2198  """
2199  return _IMP_atom.Angle_setup_particle(*args)
2200 
2201  @staticmethod
2202  def get_is_setup(*args):
2203  r"""
2204  get_is_setup(_ParticleAdaptor p) -> bool
2205  get_is_setup(Model m, ParticleIndex pi) -> bool
2206  """
2207  return _IMP_atom.Angle_get_is_setup(*args)
2208 
2209  def get_particle(self, *args):
2210  r"""
2211  get_particle(Angle self) -> Particle
2212  get_particle(Angle self, unsigned int i) -> Particle
2213  """
2214  return _IMP_atom.Angle_get_particle(self, *args)
2215 
2216  def get_ideal(self):
2217  r"""get_ideal(Angle self) -> IMP::Float"""
2218  return _IMP_atom.Angle_get_ideal(self)
2219 
2220  def set_ideal(self, t):
2221  r"""set_ideal(Angle self, IMP::Float t)"""
2222  return _IMP_atom.Angle_set_ideal(self, t)
2223 
2224  def get_stiffness(self):
2225  r"""get_stiffness(Angle self) -> IMP::Float"""
2226  return _IMP_atom.Angle_get_stiffness(self)
2227 
2228  def set_stiffness(self, t):
2229  r"""set_stiffness(Angle self, IMP::Float t)"""
2230  return _IMP_atom.Angle_set_stiffness(self, t)
2231 
2232  @staticmethod
2233  def get_particle_key(i):
2234  r"""get_particle_key(unsigned int i) -> ParticleIndexKey"""
2235  return _IMP_atom.Angle_get_particle_key(i)
2236 
2237  @staticmethod
2238  def get_ideal_key():
2239  r"""get_ideal_key() -> FloatKey"""
2240  return _IMP_atom.Angle_get_ideal_key()
2241 
2242  @staticmethod
2243  def get_stiffness_key():
2244  r"""get_stiffness_key() -> FloatKey"""
2245  return _IMP_atom.Angle_get_stiffness_key()
2246 
2247  def add_attribute(self, *args):
2248  r"""
2249  add_attribute(Angle self, FloatKey k, IMP::Float v, bool opt)
2250  add_attribute(Angle self, FloatKey a0, IMP::Float a1)
2251  add_attribute(Angle self, IntKey a0, IMP::Int a1)
2252  add_attribute(Angle self, FloatsKey a0, IMP::Floats a1)
2253  add_attribute(Angle self, IntsKey a0, IMP::Ints a1)
2254  add_attribute(Angle self, StringKey a0, IMP::String a1)
2255  add_attribute(Angle self, ParticleIndexKey a0, Particle a1)
2256  add_attribute(Angle self, ObjectKey a0, Object a1)
2257  add_attribute(Angle self, SparseFloatKey a0, IMP::Float a1)
2258  add_attribute(Angle self, SparseIntKey a0, IMP::Int a1)
2259  add_attribute(Angle self, SparseStringKey a0, IMP::String a1)
2260  add_attribute(Angle self, SparseParticleIndexKey a0, ParticleIndex a1)
2261  """
2262  return _IMP_atom.Angle_add_attribute(self, *args)
2263 
2264  def get_value(self, *args):
2265  r"""
2266  get_value(Angle self, FloatKey a0) -> IMP::Float
2267  get_value(Angle self, IntKey a0) -> IMP::Int
2268  get_value(Angle self, FloatsKey a0) -> IMP::Floats
2269  get_value(Angle self, IntsKey a0) -> IMP::Ints
2270  get_value(Angle self, StringKey a0) -> IMP::String
2271  get_value(Angle self, ParticleIndexKey a0) -> Particle
2272  get_value(Angle self, ObjectKey a0) -> Object
2273  get_value(Angle self, SparseFloatKey a0) -> IMP::Float
2274  get_value(Angle self, SparseIntKey a0) -> IMP::Int
2275  get_value(Angle self, SparseStringKey a0) -> IMP::String
2276  get_value(Angle self, SparseParticleIndexKey a0) -> ParticleIndex
2277  """
2278  return _IMP_atom.Angle_get_value(self, *args)
2279 
2280  def set_value(self, *args):
2281  r"""
2282  set_value(Angle self, FloatKey a0, IMP::Float a1)
2283  set_value(Angle self, IntKey a0, IMP::Int a1)
2284  set_value(Angle self, FloatsKey a0, IMP::Floats a1)
2285  set_value(Angle self, IntsKey a0, IMP::Ints a1)
2286  set_value(Angle self, StringKey a0, IMP::String a1)
2287  set_value(Angle self, ParticleIndexKey a0, Particle a1)
2288  set_value(Angle self, ObjectKey a0, Object a1)
2289  set_value(Angle self, SparseFloatKey a0, IMP::Float a1)
2290  set_value(Angle self, SparseIntKey a0, IMP::Int a1)
2291  set_value(Angle self, SparseStringKey a0, IMP::String a1)
2292  set_value(Angle self, SparseParticleIndexKey a0, ParticleIndex a1)
2293  """
2294  return _IMP_atom.Angle_set_value(self, *args)
2295 
2296  def remove_attribute(self, *args):
2297  r"""
2298  remove_attribute(Angle self, FloatKey a0)
2299  remove_attribute(Angle self, IntKey a0)
2300  remove_attribute(Angle self, FloatsKey a0)
2301  remove_attribute(Angle self, IntsKey a0)
2302  remove_attribute(Angle self, StringKey a0)
2303  remove_attribute(Angle self, ParticleIndexKey a0)
2304  remove_attribute(Angle self, ObjectKey a0)
2305  remove_attribute(Angle self, SparseFloatKey a0)
2306  remove_attribute(Angle self, SparseIntKey a0)
2307  remove_attribute(Angle self, SparseStringKey a0)
2308  remove_attribute(Angle self, SparseParticleIndexKey a0)
2309  """
2310  return _IMP_atom.Angle_remove_attribute(self, *args)
2311 
2312  def has_attribute(self, *args):
2313  r"""
2314  has_attribute(Angle self, FloatKey a0) -> bool
2315  has_attribute(Angle self, IntKey a0) -> bool
2316  has_attribute(Angle self, FloatsKey a0) -> bool
2317  has_attribute(Angle self, IntsKey a0) -> bool
2318  has_attribute(Angle self, StringKey a0) -> bool
2319  has_attribute(Angle self, ParticleIndexKey a0) -> bool
2320  has_attribute(Angle self, ObjectKey a0) -> bool
2321  has_attribute(Angle self, SparseFloatKey a0) -> bool
2322  has_attribute(Angle self, SparseIntKey a0) -> bool
2323  has_attribute(Angle self, SparseStringKey a0) -> bool
2324  has_attribute(Angle self, SparseParticleIndexKey a0) -> bool
2325  """
2326  return _IMP_atom.Angle_has_attribute(self, *args)
2327 
2328  def get_derivative(self, a0):
2329  r"""get_derivative(Angle self, FloatKey a0) -> double"""
2330  return _IMP_atom.Angle_get_derivative(self, a0)
2331 
2332  def get_name(self):
2333  r"""get_name(Angle self) -> std::string"""
2334  return _IMP_atom.Angle_get_name(self)
2335 
2336  def clear_caches(self):
2337  r"""clear_caches(Angle self)"""
2338  return _IMP_atom.Angle_clear_caches(self)
2339 
2340  def set_name(self, a0):
2341  r"""set_name(Angle self, std::string a0)"""
2342  return _IMP_atom.Angle_set_name(self, a0)
2343 
2344  def set_check_level(self, a0):
2345  r"""set_check_level(Angle self, IMP::CheckLevel a0)"""
2346  return _IMP_atom.Angle_set_check_level(self, a0)
2347 
2348  def add_to_derivative(self, a0, a1, a2):
2349  r"""add_to_derivative(Angle self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2350  return _IMP_atom.Angle_add_to_derivative(self, a0, a1, a2)
2351 
2352  def set_is_optimized(self, a0, a1):
2353  r"""set_is_optimized(Angle self, FloatKey a0, bool a1)"""
2354  return _IMP_atom.Angle_set_is_optimized(self, a0, a1)
2355 
2356  def get_is_optimized(self, a0):
2357  r"""get_is_optimized(Angle self, FloatKey a0) -> bool"""
2358  return _IMP_atom.Angle_get_is_optimized(self, a0)
2359 
2360  def get_check_level(self):
2361  r"""get_check_level(Angle self) -> IMP::CheckLevel"""
2362  return _IMP_atom.Angle_get_check_level(self)
2363 
2364  def __eq__(self, *args):
2365  r"""
2366  __eq__(Angle self, Angle o) -> bool
2367  __eq__(Angle self, Particle d) -> bool
2368  """
2369  return _IMP_atom.Angle___eq__(self, *args)
2370 
2371  def __ne__(self, *args):
2372  r"""
2373  __ne__(Angle self, Angle o) -> bool
2374  __ne__(Angle self, Particle d) -> bool
2375  """
2376  return _IMP_atom.Angle___ne__(self, *args)
2377 
2378  def __le__(self, *args):
2379  r"""
2380  __le__(Angle self, Angle o) -> bool
2381  __le__(Angle self, Particle d) -> bool
2382  """
2383  return _IMP_atom.Angle___le__(self, *args)
2384 
2385  def __lt__(self, *args):
2386  r"""
2387  __lt__(Angle self, Angle o) -> bool
2388  __lt__(Angle self, Particle d) -> bool
2389  """
2390  return _IMP_atom.Angle___lt__(self, *args)
2391 
2392  def __ge__(self, *args):
2393  r"""
2394  __ge__(Angle self, Angle o) -> bool
2395  __ge__(Angle self, Particle d) -> bool
2396  """
2397  return _IMP_atom.Angle___ge__(self, *args)
2398 
2399  def __gt__(self, *args):
2400  r"""
2401  __gt__(Angle self, Angle o) -> bool
2402  __gt__(Angle self, Particle d) -> bool
2403  """
2404  return _IMP_atom.Angle___gt__(self, *args)
2405 
2406  def __hash__(self):
2407  r"""__hash__(Angle self) -> std::size_t"""
2408  return _IMP_atom.Angle___hash__(self)
2409 
2410  def __str__(self):
2411  r"""__str__(Angle self) -> std::string"""
2412  return _IMP_atom.Angle___str__(self)
2413 
2414  def __repr__(self):
2415  r"""__repr__(Angle self) -> std::string"""
2416  return _IMP_atom.Angle___repr__(self)
2417 
2418  def _get_as_binary(self):
2419  r"""_get_as_binary(Angle self) -> PyObject *"""
2420  return _IMP_atom.Angle__get_as_binary(self)
2421 
2422  def _set_from_binary(self, p):
2423  r"""_set_from_binary(Angle self, PyObject * p)"""
2424  return _IMP_atom.Angle__set_from_binary(self, p)
2425 
2426  def __getstate__(self):
2427  p = self._get_as_binary()
2428  if len(self.__dict__) > 1:
2429  d = self.__dict__.copy()
2430  del d['this']
2431  p = (d, p)
2432  return p
2433 
2434  def __setstate__(self, p):
2435  if not hasattr(self, 'this'):
2436  self.__init__()
2437  if isinstance(p, tuple):
2438  d, p = p
2439  self.__dict__.update(d)
2440  return self._set_from_binary(p)
2441 
2442  __swig_destroy__ = _IMP_atom.delete_Angle
2443 
2444 # Register Angle in _IMP_atom:
2445 _IMP_atom.Angle_swigregister(Angle)
2446 class Dihedral(IMP.Decorator):
2447  r"""Proxy of C++ IMP::atom::Dihedral class."""
2448 
2449  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2450 
2451  def __init__(self, *args):
2452  r"""
2453  __init__(Dihedral self) -> Dihedral
2454  __init__(Dihedral self, Model m, ParticleIndex id) -> Dihedral
2455  __init__(Dihedral self, _ParticleAdaptor d) -> Dihedral
2456  """
2457  _IMP_atom.Dihedral_swiginit(self, _IMP_atom.new_Dihedral(*args))
2458 
2459  def show(self, *args):
2460  r"""show(Dihedral self, _ostream out=std::cout)"""
2461  return _IMP_atom.Dihedral_show(self, *args)
2462 
2463  @staticmethod
2464  def setup_particle(*args):
2465  r"""
2466  setup_particle(Model m, ParticleIndex pi, XYZ a, XYZ b, XYZ c, XYZ d) -> Dihedral
2467  setup_particle(_ParticleAdaptor pa, XYZ a, XYZ b, XYZ c, XYZ d) -> Dihedral
2468  """
2469  return _IMP_atom.Dihedral_setup_particle(*args)
2470 
2471  @staticmethod
2472  def get_is_setup(*args):
2473  r"""
2474  get_is_setup(_ParticleAdaptor p) -> bool
2475  get_is_setup(Model m, ParticleIndex pi) -> bool
2476  """
2477  return _IMP_atom.Dihedral_get_is_setup(*args)
2478 
2479  def get_particle(self, *args):
2480  r"""
2481  get_particle(Dihedral self) -> Particle
2482  get_particle(Dihedral self, unsigned int i) -> Particle
2483  """
2484  return _IMP_atom.Dihedral_get_particle(self, *args)
2485 
2486  def get_ideal(self):
2487  r"""get_ideal(Dihedral self) -> IMP::Float"""
2488  return _IMP_atom.Dihedral_get_ideal(self)
2489 
2490  def set_ideal(self, t):
2491  r"""set_ideal(Dihedral self, IMP::Float t)"""
2492  return _IMP_atom.Dihedral_set_ideal(self, t)
2493 
2494  def get_multiplicity(self):
2495  r"""get_multiplicity(Dihedral self) -> IMP::Int"""
2496  return _IMP_atom.Dihedral_get_multiplicity(self)
2497 
2498  def set_multiplicity(self, t):
2499  r"""set_multiplicity(Dihedral self, IMP::Int t)"""
2500  return _IMP_atom.Dihedral_set_multiplicity(self, t)
2501 
2502  def get_stiffness(self):
2503  r"""get_stiffness(Dihedral self) -> IMP::Float"""
2504  return _IMP_atom.Dihedral_get_stiffness(self)
2505 
2506  def set_stiffness(self, t):
2507  r"""set_stiffness(Dihedral self, IMP::Float t)"""
2508  return _IMP_atom.Dihedral_set_stiffness(self, t)
2509 
2510  @staticmethod
2511  def get_particle_key(i):
2512  r"""get_particle_key(unsigned int i) -> ParticleIndexKey"""
2513  return _IMP_atom.Dihedral_get_particle_key(i)
2514 
2515  @staticmethod
2516  def get_ideal_key():
2517  r"""get_ideal_key() -> FloatKey"""
2518  return _IMP_atom.Dihedral_get_ideal_key()
2519 
2520  @staticmethod
2521  def get_multiplicity_key():
2522  r"""get_multiplicity_key() -> IntKey"""
2523  return _IMP_atom.Dihedral_get_multiplicity_key()
2524 
2525  @staticmethod
2526  def get_stiffness_key():
2527  r"""get_stiffness_key() -> FloatKey"""
2528  return _IMP_atom.Dihedral_get_stiffness_key()
2529 
2530  def add_attribute(self, *args):
2531  r"""
2532  add_attribute(Dihedral self, FloatKey k, IMP::Float v, bool opt)
2533  add_attribute(Dihedral self, FloatKey a0, IMP::Float a1)
2534  add_attribute(Dihedral self, IntKey a0, IMP::Int a1)
2535  add_attribute(Dihedral self, FloatsKey a0, IMP::Floats a1)
2536  add_attribute(Dihedral self, IntsKey a0, IMP::Ints a1)
2537  add_attribute(Dihedral self, StringKey a0, IMP::String a1)
2538  add_attribute(Dihedral self, ParticleIndexKey a0, Particle a1)
2539  add_attribute(Dihedral self, ObjectKey a0, Object a1)
2540  add_attribute(Dihedral self, SparseFloatKey a0, IMP::Float a1)
2541  add_attribute(Dihedral self, SparseIntKey a0, IMP::Int a1)
2542  add_attribute(Dihedral self, SparseStringKey a0, IMP::String a1)
2543  add_attribute(Dihedral self, SparseParticleIndexKey a0, ParticleIndex a1)
2544  """
2545  return _IMP_atom.Dihedral_add_attribute(self, *args)
2546 
2547  def get_value(self, *args):
2548  r"""
2549  get_value(Dihedral self, FloatKey a0) -> IMP::Float
2550  get_value(Dihedral self, IntKey a0) -> IMP::Int
2551  get_value(Dihedral self, FloatsKey a0) -> IMP::Floats
2552  get_value(Dihedral self, IntsKey a0) -> IMP::Ints
2553  get_value(Dihedral self, StringKey a0) -> IMP::String
2554  get_value(Dihedral self, ParticleIndexKey a0) -> Particle
2555  get_value(Dihedral self, ObjectKey a0) -> Object
2556  get_value(Dihedral self, SparseFloatKey a0) -> IMP::Float
2557  get_value(Dihedral self, SparseIntKey a0) -> IMP::Int
2558  get_value(Dihedral self, SparseStringKey a0) -> IMP::String
2559  get_value(Dihedral self, SparseParticleIndexKey a0) -> ParticleIndex
2560  """
2561  return _IMP_atom.Dihedral_get_value(self, *args)
2562 
2563  def set_value(self, *args):
2564  r"""
2565  set_value(Dihedral self, FloatKey a0, IMP::Float a1)
2566  set_value(Dihedral self, IntKey a0, IMP::Int a1)
2567  set_value(Dihedral self, FloatsKey a0, IMP::Floats a1)
2568  set_value(Dihedral self, IntsKey a0, IMP::Ints a1)
2569  set_value(Dihedral self, StringKey a0, IMP::String a1)
2570  set_value(Dihedral self, ParticleIndexKey a0, Particle a1)
2571  set_value(Dihedral self, ObjectKey a0, Object a1)
2572  set_value(Dihedral self, SparseFloatKey a0, IMP::Float a1)
2573  set_value(Dihedral self, SparseIntKey a0, IMP::Int a1)
2574  set_value(Dihedral self, SparseStringKey a0, IMP::String a1)
2575  set_value(Dihedral self, SparseParticleIndexKey a0, ParticleIndex a1)
2576  """
2577  return _IMP_atom.Dihedral_set_value(self, *args)
2578 
2579  def remove_attribute(self, *args):
2580  r"""
2581  remove_attribute(Dihedral self, FloatKey a0)
2582  remove_attribute(Dihedral self, IntKey a0)
2583  remove_attribute(Dihedral self, FloatsKey a0)
2584  remove_attribute(Dihedral self, IntsKey a0)
2585  remove_attribute(Dihedral self, StringKey a0)
2586  remove_attribute(Dihedral self, ParticleIndexKey a0)
2587  remove_attribute(Dihedral self, ObjectKey a0)
2588  remove_attribute(Dihedral self, SparseFloatKey a0)
2589  remove_attribute(Dihedral self, SparseIntKey a0)
2590  remove_attribute(Dihedral self, SparseStringKey a0)
2591  remove_attribute(Dihedral self, SparseParticleIndexKey a0)
2592  """
2593  return _IMP_atom.Dihedral_remove_attribute(self, *args)
2594 
2595  def has_attribute(self, *args):
2596  r"""
2597  has_attribute(Dihedral self, FloatKey a0) -> bool
2598  has_attribute(Dihedral self, IntKey a0) -> bool
2599  has_attribute(Dihedral self, FloatsKey a0) -> bool
2600  has_attribute(Dihedral self, IntsKey a0) -> bool
2601  has_attribute(Dihedral self, StringKey a0) -> bool
2602  has_attribute(Dihedral self, ParticleIndexKey a0) -> bool
2603  has_attribute(Dihedral self, ObjectKey a0) -> bool
2604  has_attribute(Dihedral self, SparseFloatKey a0) -> bool
2605  has_attribute(Dihedral self, SparseIntKey a0) -> bool
2606  has_attribute(Dihedral self, SparseStringKey a0) -> bool
2607  has_attribute(Dihedral self, SparseParticleIndexKey a0) -> bool
2608  """
2609  return _IMP_atom.Dihedral_has_attribute(self, *args)
2610 
2611  def get_derivative(self, a0):
2612  r"""get_derivative(Dihedral self, FloatKey a0) -> double"""
2613  return _IMP_atom.Dihedral_get_derivative(self, a0)
2614 
2615  def get_name(self):
2616  r"""get_name(Dihedral self) -> std::string"""
2617  return _IMP_atom.Dihedral_get_name(self)
2618 
2619  def clear_caches(self):
2620  r"""clear_caches(Dihedral self)"""
2621  return _IMP_atom.Dihedral_clear_caches(self)
2622 
2623  def set_name(self, a0):
2624  r"""set_name(Dihedral self, std::string a0)"""
2625  return _IMP_atom.Dihedral_set_name(self, a0)
2626 
2627  def set_check_level(self, a0):
2628  r"""set_check_level(Dihedral self, IMP::CheckLevel a0)"""
2629  return _IMP_atom.Dihedral_set_check_level(self, a0)
2630 
2631  def add_to_derivative(self, a0, a1, a2):
2632  r"""add_to_derivative(Dihedral self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2633  return _IMP_atom.Dihedral_add_to_derivative(self, a0, a1, a2)
2634 
2635  def set_is_optimized(self, a0, a1):
2636  r"""set_is_optimized(Dihedral self, FloatKey a0, bool a1)"""
2637  return _IMP_atom.Dihedral_set_is_optimized(self, a0, a1)
2638 
2639  def get_is_optimized(self, a0):
2640  r"""get_is_optimized(Dihedral self, FloatKey a0) -> bool"""
2641  return _IMP_atom.Dihedral_get_is_optimized(self, a0)
2642 
2643  def get_check_level(self):
2644  r"""get_check_level(Dihedral self) -> IMP::CheckLevel"""
2645  return _IMP_atom.Dihedral_get_check_level(self)
2646 
2647  def __eq__(self, *args):
2648  r"""
2649  __eq__(Dihedral self, Dihedral o) -> bool
2650  __eq__(Dihedral self, Particle d) -> bool
2651  """
2652  return _IMP_atom.Dihedral___eq__(self, *args)
2653 
2654  def __ne__(self, *args):
2655  r"""
2656  __ne__(Dihedral self, Dihedral o) -> bool
2657  __ne__(Dihedral self, Particle d) -> bool
2658  """
2659  return _IMP_atom.Dihedral___ne__(self, *args)
2660 
2661  def __le__(self, *args):
2662  r"""
2663  __le__(Dihedral self, Dihedral o) -> bool
2664  __le__(Dihedral self, Particle d) -> bool
2665  """
2666  return _IMP_atom.Dihedral___le__(self, *args)
2667 
2668  def __lt__(self, *args):
2669  r"""
2670  __lt__(Dihedral self, Dihedral o) -> bool
2671  __lt__(Dihedral self, Particle d) -> bool
2672  """
2673  return _IMP_atom.Dihedral___lt__(self, *args)
2674 
2675  def __ge__(self, *args):
2676  r"""
2677  __ge__(Dihedral self, Dihedral o) -> bool
2678  __ge__(Dihedral self, Particle d) -> bool
2679  """
2680  return _IMP_atom.Dihedral___ge__(self, *args)
2681 
2682  def __gt__(self, *args):
2683  r"""
2684  __gt__(Dihedral self, Dihedral o) -> bool
2685  __gt__(Dihedral self, Particle d) -> bool
2686  """
2687  return _IMP_atom.Dihedral___gt__(self, *args)
2688 
2689  def __hash__(self):
2690  r"""__hash__(Dihedral self) -> std::size_t"""
2691  return _IMP_atom.Dihedral___hash__(self)
2692 
2693  def __str__(self):
2694  r"""__str__(Dihedral self) -> std::string"""
2695  return _IMP_atom.Dihedral___str__(self)
2696 
2697  def __repr__(self):
2698  r"""__repr__(Dihedral self) -> std::string"""
2699  return _IMP_atom.Dihedral___repr__(self)
2700 
2701  def _get_as_binary(self):
2702  r"""_get_as_binary(Dihedral self) -> PyObject *"""
2703  return _IMP_atom.Dihedral__get_as_binary(self)
2704 
2705  def _set_from_binary(self, p):
2706  r"""_set_from_binary(Dihedral self, PyObject * p)"""
2707  return _IMP_atom.Dihedral__set_from_binary(self, p)
2708 
2709  def __getstate__(self):
2710  p = self._get_as_binary()
2711  if len(self.__dict__) > 1:
2712  d = self.__dict__.copy()
2713  del d['this']
2714  p = (d, p)
2715  return p
2716 
2717  def __setstate__(self, p):
2718  if not hasattr(self, 'this'):
2719  self.__init__()
2720  if isinstance(p, tuple):
2721  d, p = p
2722  self.__dict__.update(d)
2723  return self._set_from_binary(p)
2724 
2725  __swig_destroy__ = _IMP_atom.delete_Dihedral
2726 
2727 # Register Dihedral in _IMP_atom:
2728 _IMP_atom.Dihedral_swigregister(Dihedral)
2729 class SmoothingFunction(IMP.Object):
2730  r"""Proxy of C++ IMP::atom::SmoothingFunction class."""
2731 
2732  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2733 
2734  def __init__(self, *args, **kwargs):
2735  raise AttributeError("No constructor defined - class is abstract")
2736 
2737  def __call__(self, *args):
2738  r"""
2739  __call__(SmoothingFunction self, double score, double distance) -> double
2740  __call__(SmoothingFunction self, double score, double deriv, double distance) -> IMP::DerivativePair
2741  """
2742  return _IMP_atom.SmoothingFunction___call__(self, *args)
2743  __swig_destroy__ = _IMP_atom.delete_SmoothingFunction
2744 
2745  def __str__(self):
2746  r"""__str__(SmoothingFunction self) -> std::string"""
2747  return _IMP_atom.SmoothingFunction___str__(self)
2748 
2749  def __repr__(self):
2750  r"""__repr__(SmoothingFunction self) -> std::string"""
2751  return _IMP_atom.SmoothingFunction___repr__(self)
2752 
2753  @staticmethod
2754  def get_from(o):
2755  return _object_cast_to_SmoothingFunction(o)
2756 
2757 
2758 # Register SmoothingFunction in _IMP_atom:
2759 _IMP_atom.SmoothingFunction_swigregister(SmoothingFunction)
2760 class ForceSwitch(SmoothingFunction):
2761  r"""Proxy of C++ IMP::atom::ForceSwitch class."""
2762 
2763  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2764 
2765  def __init__(self, min_distance, max_distance):
2766  r"""__init__(ForceSwitch self, double min_distance, double max_distance) -> ForceSwitch"""
2767  _IMP_atom.ForceSwitch_swiginit(self, _IMP_atom.new_ForceSwitch(min_distance, max_distance))
2768 
2769  def get_min_distance(self):
2770  r"""get_min_distance(ForceSwitch self) -> double"""
2771  return _IMP_atom.ForceSwitch_get_min_distance(self)
2772 
2773  def get_max_distance(self):
2774  r"""get_max_distance(ForceSwitch self) -> double"""
2775  return _IMP_atom.ForceSwitch_get_max_distance(self)
2776 
2777  def __call__(self, *args):
2778  r"""
2779  __call__(ForceSwitch self, double score, double distance) -> double
2780  __call__(ForceSwitch self, double score, double deriv, double distance) -> IMP::DerivativePair
2781  """
2782  return _IMP_atom.ForceSwitch___call__(self, *args)
2783 
2784  def get_version_info(self):
2785  r"""get_version_info(ForceSwitch self) -> VersionInfo"""
2786  return _IMP_atom.ForceSwitch_get_version_info(self)
2787  __swig_destroy__ = _IMP_atom.delete_ForceSwitch
2788 
2789  def __str__(self):
2790  r"""__str__(ForceSwitch self) -> std::string"""
2791  return _IMP_atom.ForceSwitch___str__(self)
2792 
2793  def __repr__(self):
2794  r"""__repr__(ForceSwitch self) -> std::string"""
2795  return _IMP_atom.ForceSwitch___repr__(self)
2796 
2797  @staticmethod
2798  def get_from(o):
2799  return _object_cast_to_ForceSwitch(o)
2800 
2801 
2802  def _get_jax(self):
2803  import jax.lax
2804  min_distance = self.get_min_distance()
2805  max_distance = self.get_max_distance()
2806  dist_dif = max_distance - min_distance
2807  value_prefactor = 1.0 / (dist_dif * dist_dif * dist_dif)
2808  deriv_prefactor = 6.0 * value_prefactor
2809  def mid_range_score(d):
2810  x = max_distance - d
2811  return (value_prefactor * x * x *
2812  (max_distance + 2.0 * d - 3.0 * min_distance))
2813  def not_short_range_score(d):
2814  return jax.lax.cond(d > max_distance, lambda d: 0.0,
2815  mid_range_score, d)
2816  def jax_func(score, d):
2817  factor = jax.lax.cond(d <= min_distance, lambda d: 1.0,
2818  not_short_range_score, d)
2819  return score * factor
2820  return jax_func
2821 
2822 
2823 # Register ForceSwitch in _IMP_atom:
2824 _IMP_atom.ForceSwitch_swigregister(ForceSwitch)
2825 class AngleSingletonScore(IMP.SingletonScore):
2826  r"""Proxy of C++ IMP::atom::AngleSingletonScore class."""
2827 
2828  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2829 
2830  def __init__(self, f):
2831  r"""__init__(AngleSingletonScore self, UnaryFunction f) -> AngleSingletonScore"""
2832  _IMP_atom.AngleSingletonScore_swiginit(self, _IMP_atom.new_AngleSingletonScore(f))
2833 
2834  def get_unary_function(self):
2835  r"""get_unary_function(AngleSingletonScore self) -> UnaryFunction"""
2836  return _IMP_atom.AngleSingletonScore_get_unary_function(self)
2837 
2838  def do_get_inputs(self, m, pis):
2839  r"""do_get_inputs(AngleSingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
2840  return _IMP_atom.AngleSingletonScore_do_get_inputs(self, m, pis)
2841 
2842  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
2843  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"""
2844  return _IMP_atom.AngleSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
2845 
2846  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
2847  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"""
2848  return _IMP_atom.AngleSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
2849 
2850  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
2851  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"""
2852  return _IMP_atom.AngleSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
2853 
2854  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
2855  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"""
2856  return _IMP_atom.AngleSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
2857 
2858  def get_version_info(self):
2859  r"""get_version_info(AngleSingletonScore self) -> VersionInfo"""
2860  return _IMP_atom.AngleSingletonScore_get_version_info(self)
2861  __swig_destroy__ = _IMP_atom.delete_AngleSingletonScore
2862 
2863  def __str__(self):
2864  r"""__str__(AngleSingletonScore self) -> std::string"""
2865  return _IMP_atom.AngleSingletonScore___str__(self)
2866 
2867  def __repr__(self):
2868  r"""__repr__(AngleSingletonScore self) -> std::string"""
2869  return _IMP_atom.AngleSingletonScore___repr__(self)
2870 
2871  @staticmethod
2872  def get_from(o):
2873  return _object_cast_to_AngleSingletonScore(o)
2874 
2875 
2876  def _get_jax(self, m, indexes):
2877  import jax.numpy as jnp
2878  import IMP.core._jax_util
2879  from IMP.atom._jax_util import _get_angles
2880  def score(jm, angles, uf):
2881  xyzs = jm['xyz'][angles.bonded_indexes]
2882  rij = xyzs[:,0] - xyzs[:,1]
2883  rkj = xyzs[:,2] - xyzs[:,1]
2884  angle = IMP.core._jax_util._angle(rij, rkj)
2885  angle_diff = IMP.core._jax_util._get_angle_difference(
2886  angle, angles.ideal)
2887  return uf(angles.stiffness * angle_diff)
2888  uf = self.get_unary_function().get_derived_object()
2889  f = functools.partial(score, angles=_get_angles(m, indexes),
2890  uf=uf._get_jax())
2891  return self._wrap_jax(m, f)
2892 
2893 
2894 # Register AngleSingletonScore in _IMP_atom:
2895 _IMP_atom.AngleSingletonScore_swigregister(AngleSingletonScore)
2896 class BondEndpointsRefiner(IMP.Refiner):
2897  r"""Proxy of C++ IMP::atom::BondEndpointsRefiner class."""
2898 
2899  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2900 
2901  def __init__(self):
2902  r"""__init__(BondEndpointsRefiner self) -> BondEndpointsRefiner"""
2903  _IMP_atom.BondEndpointsRefiner_swiginit(self, _IMP_atom.new_BondEndpointsRefiner())
2904 
2905  def do_get_inputs(self, m, pis):
2906  r"""do_get_inputs(BondEndpointsRefiner self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
2907  return _IMP_atom.BondEndpointsRefiner_do_get_inputs(self, m, pis)
2908 
2909  def get_version_info(self):
2910  r"""get_version_info(BondEndpointsRefiner self) -> VersionInfo"""
2911  return _IMP_atom.BondEndpointsRefiner_get_version_info(self)
2912  __swig_destroy__ = _IMP_atom.delete_BondEndpointsRefiner
2913 
2914  def __str__(self):
2915  r"""__str__(BondEndpointsRefiner self) -> std::string"""
2916  return _IMP_atom.BondEndpointsRefiner___str__(self)
2917 
2918  def __repr__(self):
2919  r"""__repr__(BondEndpointsRefiner self) -> std::string"""
2920  return _IMP_atom.BondEndpointsRefiner___repr__(self)
2921 
2922  @staticmethod
2923  def get_from(o):
2924  return _object_cast_to_BondEndpointsRefiner(o)
2925 
2926 
2927 # Register BondEndpointsRefiner in _IMP_atom:
2928 _IMP_atom.BondEndpointsRefiner_swigregister(BondEndpointsRefiner)
2929 class BondPairContainer(IMP.PairContainer):
2930  r"""Proxy of C++ IMP::atom::BondPairContainer class."""
2931 
2932  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2933 
2934  def __init__(self, sc):
2935  r"""__init__(BondPairContainer self, SingletonContainer sc) -> BondPairContainer"""
2936  _IMP_atom.BondPairContainer_swiginit(self, _IMP_atom.new_BondPairContainer(sc))
2937 
2938  def do_get_inputs(self):
2939  r"""do_get_inputs(BondPairContainer self) -> IMP::ModelObjectsTemp"""
2940  return _IMP_atom.BondPairContainer_do_get_inputs(self)
2941 
2942  def do_apply(self, sm):
2943  r"""do_apply(BondPairContainer self, PairModifier sm)"""
2944  return _IMP_atom.BondPairContainer_do_apply(self, sm)
2945 
2946  def do_apply_moved(self, sm, moved_pis, reset_pis):
2947  r"""do_apply_moved(BondPairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
2948  return _IMP_atom.BondPairContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
2949 
2950  def get_version_info(self):
2951  r"""get_version_info(BondPairContainer self) -> VersionInfo"""
2952  return _IMP_atom.BondPairContainer_get_version_info(self)
2953  __swig_destroy__ = _IMP_atom.delete_BondPairContainer
2954 
2955  def __str__(self):
2956  r"""__str__(BondPairContainer self) -> std::string"""
2957  return _IMP_atom.BondPairContainer___str__(self)
2958 
2959  def __repr__(self):
2960  r"""__repr__(BondPairContainer self) -> std::string"""
2961  return _IMP_atom.BondPairContainer___repr__(self)
2962 
2963  @staticmethod
2964  def get_from(o):
2965  return _object_cast_to_BondPairContainer(o)
2966 
2967 
2968 # Register BondPairContainer in _IMP_atom:
2969 _IMP_atom.BondPairContainer_swigregister(BondPairContainer)
2970 class BondSingletonScore(IMP.SingletonScore):
2971  r"""Proxy of C++ IMP::atom::BondSingletonScore class."""
2972 
2973  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2974 
2975  def __init__(self, f):
2976  r"""__init__(BondSingletonScore self, UnaryFunction f) -> BondSingletonScore"""
2977  _IMP_atom.BondSingletonScore_swiginit(self, _IMP_atom.new_BondSingletonScore(f))
2978 
2979  def get_unary_function(self):
2980  r"""get_unary_function(BondSingletonScore self) -> UnaryFunction"""
2981  return _IMP_atom.BondSingletonScore_get_unary_function(self)
2982 
2983  def do_get_inputs(self, m, pis):
2984  r"""do_get_inputs(BondSingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
2985  return _IMP_atom.BondSingletonScore_do_get_inputs(self, m, pis)
2986 
2987  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
2988  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"""
2989  return _IMP_atom.BondSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
2990 
2991  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
2992  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"""
2993  return _IMP_atom.BondSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
2994 
2995  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
2996  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"""
2997  return _IMP_atom.BondSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
2998 
2999  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
3000  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"""
3001  return _IMP_atom.BondSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
3002 
3003  def get_version_info(self):
3004  r"""get_version_info(BondSingletonScore self) -> VersionInfo"""
3005  return _IMP_atom.BondSingletonScore_get_version_info(self)
3006  __swig_destroy__ = _IMP_atom.delete_BondSingletonScore
3007 
3008  def __str__(self):
3009  r"""__str__(BondSingletonScore self) -> std::string"""
3010  return _IMP_atom.BondSingletonScore___str__(self)
3011 
3012  def __repr__(self):
3013  r"""__repr__(BondSingletonScore self) -> std::string"""
3014  return _IMP_atom.BondSingletonScore___repr__(self)
3015 
3016  @staticmethod
3017  def get_from(o):
3018  return _object_cast_to_BondSingletonScore(o)
3019 
3020 
3021  def _get_jax(self, m, indexes):
3022  import jax.numpy as jnp
3023  from IMP.atom._jax_util import _get_bonds
3024  def score(jm, bonds, uf):
3025  xyzs = jm['xyz'][bonds.bonded_indexes]
3026  diff = xyzs[:,0] - xyzs[:,1]
3027  drs = jnp.linalg.norm(diff, axis=1)
3028  return uf(bonds.stiffness * (drs - bonds.length))
3029  uf = self.get_unary_function().get_derived_object()
3030  f = functools.partial(score, bonds=_get_bonds(m, indexes),
3031  uf=uf._get_jax())
3032  return self._wrap_jax(m, f)
3033 
3034 
3035 # Register BondSingletonScore in _IMP_atom:
3036 _IMP_atom.BondSingletonScore_swigregister(BondSingletonScore)
3037 class DihedralSingletonScore(IMP.SingletonScore):
3038  r"""Proxy of C++ IMP::atom::DihedralSingletonScore class."""
3039 
3040  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3041 
3042  def __init__(self):
3043  r"""__init__(DihedralSingletonScore self) -> DihedralSingletonScore"""
3044  _IMP_atom.DihedralSingletonScore_swiginit(self, _IMP_atom.new_DihedralSingletonScore())
3045 
3046  def do_get_inputs(self, m, pis):
3047  r"""do_get_inputs(DihedralSingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3048  return _IMP_atom.DihedralSingletonScore_do_get_inputs(self, m, pis)
3049 
3050  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
3051  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"""
3052  return _IMP_atom.DihedralSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
3053 
3054  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
3055  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"""
3056  return _IMP_atom.DihedralSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
3057 
3058  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
3059  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"""
3060  return _IMP_atom.DihedralSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
3061 
3062  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
3063  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"""
3064  return _IMP_atom.DihedralSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
3065 
3066  def get_version_info(self):
3067  r"""get_version_info(DihedralSingletonScore self) -> VersionInfo"""
3068  return _IMP_atom.DihedralSingletonScore_get_version_info(self)
3069  __swig_destroy__ = _IMP_atom.delete_DihedralSingletonScore
3070 
3071  def __str__(self):
3072  r"""__str__(DihedralSingletonScore self) -> std::string"""
3073  return _IMP_atom.DihedralSingletonScore___str__(self)
3074 
3075  def __repr__(self):
3076  r"""__repr__(DihedralSingletonScore self) -> std::string"""
3077  return _IMP_atom.DihedralSingletonScore___repr__(self)
3078 
3079  @staticmethod
3080  def get_from(o):
3081  return _object_cast_to_DihedralSingletonScore(o)
3082 
3083 
3084  def _get_as_binary(self):
3085  r"""_get_as_binary(DihedralSingletonScore self) -> PyObject *"""
3086  return _IMP_atom.DihedralSingletonScore__get_as_binary(self)
3087 
3088  def _set_from_binary(self, p):
3089  r"""_set_from_binary(DihedralSingletonScore self, PyObject * p)"""
3090  return _IMP_atom.DihedralSingletonScore__set_from_binary(self, p)
3091 
3092  def __getstate__(self):
3093  p = self._get_as_binary()
3094  if len(self.__dict__) > 1:
3095  d = self.__dict__.copy()
3096  del d['this']
3097  p = (d, p)
3098  return p
3099 
3100  def __setstate__(self, p):
3101  if not hasattr(self, 'this'):
3102  self.__init__()
3103  if isinstance(p, tuple):
3104  d, p = p
3105  self.__dict__.update(d)
3106  return self._set_from_binary(p)
3107 
3108 
3109  def _get_jax(self, m, indexes):
3110  import jax.numpy as jnp
3111  import IMP.core._jax_util
3112  from IMP.atom._jax_util import _get_dihedrals
3113  def score(jm, dihedrals):
3114  xyzs = jm['xyz'][dihedrals.bonded_indexes]
3115  rij = xyzs[:,0] - xyzs[:,1]
3116  rkj = xyzs[:,2] - xyzs[:,1]
3117  rkl = xyzs[:,2] - xyzs[:,3]
3118  dihedral = IMP.core._jax_util._dihedral(rij, rkj, rkl)
3119  b = 0.5 * dihedrals.stiffness * jnp.abs(dihedrals.stiffness)
3120  return jnp.abs(b) + b * jnp.cos(dihedral * dihedrals.multiplicity
3121  + dihedrals.ideal)
3122  f = functools.partial(score, dihedrals=_get_dihedrals(m, indexes))
3123  return self._wrap_jax(m, f)
3124 
3125 
3126 # Register DihedralSingletonScore in _IMP_atom:
3127 _IMP_atom.DihedralSingletonScore_swigregister(DihedralSingletonScore)
3128 class ImproperSingletonScore(IMP.SingletonScore):
3129  r"""Proxy of C++ IMP::atom::ImproperSingletonScore class."""
3130 
3131  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3132 
3133  def __init__(self, f):
3134  r"""__init__(ImproperSingletonScore self, UnaryFunction f) -> ImproperSingletonScore"""
3135  _IMP_atom.ImproperSingletonScore_swiginit(self, _IMP_atom.new_ImproperSingletonScore(f))
3136 
3137  def get_unary_function(self):
3138  r"""get_unary_function(ImproperSingletonScore self) -> UnaryFunction"""
3139  return _IMP_atom.ImproperSingletonScore_get_unary_function(self)
3140 
3141  def do_get_inputs(self, m, pis):
3142  r"""do_get_inputs(ImproperSingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3143  return _IMP_atom.ImproperSingletonScore_do_get_inputs(self, m, pis)
3144 
3145  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
3146  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"""
3147  return _IMP_atom.ImproperSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
3148 
3149  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
3150  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"""
3151  return _IMP_atom.ImproperSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
3152 
3153  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
3154  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"""
3155  return _IMP_atom.ImproperSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
3156 
3157  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
3158  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"""
3159  return _IMP_atom.ImproperSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
3160 
3161  def get_version_info(self):
3162  r"""get_version_info(ImproperSingletonScore self) -> VersionInfo"""
3163  return _IMP_atom.ImproperSingletonScore_get_version_info(self)
3164  __swig_destroy__ = _IMP_atom.delete_ImproperSingletonScore
3165 
3166  def __str__(self):
3167  r"""__str__(ImproperSingletonScore self) -> std::string"""
3168  return _IMP_atom.ImproperSingletonScore___str__(self)
3169 
3170  def __repr__(self):
3171  r"""__repr__(ImproperSingletonScore self) -> std::string"""
3172  return _IMP_atom.ImproperSingletonScore___repr__(self)
3173 
3174  @staticmethod
3175  def get_from(o):
3176  return _object_cast_to_ImproperSingletonScore(o)
3177 
3178 
3179  def _get_jax(self, m, indexes):
3180  import jax.numpy as jnp
3181  import IMP.core._jax_util
3182  from IMP.atom._jax_util import _get_dihedrals
3183  def score(jm, dihedrals, uf):
3184  xyzs = jm['xyz'][dihedrals.bonded_indexes]
3185  rij = xyzs[:,0] - xyzs[:,1]
3186  rkj = xyzs[:,2] - xyzs[:,1]
3187  rkl = xyzs[:,2] - xyzs[:,3]
3188  dihedral = IMP.core._jax_util._dihedral(rij, rkj, rkl)
3189  angle_diff = IMP.core._jax_util._get_angle_difference(
3190  dihedral, dihedrals.ideal)
3191  return uf(dihedrals.stiffness * angle_diff)
3192  uf = self.get_unary_function().get_derived_object()
3193  f = functools.partial(score, dihedrals=_get_dihedrals(m, indexes),
3194  uf=uf._get_jax())
3195  return self._wrap_jax(m, f)
3196 
3197 
3198 # Register ImproperSingletonScore in _IMP_atom:
3199 _IMP_atom.ImproperSingletonScore_swigregister(ImproperSingletonScore)
3200 class CenterOfMass(IMP.Decorator):
3201  r"""Proxy of C++ IMP::atom::CenterOfMass class."""
3202 
3203  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3204 
3205  def get_constraint(self):
3206  r"""get_constraint(CenterOfMass self) -> Constraint"""
3207  return _IMP_atom.CenterOfMass_get_constraint(self)
3208 
3209  def get_mass(self):
3210  r"""get_mass(CenterOfMass self) -> IMP::Float"""
3211  return _IMP_atom.CenterOfMass_get_mass(self)
3212 
3213  def get_coordinate(self, i):
3214  r"""get_coordinate(CenterOfMass self, int i) -> IMP::Float"""
3215  return _IMP_atom.CenterOfMass_get_coordinate(self, i)
3216 
3217  def get_coordinates(self):
3218  r"""get_coordinates(CenterOfMass self) -> Vector3D"""
3219  return _IMP_atom.CenterOfMass_get_coordinates(self)
3220 
3221  def __init__(self, *args):
3222  r"""
3223  __init__(CenterOfMass self) -> CenterOfMass
3224  __init__(CenterOfMass self, Model m, ParticleIndex id) -> CenterOfMass
3225  __init__(CenterOfMass self, _ParticleAdaptor d) -> CenterOfMass
3226  """
3227  _IMP_atom.CenterOfMass_swiginit(self, _IMP_atom.new_CenterOfMass(*args))
3228 
3229  def show(self, *args):
3230  r"""show(CenterOfMass self, _ostream out=std::cout)"""
3231  return _IMP_atom.CenterOfMass_show(self, *args)
3232 
3233  @staticmethod
3234  def setup_particle(*args):
3235  r"""
3236  setup_particle(Model m, ParticleIndex pi, _ParticleIndexesAdaptor members) -> CenterOfMass
3237  setup_particle(_ParticleAdaptor pa, _ParticleIndexesAdaptor members) -> CenterOfMass
3238  setup_particle(Model m, ParticleIndex pi, Refiner refiner) -> CenterOfMass
3239  setup_particle(_ParticleAdaptor pa, Refiner refiner) -> CenterOfMass
3240  """
3241  return _IMP_atom.CenterOfMass_setup_particle(*args)
3242 
3243  @staticmethod
3244  def teardown_particle(com):
3245  r"""teardown_particle(CenterOfMass com)"""
3246  return _IMP_atom.CenterOfMass_teardown_particle(com)
3247 
3248  @staticmethod
3249  def get_is_setup(*args):
3250  r"""
3251  get_is_setup(_ParticleAdaptor p) -> bool
3252  get_is_setup(Model m, ParticleIndex pi) -> bool
3253  """
3254  return _IMP_atom.CenterOfMass_get_is_setup(*args)
3255 
3256  def add_attribute(self, *args):
3257  r"""
3258  add_attribute(CenterOfMass self, FloatKey k, IMP::Float v, bool opt)
3259  add_attribute(CenterOfMass self, FloatKey a0, IMP::Float a1)
3260  add_attribute(CenterOfMass self, IntKey a0, IMP::Int a1)
3261  add_attribute(CenterOfMass self, FloatsKey a0, IMP::Floats a1)
3262  add_attribute(CenterOfMass self, IntsKey a0, IMP::Ints a1)
3263  add_attribute(CenterOfMass self, StringKey a0, IMP::String a1)
3264  add_attribute(CenterOfMass self, ParticleIndexKey a0, Particle a1)
3265  add_attribute(CenterOfMass self, ObjectKey a0, Object a1)
3266  add_attribute(CenterOfMass self, SparseFloatKey a0, IMP::Float a1)
3267  add_attribute(CenterOfMass self, SparseIntKey a0, IMP::Int a1)
3268  add_attribute(CenterOfMass self, SparseStringKey a0, IMP::String a1)
3269  add_attribute(CenterOfMass self, SparseParticleIndexKey a0, ParticleIndex a1)
3270  """
3271  return _IMP_atom.CenterOfMass_add_attribute(self, *args)
3272 
3273  def get_value(self, *args):
3274  r"""
3275  get_value(CenterOfMass self, FloatKey a0) -> IMP::Float
3276  get_value(CenterOfMass self, IntKey a0) -> IMP::Int
3277  get_value(CenterOfMass self, FloatsKey a0) -> IMP::Floats
3278  get_value(CenterOfMass self, IntsKey a0) -> IMP::Ints
3279  get_value(CenterOfMass self, StringKey a0) -> IMP::String
3280  get_value(CenterOfMass self, ParticleIndexKey a0) -> Particle
3281  get_value(CenterOfMass self, ObjectKey a0) -> Object
3282  get_value(CenterOfMass self, SparseFloatKey a0) -> IMP::Float
3283  get_value(CenterOfMass self, SparseIntKey a0) -> IMP::Int
3284  get_value(CenterOfMass self, SparseStringKey a0) -> IMP::String
3285  get_value(CenterOfMass self, SparseParticleIndexKey a0) -> ParticleIndex
3286  """
3287  return _IMP_atom.CenterOfMass_get_value(self, *args)
3288 
3289  def set_value(self, *args):
3290  r"""
3291  set_value(CenterOfMass self, FloatKey a0, IMP::Float a1)
3292  set_value(CenterOfMass self, IntKey a0, IMP::Int a1)
3293  set_value(CenterOfMass self, FloatsKey a0, IMP::Floats a1)
3294  set_value(CenterOfMass self, IntsKey a0, IMP::Ints a1)
3295  set_value(CenterOfMass self, StringKey a0, IMP::String a1)
3296  set_value(CenterOfMass self, ParticleIndexKey a0, Particle a1)
3297  set_value(CenterOfMass self, ObjectKey a0, Object a1)
3298  set_value(CenterOfMass self, SparseFloatKey a0, IMP::Float a1)
3299  set_value(CenterOfMass self, SparseIntKey a0, IMP::Int a1)
3300  set_value(CenterOfMass self, SparseStringKey a0, IMP::String a1)
3301  set_value(CenterOfMass self, SparseParticleIndexKey a0, ParticleIndex a1)
3302  """
3303  return _IMP_atom.CenterOfMass_set_value(self, *args)
3304 
3305  def remove_attribute(self, *args):
3306  r"""
3307  remove_attribute(CenterOfMass self, FloatKey a0)
3308  remove_attribute(CenterOfMass self, IntKey a0)
3309  remove_attribute(CenterOfMass self, FloatsKey a0)
3310  remove_attribute(CenterOfMass self, IntsKey a0)
3311  remove_attribute(CenterOfMass self, StringKey a0)
3312  remove_attribute(CenterOfMass self, ParticleIndexKey a0)
3313  remove_attribute(CenterOfMass self, ObjectKey a0)
3314  remove_attribute(CenterOfMass self, SparseFloatKey a0)
3315  remove_attribute(CenterOfMass self, SparseIntKey a0)
3316  remove_attribute(CenterOfMass self, SparseStringKey a0)
3317  remove_attribute(CenterOfMass self, SparseParticleIndexKey a0)
3318  """
3319  return _IMP_atom.CenterOfMass_remove_attribute(self, *args)
3320 
3321  def has_attribute(self, *args):
3322  r"""
3323  has_attribute(CenterOfMass self, FloatKey a0) -> bool
3324  has_attribute(CenterOfMass self, IntKey a0) -> bool
3325  has_attribute(CenterOfMass self, FloatsKey a0) -> bool
3326  has_attribute(CenterOfMass self, IntsKey a0) -> bool
3327  has_attribute(CenterOfMass self, StringKey a0) -> bool
3328  has_attribute(CenterOfMass self, ParticleIndexKey a0) -> bool
3329  has_attribute(CenterOfMass self, ObjectKey a0) -> bool
3330  has_attribute(CenterOfMass self, SparseFloatKey a0) -> bool
3331  has_attribute(CenterOfMass self, SparseIntKey a0) -> bool
3332  has_attribute(CenterOfMass self, SparseStringKey a0) -> bool
3333  has_attribute(CenterOfMass self, SparseParticleIndexKey a0) -> bool
3334  """
3335  return _IMP_atom.CenterOfMass_has_attribute(self, *args)
3336 
3337  def get_derivative(self, a0):
3338  r"""get_derivative(CenterOfMass self, FloatKey a0) -> double"""
3339  return _IMP_atom.CenterOfMass_get_derivative(self, a0)
3340 
3341  def get_name(self):
3342  r"""get_name(CenterOfMass self) -> std::string"""
3343  return _IMP_atom.CenterOfMass_get_name(self)
3344 
3345  def clear_caches(self):
3346  r"""clear_caches(CenterOfMass self)"""
3347  return _IMP_atom.CenterOfMass_clear_caches(self)
3348 
3349  def set_name(self, a0):
3350  r"""set_name(CenterOfMass self, std::string a0)"""
3351  return _IMP_atom.CenterOfMass_set_name(self, a0)
3352 
3353  def set_check_level(self, a0):
3354  r"""set_check_level(CenterOfMass self, IMP::CheckLevel a0)"""
3355  return _IMP_atom.CenterOfMass_set_check_level(self, a0)
3356 
3357  def add_to_derivative(self, a0, a1, a2):
3358  r"""add_to_derivative(CenterOfMass self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
3359  return _IMP_atom.CenterOfMass_add_to_derivative(self, a0, a1, a2)
3360 
3361  def set_is_optimized(self, a0, a1):
3362  r"""set_is_optimized(CenterOfMass self, FloatKey a0, bool a1)"""
3363  return _IMP_atom.CenterOfMass_set_is_optimized(self, a0, a1)
3364 
3365  def get_is_optimized(self, a0):
3366  r"""get_is_optimized(CenterOfMass self, FloatKey a0) -> bool"""
3367  return _IMP_atom.CenterOfMass_get_is_optimized(self, a0)
3368 
3369  def get_check_level(self):
3370  r"""get_check_level(CenterOfMass self) -> IMP::CheckLevel"""
3371  return _IMP_atom.CenterOfMass_get_check_level(self)
3372 
3373  def __eq__(self, *args):
3374  r"""
3375  __eq__(CenterOfMass self, CenterOfMass o) -> bool
3376  __eq__(CenterOfMass self, Particle d) -> bool
3377  """
3378  return _IMP_atom.CenterOfMass___eq__(self, *args)
3379 
3380  def __ne__(self, *args):
3381  r"""
3382  __ne__(CenterOfMass self, CenterOfMass o) -> bool
3383  __ne__(CenterOfMass self, Particle d) -> bool
3384  """
3385  return _IMP_atom.CenterOfMass___ne__(self, *args)
3386 
3387  def __le__(self, *args):
3388  r"""
3389  __le__(CenterOfMass self, CenterOfMass o) -> bool
3390  __le__(CenterOfMass self, Particle d) -> bool
3391  """
3392  return _IMP_atom.CenterOfMass___le__(self, *args)
3393 
3394  def __lt__(self, *args):
3395  r"""
3396  __lt__(CenterOfMass self, CenterOfMass o) -> bool
3397  __lt__(CenterOfMass self, Particle d) -> bool
3398  """
3399  return _IMP_atom.CenterOfMass___lt__(self, *args)
3400 
3401  def __ge__(self, *args):
3402  r"""
3403  __ge__(CenterOfMass self, CenterOfMass o) -> bool
3404  __ge__(CenterOfMass self, Particle d) -> bool
3405  """
3406  return _IMP_atom.CenterOfMass___ge__(self, *args)
3407 
3408  def __gt__(self, *args):
3409  r"""
3410  __gt__(CenterOfMass self, CenterOfMass o) -> bool
3411  __gt__(CenterOfMass self, Particle d) -> bool
3412  """
3413  return _IMP_atom.CenterOfMass___gt__(self, *args)
3414 
3415  def __hash__(self):
3416  r"""__hash__(CenterOfMass self) -> std::size_t"""
3417  return _IMP_atom.CenterOfMass___hash__(self)
3418 
3419  def __str__(self):
3420  r"""__str__(CenterOfMass self) -> std::string"""
3421  return _IMP_atom.CenterOfMass___str__(self)
3422 
3423  def __repr__(self):
3424  r"""__repr__(CenterOfMass self) -> std::string"""
3425  return _IMP_atom.CenterOfMass___repr__(self)
3426 
3427  def _get_as_binary(self):
3428  r"""_get_as_binary(CenterOfMass self) -> PyObject *"""
3429  return _IMP_atom.CenterOfMass__get_as_binary(self)
3430 
3431  def _set_from_binary(self, p):
3432  r"""_set_from_binary(CenterOfMass self, PyObject * p)"""
3433  return _IMP_atom.CenterOfMass__set_from_binary(self, p)
3434 
3435  def __getstate__(self):
3436  p = self._get_as_binary()
3437  if len(self.__dict__) > 1:
3438  d = self.__dict__.copy()
3439  del d['this']
3440  p = (d, p)
3441  return p
3442 
3443  def __setstate__(self, p):
3444  if not hasattr(self, 'this'):
3445  self.__init__()
3446  if isinstance(p, tuple):
3447  d, p = p
3448  self.__dict__.update(d)
3449  return self._set_from_binary(p)
3450 
3451  __swig_destroy__ = _IMP_atom.delete_CenterOfMass
3452 
3453 # Register CenterOfMass in _IMP_atom:
3454 _IMP_atom.CenterOfMass_swigregister(CenterOfMass)
3455 class CoverBond(IMP.SingletonModifier):
3456  r"""Proxy of C++ IMP::atom::CoverBond class."""
3457 
3458  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3459 
3460  def __init__(self):
3461  r"""__init__(CoverBond self) -> CoverBond"""
3462  _IMP_atom.CoverBond_swiginit(self, _IMP_atom.new_CoverBond())
3463 
3464  def do_get_inputs(self, m, pis):
3465  r"""do_get_inputs(CoverBond self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3466  return _IMP_atom.CoverBond_do_get_inputs(self, m, pis)
3467 
3468  def do_get_outputs(self, m, pis):
3469  r"""do_get_outputs(CoverBond self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3470  return _IMP_atom.CoverBond_do_get_outputs(self, m, pis)
3471 
3472  def get_version_info(self):
3473  r"""get_version_info(CoverBond self) -> VersionInfo"""
3474  return _IMP_atom.CoverBond_get_version_info(self)
3475  __swig_destroy__ = _IMP_atom.delete_CoverBond
3476 
3477  def __str__(self):
3478  r"""__str__(CoverBond self) -> std::string"""
3479  return _IMP_atom.CoverBond___str__(self)
3480 
3481  def __repr__(self):
3482  r"""__repr__(CoverBond self) -> std::string"""
3483  return _IMP_atom.CoverBond___repr__(self)
3484 
3485  @staticmethod
3486  def get_from(o):
3487  return _object_cast_to_CoverBond(o)
3488 
3489 
3490 # Register CoverBond in _IMP_atom:
3491 _IMP_atom.CoverBond_swigregister(CoverBond)
3492 class Simulator(IMP.Optimizer):
3493  r"""Proxy of C++ IMP::atom::Simulator class."""
3494 
3495  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3496 
3497  def __init__(self, *args):
3498  r"""
3499  __init__(Simulator self, Model m, std::string name="Simulator %1%", double wave_factor=1.0) -> Simulator
3500  __init__(Simulator self) -> Simulator
3501  """
3502  if self.__class__ == Simulator:
3503  _self = None
3504  else:
3505  _self = self
3506  _IMP_atom.Simulator_swiginit(self, _IMP_atom.new_Simulator(_self, *args))
3507 
3508  if self.__class__ != Simulator:
3509  _director_objects.register(self)
3510 
3511 
3512 
3513 
3514  def simulate(self, time_in_fs):
3515  r"""simulate(Simulator self, double time_in_fs) -> double"""
3516  return _IMP_atom.Simulator_simulate(self, time_in_fs)
3517 
3518  def simulate_wave(self, time_in_fs, max_time_step_factor=10.0, base=1.5):
3519  r"""simulate_wave(Simulator self, double time_in_fs, double max_time_step_factor=10.0, double base=1.5) -> double"""
3520  return _IMP_atom.Simulator_simulate_wave(self, time_in_fs, max_time_step_factor, base)
3521 
3522  def get_temperature(self):
3523  r"""get_temperature(Simulator self) -> double"""
3524  return _IMP_atom.Simulator_get_temperature(self)
3525 
3526  def set_temperature(self, d):
3527  r"""set_temperature(Simulator self, double d)"""
3528  return _IMP_atom.Simulator_set_temperature(self, d)
3529 
3530  def set_maximum_time_step(self, ts):
3531  r"""set_maximum_time_step(Simulator self, double ts)"""
3532  return _IMP_atom.Simulator_set_maximum_time_step(self, ts)
3533 
3534  def get_maximum_time_step(self):
3535  r"""get_maximum_time_step(Simulator self) -> double"""
3536  return _IMP_atom.Simulator_get_maximum_time_step(self)
3537 
3538  def get_last_time_step(self):
3539  r"""get_last_time_step(Simulator self) -> double"""
3540  return _IMP_atom.Simulator_get_last_time_step(self)
3541 
3542  def set_time_step(self, ts):
3543  r"""set_time_step(Simulator self, double ts)"""
3544  return _IMP_atom.Simulator_set_time_step(self, ts)
3545 
3546  def get_kt(self):
3547  r"""get_kt(Simulator self) -> double"""
3548  return _IMP_atom.Simulator_get_kt(self)
3549 
3550  def get_current_time(self):
3551  r"""get_current_time(Simulator self) -> double"""
3552  return _IMP_atom.Simulator_get_current_time(self)
3553 
3554  def set_current_time(self, ct):
3555  r"""set_current_time(Simulator self, double ct)"""
3556  return _IMP_atom.Simulator_set_current_time(self, ct)
3557 
3558  def get_simulation_particles(self):
3559  r"""get_simulation_particles(Simulator self) -> IMP::ParticlesTemp"""
3560  return _IMP_atom.Simulator_get_simulation_particles(self)
3561 
3562  def get_simulation_particle_indexes(self):
3563  r"""get_simulation_particle_indexes(Simulator self) -> IMP::ParticleIndexes"""
3564  return _IMP_atom.Simulator_get_simulation_particle_indexes(self)
3565  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)
3566  def __set_particles(self, obj): IMP._list_util.set_varlist(self.particles, obj)
3567  def __del_particles(self): IMP._list_util.del_varlist(self.particles)
3568  particles = property(__get_particles, __set_particles, __del_particles, doc="List of ##ucnames")
3569 
3570  def remove_particle(self, d):
3571  r"""remove_particle(Simulator self, Particle d)"""
3572  return _IMP_atom.Simulator_remove_particle(self, d)
3573 
3574  def _python_index_particle(self, d, start, stop):
3575  r"""_python_index_particle(Simulator self, Particle d, unsigned int start, unsigned int stop) -> unsigned int"""
3576  return _IMP_atom.Simulator__python_index_particle(self, d, start, stop)
3577 
3578  def remove_particles(self, d):
3579  r"""remove_particles(Simulator self, IMP::Particles const & d)"""
3580  return _IMP_atom.Simulator_remove_particles(self, d)
3581 
3582  def set_particles(self, ps):
3583  r"""set_particles(Simulator self, IMP::Particles const & ps)"""
3584  return _IMP_atom.Simulator_set_particles(self, ps)
3585 
3586  def set_particles_order(self, objs):
3587  r"""set_particles_order(Simulator self, IMP::Particles const & objs)"""
3588  return _IMP_atom.Simulator_set_particles_order(self, objs)
3589 
3590  def add_particle(self, obj):
3591  r"""add_particle(Simulator self, Particle obj) -> unsigned int"""
3592  return _IMP_atom.Simulator_add_particle(self, obj)
3593 
3594  def add_particles(self, objs):
3595  r"""add_particles(Simulator self, IMP::Particles const & objs)"""
3596  return _IMP_atom.Simulator_add_particles(self, objs)
3597 
3598  def clear_particles(self):
3599  r"""clear_particles(Simulator self)"""
3600  return _IMP_atom.Simulator_clear_particles(self)
3601 
3602  def get_number_of_particles(self):
3603  r"""get_number_of_particles(Simulator self) -> unsigned int"""
3604  return _IMP_atom.Simulator_get_number_of_particles(self)
3605 
3606  def get_has_particles(self):
3607  r"""get_has_particles(Simulator self) -> bool"""
3608  return _IMP_atom.Simulator_get_has_particles(self)
3609 
3610  def get_particle(self, i):
3611  r"""get_particle(Simulator self, unsigned int i) -> Particle"""
3612  return _IMP_atom.Simulator_get_particle(self, i)
3613 
3614  def get_particles(self):
3615  r"""get_particles(Simulator self) -> IMP::Particles"""
3616  return _IMP_atom.Simulator_get_particles(self)
3617 
3618  def erase_particle(self, i):
3619  r"""erase_particle(Simulator self, unsigned int i)"""
3620  return _IMP_atom.Simulator_erase_particle(self, i)
3621 
3622  def reserve_particles(self, sz):
3623  r"""reserve_particles(Simulator self, unsigned int sz)"""
3624  return _IMP_atom.Simulator_reserve_particles(self, sz)
3625 
3626  def do_optimize(self, max_steps):
3627  r"""do_optimize(Simulator self, unsigned int max_steps) -> IMP::Float"""
3628  return _IMP_atom.Simulator_do_optimize(self, max_steps)
3629 
3630  def setup(self, arg0):
3631  r"""setup(Simulator self, IMP::ParticleIndexes const & arg0)"""
3632  return _IMP_atom.Simulator_setup(self, arg0)
3633 
3634  def do_step(self, sc, dt):
3635  r"""do_step(Simulator self, IMP::ParticleIndexes const & sc, double dt) -> double"""
3636  return _IMP_atom.Simulator_do_step(self, sc, dt)
3637 
3638  def get_is_simulation_particle(self, p):
3639  r"""get_is_simulation_particle(Simulator self, ParticleIndex p) -> bool"""
3640  return _IMP_atom.Simulator_get_is_simulation_particle(self, p)
3641 
3642  def do_simulate(self, time):
3643  r"""do_simulate(Simulator self, double time) -> double"""
3644  return _IMP_atom.Simulator_do_simulate(self, time)
3645 
3646  def do_simulate_wave(self, time_in_fs, max_time_step_factor=10.0, base=1.5):
3647  r"""do_simulate_wave(Simulator self, double time_in_fs, double max_time_step_factor=10.0, double base=1.5) -> double"""
3648  return _IMP_atom.Simulator_do_simulate_wave(self, time_in_fs, max_time_step_factor, base)
3649 
3650  def __str__(self):
3651  r"""__str__(Simulator self) -> std::string"""
3652  return _IMP_atom.Simulator___str__(self)
3653 
3654  def __repr__(self):
3655  r"""__repr__(Simulator self) -> std::string"""
3656  return _IMP_atom.Simulator___repr__(self)
3657 
3658  @staticmethod
3659  def get_from(o):
3660  return _object_cast_to_Simulator(o)
3661 
3662 
3663  def do_show(self, out):
3664  pass
3665 
3666  @staticmethod
3667  def get_from(o):
3668  return _object_cast_to_Simulator(o)
3669 
3670  __swig_destroy__ = _IMP_atom.delete_Simulator
3671  def __disown__(self):
3672  self.this.disown()
3673  _IMP_atom.disown_Simulator(self)
3674  return weakref.proxy(self)
3675 
3676  def do_destroy(self):
3677  r"""do_destroy(Simulator self)"""
3678  return _IMP_atom.Simulator_do_destroy(self)
3679 
3680  def handle_set_has_required_score_states(self, arg0):
3681  r"""handle_set_has_required_score_states(Simulator self, bool arg0)"""
3682  return _IMP_atom.Simulator_handle_set_has_required_score_states(self, arg0)
3683 
3684  def do_get_inputs(self):
3685  r"""do_get_inputs(Simulator self) -> IMP::ModelObjectsTemp"""
3686  return _IMP_atom.Simulator_do_get_inputs(self)
3687 
3688  def do_get_outputs(self):
3689  r"""do_get_outputs(Simulator self) -> IMP::ModelObjectsTemp"""
3690  return _IMP_atom.Simulator_do_get_outputs(self)
3691 
3692  def do_get_interactions(self):
3693  r"""do_get_interactions(Simulator self) -> IMP::ModelObjectsTemps"""
3694  return _IMP_atom.Simulator_do_get_interactions(self)
3695 
3696 # Register Simulator in _IMP_atom:
3697 _IMP_atom.Simulator_swigregister(Simulator)
3698 IMP_ATOM_DEFAULT_BD_RANDOM_POOL_SIZE = _IMP_atom.IMP_ATOM_DEFAULT_BD_RANDOM_POOL_SIZE
3699 
3700 class BrownianDynamics(Simulator):
3701  r"""Proxy of C++ IMP::atom::BrownianDynamics class."""
3702 
3703  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3704 
3705  def __init__(self, *args):
3706  r"""__init__(BrownianDynamics self, Model m, std::string name="BrownianDynamics%1%", double wave_factor=1.0, unsigned int random_pool_size=10000) -> BrownianDynamics"""
3707  _IMP_atom.BrownianDynamics_swiginit(self, _IMP_atom.new_BrownianDynamics(*args))
3708 
3709  def set_maximum_move(self, ms_in_A):
3710  r"""set_maximum_move(BrownianDynamics self, double ms_in_A)"""
3711  return _IMP_atom.BrownianDynamics_set_maximum_move(self, ms_in_A)
3712 
3713  def set_use_stochastic_runge_kutta(self, tf):
3714  r"""set_use_stochastic_runge_kutta(BrownianDynamics self, bool tf)"""
3715  return _IMP_atom.BrownianDynamics_set_use_stochastic_runge_kutta(self, tf)
3716 
3717  def get_version_info(self):
3718  r"""get_version_info(BrownianDynamics self) -> VersionInfo"""
3719  return _IMP_atom.BrownianDynamics_get_version_info(self)
3720  __swig_destroy__ = _IMP_atom.delete_BrownianDynamics
3721 
3722  def __str__(self):
3723  r"""__str__(BrownianDynamics self) -> std::string"""
3724  return _IMP_atom.BrownianDynamics___str__(self)
3725 
3726  def __repr__(self):
3727  r"""__repr__(BrownianDynamics self) -> std::string"""
3728  return _IMP_atom.BrownianDynamics___repr__(self)
3729 
3730  @staticmethod
3731  def get_from(o):
3732  return _object_cast_to_BrownianDynamics(o)
3733 
3734 
3735 # Register BrownianDynamics in _IMP_atom:
3736 _IMP_atom.BrownianDynamics_swigregister(BrownianDynamics)
3737 
3739  r"""get_maximum_time_step_estimate(BrownianDynamics bd) -> double"""
3740  return _IMP_atom.get_maximum_time_step_estimate(bd)
3741 
3742 def get_harmonic_sigma(D, f):
3743  r"""get_harmonic_sigma(double D, double f) -> double"""
3744  return _IMP_atom.get_harmonic_sigma(D, f)
3745 class BrownianDynamicsTAMD(BrownianDynamics):
3746  r"""Proxy of C++ IMP::atom::BrownianDynamicsTAMD class."""
3747 
3748  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3749 
3750  def __init__(self, *args):
3751  r"""__init__(BrownianDynamicsTAMD self, Model m, std::string name="BrownianDynamicsTAMD%1%", double wave_factor=1.0) -> BrownianDynamicsTAMD"""
3752  _IMP_atom.BrownianDynamicsTAMD_swiginit(self, _IMP_atom.new_BrownianDynamicsTAMD(*args))
3753 
3754  def __str__(self):
3755  r"""__str__(BrownianDynamicsTAMD self) -> std::string"""
3756  return _IMP_atom.BrownianDynamicsTAMD___str__(self)
3757 
3758  def __repr__(self):
3759  r"""__repr__(BrownianDynamicsTAMD self) -> std::string"""
3760  return _IMP_atom.BrownianDynamicsTAMD___repr__(self)
3761 
3762  @staticmethod
3763  def get_from(o):
3764  return _object_cast_to_BrownianDynamicsTAMD(o)
3765 
3766  __swig_destroy__ = _IMP_atom.delete_BrownianDynamicsTAMD
3767 
3768 # Register BrownianDynamicsTAMD in _IMP_atom:
3769 _IMP_atom.BrownianDynamicsTAMD_swigregister(BrownianDynamicsTAMD)
3770 class Diffusion(IMP.core.XYZ):
3771  r"""Proxy of C++ IMP::atom::Diffusion class."""
3772 
3773  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3774 
3775  def __init__(self, *args):
3776  r"""
3777  __init__(Diffusion self) -> Diffusion
3778  __init__(Diffusion self, Model m, ParticleIndex id) -> Diffusion
3779  __init__(Diffusion self, _ParticleAdaptor d) -> Diffusion
3780  """
3781  _IMP_atom.Diffusion_swiginit(self, _IMP_atom.new_Diffusion(*args))
3782 
3783  def show(self, *args):
3784  r"""show(Diffusion self, _ostream out=std::cout)"""
3785  return _IMP_atom.Diffusion_show(self, *args)
3786 
3787  @staticmethod
3788  def setup_particle(*args):
3789  r"""
3790  setup_particle(Model m, ParticleIndex pi, IMP::Float D) -> Diffusion
3791  setup_particle(_ParticleAdaptor pa, IMP::Float D) -> Diffusion
3792  setup_particle(Model m, ParticleIndex pi, Vector3D v, IMP::Float D) -> Diffusion
3793  setup_particle(_ParticleAdaptor pa, Vector3D v, IMP::Float D) -> Diffusion
3794  setup_particle(Model m, ParticleIndex pi) -> Diffusion
3795  setup_particle(_ParticleAdaptor pa) -> Diffusion
3796  """
3797  return _IMP_atom.Diffusion_setup_particle(*args)
3798 
3799  @staticmethod
3800  def get_is_setup(*args):
3801  r"""
3802  get_is_setup(_ParticleAdaptor p) -> bool
3803  get_is_setup(Model m, ParticleIndex p) -> bool
3804  """
3805  return _IMP_atom.Diffusion_get_is_setup(*args)
3806 
3807  def set_diffusion_coefficient(self, d):
3808  r"""set_diffusion_coefficient(Diffusion self, double d)"""
3809  return _IMP_atom.Diffusion_set_diffusion_coefficient(self, d)
3810 
3811  def get_diffusion_coefficient(self):
3812  r"""get_diffusion_coefficient(Diffusion self) -> double"""
3813  return _IMP_atom.Diffusion_get_diffusion_coefficient(self)
3814 
3815  @staticmethod
3816  def get_diffusion_coefficient_key():
3817  r"""get_diffusion_coefficient_key() -> FloatKey"""
3818  return _IMP_atom.Diffusion_get_diffusion_coefficient_key()
3819 
3820  def add_attribute(self, *args):
3821  r"""
3822  add_attribute(Diffusion self, FloatKey k, IMP::Float v, bool opt)
3823  add_attribute(Diffusion self, FloatKey a0, IMP::Float a1)
3824  add_attribute(Diffusion self, IntKey a0, IMP::Int a1)
3825  add_attribute(Diffusion self, FloatsKey a0, IMP::Floats a1)
3826  add_attribute(Diffusion self, IntsKey a0, IMP::Ints a1)
3827  add_attribute(Diffusion self, StringKey a0, IMP::String a1)
3828  add_attribute(Diffusion self, ParticleIndexKey a0, Particle a1)
3829  add_attribute(Diffusion self, ObjectKey a0, Object a1)
3830  add_attribute(Diffusion self, SparseFloatKey a0, IMP::Float a1)
3831  add_attribute(Diffusion self, SparseIntKey a0, IMP::Int a1)
3832  add_attribute(Diffusion self, SparseStringKey a0, IMP::String a1)
3833  add_attribute(Diffusion self, SparseParticleIndexKey a0, ParticleIndex a1)
3834  """
3835  return _IMP_atom.Diffusion_add_attribute(self, *args)
3836 
3837  def get_value(self, *args):
3838  r"""
3839  get_value(Diffusion self, FloatKey a0) -> IMP::Float
3840  get_value(Diffusion self, IntKey a0) -> IMP::Int
3841  get_value(Diffusion self, FloatsKey a0) -> IMP::Floats
3842  get_value(Diffusion self, IntsKey a0) -> IMP::Ints
3843  get_value(Diffusion self, StringKey a0) -> IMP::String
3844  get_value(Diffusion self, ParticleIndexKey a0) -> Particle
3845  get_value(Diffusion self, ObjectKey a0) -> Object
3846  get_value(Diffusion self, SparseFloatKey a0) -> IMP::Float
3847  get_value(Diffusion self, SparseIntKey a0) -> IMP::Int
3848  get_value(Diffusion self, SparseStringKey a0) -> IMP::String
3849  get_value(Diffusion self, SparseParticleIndexKey a0) -> ParticleIndex
3850  """
3851  return _IMP_atom.Diffusion_get_value(self, *args)
3852 
3853  def set_value(self, *args):
3854  r"""
3855  set_value(Diffusion self, FloatKey a0, IMP::Float a1)
3856  set_value(Diffusion self, IntKey a0, IMP::Int a1)
3857  set_value(Diffusion self, FloatsKey a0, IMP::Floats a1)
3858  set_value(Diffusion self, IntsKey a0, IMP::Ints a1)
3859  set_value(Diffusion self, StringKey a0, IMP::String a1)
3860  set_value(Diffusion self, ParticleIndexKey a0, Particle a1)
3861  set_value(Diffusion self, ObjectKey a0, Object a1)
3862  set_value(Diffusion self, SparseFloatKey a0, IMP::Float a1)
3863  set_value(Diffusion self, SparseIntKey a0, IMP::Int a1)
3864  set_value(Diffusion self, SparseStringKey a0, IMP::String a1)
3865  set_value(Diffusion self, SparseParticleIndexKey a0, ParticleIndex a1)
3866  """
3867  return _IMP_atom.Diffusion_set_value(self, *args)
3868 
3869  def remove_attribute(self, *args):
3870  r"""
3871  remove_attribute(Diffusion self, FloatKey a0)
3872  remove_attribute(Diffusion self, IntKey a0)
3873  remove_attribute(Diffusion self, FloatsKey a0)
3874  remove_attribute(Diffusion self, IntsKey a0)
3875  remove_attribute(Diffusion self, StringKey a0)
3876  remove_attribute(Diffusion self, ParticleIndexKey a0)
3877  remove_attribute(Diffusion self, ObjectKey a0)
3878  remove_attribute(Diffusion self, SparseFloatKey a0)
3879  remove_attribute(Diffusion self, SparseIntKey a0)
3880  remove_attribute(Diffusion self, SparseStringKey a0)
3881  remove_attribute(Diffusion self, SparseParticleIndexKey a0)
3882  """
3883  return _IMP_atom.Diffusion_remove_attribute(self, *args)
3884 
3885  def has_attribute(self, *args):
3886  r"""
3887  has_attribute(Diffusion self, FloatKey a0) -> bool
3888  has_attribute(Diffusion self, IntKey a0) -> bool
3889  has_attribute(Diffusion self, FloatsKey a0) -> bool
3890  has_attribute(Diffusion self, IntsKey a0) -> bool
3891  has_attribute(Diffusion self, StringKey a0) -> bool
3892  has_attribute(Diffusion self, ParticleIndexKey a0) -> bool
3893  has_attribute(Diffusion self, ObjectKey a0) -> bool
3894  has_attribute(Diffusion self, SparseFloatKey a0) -> bool
3895  has_attribute(Diffusion self, SparseIntKey a0) -> bool
3896  has_attribute(Diffusion self, SparseStringKey a0) -> bool
3897  has_attribute(Diffusion self, SparseParticleIndexKey a0) -> bool
3898  """
3899  return _IMP_atom.Diffusion_has_attribute(self, *args)
3900 
3901  def get_derivative(self, a0):
3902  r"""get_derivative(Diffusion self, FloatKey a0) -> double"""
3903  return _IMP_atom.Diffusion_get_derivative(self, a0)
3904 
3905  def get_name(self):
3906  r"""get_name(Diffusion self) -> std::string"""
3907  return _IMP_atom.Diffusion_get_name(self)
3908 
3909  def clear_caches(self):
3910  r"""clear_caches(Diffusion self)"""
3911  return _IMP_atom.Diffusion_clear_caches(self)
3912 
3913  def set_name(self, a0):
3914  r"""set_name(Diffusion self, std::string a0)"""
3915  return _IMP_atom.Diffusion_set_name(self, a0)
3916 
3917  def set_check_level(self, a0):
3918  r"""set_check_level(Diffusion self, IMP::CheckLevel a0)"""
3919  return _IMP_atom.Diffusion_set_check_level(self, a0)
3920 
3921  def add_to_derivative(self, a0, a1, a2):
3922  r"""add_to_derivative(Diffusion self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
3923  return _IMP_atom.Diffusion_add_to_derivative(self, a0, a1, a2)
3924 
3925  def set_is_optimized(self, a0, a1):
3926  r"""set_is_optimized(Diffusion self, FloatKey a0, bool a1)"""
3927  return _IMP_atom.Diffusion_set_is_optimized(self, a0, a1)
3928 
3929  def get_is_optimized(self, a0):
3930  r"""get_is_optimized(Diffusion self, FloatKey a0) -> bool"""
3931  return _IMP_atom.Diffusion_get_is_optimized(self, a0)
3932 
3933  def get_check_level(self):
3934  r"""get_check_level(Diffusion self) -> IMP::CheckLevel"""
3935  return _IMP_atom.Diffusion_get_check_level(self)
3936 
3937  def __eq__(self, *args):
3938  r"""
3939  __eq__(Diffusion self, Diffusion o) -> bool
3940  __eq__(Diffusion self, Particle d) -> bool
3941  """
3942  return _IMP_atom.Diffusion___eq__(self, *args)
3943 
3944  def __ne__(self, *args):
3945  r"""
3946  __ne__(Diffusion self, Diffusion o) -> bool
3947  __ne__(Diffusion self, Particle d) -> bool
3948  """
3949  return _IMP_atom.Diffusion___ne__(self, *args)
3950 
3951  def __le__(self, *args):
3952  r"""
3953  __le__(Diffusion self, Diffusion o) -> bool
3954  __le__(Diffusion self, Particle d) -> bool
3955  """
3956  return _IMP_atom.Diffusion___le__(self, *args)
3957 
3958  def __lt__(self, *args):
3959  r"""
3960  __lt__(Diffusion self, Diffusion o) -> bool
3961  __lt__(Diffusion self, Particle d) -> bool
3962  """
3963  return _IMP_atom.Diffusion___lt__(self, *args)
3964 
3965  def __ge__(self, *args):
3966  r"""
3967  __ge__(Diffusion self, Diffusion o) -> bool
3968  __ge__(Diffusion self, Particle d) -> bool
3969  """
3970  return _IMP_atom.Diffusion___ge__(self, *args)
3971 
3972  def __gt__(self, *args):
3973  r"""
3974  __gt__(Diffusion self, Diffusion o) -> bool
3975  __gt__(Diffusion self, Particle d) -> bool
3976  """
3977  return _IMP_atom.Diffusion___gt__(self, *args)
3978 
3979  def __hash__(self):
3980  r"""__hash__(Diffusion self) -> std::size_t"""
3981  return _IMP_atom.Diffusion___hash__(self)
3982 
3983  def __str__(self):
3984  r"""__str__(Diffusion self) -> std::string"""
3985  return _IMP_atom.Diffusion___str__(self)
3986 
3987  def __repr__(self):
3988  r"""__repr__(Diffusion self) -> std::string"""
3989  return _IMP_atom.Diffusion___repr__(self)
3990 
3991  def _get_as_binary(self):
3992  r"""_get_as_binary(Diffusion self) -> PyObject *"""
3993  return _IMP_atom.Diffusion__get_as_binary(self)
3994 
3995  def _set_from_binary(self, p):
3996  r"""_set_from_binary(Diffusion self, PyObject * p)"""
3997  return _IMP_atom.Diffusion__set_from_binary(self, p)
3998 
3999  def __getstate__(self):
4000  p = self._get_as_binary()
4001  if len(self.__dict__) > 1:
4002  d = self.__dict__.copy()
4003  del d['this']
4004  p = (d, p)
4005  return p
4006 
4007  def __setstate__(self, p):
4008  if not hasattr(self, 'this'):
4009  self.__init__()
4010  if isinstance(p, tuple):
4011  d, p = p
4012  self.__dict__.update(d)
4013  return self._set_from_binary(p)
4014 
4015  __swig_destroy__ = _IMP_atom.delete_Diffusion
4016 
4017 # Register Diffusion in _IMP_atom:
4018 _IMP_atom.Diffusion_swigregister(Diffusion)
4019 
4020 def get_diffusion_coefficient_from_cm2_per_second(din):
4021  r"""get_diffusion_coefficient_from_cm2_per_second(double din) -> double"""
4022  return _IMP_atom.get_diffusion_coefficient_from_cm2_per_second(din)
4023 class RigidBodyDiffusion(Diffusion):
4024  r"""Proxy of C++ IMP::atom::RigidBodyDiffusion class."""
4025 
4026  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4027 
4028  def __init__(self, *args):
4029  r"""
4030  __init__(RigidBodyDiffusion self) -> RigidBodyDiffusion
4031  __init__(RigidBodyDiffusion self, Model m, ParticleIndex id) -> RigidBodyDiffusion
4032  __init__(RigidBodyDiffusion self, _ParticleAdaptor d) -> RigidBodyDiffusion
4033  """
4034  _IMP_atom.RigidBodyDiffusion_swiginit(self, _IMP_atom.new_RigidBodyDiffusion(*args))
4035 
4036  def show(self, *args):
4037  r"""show(RigidBodyDiffusion self, _ostream out=std::cout)"""
4038  return _IMP_atom.RigidBodyDiffusion_show(self, *args)
4039 
4040  @staticmethod
4041  def setup_particle(*args):
4042  r"""
4043  setup_particle(Model m, ParticleIndex pi) -> RigidBodyDiffusion
4044  setup_particle(_ParticleAdaptor pa) -> RigidBodyDiffusion
4045  """
4046  return _IMP_atom.RigidBodyDiffusion_setup_particle(*args)
4047 
4049  r"""get_rotational_diffusion_coefficient(RigidBodyDiffusion self) -> double"""
4050  return _IMP_atom.RigidBodyDiffusion_get_rotational_diffusion_coefficient(self)
4051 
4052  def set_rotational_diffusion_coefficient(self, d):
4053  r"""set_rotational_diffusion_coefficient(RigidBodyDiffusion self, double d)"""
4054  return _IMP_atom.RigidBodyDiffusion_set_rotational_diffusion_coefficient(self, d)
4055 
4056  @staticmethod
4057  def get_is_setup(*args):
4058  r"""
4059  get_is_setup(_ParticleAdaptor p) -> bool
4060  get_is_setup(Model m, ParticleIndex p) -> bool
4061  """
4062  return _IMP_atom.RigidBodyDiffusion_get_is_setup(*args)
4063 
4064  @staticmethod
4065  def get_rotational_diffusion_coefficient_key():
4066  r"""get_rotational_diffusion_coefficient_key() -> FloatKey"""
4067  return _IMP_atom.RigidBodyDiffusion_get_rotational_diffusion_coefficient_key()
4068 
4069  def add_attribute(self, *args):
4070  r"""
4071  add_attribute(RigidBodyDiffusion self, FloatKey k, IMP::Float v, bool opt)
4072  add_attribute(RigidBodyDiffusion self, FloatKey a0, IMP::Float a1)
4073  add_attribute(RigidBodyDiffusion self, IntKey a0, IMP::Int a1)
4074  add_attribute(RigidBodyDiffusion self, FloatsKey a0, IMP::Floats a1)
4075  add_attribute(RigidBodyDiffusion self, IntsKey a0, IMP::Ints a1)
4076  add_attribute(RigidBodyDiffusion self, StringKey a0, IMP::String a1)
4077  add_attribute(RigidBodyDiffusion self, ParticleIndexKey a0, Particle a1)
4078  add_attribute(RigidBodyDiffusion self, ObjectKey a0, Object a1)
4079  add_attribute(RigidBodyDiffusion self, SparseFloatKey a0, IMP::Float a1)
4080  add_attribute(RigidBodyDiffusion self, SparseIntKey a0, IMP::Int a1)
4081  add_attribute(RigidBodyDiffusion self, SparseStringKey a0, IMP::String a1)
4082  add_attribute(RigidBodyDiffusion self, SparseParticleIndexKey a0, ParticleIndex a1)
4083  """
4084  return _IMP_atom.RigidBodyDiffusion_add_attribute(self, *args)
4085 
4086  def get_value(self, *args):
4087  r"""
4088  get_value(RigidBodyDiffusion self, FloatKey a0) -> IMP::Float
4089  get_value(RigidBodyDiffusion self, IntKey a0) -> IMP::Int
4090  get_value(RigidBodyDiffusion self, FloatsKey a0) -> IMP::Floats
4091  get_value(RigidBodyDiffusion self, IntsKey a0) -> IMP::Ints
4092  get_value(RigidBodyDiffusion self, StringKey a0) -> IMP::String
4093  get_value(RigidBodyDiffusion self, ParticleIndexKey a0) -> Particle
4094  get_value(RigidBodyDiffusion self, ObjectKey a0) -> Object
4095  get_value(RigidBodyDiffusion self, SparseFloatKey a0) -> IMP::Float
4096  get_value(RigidBodyDiffusion self, SparseIntKey a0) -> IMP::Int
4097  get_value(RigidBodyDiffusion self, SparseStringKey a0) -> IMP::String
4098  get_value(RigidBodyDiffusion self, SparseParticleIndexKey a0) -> ParticleIndex
4099  """
4100  return _IMP_atom.RigidBodyDiffusion_get_value(self, *args)
4101 
4102  def set_value(self, *args):
4103  r"""
4104  set_value(RigidBodyDiffusion self, FloatKey a0, IMP::Float a1)
4105  set_value(RigidBodyDiffusion self, IntKey a0, IMP::Int a1)
4106  set_value(RigidBodyDiffusion self, FloatsKey a0, IMP::Floats a1)
4107  set_value(RigidBodyDiffusion self, IntsKey a0, IMP::Ints a1)
4108  set_value(RigidBodyDiffusion self, StringKey a0, IMP::String a1)
4109  set_value(RigidBodyDiffusion self, ParticleIndexKey a0, Particle a1)
4110  set_value(RigidBodyDiffusion self, ObjectKey a0, Object a1)
4111  set_value(RigidBodyDiffusion self, SparseFloatKey a0, IMP::Float a1)
4112  set_value(RigidBodyDiffusion self, SparseIntKey a0, IMP::Int a1)
4113  set_value(RigidBodyDiffusion self, SparseStringKey a0, IMP::String a1)
4114  set_value(RigidBodyDiffusion self, SparseParticleIndexKey a0, ParticleIndex a1)
4115  """
4116  return _IMP_atom.RigidBodyDiffusion_set_value(self, *args)
4117 
4118  def remove_attribute(self, *args):
4119  r"""
4120  remove_attribute(RigidBodyDiffusion self, FloatKey a0)
4121  remove_attribute(RigidBodyDiffusion self, IntKey a0)
4122  remove_attribute(RigidBodyDiffusion self, FloatsKey a0)
4123  remove_attribute(RigidBodyDiffusion self, IntsKey a0)
4124  remove_attribute(RigidBodyDiffusion self, StringKey a0)
4125  remove_attribute(RigidBodyDiffusion self, ParticleIndexKey a0)
4126  remove_attribute(RigidBodyDiffusion self, ObjectKey a0)
4127  remove_attribute(RigidBodyDiffusion self, SparseFloatKey a0)
4128  remove_attribute(RigidBodyDiffusion self, SparseIntKey a0)
4129  remove_attribute(RigidBodyDiffusion self, SparseStringKey a0)
4130  remove_attribute(RigidBodyDiffusion self, SparseParticleIndexKey a0)
4131  """
4132  return _IMP_atom.RigidBodyDiffusion_remove_attribute(self, *args)
4133 
4134  def has_attribute(self, *args):
4135  r"""
4136  has_attribute(RigidBodyDiffusion self, FloatKey a0) -> bool
4137  has_attribute(RigidBodyDiffusion self, IntKey a0) -> bool
4138  has_attribute(RigidBodyDiffusion self, FloatsKey a0) -> bool
4139  has_attribute(RigidBodyDiffusion self, IntsKey a0) -> bool
4140  has_attribute(RigidBodyDiffusion self, StringKey a0) -> bool
4141  has_attribute(RigidBodyDiffusion self, ParticleIndexKey a0) -> bool
4142  has_attribute(RigidBodyDiffusion self, ObjectKey a0) -> bool
4143  has_attribute(RigidBodyDiffusion self, SparseFloatKey a0) -> bool
4144  has_attribute(RigidBodyDiffusion self, SparseIntKey a0) -> bool
4145  has_attribute(RigidBodyDiffusion self, SparseStringKey a0) -> bool
4146  has_attribute(RigidBodyDiffusion self, SparseParticleIndexKey a0) -> bool
4147  """
4148  return _IMP_atom.RigidBodyDiffusion_has_attribute(self, *args)
4149 
4150  def get_derivative(self, a0):
4151  r"""get_derivative(RigidBodyDiffusion self, FloatKey a0) -> double"""
4152  return _IMP_atom.RigidBodyDiffusion_get_derivative(self, a0)
4153 
4154  def get_name(self):
4155  r"""get_name(RigidBodyDiffusion self) -> std::string"""
4156  return _IMP_atom.RigidBodyDiffusion_get_name(self)
4157 
4158  def clear_caches(self):
4159  r"""clear_caches(RigidBodyDiffusion self)"""
4160  return _IMP_atom.RigidBodyDiffusion_clear_caches(self)
4161 
4162  def set_name(self, a0):
4163  r"""set_name(RigidBodyDiffusion self, std::string a0)"""
4164  return _IMP_atom.RigidBodyDiffusion_set_name(self, a0)
4165 
4166  def set_check_level(self, a0):
4167  r"""set_check_level(RigidBodyDiffusion self, IMP::CheckLevel a0)"""
4168  return _IMP_atom.RigidBodyDiffusion_set_check_level(self, a0)
4169 
4170  def add_to_derivative(self, a0, a1, a2):
4171  r"""add_to_derivative(RigidBodyDiffusion self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
4172  return _IMP_atom.RigidBodyDiffusion_add_to_derivative(self, a0, a1, a2)
4173 
4174  def set_is_optimized(self, a0, a1):
4175  r"""set_is_optimized(RigidBodyDiffusion self, FloatKey a0, bool a1)"""
4176  return _IMP_atom.RigidBodyDiffusion_set_is_optimized(self, a0, a1)
4177 
4178  def get_is_optimized(self, a0):
4179  r"""get_is_optimized(RigidBodyDiffusion self, FloatKey a0) -> bool"""
4180  return _IMP_atom.RigidBodyDiffusion_get_is_optimized(self, a0)
4181 
4182  def get_check_level(self):
4183  r"""get_check_level(RigidBodyDiffusion self) -> IMP::CheckLevel"""
4184  return _IMP_atom.RigidBodyDiffusion_get_check_level(self)
4185 
4186  def __eq__(self, *args):
4187  r"""
4188  __eq__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4189  __eq__(RigidBodyDiffusion self, Particle d) -> bool
4190  """
4191  return _IMP_atom.RigidBodyDiffusion___eq__(self, *args)
4192 
4193  def __ne__(self, *args):
4194  r"""
4195  __ne__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4196  __ne__(RigidBodyDiffusion self, Particle d) -> bool
4197  """
4198  return _IMP_atom.RigidBodyDiffusion___ne__(self, *args)
4199 
4200  def __le__(self, *args):
4201  r"""
4202  __le__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4203  __le__(RigidBodyDiffusion self, Particle d) -> bool
4204  """
4205  return _IMP_atom.RigidBodyDiffusion___le__(self, *args)
4206 
4207  def __lt__(self, *args):
4208  r"""
4209  __lt__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4210  __lt__(RigidBodyDiffusion self, Particle d) -> bool
4211  """
4212  return _IMP_atom.RigidBodyDiffusion___lt__(self, *args)
4213 
4214  def __ge__(self, *args):
4215  r"""
4216  __ge__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4217  __ge__(RigidBodyDiffusion self, Particle d) -> bool
4218  """
4219  return _IMP_atom.RigidBodyDiffusion___ge__(self, *args)
4220 
4221  def __gt__(self, *args):
4222  r"""
4223  __gt__(RigidBodyDiffusion self, RigidBodyDiffusion o) -> bool
4224  __gt__(RigidBodyDiffusion self, Particle d) -> bool
4225  """
4226  return _IMP_atom.RigidBodyDiffusion___gt__(self, *args)
4227 
4228  def __hash__(self):
4229  r"""__hash__(RigidBodyDiffusion self) -> std::size_t"""
4230  return _IMP_atom.RigidBodyDiffusion___hash__(self)
4231 
4232  def __str__(self):
4233  r"""__str__(RigidBodyDiffusion self) -> std::string"""
4234  return _IMP_atom.RigidBodyDiffusion___str__(self)
4235 
4236  def __repr__(self):
4237  r"""__repr__(RigidBodyDiffusion self) -> std::string"""
4238  return _IMP_atom.RigidBodyDiffusion___repr__(self)
4239 
4240  def _get_as_binary(self):
4241  r"""_get_as_binary(RigidBodyDiffusion self) -> PyObject *"""
4242  return _IMP_atom.RigidBodyDiffusion__get_as_binary(self)
4243 
4244  def _set_from_binary(self, p):
4245  r"""_set_from_binary(RigidBodyDiffusion self, PyObject * p)"""
4246  return _IMP_atom.RigidBodyDiffusion__set_from_binary(self, p)
4247 
4248  def __getstate__(self):
4249  p = self._get_as_binary()
4250  if len(self.__dict__) > 1:
4251  d = self.__dict__.copy()
4252  del d['this']
4253  p = (d, p)
4254  return p
4255 
4256  def __setstate__(self, p):
4257  if not hasattr(self, 'this'):
4258  self.__init__()
4259  if isinstance(p, tuple):
4260  d, p = p
4261  self.__dict__.update(d)
4262  return self._set_from_binary(p)
4263 
4264  __swig_destroy__ = _IMP_atom.delete_RigidBodyDiffusion
4265 
4266 # Register RigidBodyDiffusion in _IMP_atom:
4267 _IMP_atom.RigidBodyDiffusion_swigregister(RigidBodyDiffusion)
4268 class TAMDParticle(IMP.Decorator):
4269  r"""Proxy of C++ IMP::atom::TAMDParticle class."""
4270 
4271  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4272 
4273  def __init__(self, *args):
4274  r"""
4275  __init__(TAMDParticle self) -> TAMDParticle
4276  __init__(TAMDParticle self, Model m, ParticleIndex id) -> TAMDParticle
4277  __init__(TAMDParticle self, _ParticleAdaptor d) -> TAMDParticle
4278  """
4279  _IMP_atom.TAMDParticle_swiginit(self, _IMP_atom.new_TAMDParticle(*args))
4280 
4281  def show(self, *args):
4282  r"""show(TAMDParticle self, _ostream out=std::cout)"""
4283  return _IMP_atom.TAMDParticle_show(self, *args)
4284 
4285  @staticmethod
4286  def setup_particle(*args):
4287  r"""
4288  setup_particle(Model m, ParticleIndex pi, ParticleIndex pi_ref, IMP::Float tsf, IMP::Float fsf) -> TAMDParticle
4289  setup_particle(_ParticleAdaptor pa, ParticleIndex pi_ref, IMP::Float tsf, IMP::Float fsf) -> TAMDParticle
4290  setup_particle(Model m, ParticleIndex pi, Particle p_ref, IMP::Float tsf, IMP::Float fsf) -> TAMDParticle
4291  setup_particle(_ParticleAdaptor pa, Particle p_ref, IMP::Float tsf, IMP::Float fsf) -> TAMDParticle
4292  """
4293  return _IMP_atom.TAMDParticle_setup_particle(*args)
4294 
4295  @staticmethod
4296  def get_is_setup(*args):
4297  r"""
4298  get_is_setup(_ParticleAdaptor p) -> bool
4299  get_is_setup(Model m, ParticleIndex p) -> bool
4300  """
4301  return _IMP_atom.TAMDParticle_get_is_setup(*args)
4302 
4303  def get_reference_particle_index(self):
4304  r"""get_reference_particle_index(TAMDParticle self) -> ParticleIndex"""
4305  return _IMP_atom.TAMDParticle_get_reference_particle_index(self)
4306 
4307  def set_temperature_scale_factor(self, tsf):
4308  r"""set_temperature_scale_factor(TAMDParticle self, float tsf)"""
4309  return _IMP_atom.TAMDParticle_set_temperature_scale_factor(self, tsf)
4310 
4311  def get_temperature_scale_factor(self):
4312  r"""get_temperature_scale_factor(TAMDParticle self) -> double"""
4313  return _IMP_atom.TAMDParticle_get_temperature_scale_factor(self)
4314 
4315  def set_friction_scale_factor(self, tsf):
4316  r"""set_friction_scale_factor(TAMDParticle self, float tsf)"""
4317  return _IMP_atom.TAMDParticle_set_friction_scale_factor(self, tsf)
4318 
4319  def get_friction_scale_factor(self):
4320  r"""get_friction_scale_factor(TAMDParticle self) -> double"""
4321  return _IMP_atom.TAMDParticle_get_friction_scale_factor(self)
4322 
4323  def update_coordinates_from_ref(self):
4324  r"""update_coordinates_from_ref(TAMDParticle self)"""
4325  return _IMP_atom.TAMDParticle_update_coordinates_from_ref(self)
4326 
4327  @staticmethod
4328  def get_temperature_scale_factor_key():
4329  r"""get_temperature_scale_factor_key() -> FloatKey"""
4330  return _IMP_atom.TAMDParticle_get_temperature_scale_factor_key()
4331 
4332  @staticmethod
4333  def get_friction_scale_factor_key():
4334  r"""get_friction_scale_factor_key() -> FloatKey"""
4335  return _IMP_atom.TAMDParticle_get_friction_scale_factor_key()
4336 
4337  @staticmethod
4338  def get_reference_particle_index_key():
4339  r"""get_reference_particle_index_key() -> ParticleIndexKey"""
4340  return _IMP_atom.TAMDParticle_get_reference_particle_index_key()
4341 
4342  def add_attribute(self, *args):
4343  r"""
4344  add_attribute(TAMDParticle self, FloatKey k, IMP::Float v, bool opt)
4345  add_attribute(TAMDParticle self, FloatKey a0, IMP::Float a1)
4346  add_attribute(TAMDParticle self, IntKey a0, IMP::Int a1)
4347  add_attribute(TAMDParticle self, FloatsKey a0, IMP::Floats a1)
4348  add_attribute(TAMDParticle self, IntsKey a0, IMP::Ints a1)
4349  add_attribute(TAMDParticle self, StringKey a0, IMP::String a1)
4350  add_attribute(TAMDParticle self, ParticleIndexKey a0, Particle a1)
4351  add_attribute(TAMDParticle self, ObjectKey a0, Object a1)
4352  add_attribute(TAMDParticle self, SparseFloatKey a0, IMP::Float a1)
4353  add_attribute(TAMDParticle self, SparseIntKey a0, IMP::Int a1)
4354  add_attribute(TAMDParticle self, SparseStringKey a0, IMP::String a1)
4355  add_attribute(TAMDParticle self, SparseParticleIndexKey a0, ParticleIndex a1)
4356  """
4357  return _IMP_atom.TAMDParticle_add_attribute(self, *args)
4358 
4359  def get_value(self, *args):
4360  r"""
4361  get_value(TAMDParticle self, FloatKey a0) -> IMP::Float
4362  get_value(TAMDParticle self, IntKey a0) -> IMP::Int
4363  get_value(TAMDParticle self, FloatsKey a0) -> IMP::Floats
4364  get_value(TAMDParticle self, IntsKey a0) -> IMP::Ints
4365  get_value(TAMDParticle self, StringKey a0) -> IMP::String
4366  get_value(TAMDParticle self, ParticleIndexKey a0) -> Particle
4367  get_value(TAMDParticle self, ObjectKey a0) -> Object
4368  get_value(TAMDParticle self, SparseFloatKey a0) -> IMP::Float
4369  get_value(TAMDParticle self, SparseIntKey a0) -> IMP::Int
4370  get_value(TAMDParticle self, SparseStringKey a0) -> IMP::String
4371  get_value(TAMDParticle self, SparseParticleIndexKey a0) -> ParticleIndex
4372  """
4373  return _IMP_atom.TAMDParticle_get_value(self, *args)
4374 
4375  def set_value(self, *args):
4376  r"""
4377  set_value(TAMDParticle self, FloatKey a0, IMP::Float a1)
4378  set_value(TAMDParticle self, IntKey a0, IMP::Int a1)
4379  set_value(TAMDParticle self, FloatsKey a0, IMP::Floats a1)
4380  set_value(TAMDParticle self, IntsKey a0, IMP::Ints a1)
4381  set_value(TAMDParticle self, StringKey a0, IMP::String a1)
4382  set_value(TAMDParticle self, ParticleIndexKey a0, Particle a1)
4383  set_value(TAMDParticle self, ObjectKey a0, Object a1)
4384  set_value(TAMDParticle self, SparseFloatKey a0, IMP::Float a1)
4385  set_value(TAMDParticle self, SparseIntKey a0, IMP::Int a1)
4386  set_value(TAMDParticle self, SparseStringKey a0, IMP::String a1)
4387  set_value(TAMDParticle self, SparseParticleIndexKey a0, ParticleIndex a1)
4388  """
4389  return _IMP_atom.TAMDParticle_set_value(self, *args)
4390 
4391  def remove_attribute(self, *args):
4392  r"""
4393  remove_attribute(TAMDParticle self, FloatKey a0)
4394  remove_attribute(TAMDParticle self, IntKey a0)
4395  remove_attribute(TAMDParticle self, FloatsKey a0)
4396  remove_attribute(TAMDParticle self, IntsKey a0)
4397  remove_attribute(TAMDParticle self, StringKey a0)
4398  remove_attribute(TAMDParticle self, ParticleIndexKey a0)
4399  remove_attribute(TAMDParticle self, ObjectKey a0)
4400  remove_attribute(TAMDParticle self, SparseFloatKey a0)
4401  remove_attribute(TAMDParticle self, SparseIntKey a0)
4402  remove_attribute(TAMDParticle self, SparseStringKey a0)
4403  remove_attribute(TAMDParticle self, SparseParticleIndexKey a0)
4404  """
4405  return _IMP_atom.TAMDParticle_remove_attribute(self, *args)
4406 
4407  def has_attribute(self, *args):
4408  r"""
4409  has_attribute(TAMDParticle self, FloatKey a0) -> bool
4410  has_attribute(TAMDParticle self, IntKey a0) -> bool
4411  has_attribute(TAMDParticle self, FloatsKey a0) -> bool
4412  has_attribute(TAMDParticle self, IntsKey a0) -> bool
4413  has_attribute(TAMDParticle self, StringKey a0) -> bool
4414  has_attribute(TAMDParticle self, ParticleIndexKey a0) -> bool
4415  has_attribute(TAMDParticle self, ObjectKey a0) -> bool
4416  has_attribute(TAMDParticle self, SparseFloatKey a0) -> bool
4417  has_attribute(TAMDParticle self, SparseIntKey a0) -> bool
4418  has_attribute(TAMDParticle self, SparseStringKey a0) -> bool
4419  has_attribute(TAMDParticle self, SparseParticleIndexKey a0) -> bool
4420  """
4421  return _IMP_atom.TAMDParticle_has_attribute(self, *args)
4422 
4423  def get_derivative(self, a0):
4424  r"""get_derivative(TAMDParticle self, FloatKey a0) -> double"""
4425  return _IMP_atom.TAMDParticle_get_derivative(self, a0)
4426 
4427  def get_name(self):
4428  r"""get_name(TAMDParticle self) -> std::string"""
4429  return _IMP_atom.TAMDParticle_get_name(self)
4430 
4431  def clear_caches(self):
4432  r"""clear_caches(TAMDParticle self)"""
4433  return _IMP_atom.TAMDParticle_clear_caches(self)
4434 
4435  def set_name(self, a0):
4436  r"""set_name(TAMDParticle self, std::string a0)"""
4437  return _IMP_atom.TAMDParticle_set_name(self, a0)
4438 
4439  def set_check_level(self, a0):
4440  r"""set_check_level(TAMDParticle self, IMP::CheckLevel a0)"""
4441  return _IMP_atom.TAMDParticle_set_check_level(self, a0)
4442 
4443  def add_to_derivative(self, a0, a1, a2):
4444  r"""add_to_derivative(TAMDParticle self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
4445  return _IMP_atom.TAMDParticle_add_to_derivative(self, a0, a1, a2)
4446 
4447  def set_is_optimized(self, a0, a1):
4448  r"""set_is_optimized(TAMDParticle self, FloatKey a0, bool a1)"""
4449  return _IMP_atom.TAMDParticle_set_is_optimized(self, a0, a1)
4450 
4451  def get_is_optimized(self, a0):
4452  r"""get_is_optimized(TAMDParticle self, FloatKey a0) -> bool"""
4453  return _IMP_atom.TAMDParticle_get_is_optimized(self, a0)
4454 
4455  def get_check_level(self):
4456  r"""get_check_level(TAMDParticle self) -> IMP::CheckLevel"""
4457  return _IMP_atom.TAMDParticle_get_check_level(self)
4458 
4459  def __eq__(self, *args):
4460  r"""
4461  __eq__(TAMDParticle self, TAMDParticle o) -> bool
4462  __eq__(TAMDParticle self, Particle d) -> bool
4463  """
4464  return _IMP_atom.TAMDParticle___eq__(self, *args)
4465 
4466  def __ne__(self, *args):
4467  r"""
4468  __ne__(TAMDParticle self, TAMDParticle o) -> bool
4469  __ne__(TAMDParticle self, Particle d) -> bool
4470  """
4471  return _IMP_atom.TAMDParticle___ne__(self, *args)
4472 
4473  def __le__(self, *args):
4474  r"""
4475  __le__(TAMDParticle self, TAMDParticle o) -> bool
4476  __le__(TAMDParticle self, Particle d) -> bool
4477  """
4478  return _IMP_atom.TAMDParticle___le__(self, *args)
4479 
4480  def __lt__(self, *args):
4481  r"""
4482  __lt__(TAMDParticle self, TAMDParticle o) -> bool
4483  __lt__(TAMDParticle self, Particle d) -> bool
4484  """
4485  return _IMP_atom.TAMDParticle___lt__(self, *args)
4486 
4487  def __ge__(self, *args):
4488  r"""
4489  __ge__(TAMDParticle self, TAMDParticle o) -> bool
4490  __ge__(TAMDParticle self, Particle d) -> bool
4491  """
4492  return _IMP_atom.TAMDParticle___ge__(self, *args)
4493 
4494  def __gt__(self, *args):
4495  r"""
4496  __gt__(TAMDParticle self, TAMDParticle o) -> bool
4497  __gt__(TAMDParticle self, Particle d) -> bool
4498  """
4499  return _IMP_atom.TAMDParticle___gt__(self, *args)
4500 
4501  def __hash__(self):
4502  r"""__hash__(TAMDParticle self) -> std::size_t"""
4503  return _IMP_atom.TAMDParticle___hash__(self)
4504 
4505  def __str__(self):
4506  r"""__str__(TAMDParticle self) -> std::string"""
4507  return _IMP_atom.TAMDParticle___str__(self)
4508 
4509  def __repr__(self):
4510  r"""__repr__(TAMDParticle self) -> std::string"""
4511  return _IMP_atom.TAMDParticle___repr__(self)
4512 
4513  def _get_as_binary(self):
4514  r"""_get_as_binary(TAMDParticle self) -> PyObject *"""
4515  return _IMP_atom.TAMDParticle__get_as_binary(self)
4516 
4517  def _set_from_binary(self, p):
4518  r"""_set_from_binary(TAMDParticle self, PyObject * p)"""
4519  return _IMP_atom.TAMDParticle__set_from_binary(self, p)
4520 
4521  def __getstate__(self):
4522  p = self._get_as_binary()
4523  if len(self.__dict__) > 1:
4524  d = self.__dict__.copy()
4525  del d['this']
4526  p = (d, p)
4527  return p
4528 
4529  def __setstate__(self, p):
4530  if not hasattr(self, 'this'):
4531  self.__init__()
4532  if isinstance(p, tuple):
4533  d, p = p
4534  self.__dict__.update(d)
4535  return self._set_from_binary(p)
4536 
4537  __swig_destroy__ = _IMP_atom.delete_TAMDParticle
4538 
4539 # Register TAMDParticle in _IMP_atom:
4540 _IMP_atom.TAMDParticle_swigregister(TAMDParticle)
4541 class Charged(IMP.core.XYZ):
4542  r"""Proxy of C++ IMP::atom::Charged class."""
4543 
4544  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4545 
4546  def __init__(self, *args):
4547  r"""
4548  __init__(Charged self) -> Charged
4549  __init__(Charged self, Model m, ParticleIndex id) -> Charged
4550  __init__(Charged self, _ParticleAdaptor d) -> Charged
4551  """
4552  _IMP_atom.Charged_swiginit(self, _IMP_atom.new_Charged(*args))
4553 
4554  def show(self, *args):
4555  r"""show(Charged self, _ostream out=std::cout)"""
4556  return _IMP_atom.Charged_show(self, *args)
4557 
4558  @staticmethod
4559  def setup_particle(*args):
4560  r"""
4561  setup_particle(Model m, ParticleIndex pi, IMP::Float charge) -> Charged
4562  setup_particle(_ParticleAdaptor pa, IMP::Float charge) -> Charged
4563  setup_particle(Model m, ParticleIndex pi, Vector3D v, IMP::Float charge) -> Charged
4564  setup_particle(_ParticleAdaptor pa, Vector3D v, IMP::Float charge) -> Charged
4565  """
4566  return _IMP_atom.Charged_setup_particle(*args)
4567 
4568  def get_charge(self):
4569  r"""get_charge(Charged self) -> IMP::Float"""
4570  return _IMP_atom.Charged_get_charge(self)
4571 
4572  def set_charge(self, t):
4573  r"""set_charge(Charged self, IMP::Float t)"""
4574  return _IMP_atom.Charged_set_charge(self, t)
4575 
4576  @staticmethod
4577  def get_is_setup(*args):
4578  r"""
4579  get_is_setup(_ParticleAdaptor p) -> bool
4580  get_is_setup(Model m, ParticleIndex pi) -> bool
4581  """
4582  return _IMP_atom.Charged_get_is_setup(*args)
4583 
4584  @staticmethod
4585  def get_charge_key():
4586  r"""get_charge_key() -> FloatKey"""
4587  return _IMP_atom.Charged_get_charge_key()
4588 
4589  def add_attribute(self, *args):
4590  r"""
4591  add_attribute(Charged self, FloatKey k, IMP::Float v, bool opt)
4592  add_attribute(Charged self, FloatKey a0, IMP::Float a1)
4593  add_attribute(Charged self, IntKey a0, IMP::Int a1)
4594  add_attribute(Charged self, FloatsKey a0, IMP::Floats a1)
4595  add_attribute(Charged self, IntsKey a0, IMP::Ints a1)
4596  add_attribute(Charged self, StringKey a0, IMP::String a1)
4597  add_attribute(Charged self, ParticleIndexKey a0, Particle a1)
4598  add_attribute(Charged self, ObjectKey a0, Object a1)
4599  add_attribute(Charged self, SparseFloatKey a0, IMP::Float a1)
4600  add_attribute(Charged self, SparseIntKey a0, IMP::Int a1)
4601  add_attribute(Charged self, SparseStringKey a0, IMP::String a1)
4602  add_attribute(Charged self, SparseParticleIndexKey a0, ParticleIndex a1)
4603  """
4604  return _IMP_atom.Charged_add_attribute(self, *args)
4605 
4606  def get_value(self, *args):
4607  r"""
4608  get_value(Charged self, FloatKey a0) -> IMP::Float
4609  get_value(Charged self, IntKey a0) -> IMP::Int
4610  get_value(Charged self, FloatsKey a0) -> IMP::Floats
4611  get_value(Charged self, IntsKey a0) -> IMP::Ints
4612  get_value(Charged self, StringKey a0) -> IMP::String
4613  get_value(Charged self, ParticleIndexKey a0) -> Particle
4614  get_value(Charged self, ObjectKey a0) -> Object
4615  get_value(Charged self, SparseFloatKey a0) -> IMP::Float
4616  get_value(Charged self, SparseIntKey a0) -> IMP::Int
4617  get_value(Charged self, SparseStringKey a0) -> IMP::String
4618  get_value(Charged self, SparseParticleIndexKey a0) -> ParticleIndex
4619  """
4620  return _IMP_atom.Charged_get_value(self, *args)
4621 
4622  def set_value(self, *args):
4623  r"""
4624  set_value(Charged self, FloatKey a0, IMP::Float a1)
4625  set_value(Charged self, IntKey a0, IMP::Int a1)
4626  set_value(Charged self, FloatsKey a0, IMP::Floats a1)
4627  set_value(Charged self, IntsKey a0, IMP::Ints a1)
4628  set_value(Charged self, StringKey a0, IMP::String a1)
4629  set_value(Charged self, ParticleIndexKey a0, Particle a1)
4630  set_value(Charged self, ObjectKey a0, Object a1)
4631  set_value(Charged self, SparseFloatKey a0, IMP::Float a1)
4632  set_value(Charged self, SparseIntKey a0, IMP::Int a1)
4633  set_value(Charged self, SparseStringKey a0, IMP::String a1)
4634  set_value(Charged self, SparseParticleIndexKey a0, ParticleIndex a1)
4635  """
4636  return _IMP_atom.Charged_set_value(self, *args)
4637 
4638  def remove_attribute(self, *args):
4639  r"""
4640  remove_attribute(Charged self, FloatKey a0)
4641  remove_attribute(Charged self, IntKey a0)
4642  remove_attribute(Charged self, FloatsKey a0)
4643  remove_attribute(Charged self, IntsKey a0)
4644  remove_attribute(Charged self, StringKey a0)
4645  remove_attribute(Charged self, ParticleIndexKey a0)
4646  remove_attribute(Charged self, ObjectKey a0)
4647  remove_attribute(Charged self, SparseFloatKey a0)
4648  remove_attribute(Charged self, SparseIntKey a0)
4649  remove_attribute(Charged self, SparseStringKey a0)
4650  remove_attribute(Charged self, SparseParticleIndexKey a0)
4651  """
4652  return _IMP_atom.Charged_remove_attribute(self, *args)
4653 
4654  def has_attribute(self, *args):
4655  r"""
4656  has_attribute(Charged self, FloatKey a0) -> bool
4657  has_attribute(Charged self, IntKey a0) -> bool
4658  has_attribute(Charged self, FloatsKey a0) -> bool
4659  has_attribute(Charged self, IntsKey a0) -> bool
4660  has_attribute(Charged self, StringKey a0) -> bool
4661  has_attribute(Charged self, ParticleIndexKey a0) -> bool
4662  has_attribute(Charged self, ObjectKey a0) -> bool
4663  has_attribute(Charged self, SparseFloatKey a0) -> bool
4664  has_attribute(Charged self, SparseIntKey a0) -> bool
4665  has_attribute(Charged self, SparseStringKey a0) -> bool
4666  has_attribute(Charged self, SparseParticleIndexKey a0) -> bool
4667  """
4668  return _IMP_atom.Charged_has_attribute(self, *args)
4669 
4670  def get_derivative(self, a0):
4671  r"""get_derivative(Charged self, FloatKey a0) -> double"""
4672  return _IMP_atom.Charged_get_derivative(self, a0)
4673 
4674  def get_name(self):
4675  r"""get_name(Charged self) -> std::string"""
4676  return _IMP_atom.Charged_get_name(self)
4677 
4678  def clear_caches(self):
4679  r"""clear_caches(Charged self)"""
4680  return _IMP_atom.Charged_clear_caches(self)
4681 
4682  def set_name(self, a0):
4683  r"""set_name(Charged self, std::string a0)"""
4684  return _IMP_atom.Charged_set_name(self, a0)
4685 
4686  def set_check_level(self, a0):
4687  r"""set_check_level(Charged self, IMP::CheckLevel a0)"""
4688  return _IMP_atom.Charged_set_check_level(self, a0)
4689 
4690  def add_to_derivative(self, a0, a1, a2):
4691  r"""add_to_derivative(Charged self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
4692  return _IMP_atom.Charged_add_to_derivative(self, a0, a1, a2)
4693 
4694  def set_is_optimized(self, a0, a1):
4695  r"""set_is_optimized(Charged self, FloatKey a0, bool a1)"""
4696  return _IMP_atom.Charged_set_is_optimized(self, a0, a1)
4697 
4698  def get_is_optimized(self, a0):
4699  r"""get_is_optimized(Charged self, FloatKey a0) -> bool"""
4700  return _IMP_atom.Charged_get_is_optimized(self, a0)
4701 
4702  def get_check_level(self):
4703  r"""get_check_level(Charged self) -> IMP::CheckLevel"""
4704  return _IMP_atom.Charged_get_check_level(self)
4705 
4706  def __eq__(self, *args):
4707  r"""
4708  __eq__(Charged self, Charged o) -> bool
4709  __eq__(Charged self, Particle d) -> bool
4710  """
4711  return _IMP_atom.Charged___eq__(self, *args)
4712 
4713  def __ne__(self, *args):
4714  r"""
4715  __ne__(Charged self, Charged o) -> bool
4716  __ne__(Charged self, Particle d) -> bool
4717  """
4718  return _IMP_atom.Charged___ne__(self, *args)
4719 
4720  def __le__(self, *args):
4721  r"""
4722  __le__(Charged self, Charged o) -> bool
4723  __le__(Charged self, Particle d) -> bool
4724  """
4725  return _IMP_atom.Charged___le__(self, *args)
4726 
4727  def __lt__(self, *args):
4728  r"""
4729  __lt__(Charged self, Charged o) -> bool
4730  __lt__(Charged self, Particle d) -> bool
4731  """
4732  return _IMP_atom.Charged___lt__(self, *args)
4733 
4734  def __ge__(self, *args):
4735  r"""
4736  __ge__(Charged self, Charged o) -> bool
4737  __ge__(Charged self, Particle d) -> bool
4738  """
4739  return _IMP_atom.Charged___ge__(self, *args)
4740 
4741  def __gt__(self, *args):
4742  r"""
4743  __gt__(Charged self, Charged o) -> bool
4744  __gt__(Charged self, Particle d) -> bool
4745  """
4746  return _IMP_atom.Charged___gt__(self, *args)
4747 
4748  def __hash__(self):
4749  r"""__hash__(Charged self) -> std::size_t"""
4750  return _IMP_atom.Charged___hash__(self)
4751 
4752  def __str__(self):
4753  r"""__str__(Charged self) -> std::string"""
4754  return _IMP_atom.Charged___str__(self)
4755 
4756  def __repr__(self):
4757  r"""__repr__(Charged self) -> std::string"""
4758  return _IMP_atom.Charged___repr__(self)
4759 
4760  def _get_as_binary(self):
4761  r"""_get_as_binary(Charged self) -> PyObject *"""
4762  return _IMP_atom.Charged__get_as_binary(self)
4763 
4764  def _set_from_binary(self, p):
4765  r"""_set_from_binary(Charged self, PyObject * p)"""
4766  return _IMP_atom.Charged__set_from_binary(self, p)
4767 
4768  def __getstate__(self):
4769  p = self._get_as_binary()
4770  if len(self.__dict__) > 1:
4771  d = self.__dict__.copy()
4772  del d['this']
4773  p = (d, p)
4774  return p
4775 
4776  def __setstate__(self, p):
4777  if not hasattr(self, 'this'):
4778  self.__init__()
4779  if isinstance(p, tuple):
4780  d, p = p
4781  self.__dict__.update(d)
4782  return self._set_from_binary(p)
4783 
4784  __swig_destroy__ = _IMP_atom.delete_Charged
4785 
4786 # Register Charged in _IMP_atom:
4787 _IMP_atom.Charged_swigregister(Charged)
4788 class CoulombPairScore(IMP.PairScore):
4789  r"""Proxy of C++ IMP::atom::CoulombPairScore class."""
4790 
4791  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4792 
4793  def __init__(self, f):
4794  r"""__init__(CoulombPairScore self, SmoothingFunction f) -> CoulombPairScore"""
4795  _IMP_atom.CoulombPairScore_swiginit(self, _IMP_atom.new_CoulombPairScore(f))
4796 
4797  def set_relative_dielectric(self, relative_dielectric):
4798  r"""set_relative_dielectric(CoulombPairScore self, double relative_dielectric)"""
4799  return _IMP_atom.CoulombPairScore_set_relative_dielectric(self, relative_dielectric)
4800 
4801  def get_relative_dielectric(self):
4802  r"""get_relative_dielectric(CoulombPairScore self) -> double"""
4803  return _IMP_atom.CoulombPairScore_get_relative_dielectric(self)
4804 
4805  def get_smoothing_function(self):
4806  r"""get_smoothing_function(CoulombPairScore self) -> SmoothingFunction"""
4807  return _IMP_atom.CoulombPairScore_get_smoothing_function(self)
4808 
4809  def do_get_inputs(self, m, pis):
4810  r"""do_get_inputs(CoulombPairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4811  return _IMP_atom.CoulombPairScore_do_get_inputs(self, m, pis)
4812 
4813  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
4814  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"""
4815  return _IMP_atom.CoulombPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
4816 
4817  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
4818  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"""
4819  return _IMP_atom.CoulombPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
4820 
4821  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
4822  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"""
4823  return _IMP_atom.CoulombPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
4824 
4825  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
4826  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"""
4827  return _IMP_atom.CoulombPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
4828 
4829  def get_version_info(self):
4830  r"""get_version_info(CoulombPairScore self) -> VersionInfo"""
4831  return _IMP_atom.CoulombPairScore_get_version_info(self)
4832  __swig_destroy__ = _IMP_atom.delete_CoulombPairScore
4833 
4834  def __str__(self):
4835  r"""__str__(CoulombPairScore self) -> std::string"""
4836  return _IMP_atom.CoulombPairScore___str__(self)
4837 
4838  def __repr__(self):
4839  r"""__repr__(CoulombPairScore self) -> std::string"""
4840  return _IMP_atom.CoulombPairScore___repr__(self)
4841 
4842  @staticmethod
4843  def get_from(o):
4844  return _object_cast_to_CoulombPairScore(o)
4845 
4846 
4847  def _get_jax(self, m, indexes):
4848  import math
4849  import jax
4850  import jax.numpy as jnp
4851  # 1 / (4pi * epsilon) * conversion factor to get score in kcal/mol
4852  # if distances are in angstroms
4853  avogadro = 6.02214179e23 # /mole
4854  electron_charge = 1.6021892e-19 # Coulomb
4855  permittivity_vacuum = 8.854187818e-12 # C/V/m
4856  kcal2joule = 4186.8
4857  factor = (avogadro * electron_charge * electron_charge *
4858  1.0e10 / permittivity_vacuum / kcal2joule /
4859  (4.0 * math.pi * self.get_relative_dielectric()))
4860  sf = self.get_smoothing_function().get_derived_object()
4861  # Function operates on a single distance + score; make it work on
4862  # an array instead using jax.vmap
4863  smoothing_function = jax.vmap(sf._get_jax())
4864  def score(jm):
4865  xyzs = jm['xyz'][indexes]
4866  qs = jm['charge'][indexes]
4867  diff = xyzs[:,0] - xyzs[:,1]
4868  drs = jnp.linalg.norm(diff, axis=1)
4869  scores = factor * jnp.prod(qs, axis=1) / drs
4870  return smoothing_function(scores, drs)
4871  return self._wrap_jax(m, score, keys=[Charged.get_charge_key()])
4872 
4873 
4874 # Register CoulombPairScore in _IMP_atom:
4875 _IMP_atom.CoulombPairScore_swigregister(CoulombPairScore)
4876 class Domain(Hierarchy):
4877  r"""Proxy of C++ IMP::atom::Domain class."""
4878 
4879  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4880 
4881  def set_index_range(self, ir):
4882  r"""set_index_range(Domain self, IMP::IntRange ir)"""
4883  return _IMP_atom.Domain_set_index_range(self, ir)
4884 
4885  def get_index_range(self):
4886  r"""get_index_range(Domain self) -> IMP::IntRange"""
4887  return _IMP_atom.Domain_get_index_range(self)
4888 
4889  def __init__(self, *args):
4890  r"""
4891  __init__(Domain self) -> Domain
4892  __init__(Domain self, Model m, ParticleIndex id) -> Domain
4893  __init__(Domain self, _ParticleAdaptor d) -> Domain
4894  """
4895  _IMP_atom.Domain_swiginit(self, _IMP_atom.new_Domain(*args))
4896 
4897  @staticmethod
4898  def get_is_setup(*args):
4899  r"""
4900  get_is_setup(Model m, ParticleIndex pi) -> bool
4901  get_is_setup(_ParticleAdaptor p) -> bool
4902  """
4903  return _IMP_atom.Domain_get_is_setup(*args)
4904 
4905  def show(self, *args):
4906  r"""show(Domain self, _ostream out=std::cout)"""
4907  return _IMP_atom.Domain_show(self, *args)
4908 
4909  @staticmethod
4910  def setup_particle(*args):
4911  r"""
4912  setup_particle(Model m, ParticleIndex pi, Domain other) -> Domain
4913  setup_particle(_ParticleAdaptor pa, Domain other) -> Domain
4914  setup_particle(Model m, ParticleIndex pi, IMP::IntRange residues) -> Domain
4915  setup_particle(_ParticleAdaptor pa, IMP::IntRange residues) -> Domain
4916  """
4917  return _IMP_atom.Domain_setup_particle(*args)
4918 
4919  def add_attribute(self, *args):
4920  r"""
4921  add_attribute(Domain self, FloatKey k, IMP::Float v, bool opt)
4922  add_attribute(Domain self, FloatKey a0, IMP::Float a1)
4923  add_attribute(Domain self, IntKey a0, IMP::Int a1)
4924  add_attribute(Domain self, FloatsKey a0, IMP::Floats a1)
4925  add_attribute(Domain self, IntsKey a0, IMP::Ints a1)
4926  add_attribute(Domain self, StringKey a0, IMP::String a1)
4927  add_attribute(Domain self, ParticleIndexKey a0, Particle a1)
4928  add_attribute(Domain self, ObjectKey a0, Object a1)
4929  add_attribute(Domain self, SparseFloatKey a0, IMP::Float a1)
4930  add_attribute(Domain self, SparseIntKey a0, IMP::Int a1)
4931  add_attribute(Domain self, SparseStringKey a0, IMP::String a1)
4932  add_attribute(Domain self, SparseParticleIndexKey a0, ParticleIndex a1)
4933  """
4934  return _IMP_atom.Domain_add_attribute(self, *args)
4935 
4936  def get_value(self, *args):
4937  r"""
4938  get_value(Domain self, FloatKey a0) -> IMP::Float
4939  get_value(Domain self, IntKey a0) -> IMP::Int
4940  get_value(Domain self, FloatsKey a0) -> IMP::Floats
4941  get_value(Domain self, IntsKey a0) -> IMP::Ints
4942  get_value(Domain self, StringKey a0) -> IMP::String
4943  get_value(Domain self, ParticleIndexKey a0) -> Particle
4944  get_value(Domain self, ObjectKey a0) -> Object
4945  get_value(Domain self, SparseFloatKey a0) -> IMP::Float
4946  get_value(Domain self, SparseIntKey a0) -> IMP::Int
4947  get_value(Domain self, SparseStringKey a0) -> IMP::String
4948  get_value(Domain self, SparseParticleIndexKey a0) -> ParticleIndex
4949  """
4950  return _IMP_atom.Domain_get_value(self, *args)
4951 
4952  def set_value(self, *args):
4953  r"""
4954  set_value(Domain self, FloatKey a0, IMP::Float a1)
4955  set_value(Domain self, IntKey a0, IMP::Int a1)
4956  set_value(Domain self, FloatsKey a0, IMP::Floats a1)
4957  set_value(Domain self, IntsKey a0, IMP::Ints a1)
4958  set_value(Domain self, StringKey a0, IMP::String a1)
4959  set_value(Domain self, ParticleIndexKey a0, Particle a1)
4960  set_value(Domain self, ObjectKey a0, Object a1)
4961  set_value(Domain self, SparseFloatKey a0, IMP::Float a1)
4962  set_value(Domain self, SparseIntKey a0, IMP::Int a1)
4963  set_value(Domain self, SparseStringKey a0, IMP::String a1)
4964  set_value(Domain self, SparseParticleIndexKey a0, ParticleIndex a1)
4965  """
4966  return _IMP_atom.Domain_set_value(self, *args)
4967 
4968  def remove_attribute(self, *args):
4969  r"""
4970  remove_attribute(Domain self, FloatKey a0)
4971  remove_attribute(Domain self, IntKey a0)
4972  remove_attribute(Domain self, FloatsKey a0)
4973  remove_attribute(Domain self, IntsKey a0)
4974  remove_attribute(Domain self, StringKey a0)
4975  remove_attribute(Domain self, ParticleIndexKey a0)
4976  remove_attribute(Domain self, ObjectKey a0)
4977  remove_attribute(Domain self, SparseFloatKey a0)
4978  remove_attribute(Domain self, SparseIntKey a0)
4979  remove_attribute(Domain self, SparseStringKey a0)
4980  remove_attribute(Domain self, SparseParticleIndexKey a0)
4981  """
4982  return _IMP_atom.Domain_remove_attribute(self, *args)
4983 
4984  def has_attribute(self, *args):
4985  r"""
4986  has_attribute(Domain self, FloatKey a0) -> bool
4987  has_attribute(Domain self, IntKey a0) -> bool
4988  has_attribute(Domain self, FloatsKey a0) -> bool
4989  has_attribute(Domain self, IntsKey a0) -> bool
4990  has_attribute(Domain self, StringKey a0) -> bool
4991  has_attribute(Domain self, ParticleIndexKey a0) -> bool
4992  has_attribute(Domain self, ObjectKey a0) -> bool
4993  has_attribute(Domain self, SparseFloatKey a0) -> bool
4994  has_attribute(Domain self, SparseIntKey a0) -> bool
4995  has_attribute(Domain self, SparseStringKey a0) -> bool
4996  has_attribute(Domain self, SparseParticleIndexKey a0) -> bool
4997  """
4998  return _IMP_atom.Domain_has_attribute(self, *args)
4999 
5000  def get_derivative(self, a0):
5001  r"""get_derivative(Domain self, FloatKey a0) -> double"""
5002  return _IMP_atom.Domain_get_derivative(self, a0)
5003 
5004  def get_name(self):
5005  r"""get_name(Domain self) -> std::string"""
5006  return _IMP_atom.Domain_get_name(self)
5007 
5008  def clear_caches(self):
5009  r"""clear_caches(Domain self)"""
5010  return _IMP_atom.Domain_clear_caches(self)
5011 
5012  def set_name(self, a0):
5013  r"""set_name(Domain self, std::string a0)"""
5014  return _IMP_atom.Domain_set_name(self, a0)
5015 
5016  def set_check_level(self, a0):
5017  r"""set_check_level(Domain self, IMP::CheckLevel a0)"""
5018  return _IMP_atom.Domain_set_check_level(self, a0)
5019 
5020  def add_to_derivative(self, a0, a1, a2):
5021  r"""add_to_derivative(Domain self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
5022  return _IMP_atom.Domain_add_to_derivative(self, a0, a1, a2)
5023 
5024  def set_is_optimized(self, a0, a1):
5025  r"""set_is_optimized(Domain self, FloatKey a0, bool a1)"""
5026  return _IMP_atom.Domain_set_is_optimized(self, a0, a1)
5027 
5028  def get_is_optimized(self, a0):
5029  r"""get_is_optimized(Domain self, FloatKey a0) -> bool"""
5030  return _IMP_atom.Domain_get_is_optimized(self, a0)
5031 
5032  def get_check_level(self):
5033  r"""get_check_level(Domain self) -> IMP::CheckLevel"""
5034  return _IMP_atom.Domain_get_check_level(self)
5035 
5036  def __eq__(self, *args):
5037  r"""
5038  __eq__(Domain self, Domain o) -> bool
5039  __eq__(Domain self, Particle d) -> bool
5040  """
5041  return _IMP_atom.Domain___eq__(self, *args)
5042 
5043  def __ne__(self, *args):
5044  r"""
5045  __ne__(Domain self, Domain o) -> bool
5046  __ne__(Domain self, Particle d) -> bool
5047  """
5048  return _IMP_atom.Domain___ne__(self, *args)
5049 
5050  def __le__(self, *args):
5051  r"""
5052  __le__(Domain self, Domain o) -> bool
5053  __le__(Domain self, Particle d) -> bool
5054  """
5055  return _IMP_atom.Domain___le__(self, *args)
5056 
5057  def __lt__(self, *args):
5058  r"""
5059  __lt__(Domain self, Domain o) -> bool
5060  __lt__(Domain self, Particle d) -> bool
5061  """
5062  return _IMP_atom.Domain___lt__(self, *args)
5063 
5064  def __ge__(self, *args):
5065  r"""
5066  __ge__(Domain self, Domain o) -> bool
5067  __ge__(Domain self, Particle d) -> bool
5068  """
5069  return _IMP_atom.Domain___ge__(self, *args)
5070 
5071  def __gt__(self, *args):
5072  r"""
5073  __gt__(Domain self, Domain o) -> bool
5074  __gt__(Domain self, Particle d) -> bool
5075  """
5076  return _IMP_atom.Domain___gt__(self, *args)
5077 
5078  def __hash__(self):
5079  r"""__hash__(Domain self) -> std::size_t"""
5080  return _IMP_atom.Domain___hash__(self)
5081 
5082  def __str__(self):
5083  r"""__str__(Domain self) -> std::string"""
5084  return _IMP_atom.Domain___str__(self)
5085 
5086  def __repr__(self):
5087  r"""__repr__(Domain self) -> std::string"""
5088  return _IMP_atom.Domain___repr__(self)
5089 
5090  def _get_as_binary(self):
5091  r"""_get_as_binary(Domain self) -> PyObject *"""
5092  return _IMP_atom.Domain__get_as_binary(self)
5093 
5094  def _set_from_binary(self, p):
5095  r"""_set_from_binary(Domain self, PyObject * p)"""
5096  return _IMP_atom.Domain__set_from_binary(self, p)
5097 
5098  def __getstate__(self):
5099  p = self._get_as_binary()
5100  if len(self.__dict__) > 1:
5101  d = self.__dict__.copy()
5102  del d['this']
5103  p = (d, p)
5104  return p
5105 
5106  def __setstate__(self, p):
5107  if not hasattr(self, 'this'):
5108  self.__init__()
5109  if isinstance(p, tuple):
5110  d, p = p
5111  self.__dict__.update(d)
5112  return self._set_from_binary(p)
5113 
5114  __swig_destroy__ = _IMP_atom.delete_Domain
5115 
5116 # Register Domain in _IMP_atom:
5117 _IMP_atom.Domain_swigregister(Domain)
5118 class LennardJonesType(IMP.Object):
5119  r"""Proxy of C++ IMP::atom::LennardJonesType class."""
5120 
5121  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5122 
5123  def __init__(self, *args):
5124  r"""__init__(LennardJonesType self, double well_depth, double radius, std::string name="LennardJonesType%1%") -> LennardJonesType"""
5125  _IMP_atom.LennardJonesType_swiginit(self, _IMP_atom.new_LennardJonesType(*args))
5126 
5127  def get_well_depth(self):
5128  r"""get_well_depth(LennardJonesType self) -> double"""
5129  return _IMP_atom.LennardJonesType_get_well_depth(self)
5130 
5131  def set_well_depth(self, d):
5132  r"""set_well_depth(LennardJonesType self, double d)"""
5133  return _IMP_atom.LennardJonesType_set_well_depth(self, d)
5134 
5135  def get_radius(self):
5136  r"""get_radius(LennardJonesType self) -> double"""
5137  return _IMP_atom.LennardJonesType_get_radius(self)
5138 
5139  def set_radius(self, r):
5140  r"""set_radius(LennardJonesType self, double r)"""
5141  return _IMP_atom.LennardJonesType_set_radius(self, r)
5142 
5143  def get_index(self):
5144  r"""get_index(LennardJonesType self) -> int"""
5145  return _IMP_atom.LennardJonesType_get_index(self)
5146 
5147  def get_version_info(self):
5148  r"""get_version_info(LennardJonesType self) -> VersionInfo"""
5149  return _IMP_atom.LennardJonesType_get_version_info(self)
5150  __swig_destroy__ = _IMP_atom.delete_LennardJonesType
5151 
5152  def __str__(self):
5153  r"""__str__(LennardJonesType self) -> std::string"""
5154  return _IMP_atom.LennardJonesType___str__(self)
5155 
5156  def __repr__(self):
5157  r"""__repr__(LennardJonesType self) -> std::string"""
5158  return _IMP_atom.LennardJonesType___repr__(self)
5159 
5160  @staticmethod
5161  def get_from(o):
5162  return _object_cast_to_LennardJonesType(o)
5163 
5164 
5165 # Register LennardJonesType in _IMP_atom:
5166 _IMP_atom.LennardJonesType_swigregister(LennardJonesType)
5167 class LennardJonesTyped(IMP.core.XYZ):
5168  r"""Proxy of C++ IMP::atom::LennardJonesTyped class."""
5169 
5170  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5171 
5172  def __init__(self, *args):
5173  r"""
5174  __init__(LennardJonesTyped self) -> LennardJonesTyped
5175  __init__(LennardJonesTyped self, Model m, ParticleIndex id) -> LennardJonesTyped
5176  __init__(LennardJonesTyped self, _ParticleAdaptor d) -> LennardJonesTyped
5177  """
5178  _IMP_atom.LennardJonesTyped_swiginit(self, _IMP_atom.new_LennardJonesTyped(*args))
5179 
5180  def show(self, *args):
5181  r"""show(LennardJonesTyped self, _ostream out=std::cout)"""
5182  return _IMP_atom.LennardJonesTyped_show(self, *args)
5183 
5184  @staticmethod
5185  def setup_particle(*args):
5186  r"""
5187  setup_particle(Model m, ParticleIndex pi, LennardJonesType type) -> LennardJonesTyped
5188  setup_particle(_ParticleAdaptor pa, LennardJonesType type) -> LennardJonesTyped
5189  """
5190  return _IMP_atom.LennardJonesTyped_setup_particle(*args)
5191 
5192  @staticmethod
5193  def get_is_setup(*args):
5194  r"""
5195  get_is_setup(_ParticleAdaptor p) -> bool
5196  get_is_setup(Model m, ParticleIndex pi) -> bool
5197  """
5198  return _IMP_atom.LennardJonesTyped_get_is_setup(*args)
5199 
5200  def set_type(self, type):
5201  r"""set_type(LennardJonesTyped self, LennardJonesType type)"""
5202  return _IMP_atom.LennardJonesTyped_set_type(self, type)
5203 
5204  def get_type(self):
5205  r"""get_type(LennardJonesTyped self) -> LennardJonesType"""
5206  return _IMP_atom.LennardJonesTyped_get_type(self)
5207 
5208  def get_index(self):
5209  r"""get_index(LennardJonesTyped self) -> int"""
5210  return _IMP_atom.LennardJonesTyped_get_index(self)
5211 
5212  def get_well_depth(self):
5213  r"""get_well_depth(LennardJonesTyped self) -> double"""
5214  return _IMP_atom.LennardJonesTyped_get_well_depth(self)
5215 
5216  def get_radius(self):
5217  r"""get_radius(LennardJonesTyped self) -> double"""
5218  return _IMP_atom.LennardJonesTyped_get_radius(self)
5219 
5220  @staticmethod
5221  def get_type_key():
5222  r"""get_type_key() -> IntKey"""
5223  return _IMP_atom.LennardJonesTyped_get_type_key()
5224 
5225  def add_attribute(self, *args):
5226  r"""
5227  add_attribute(LennardJonesTyped self, FloatKey k, IMP::Float v, bool opt)
5228  add_attribute(LennardJonesTyped self, FloatKey a0, IMP::Float a1)
5229  add_attribute(LennardJonesTyped self, IntKey a0, IMP::Int a1)
5230  add_attribute(LennardJonesTyped self, FloatsKey a0, IMP::Floats a1)
5231  add_attribute(LennardJonesTyped self, IntsKey a0, IMP::Ints a1)
5232  add_attribute(LennardJonesTyped self, StringKey a0, IMP::String a1)
5233  add_attribute(LennardJonesTyped self, ParticleIndexKey a0, Particle a1)
5234  add_attribute(LennardJonesTyped self, ObjectKey a0, Object a1)
5235  add_attribute(LennardJonesTyped self, SparseFloatKey a0, IMP::Float a1)
5236  add_attribute(LennardJonesTyped self, SparseIntKey a0, IMP::Int a1)
5237  add_attribute(LennardJonesTyped self, SparseStringKey a0, IMP::String a1)
5238  add_attribute(LennardJonesTyped self, SparseParticleIndexKey a0, ParticleIndex a1)
5239  """
5240  return _IMP_atom.LennardJonesTyped_add_attribute(self, *args)
5241 
5242  def get_value(self, *args):
5243  r"""
5244  get_value(LennardJonesTyped self, FloatKey a0) -> IMP::Float
5245  get_value(LennardJonesTyped self, IntKey a0) -> IMP::Int
5246  get_value(LennardJonesTyped self, FloatsKey a0) -> IMP::Floats
5247  get_value(LennardJonesTyped self, IntsKey a0) -> IMP::Ints
5248  get_value(LennardJonesTyped self, StringKey a0) -> IMP::String
5249  get_value(LennardJonesTyped self, ParticleIndexKey a0) -> Particle
5250  get_value(LennardJonesTyped self, ObjectKey a0) -> Object
5251  get_value(LennardJonesTyped self, SparseFloatKey a0) -> IMP::Float
5252  get_value(LennardJonesTyped self, SparseIntKey a0) -> IMP::Int
5253  get_value(LennardJonesTyped self, SparseStringKey a0) -> IMP::String
5254  get_value(LennardJonesTyped self, SparseParticleIndexKey a0) -> ParticleIndex
5255  """
5256  return _IMP_atom.LennardJonesTyped_get_value(self, *args)
5257 
5258  def set_value(self, *args):
5259  r"""
5260  set_value(LennardJonesTyped self, FloatKey a0, IMP::Float a1)
5261  set_value(LennardJonesTyped self, IntKey a0, IMP::Int a1)
5262  set_value(LennardJonesTyped self, FloatsKey a0, IMP::Floats a1)
5263  set_value(LennardJonesTyped self, IntsKey a0, IMP::Ints a1)
5264  set_value(LennardJonesTyped self, StringKey a0, IMP::String a1)
5265  set_value(LennardJonesTyped self, ParticleIndexKey a0, Particle a1)
5266  set_value(LennardJonesTyped self, ObjectKey a0, Object a1)
5267  set_value(LennardJonesTyped self, SparseFloatKey a0, IMP::Float a1)
5268  set_value(LennardJonesTyped self, SparseIntKey a0, IMP::Int a1)
5269  set_value(LennardJonesTyped self, SparseStringKey a0, IMP::String a1)
5270  set_value(LennardJonesTyped self, SparseParticleIndexKey a0, ParticleIndex a1)
5271  """
5272  return _IMP_atom.LennardJonesTyped_set_value(self, *args)
5273 
5274  def remove_attribute(self, *args):
5275  r"""
5276  remove_attribute(LennardJonesTyped self, FloatKey a0)
5277  remove_attribute(LennardJonesTyped self, IntKey a0)
5278  remove_attribute(LennardJonesTyped self, FloatsKey a0)
5279  remove_attribute(LennardJonesTyped self, IntsKey a0)
5280  remove_attribute(LennardJonesTyped self, StringKey a0)
5281  remove_attribute(LennardJonesTyped self, ParticleIndexKey a0)
5282  remove_attribute(LennardJonesTyped self, ObjectKey a0)
5283  remove_attribute(LennardJonesTyped self, SparseFloatKey a0)
5284  remove_attribute(LennardJonesTyped self, SparseIntKey a0)
5285  remove_attribute(LennardJonesTyped self, SparseStringKey a0)
5286  remove_attribute(LennardJonesTyped self, SparseParticleIndexKey a0)
5287  """
5288  return _IMP_atom.LennardJonesTyped_remove_attribute(self, *args)
5289 
5290  def has_attribute(self, *args):
5291  r"""
5292  has_attribute(LennardJonesTyped self, FloatKey a0) -> bool
5293  has_attribute(LennardJonesTyped self, IntKey a0) -> bool
5294  has_attribute(LennardJonesTyped self, FloatsKey a0) -> bool
5295  has_attribute(LennardJonesTyped self, IntsKey a0) -> bool
5296  has_attribute(LennardJonesTyped self, StringKey a0) -> bool
5297  has_attribute(LennardJonesTyped self, ParticleIndexKey a0) -> bool
5298  has_attribute(LennardJonesTyped self, ObjectKey a0) -> bool
5299  has_attribute(LennardJonesTyped self, SparseFloatKey a0) -> bool
5300  has_attribute(LennardJonesTyped self, SparseIntKey a0) -> bool
5301  has_attribute(LennardJonesTyped self, SparseStringKey a0) -> bool
5302  has_attribute(LennardJonesTyped self, SparseParticleIndexKey a0) -> bool
5303  """
5304  return _IMP_atom.LennardJonesTyped_has_attribute(self, *args)
5305 
5306  def get_derivative(self, a0):
5307  r"""get_derivative(LennardJonesTyped self, FloatKey a0) -> double"""
5308  return _IMP_atom.LennardJonesTyped_get_derivative(self, a0)
5309 
5310  def get_name(self):
5311  r"""get_name(LennardJonesTyped self) -> std::string"""
5312  return _IMP_atom.LennardJonesTyped_get_name(self)
5313 
5314  def clear_caches(self):
5315  r"""clear_caches(LennardJonesTyped self)"""
5316  return _IMP_atom.LennardJonesTyped_clear_caches(self)
5317 
5318  def set_name(self, a0):
5319  r"""set_name(LennardJonesTyped self, std::string a0)"""
5320  return _IMP_atom.LennardJonesTyped_set_name(self, a0)
5321 
5322  def set_check_level(self, a0):
5323  r"""set_check_level(LennardJonesTyped self, IMP::CheckLevel a0)"""
5324  return _IMP_atom.LennardJonesTyped_set_check_level(self, a0)
5325 
5326  def add_to_derivative(self, a0, a1, a2):
5327  r"""add_to_derivative(LennardJonesTyped self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
5328  return _IMP_atom.LennardJonesTyped_add_to_derivative(self, a0, a1, a2)
5329 
5330  def set_is_optimized(self, a0, a1):
5331  r"""set_is_optimized(LennardJonesTyped self, FloatKey a0, bool a1)"""
5332  return _IMP_atom.LennardJonesTyped_set_is_optimized(self, a0, a1)
5333 
5334  def get_is_optimized(self, a0):
5335  r"""get_is_optimized(LennardJonesTyped self, FloatKey a0) -> bool"""
5336  return _IMP_atom.LennardJonesTyped_get_is_optimized(self, a0)
5337 
5338  def get_check_level(self):
5339  r"""get_check_level(LennardJonesTyped self) -> IMP::CheckLevel"""
5340  return _IMP_atom.LennardJonesTyped_get_check_level(self)
5341 
5342  def __eq__(self, *args):
5343  r"""
5344  __eq__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5345  __eq__(LennardJonesTyped self, Particle d) -> bool
5346  """
5347  return _IMP_atom.LennardJonesTyped___eq__(self, *args)
5348 
5349  def __ne__(self, *args):
5350  r"""
5351  __ne__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5352  __ne__(LennardJonesTyped self, Particle d) -> bool
5353  """
5354  return _IMP_atom.LennardJonesTyped___ne__(self, *args)
5355 
5356  def __le__(self, *args):
5357  r"""
5358  __le__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5359  __le__(LennardJonesTyped self, Particle d) -> bool
5360  """
5361  return _IMP_atom.LennardJonesTyped___le__(self, *args)
5362 
5363  def __lt__(self, *args):
5364  r"""
5365  __lt__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5366  __lt__(LennardJonesTyped self, Particle d) -> bool
5367  """
5368  return _IMP_atom.LennardJonesTyped___lt__(self, *args)
5369 
5370  def __ge__(self, *args):
5371  r"""
5372  __ge__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5373  __ge__(LennardJonesTyped self, Particle d) -> bool
5374  """
5375  return _IMP_atom.LennardJonesTyped___ge__(self, *args)
5376 
5377  def __gt__(self, *args):
5378  r"""
5379  __gt__(LennardJonesTyped self, LennardJonesTyped o) -> bool
5380  __gt__(LennardJonesTyped self, Particle d) -> bool
5381  """
5382  return _IMP_atom.LennardJonesTyped___gt__(self, *args)
5383 
5384  def __hash__(self):
5385  r"""__hash__(LennardJonesTyped self) -> std::size_t"""
5386  return _IMP_atom.LennardJonesTyped___hash__(self)
5387 
5388  def __str__(self):
5389  r"""__str__(LennardJonesTyped self) -> std::string"""
5390  return _IMP_atom.LennardJonesTyped___str__(self)
5391 
5392  def __repr__(self):
5393  r"""__repr__(LennardJonesTyped self) -> std::string"""
5394  return _IMP_atom.LennardJonesTyped___repr__(self)
5395 
5396  def _get_as_binary(self):
5397  r"""_get_as_binary(LennardJonesTyped self) -> PyObject *"""
5398  return _IMP_atom.LennardJonesTyped__get_as_binary(self)
5399 
5400  def _set_from_binary(self, p):
5401  r"""_set_from_binary(LennardJonesTyped self, PyObject * p)"""
5402  return _IMP_atom.LennardJonesTyped__set_from_binary(self, p)
5403 
5404  def __getstate__(self):
5405  p = self._get_as_binary()
5406  if len(self.__dict__) > 1:
5407  d = self.__dict__.copy()
5408  del d['this']
5409  p = (d, p)
5410  return p
5411 
5412  def __setstate__(self, p):
5413  if not hasattr(self, 'this'):
5414  self.__init__()
5415  if isinstance(p, tuple):
5416  d, p = p
5417  self.__dict__.update(d)
5418  return self._set_from_binary(p)
5419 
5420  __swig_destroy__ = _IMP_atom.delete_LennardJonesTyped
5421 
5422 # Register LennardJonesTyped in _IMP_atom:
5423 _IMP_atom.LennardJonesTyped_swigregister(LennardJonesTyped)
5424 class LinearVelocity(IMP.Decorator):
5425  r"""Proxy of C++ IMP::atom::LinearVelocity class."""
5426 
5427  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5428 
5429  @staticmethod
5430  def get_velocity_key():
5431  r"""get_velocity_key() -> Vector3DKey"""
5432  return _IMP_atom.LinearVelocity_get_velocity_key()
5433 
5434  def __init__(self, *args):
5435  r"""
5436  __init__(LinearVelocity self) -> LinearVelocity
5437  __init__(LinearVelocity self, Model m, ParticleIndex id) -> LinearVelocity
5438  __init__(LinearVelocity self, _ParticleAdaptor d) -> LinearVelocity
5439  """
5440  _IMP_atom.LinearVelocity_swiginit(self, _IMP_atom.new_LinearVelocity(*args))
5441 
5442  @staticmethod
5443  def get_is_setup(*args):
5444  r"""
5445  get_is_setup(Model m, ParticleIndex pi) -> bool
5446  get_is_setup(_ParticleAdaptor p) -> bool
5447  """
5448  return _IMP_atom.LinearVelocity_get_is_setup(*args)
5449 
5450  def show(self, *args):
5451  r"""show(LinearVelocity self, _ostream out=std::cout)"""
5452  return _IMP_atom.LinearVelocity_show(self, *args)
5453 
5454  @staticmethod
5455  def setup_particle(*args):
5456  r"""
5457  setup_particle(Model m, ParticleIndex pi) -> LinearVelocity
5458  setup_particle(_ParticleAdaptor pa) -> LinearVelocity
5459  setup_particle(Model m, ParticleIndex pi, Vector3D v) -> LinearVelocity
5460  setup_particle(_ParticleAdaptor pa, Vector3D v) -> LinearVelocity
5461  """
5462  return _IMP_atom.LinearVelocity_setup_particle(*args)
5463 
5464  def set_velocity(self, v):
5465  r"""set_velocity(LinearVelocity self, Vector3D v)"""
5466  return _IMP_atom.LinearVelocity_set_velocity(self, v)
5467 
5468  def get_velocity(self):
5469  r"""get_velocity(LinearVelocity self) -> Vector3D"""
5470  return _IMP_atom.LinearVelocity_get_velocity(self)
5471 
5472  def add_attribute(self, *args):
5473  r"""
5474  add_attribute(LinearVelocity self, FloatKey k, IMP::Float v, bool opt)
5475  add_attribute(LinearVelocity self, FloatKey a0, IMP::Float a1)
5476  add_attribute(LinearVelocity self, IntKey a0, IMP::Int a1)
5477  add_attribute(LinearVelocity self, FloatsKey a0, IMP::Floats a1)
5478  add_attribute(LinearVelocity self, IntsKey a0, IMP::Ints a1)
5479  add_attribute(LinearVelocity self, StringKey a0, IMP::String a1)
5480  add_attribute(LinearVelocity self, ParticleIndexKey a0, Particle a1)
5481  add_attribute(LinearVelocity self, ObjectKey a0, Object a1)
5482  add_attribute(LinearVelocity self, SparseFloatKey a0, IMP::Float a1)
5483  add_attribute(LinearVelocity self, SparseIntKey a0, IMP::Int a1)
5484  add_attribute(LinearVelocity self, SparseStringKey a0, IMP::String a1)
5485  add_attribute(LinearVelocity self, SparseParticleIndexKey a0, ParticleIndex a1)
5486  """
5487  return _IMP_atom.LinearVelocity_add_attribute(self, *args)
5488 
5489  def get_value(self, *args):
5490  r"""
5491  get_value(LinearVelocity self, FloatKey a0) -> IMP::Float
5492  get_value(LinearVelocity self, IntKey a0) -> IMP::Int
5493  get_value(LinearVelocity self, FloatsKey a0) -> IMP::Floats
5494  get_value(LinearVelocity self, IntsKey a0) -> IMP::Ints
5495  get_value(LinearVelocity self, StringKey a0) -> IMP::String
5496  get_value(LinearVelocity self, ParticleIndexKey a0) -> Particle
5497  get_value(LinearVelocity self, ObjectKey a0) -> Object
5498  get_value(LinearVelocity self, SparseFloatKey a0) -> IMP::Float
5499  get_value(LinearVelocity self, SparseIntKey a0) -> IMP::Int
5500  get_value(LinearVelocity self, SparseStringKey a0) -> IMP::String
5501  get_value(LinearVelocity self, SparseParticleIndexKey a0) -> ParticleIndex
5502  """
5503  return _IMP_atom.LinearVelocity_get_value(self, *args)
5504 
5505  def set_value(self, *args):
5506  r"""
5507  set_value(LinearVelocity self, FloatKey a0, IMP::Float a1)
5508  set_value(LinearVelocity self, IntKey a0, IMP::Int a1)
5509  set_value(LinearVelocity self, FloatsKey a0, IMP::Floats a1)
5510  set_value(LinearVelocity self, IntsKey a0, IMP::Ints a1)
5511  set_value(LinearVelocity self, StringKey a0, IMP::String a1)
5512  set_value(LinearVelocity self, ParticleIndexKey a0, Particle a1)
5513  set_value(LinearVelocity self, ObjectKey a0, Object a1)
5514  set_value(LinearVelocity self, SparseFloatKey a0, IMP::Float a1)
5515  set_value(LinearVelocity self, SparseIntKey a0, IMP::Int a1)
5516  set_value(LinearVelocity self, SparseStringKey a0, IMP::String a1)
5517  set_value(LinearVelocity self, SparseParticleIndexKey a0, ParticleIndex a1)
5518  """
5519  return _IMP_atom.LinearVelocity_set_value(self, *args)
5520 
5521  def remove_attribute(self, *args):
5522  r"""
5523  remove_attribute(LinearVelocity self, FloatKey a0)
5524  remove_attribute(LinearVelocity self, IntKey a0)
5525  remove_attribute(LinearVelocity self, FloatsKey a0)
5526  remove_attribute(LinearVelocity self, IntsKey a0)
5527  remove_attribute(LinearVelocity self, StringKey a0)
5528  remove_attribute(LinearVelocity self, ParticleIndexKey a0)
5529  remove_attribute(LinearVelocity self, ObjectKey a0)
5530  remove_attribute(LinearVelocity self, SparseFloatKey a0)
5531  remove_attribute(LinearVelocity self, SparseIntKey a0)
5532  remove_attribute(LinearVelocity self, SparseStringKey a0)
5533  remove_attribute(LinearVelocity self, SparseParticleIndexKey a0)
5534  """
5535  return _IMP_atom.LinearVelocity_remove_attribute(self, *args)
5536 
5537  def has_attribute(self, *args):
5538  r"""
5539  has_attribute(LinearVelocity self, FloatKey a0) -> bool
5540  has_attribute(LinearVelocity self, IntKey a0) -> bool
5541  has_attribute(LinearVelocity self, FloatsKey a0) -> bool
5542  has_attribute(LinearVelocity self, IntsKey a0) -> bool
5543  has_attribute(LinearVelocity self, StringKey a0) -> bool
5544  has_attribute(LinearVelocity self, ParticleIndexKey a0) -> bool
5545  has_attribute(LinearVelocity self, ObjectKey a0) -> bool
5546  has_attribute(LinearVelocity self, SparseFloatKey a0) -> bool
5547  has_attribute(LinearVelocity self, SparseIntKey a0) -> bool
5548  has_attribute(LinearVelocity self, SparseStringKey a0) -> bool
5549  has_attribute(LinearVelocity self, SparseParticleIndexKey a0) -> bool
5550  """
5551  return _IMP_atom.LinearVelocity_has_attribute(self, *args)
5552 
5553  def get_derivative(self, a0):
5554  r"""get_derivative(LinearVelocity self, FloatKey a0) -> double"""
5555  return _IMP_atom.LinearVelocity_get_derivative(self, a0)
5556 
5557  def get_name(self):
5558  r"""get_name(LinearVelocity self) -> std::string"""
5559  return _IMP_atom.LinearVelocity_get_name(self)
5560 
5561  def clear_caches(self):
5562  r"""clear_caches(LinearVelocity self)"""
5563  return _IMP_atom.LinearVelocity_clear_caches(self)
5564 
5565  def set_name(self, a0):
5566  r"""set_name(LinearVelocity self, std::string a0)"""
5567  return _IMP_atom.LinearVelocity_set_name(self, a0)
5568 
5569  def set_check_level(self, a0):
5570  r"""set_check_level(LinearVelocity self, IMP::CheckLevel a0)"""
5571  return _IMP_atom.LinearVelocity_set_check_level(self, a0)
5572 
5573  def add_to_derivative(self, a0, a1, a2):
5574  r"""add_to_derivative(LinearVelocity self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
5575  return _IMP_atom.LinearVelocity_add_to_derivative(self, a0, a1, a2)
5576 
5577  def set_is_optimized(self, a0, a1):
5578  r"""set_is_optimized(LinearVelocity self, FloatKey a0, bool a1)"""
5579  return _IMP_atom.LinearVelocity_set_is_optimized(self, a0, a1)
5580 
5581  def get_is_optimized(self, a0):
5582  r"""get_is_optimized(LinearVelocity self, FloatKey a0) -> bool"""
5583  return _IMP_atom.LinearVelocity_get_is_optimized(self, a0)
5584 
5585  def get_check_level(self):
5586  r"""get_check_level(LinearVelocity self) -> IMP::CheckLevel"""
5587  return _IMP_atom.LinearVelocity_get_check_level(self)
5588 
5589  def __eq__(self, *args):
5590  r"""
5591  __eq__(LinearVelocity self, LinearVelocity o) -> bool
5592  __eq__(LinearVelocity self, Particle d) -> bool
5593  """
5594  return _IMP_atom.LinearVelocity___eq__(self, *args)
5595 
5596  def __ne__(self, *args):
5597  r"""
5598  __ne__(LinearVelocity self, LinearVelocity o) -> bool
5599  __ne__(LinearVelocity self, Particle d) -> bool
5600  """
5601  return _IMP_atom.LinearVelocity___ne__(self, *args)
5602 
5603  def __le__(self, *args):
5604  r"""
5605  __le__(LinearVelocity self, LinearVelocity o) -> bool
5606  __le__(LinearVelocity self, Particle d) -> bool
5607  """
5608  return _IMP_atom.LinearVelocity___le__(self, *args)
5609 
5610  def __lt__(self, *args):
5611  r"""
5612  __lt__(LinearVelocity self, LinearVelocity o) -> bool
5613  __lt__(LinearVelocity self, Particle d) -> bool
5614  """
5615  return _IMP_atom.LinearVelocity___lt__(self, *args)
5616 
5617  def __ge__(self, *args):
5618  r"""
5619  __ge__(LinearVelocity self, LinearVelocity o) -> bool
5620  __ge__(LinearVelocity self, Particle d) -> bool
5621  """
5622  return _IMP_atom.LinearVelocity___ge__(self, *args)
5623 
5624  def __gt__(self, *args):
5625  r"""
5626  __gt__(LinearVelocity self, LinearVelocity o) -> bool
5627  __gt__(LinearVelocity self, Particle d) -> bool
5628  """
5629  return _IMP_atom.LinearVelocity___gt__(self, *args)
5630 
5631  def __hash__(self):
5632  r"""__hash__(LinearVelocity self) -> std::size_t"""
5633  return _IMP_atom.LinearVelocity___hash__(self)
5634 
5635  def __str__(self):
5636  r"""__str__(LinearVelocity self) -> std::string"""
5637  return _IMP_atom.LinearVelocity___str__(self)
5638 
5639  def __repr__(self):
5640  r"""__repr__(LinearVelocity self) -> std::string"""
5641  return _IMP_atom.LinearVelocity___repr__(self)
5642 
5643  def _get_as_binary(self):
5644  r"""_get_as_binary(LinearVelocity self) -> PyObject *"""
5645  return _IMP_atom.LinearVelocity__get_as_binary(self)
5646 
5647  def _set_from_binary(self, p):
5648  r"""_set_from_binary(LinearVelocity self, PyObject * p)"""
5649  return _IMP_atom.LinearVelocity__set_from_binary(self, p)
5650 
5651  def __getstate__(self):
5652  p = self._get_as_binary()
5653  if len(self.__dict__) > 1:
5654  d = self.__dict__.copy()
5655  del d['this']
5656  p = (d, p)
5657  return p
5658 
5659  def __setstate__(self, p):
5660  if not hasattr(self, 'this'):
5661  self.__init__()
5662  if isinstance(p, tuple):
5663  d, p = p
5664  self.__dict__.update(d)
5665  return self._set_from_binary(p)
5666 
5667  __swig_destroy__ = _IMP_atom.delete_LinearVelocity
5668 
5669 # Register LinearVelocity in _IMP_atom:
5670 _IMP_atom.LinearVelocity_swigregister(LinearVelocity)
5671 class AngularVelocity(IMP.Decorator):
5672  r"""Proxy of C++ IMP::atom::AngularVelocity class."""
5673 
5674  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5675 
5676  def __init__(self, *args):
5677  r"""
5678  __init__(AngularVelocity self) -> AngularVelocity
5679  __init__(AngularVelocity self, Model m, ParticleIndex id) -> AngularVelocity
5680  __init__(AngularVelocity self, _ParticleAdaptor d) -> AngularVelocity
5681  """
5682  _IMP_atom.AngularVelocity_swiginit(self, _IMP_atom.new_AngularVelocity(*args))
5683 
5684  @staticmethod
5685  def get_is_setup(*args):
5686  r"""
5687  get_is_setup(Model m, ParticleIndex pi) -> bool
5688  get_is_setup(_ParticleAdaptor p) -> bool
5689  """
5690  return _IMP_atom.AngularVelocity_get_is_setup(*args)
5691 
5692  def show(self, *args):
5693  r"""show(AngularVelocity self, _ostream out=std::cout)"""
5694  return _IMP_atom.AngularVelocity_show(self, *args)
5695 
5696  @staticmethod
5697  def setup_particle(*args):
5698  r"""
5699  setup_particle(Model m, ParticleIndex pi) -> AngularVelocity
5700  setup_particle(_ParticleAdaptor pa) -> AngularVelocity
5701  setup_particle(Model m, ParticleIndex pi, Vector4D v) -> AngularVelocity
5702  setup_particle(_ParticleAdaptor pa, Vector4D v) -> AngularVelocity
5703  """
5704  return _IMP_atom.AngularVelocity_setup_particle(*args)
5705 
5706  def set_velocity(self, v):
5707  r"""set_velocity(AngularVelocity self, Vector4D v)"""
5708  return _IMP_atom.AngularVelocity_set_velocity(self, v)
5709 
5710  def get_velocity(self):
5711  r"""get_velocity(AngularVelocity self) -> Vector4D"""
5712  return _IMP_atom.AngularVelocity_get_velocity(self)
5713 
5714  def add_attribute(self, *args):
5715  r"""
5716  add_attribute(AngularVelocity self, FloatKey k, IMP::Float v, bool opt)
5717  add_attribute(AngularVelocity self, FloatKey a0, IMP::Float a1)
5718  add_attribute(AngularVelocity self, IntKey a0, IMP::Int a1)
5719  add_attribute(AngularVelocity self, FloatsKey a0, IMP::Floats a1)
5720  add_attribute(AngularVelocity self, IntsKey a0, IMP::Ints a1)
5721  add_attribute(AngularVelocity self, StringKey a0, IMP::String a1)
5722  add_attribute(AngularVelocity self, ParticleIndexKey a0, Particle a1)
5723  add_attribute(AngularVelocity self, ObjectKey a0, Object a1)
5724  add_attribute(AngularVelocity self, SparseFloatKey a0, IMP::Float a1)
5725  add_attribute(AngularVelocity self, SparseIntKey a0, IMP::Int a1)
5726  add_attribute(AngularVelocity self, SparseStringKey a0, IMP::String a1)
5727  add_attribute(AngularVelocity self, SparseParticleIndexKey a0, ParticleIndex a1)
5728  """
5729  return _IMP_atom.AngularVelocity_add_attribute(self, *args)
5730 
5731  def get_value(self, *args):
5732  r"""
5733  get_value(AngularVelocity self, FloatKey a0) -> IMP::Float
5734  get_value(AngularVelocity self, IntKey a0) -> IMP::Int
5735  get_value(AngularVelocity self, FloatsKey a0) -> IMP::Floats
5736  get_value(AngularVelocity self, IntsKey a0) -> IMP::Ints
5737  get_value(AngularVelocity self, StringKey a0) -> IMP::String
5738  get_value(AngularVelocity self, ParticleIndexKey a0) -> Particle
5739  get_value(AngularVelocity self, ObjectKey a0) -> Object
5740  get_value(AngularVelocity self, SparseFloatKey a0) -> IMP::Float
5741  get_value(AngularVelocity self, SparseIntKey a0) -> IMP::Int
5742  get_value(AngularVelocity self, SparseStringKey a0) -> IMP::String
5743  get_value(AngularVelocity self, SparseParticleIndexKey a0) -> ParticleIndex
5744  """
5745  return _IMP_atom.AngularVelocity_get_value(self, *args)
5746 
5747  def set_value(self, *args):
5748  r"""
5749  set_value(AngularVelocity self, FloatKey a0, IMP::Float a1)
5750  set_value(AngularVelocity self, IntKey a0, IMP::Int a1)
5751  set_value(AngularVelocity self, FloatsKey a0, IMP::Floats a1)
5752  set_value(AngularVelocity self, IntsKey a0, IMP::Ints a1)
5753  set_value(AngularVelocity self, StringKey a0, IMP::String a1)
5754  set_value(AngularVelocity self, ParticleIndexKey a0, Particle a1)
5755  set_value(AngularVelocity self, ObjectKey a0, Object a1)
5756  set_value(AngularVelocity self, SparseFloatKey a0, IMP::Float a1)
5757  set_value(AngularVelocity self, SparseIntKey a0, IMP::Int a1)
5758  set_value(AngularVelocity self, SparseStringKey a0, IMP::String a1)
5759  set_value(AngularVelocity self, SparseParticleIndexKey a0, ParticleIndex a1)
5760  """
5761  return _IMP_atom.AngularVelocity_set_value(self, *args)
5762 
5763  def remove_attribute(self, *args):
5764  r"""
5765  remove_attribute(AngularVelocity self, FloatKey a0)
5766  remove_attribute(AngularVelocity self, IntKey a0)
5767  remove_attribute(AngularVelocity self, FloatsKey a0)
5768  remove_attribute(AngularVelocity self, IntsKey a0)
5769  remove_attribute(AngularVelocity self, StringKey a0)
5770  remove_attribute(AngularVelocity self, ParticleIndexKey a0)
5771  remove_attribute(AngularVelocity self, ObjectKey a0)
5772  remove_attribute(AngularVelocity self, SparseFloatKey a0)
5773  remove_attribute(AngularVelocity self, SparseIntKey a0)
5774  remove_attribute(AngularVelocity self, SparseStringKey a0)
5775  remove_attribute(AngularVelocity self, SparseParticleIndexKey a0)
5776  """
5777  return _IMP_atom.AngularVelocity_remove_attribute(self, *args)
5778 
5779  def has_attribute(self, *args):
5780  r"""
5781  has_attribute(AngularVelocity self, FloatKey a0) -> bool
5782  has_attribute(AngularVelocity self, IntKey a0) -> bool
5783  has_attribute(AngularVelocity self, FloatsKey a0) -> bool
5784  has_attribute(AngularVelocity self, IntsKey a0) -> bool
5785  has_attribute(AngularVelocity self, StringKey a0) -> bool
5786  has_attribute(AngularVelocity self, ParticleIndexKey a0) -> bool
5787  has_attribute(AngularVelocity self, ObjectKey a0) -> bool
5788  has_attribute(AngularVelocity self, SparseFloatKey a0) -> bool
5789  has_attribute(AngularVelocity self, SparseIntKey a0) -> bool
5790  has_attribute(AngularVelocity self, SparseStringKey a0) -> bool
5791  has_attribute(AngularVelocity self, SparseParticleIndexKey a0) -> bool
5792  """
5793  return _IMP_atom.AngularVelocity_has_attribute(self, *args)
5794 
5795  def get_derivative(self, a0):
5796  r"""get_derivative(AngularVelocity self, FloatKey a0) -> double"""
5797  return _IMP_atom.AngularVelocity_get_derivative(self, a0)
5798 
5799  def get_name(self):
5800  r"""get_name(AngularVelocity self) -> std::string"""
5801  return _IMP_atom.AngularVelocity_get_name(self)
5802 
5803  def clear_caches(self):
5804  r"""clear_caches(AngularVelocity self)"""
5805  return _IMP_atom.AngularVelocity_clear_caches(self)
5806 
5807  def set_name(self, a0):
5808  r"""set_name(AngularVelocity self, std::string a0)"""
5809  return _IMP_atom.AngularVelocity_set_name(self, a0)
5810 
5811  def set_check_level(self, a0):
5812  r"""set_check_level(AngularVelocity self, IMP::CheckLevel a0)"""
5813  return _IMP_atom.AngularVelocity_set_check_level(self, a0)
5814 
5815  def add_to_derivative(self, a0, a1, a2):
5816  r"""add_to_derivative(AngularVelocity self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
5817  return _IMP_atom.AngularVelocity_add_to_derivative(self, a0, a1, a2)
5818 
5819  def set_is_optimized(self, a0, a1):
5820  r"""set_is_optimized(AngularVelocity self, FloatKey a0, bool a1)"""
5821  return _IMP_atom.AngularVelocity_set_is_optimized(self, a0, a1)
5822 
5823  def get_is_optimized(self, a0):
5824  r"""get_is_optimized(AngularVelocity self, FloatKey a0) -> bool"""
5825  return _IMP_atom.AngularVelocity_get_is_optimized(self, a0)
5826 
5827  def get_check_level(self):
5828  r"""get_check_level(AngularVelocity self) -> IMP::CheckLevel"""
5829  return _IMP_atom.AngularVelocity_get_check_level(self)
5830 
5831  def __eq__(self, *args):
5832  r"""
5833  __eq__(AngularVelocity self, AngularVelocity o) -> bool
5834  __eq__(AngularVelocity self, Particle d) -> bool
5835  """
5836  return _IMP_atom.AngularVelocity___eq__(self, *args)
5837 
5838  def __ne__(self, *args):
5839  r"""
5840  __ne__(AngularVelocity self, AngularVelocity o) -> bool
5841  __ne__(AngularVelocity self, Particle d) -> bool
5842  """
5843  return _IMP_atom.AngularVelocity___ne__(self, *args)
5844 
5845  def __le__(self, *args):
5846  r"""
5847  __le__(AngularVelocity self, AngularVelocity o) -> bool
5848  __le__(AngularVelocity self, Particle d) -> bool
5849  """
5850  return _IMP_atom.AngularVelocity___le__(self, *args)
5851 
5852  def __lt__(self, *args):
5853  r"""
5854  __lt__(AngularVelocity self, AngularVelocity o) -> bool
5855  __lt__(AngularVelocity self, Particle d) -> bool
5856  """
5857  return _IMP_atom.AngularVelocity___lt__(self, *args)
5858 
5859  def __ge__(self, *args):
5860  r"""
5861  __ge__(AngularVelocity self, AngularVelocity o) -> bool
5862  __ge__(AngularVelocity self, Particle d) -> bool
5863  """
5864  return _IMP_atom.AngularVelocity___ge__(self, *args)
5865 
5866  def __gt__(self, *args):
5867  r"""
5868  __gt__(AngularVelocity self, AngularVelocity o) -> bool
5869  __gt__(AngularVelocity self, Particle d) -> bool
5870  """
5871  return _IMP_atom.AngularVelocity___gt__(self, *args)
5872 
5873  def __hash__(self):
5874  r"""__hash__(AngularVelocity self) -> std::size_t"""
5875  return _IMP_atom.AngularVelocity___hash__(self)
5876 
5877  def __str__(self):
5878  r"""__str__(AngularVelocity self) -> std::string"""
5879  return _IMP_atom.AngularVelocity___str__(self)
5880 
5881  def __repr__(self):
5882  r"""__repr__(AngularVelocity self) -> std::string"""
5883  return _IMP_atom.AngularVelocity___repr__(self)
5884 
5885  def _get_as_binary(self):
5886  r"""_get_as_binary(AngularVelocity self) -> PyObject *"""
5887  return _IMP_atom.AngularVelocity__get_as_binary(self)
5888 
5889  def _set_from_binary(self, p):
5890  r"""_set_from_binary(AngularVelocity self, PyObject * p)"""
5891  return _IMP_atom.AngularVelocity__set_from_binary(self, p)
5892 
5893  def __getstate__(self):
5894  p = self._get_as_binary()
5895  if len(self.__dict__) > 1:
5896  d = self.__dict__.copy()
5897  del d['this']
5898  p = (d, p)
5899  return p
5900 
5901  def __setstate__(self, p):
5902  if not hasattr(self, 'this'):
5903  self.__init__()
5904  if isinstance(p, tuple):
5905  d, p = p
5906  self.__dict__.update(d)
5907  return self._set_from_binary(p)
5908 
5909  __swig_destroy__ = _IMP_atom.delete_AngularVelocity
5910 
5911 # Register AngularVelocity in _IMP_atom:
5912 _IMP_atom.AngularVelocity_swigregister(AngularVelocity)
5913 class MolecularDynamics(Simulator):
5914  r"""Proxy of C++ IMP::atom::MolecularDynamics class."""
5915 
5916  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5917 
5918  def __init__(self, *args):
5919  r"""
5920  __init__(MolecularDynamics self, Model m) -> MolecularDynamics
5921  __init__(MolecularDynamics self) -> MolecularDynamics
5922  """
5923  _IMP_atom.MolecularDynamics_swiginit(self, _IMP_atom.new_MolecularDynamics(*args))
5924 
5925  def get_kinetic_energy(self):
5926  r"""get_kinetic_energy(MolecularDynamics self) -> IMP::Float"""
5927  return _IMP_atom.MolecularDynamics_get_kinetic_energy(self)
5928 
5929  def get_kinetic_temperature(self, ekinetic):
5930  r"""get_kinetic_temperature(MolecularDynamics self, IMP::Float ekinetic) -> IMP::Float"""
5931  return _IMP_atom.MolecularDynamics_get_kinetic_temperature(self, ekinetic)
5932 
5933  def set_velocity_cap(self, velocity_cap):
5934  r"""set_velocity_cap(MolecularDynamics self, IMP::Float velocity_cap)"""
5935  return _IMP_atom.MolecularDynamics_set_velocity_cap(self, velocity_cap)
5936 
5937  def get_velocity_cap(self):
5938  r"""get_velocity_cap(MolecularDynamics self) -> IMP::Float"""
5939  return _IMP_atom.MolecularDynamics_get_velocity_cap(self)
5940 
5941  def get_degrees_of_freedom(self):
5942  r"""get_degrees_of_freedom(MolecularDynamics self) -> int"""
5943  return _IMP_atom.MolecularDynamics_get_degrees_of_freedom(self)
5944 
5945  def assign_velocities(self, temperature):
5946  r"""assign_velocities(MolecularDynamics self, IMP::Float temperature)"""
5947  return _IMP_atom.MolecularDynamics_assign_velocities(self, temperature)
5948 
5949  def setup(self, ps):
5950  r"""setup(MolecularDynamics self, IMP::ParticleIndexes const & ps)"""
5951  return _IMP_atom.MolecularDynamics_setup(self, ps)
5952 
5953  def do_step(self, sc, dt):
5954  r"""do_step(MolecularDynamics self, IMP::ParticleIndexes const & sc, double dt) -> double"""
5955  return _IMP_atom.MolecularDynamics_do_step(self, sc, dt)
5956 
5957  def get_is_simulation_particle(self, p):
5958  r"""get_is_simulation_particle(MolecularDynamics self, ParticleIndex p) -> bool"""
5959  return _IMP_atom.MolecularDynamics_get_is_simulation_particle(self, p)
5960 
5961  def get_version_info(self):
5962  r"""get_version_info(MolecularDynamics self) -> VersionInfo"""
5963  return _IMP_atom.MolecularDynamics_get_version_info(self)
5964  __swig_destroy__ = _IMP_atom.delete_MolecularDynamics
5965 
5966  def __str__(self):
5967  r"""__str__(MolecularDynamics self) -> std::string"""
5968  return _IMP_atom.MolecularDynamics___str__(self)
5969 
5970  def __repr__(self):
5971  r"""__repr__(MolecularDynamics self) -> std::string"""
5972  return _IMP_atom.MolecularDynamics___repr__(self)
5973 
5974  @staticmethod
5975  def get_from(o):
5976  return _object_cast_to_MolecularDynamics(o)
5977 
5978 
5979  def _get_as_binary(self):
5980  r"""_get_as_binary(MolecularDynamics self) -> PyObject *"""
5981  return _IMP_atom.MolecularDynamics__get_as_binary(self)
5982 
5983  def _set_from_binary(self, p):
5984  r"""_set_from_binary(MolecularDynamics self, PyObject * p)"""
5985  return _IMP_atom.MolecularDynamics__set_from_binary(self, p)
5986 
5987  def __getstate__(self):
5988  p = self._get_as_binary()
5989  if len(self.__dict__) > 1:
5990  d = self.__dict__.copy()
5991  del d['this']
5992  p = (d, p)
5993  return p
5994 
5995  def __setstate__(self, p):
5996  if not hasattr(self, 'this'):
5997  self.__init__()
5998  if isinstance(p, tuple):
5999  d, p = p
6000  self.__dict__.update(d)
6001  return self._set_from_binary(p)
6002 
6003 
6004  def _get_jax(self):
6005  from IMP.atom._jax_util import _MDJAXInfo
6006  return _MDJAXInfo(self)
6007 
6008  def _get_jax_optimizer(self, max_steps):
6009  import IMP.atom._jax_util
6010  return IMP.atom._jax_util._MDJAXOptimizer(self, max_steps)
6011 
6012  def _optimize_jax(self, max_steps):
6013  opt = self._get_jax_optimizer(max_steps)
6014  score, md_state = opt.optimize(opt.get_initial_state())
6015  return score
6016 
6017 
6018 # Register MolecularDynamics in _IMP_atom:
6019 _IMP_atom.MolecularDynamics_swigregister(MolecularDynamics)
6020 class VelocityScalingOptimizerState(IMP.OptimizerState):
6021  r"""Proxy of C++ IMP::atom::VelocityScalingOptimizerState class."""
6022 
6023  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6024 
6025  def __init__(self, m, pis, temperature):
6026  r"""__init__(VelocityScalingOptimizerState self, Model m, _ParticleIndexesAdaptor pis, double temperature) -> VelocityScalingOptimizerState"""
6027  _IMP_atom.VelocityScalingOptimizerState_swiginit(self, _IMP_atom.new_VelocityScalingOptimizerState(m, pis, temperature))
6028 
6029  def set_particles(self, pis):
6030  r"""set_particles(VelocityScalingOptimizerState self, IMP::Particles const & pis)"""
6031  return _IMP_atom.VelocityScalingOptimizerState_set_particles(self, pis)
6032 
6033  def set_temperature(self, temperature):
6034  r"""set_temperature(VelocityScalingOptimizerState self, IMP::Float temperature)"""
6035  return _IMP_atom.VelocityScalingOptimizerState_set_temperature(self, temperature)
6036 
6037  def get_particles(self):
6038  r"""get_particles(VelocityScalingOptimizerState self) -> IMP::Particles"""
6039  return _IMP_atom.VelocityScalingOptimizerState_get_particles(self)
6040 
6041  def get_temperature(self):
6042  r"""get_temperature(VelocityScalingOptimizerState self) -> IMP::Float"""
6043  return _IMP_atom.VelocityScalingOptimizerState_get_temperature(self)
6044 
6045  def rescale_velocities(self):
6046  r"""rescale_velocities(VelocityScalingOptimizerState self)"""
6047  return _IMP_atom.VelocityScalingOptimizerState_rescale_velocities(self)
6048 
6049  def get_version_info(self):
6050  r"""get_version_info(VelocityScalingOptimizerState self) -> VersionInfo"""
6051  return _IMP_atom.VelocityScalingOptimizerState_get_version_info(self)
6052  __swig_destroy__ = _IMP_atom.delete_VelocityScalingOptimizerState
6053 
6054  def __str__(self):
6055  r"""__str__(VelocityScalingOptimizerState self) -> std::string"""
6056  return _IMP_atom.VelocityScalingOptimizerState___str__(self)
6057 
6058  def __repr__(self):
6059  r"""__repr__(VelocityScalingOptimizerState self) -> std::string"""
6060  return _IMP_atom.VelocityScalingOptimizerState___repr__(self)
6061 
6062  @staticmethod
6063  def get_from(o):
6064  return _object_cast_to_VelocityScalingOptimizerState(o)
6065 
6066 
6067  def _get_jax(self, state_index):
6068  import jax.lax
6069  import jax.numpy as jnp
6070  temperature = self.get_temperature()
6071  indexes = jnp.asarray(IMP.get_indexes(self.get_particles()))
6072 
6073  def scale_velocities(md, tkinetic):
6074  scale = jnp.sqrt(temperature / tkinetic)
6075  linvel = md.jm['linvel'].at[indexes]
6076  md.jm['linvel'] = linvel.multiply(scale)
6077  return md
6078 
6079  def apply_func(md):
6080  ekinetic = md.get_kinetic_energy()
6081  tkinetic = md.get_kinetic_temperature(ekinetic)
6082  return jax.lax.cond(tkinetic > 1e-8, scale_velocities,
6083  lambda md, tk: md, md, tkinetic)
6084  return self._wrap_jax(lambda x: x, apply_func)
6085 
6086 
6087 # Register VelocityScalingOptimizerState in _IMP_atom:
6088 _IMP_atom.VelocityScalingOptimizerState_swigregister(VelocityScalingOptimizerState)
6089 class Fragment(Hierarchy):
6090  r"""Proxy of C++ IMP::atom::Fragment class."""
6091 
6092  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6093 
6094  def set_residue_indexes(self, o):
6095  r"""set_residue_indexes(Fragment self, IMP::Ints o)"""
6096  return _IMP_atom.Fragment_set_residue_indexes(self, o)
6097 
6098  def get_residue_indexes(self):
6099  r"""get_residue_indexes(Fragment self) -> IMP::Ints"""
6100  return _IMP_atom.Fragment_get_residue_indexes(self)
6101 
6102  def get_contains_residue(self, rindex):
6103  r"""get_contains_residue(Fragment self, int rindex) -> bool"""
6104  return _IMP_atom.Fragment_get_contains_residue(self, rindex)
6105 
6106  def get_contains_any_sorted_residue(self, rinds):
6107  r"""get_contains_any_sorted_residue(Fragment self, IMP::Ints const & rinds) -> bool"""
6108  return _IMP_atom.Fragment_get_contains_any_sorted_residue(self, rinds)
6109 
6110  def __init__(self, *args):
6111  r"""
6112  __init__(Fragment self) -> Fragment
6113  __init__(Fragment self, Model m, ParticleIndex id) -> Fragment
6114  __init__(Fragment self, _ParticleAdaptor d) -> Fragment
6115  """
6116  _IMP_atom.Fragment_swiginit(self, _IMP_atom.new_Fragment(*args))
6117 
6118  @staticmethod
6119  def get_is_setup(*args):
6120  r"""
6121  get_is_setup(Model m, ParticleIndex pi) -> bool
6122  get_is_setup(_ParticleAdaptor p) -> bool
6123  """
6124  return _IMP_atom.Fragment_get_is_setup(*args)
6125 
6126  def show(self, *args):
6127  r"""show(Fragment self, _ostream out=std::cout)"""
6128  return _IMP_atom.Fragment_show(self, *args)
6129 
6130  @staticmethod
6131  def setup_particle(*args):
6132  r"""
6133  setup_particle(Model m, ParticleIndex pi) -> Fragment
6134  setup_particle(_ParticleAdaptor pa) -> Fragment
6135  setup_particle(Model m, ParticleIndex pi, Fragment other) -> Fragment
6136  setup_particle(_ParticleAdaptor pa, Fragment other) -> Fragment
6137  setup_particle(Model m, ParticleIndex pi, IMP::Ints residue_indexes) -> Fragment
6138  setup_particle(_ParticleAdaptor pa, IMP::Ints residue_indexes) -> Fragment
6139  """
6140  return _IMP_atom.Fragment_setup_particle(*args)
6141 
6142  def add_attribute(self, *args):
6143  r"""
6144  add_attribute(Fragment self, FloatKey k, IMP::Float v, bool opt)
6145  add_attribute(Fragment self, FloatKey a0, IMP::Float a1)
6146  add_attribute(Fragment self, IntKey a0, IMP::Int a1)
6147  add_attribute(Fragment self, FloatsKey a0, IMP::Floats a1)
6148  add_attribute(Fragment self, IntsKey a0, IMP::Ints a1)
6149  add_attribute(Fragment self, StringKey a0, IMP::String a1)
6150  add_attribute(Fragment self, ParticleIndexKey a0, Particle a1)
6151  add_attribute(Fragment self, ObjectKey a0, Object a1)
6152  add_attribute(Fragment self, SparseFloatKey a0, IMP::Float a1)
6153  add_attribute(Fragment self, SparseIntKey a0, IMP::Int a1)
6154  add_attribute(Fragment self, SparseStringKey a0, IMP::String a1)
6155  add_attribute(Fragment self, SparseParticleIndexKey a0, ParticleIndex a1)
6156  """
6157  return _IMP_atom.Fragment_add_attribute(self, *args)
6158 
6159  def get_value(self, *args):
6160  r"""
6161  get_value(Fragment self, FloatKey a0) -> IMP::Float
6162  get_value(Fragment self, IntKey a0) -> IMP::Int
6163  get_value(Fragment self, FloatsKey a0) -> IMP::Floats
6164  get_value(Fragment self, IntsKey a0) -> IMP::Ints
6165  get_value(Fragment self, StringKey a0) -> IMP::String
6166  get_value(Fragment self, ParticleIndexKey a0) -> Particle
6167  get_value(Fragment self, ObjectKey a0) -> Object
6168  get_value(Fragment self, SparseFloatKey a0) -> IMP::Float
6169  get_value(Fragment self, SparseIntKey a0) -> IMP::Int
6170  get_value(Fragment self, SparseStringKey a0) -> IMP::String
6171  get_value(Fragment self, SparseParticleIndexKey a0) -> ParticleIndex
6172  """
6173  return _IMP_atom.Fragment_get_value(self, *args)
6174 
6175  def set_value(self, *args):
6176  r"""
6177  set_value(Fragment self, FloatKey a0, IMP::Float a1)
6178  set_value(Fragment self, IntKey a0, IMP::Int a1)
6179  set_value(Fragment self, FloatsKey a0, IMP::Floats a1)
6180  set_value(Fragment self, IntsKey a0, IMP::Ints a1)
6181  set_value(Fragment self, StringKey a0, IMP::String a1)
6182  set_value(Fragment self, ParticleIndexKey a0, Particle a1)
6183  set_value(Fragment self, ObjectKey a0, Object a1)
6184  set_value(Fragment self, SparseFloatKey a0, IMP::Float a1)
6185  set_value(Fragment self, SparseIntKey a0, IMP::Int a1)
6186  set_value(Fragment self, SparseStringKey a0, IMP::String a1)
6187  set_value(Fragment self, SparseParticleIndexKey a0, ParticleIndex a1)
6188  """
6189  return _IMP_atom.Fragment_set_value(self, *args)
6190 
6191  def remove_attribute(self, *args):
6192  r"""
6193  remove_attribute(Fragment self, FloatKey a0)
6194  remove_attribute(Fragment self, IntKey a0)
6195  remove_attribute(Fragment self, FloatsKey a0)
6196  remove_attribute(Fragment self, IntsKey a0)
6197  remove_attribute(Fragment self, StringKey a0)
6198  remove_attribute(Fragment self, ParticleIndexKey a0)
6199  remove_attribute(Fragment self, ObjectKey a0)
6200  remove_attribute(Fragment self, SparseFloatKey a0)
6201  remove_attribute(Fragment self, SparseIntKey a0)
6202  remove_attribute(Fragment self, SparseStringKey a0)
6203  remove_attribute(Fragment self, SparseParticleIndexKey a0)
6204  """
6205  return _IMP_atom.Fragment_remove_attribute(self, *args)
6206 
6207  def has_attribute(self, *args):
6208  r"""
6209  has_attribute(Fragment self, FloatKey a0) -> bool
6210  has_attribute(Fragment self, IntKey a0) -> bool
6211  has_attribute(Fragment self, FloatsKey a0) -> bool
6212  has_attribute(Fragment self, IntsKey a0) -> bool
6213  has_attribute(Fragment self, StringKey a0) -> bool
6214  has_attribute(Fragment self, ParticleIndexKey a0) -> bool
6215  has_attribute(Fragment self, ObjectKey a0) -> bool
6216  has_attribute(Fragment self, SparseFloatKey a0) -> bool
6217  has_attribute(Fragment self, SparseIntKey a0) -> bool
6218  has_attribute(Fragment self, SparseStringKey a0) -> bool
6219  has_attribute(Fragment self, SparseParticleIndexKey a0) -> bool
6220  """
6221  return _IMP_atom.Fragment_has_attribute(self, *args)
6222 
6223  def get_derivative(self, a0):
6224  r"""get_derivative(Fragment self, FloatKey a0) -> double"""
6225  return _IMP_atom.Fragment_get_derivative(self, a0)
6226 
6227  def get_name(self):
6228  r"""get_name(Fragment self) -> std::string"""
6229  return _IMP_atom.Fragment_get_name(self)
6230 
6231  def clear_caches(self):
6232  r"""clear_caches(Fragment self)"""
6233  return _IMP_atom.Fragment_clear_caches(self)
6234 
6235  def set_name(self, a0):
6236  r"""set_name(Fragment self, std::string a0)"""
6237  return _IMP_atom.Fragment_set_name(self, a0)
6238 
6239  def set_check_level(self, a0):
6240  r"""set_check_level(Fragment self, IMP::CheckLevel a0)"""
6241  return _IMP_atom.Fragment_set_check_level(self, a0)
6242 
6243  def add_to_derivative(self, a0, a1, a2):
6244  r"""add_to_derivative(Fragment self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
6245  return _IMP_atom.Fragment_add_to_derivative(self, a0, a1, a2)
6246 
6247  def set_is_optimized(self, a0, a1):
6248  r"""set_is_optimized(Fragment self, FloatKey a0, bool a1)"""
6249  return _IMP_atom.Fragment_set_is_optimized(self, a0, a1)
6250 
6251  def get_is_optimized(self, a0):
6252  r"""get_is_optimized(Fragment self, FloatKey a0) -> bool"""
6253  return _IMP_atom.Fragment_get_is_optimized(self, a0)
6254 
6255  def get_check_level(self):
6256  r"""get_check_level(Fragment self) -> IMP::CheckLevel"""
6257  return _IMP_atom.Fragment_get_check_level(self)
6258 
6259  def __eq__(self, *args):
6260  r"""
6261  __eq__(Fragment self, Fragment o) -> bool
6262  __eq__(Fragment self, Particle d) -> bool
6263  """
6264  return _IMP_atom.Fragment___eq__(self, *args)
6265 
6266  def __ne__(self, *args):
6267  r"""
6268  __ne__(Fragment self, Fragment o) -> bool
6269  __ne__(Fragment self, Particle d) -> bool
6270  """
6271  return _IMP_atom.Fragment___ne__(self, *args)
6272 
6273  def __le__(self, *args):
6274  r"""
6275  __le__(Fragment self, Fragment o) -> bool
6276  __le__(Fragment self, Particle d) -> bool
6277  """
6278  return _IMP_atom.Fragment___le__(self, *args)
6279 
6280  def __lt__(self, *args):
6281  r"""
6282  __lt__(Fragment self, Fragment o) -> bool
6283  __lt__(Fragment self, Particle d) -> bool
6284  """
6285  return _IMP_atom.Fragment___lt__(self, *args)
6286 
6287  def __ge__(self, *args):
6288  r"""
6289  __ge__(Fragment self, Fragment o) -> bool
6290  __ge__(Fragment self, Particle d) -> bool
6291  """
6292  return _IMP_atom.Fragment___ge__(self, *args)
6293 
6294  def __gt__(self, *args):
6295  r"""
6296  __gt__(Fragment self, Fragment o) -> bool
6297  __gt__(Fragment self, Particle d) -> bool
6298  """
6299  return _IMP_atom.Fragment___gt__(self, *args)
6300 
6301  def __hash__(self):
6302  r"""__hash__(Fragment self) -> std::size_t"""
6303  return _IMP_atom.Fragment___hash__(self)
6304 
6305  def __str__(self):
6306  r"""__str__(Fragment self) -> std::string"""
6307  return _IMP_atom.Fragment___str__(self)
6308 
6309  def __repr__(self):
6310  r"""__repr__(Fragment self) -> std::string"""
6311  return _IMP_atom.Fragment___repr__(self)
6312 
6313  def _get_as_binary(self):
6314  r"""_get_as_binary(Fragment self) -> PyObject *"""
6315  return _IMP_atom.Fragment__get_as_binary(self)
6316 
6317  def _set_from_binary(self, p):
6318  r"""_set_from_binary(Fragment self, PyObject * p)"""
6319  return _IMP_atom.Fragment__set_from_binary(self, p)
6320 
6321  def __getstate__(self):
6322  p = self._get_as_binary()
6323  if len(self.__dict__) > 1:
6324  d = self.__dict__.copy()
6325  del d['this']
6326  p = (d, p)
6327  return p
6328 
6329  def __setstate__(self, p):
6330  if not hasattr(self, 'this'):
6331  self.__init__()
6332  if isinstance(p, tuple):
6333  d, p = p
6334  self.__dict__.update(d)
6335  return self._set_from_binary(p)
6336 
6337  __swig_destroy__ = _IMP_atom.delete_Fragment
6338 
6339 # Register Fragment in _IMP_atom:
6340 _IMP_atom.Fragment_swigregister(Fragment)
6341 class StereochemistryPairFilter(IMP.PairPredicate):
6342  r"""Proxy of C++ IMP::atom::StereochemistryPairFilter class."""
6343 
6344  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6345 
6346  def __init__(self):
6347  r"""__init__(StereochemistryPairFilter self) -> StereochemistryPairFilter"""
6348  _IMP_atom.StereochemistryPairFilter_swiginit(self, _IMP_atom.new_StereochemistryPairFilter())
6349 
6350  def set_bonds(self, bonds):
6351  r"""set_bonds(StereochemistryPairFilter self, IMP::Particles const & bonds)"""
6352  return _IMP_atom.StereochemistryPairFilter_set_bonds(self, bonds)
6353 
6354  def set_angles(self, angles):
6355  r"""set_angles(StereochemistryPairFilter self, IMP::Particles const & angles)"""
6356  return _IMP_atom.StereochemistryPairFilter_set_angles(self, angles)
6357 
6358  def set_dihedrals(self, dihedrals):
6359  r"""set_dihedrals(StereochemistryPairFilter self, IMP::Particles const & dihedrals)"""
6360  return _IMP_atom.StereochemistryPairFilter_set_dihedrals(self, dihedrals)
6361 
6362  def do_get_inputs(self, m, pis):
6363  r"""do_get_inputs(StereochemistryPairFilter self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6364  return _IMP_atom.StereochemistryPairFilter_do_get_inputs(self, m, pis)
6365 
6366  def get_value(self, *args):
6367  r"""
6368  get_value(StereochemistryPairFilter self, IMP::ParticlePair const & a) -> int
6369  get_value(StereochemistryPairFilter self, IMP::ParticlePairsTemp const & o) -> IMP::Ints
6370  """
6371  return _IMP_atom.StereochemistryPairFilter_get_value(self, *args)
6372 
6373  def get_value_index(self, *args):
6374  r"""
6375  get_value_index(StereochemistryPairFilter self, Model m, IMP::ParticleIndexPair const & p) -> int
6376  get_value_index(StereochemistryPairFilter self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
6377  """
6378  return _IMP_atom.StereochemistryPairFilter_get_value_index(self, *args)
6379 
6380  def get_version_info(self):
6381  r"""get_version_info(StereochemistryPairFilter self) -> VersionInfo"""
6382  return _IMP_atom.StereochemistryPairFilter_get_version_info(self)
6383  __swig_destroy__ = _IMP_atom.delete_StereochemistryPairFilter
6384 
6385  def __str__(self):
6386  r"""__str__(StereochemistryPairFilter self) -> std::string"""
6387  return _IMP_atom.StereochemistryPairFilter___str__(self)
6388 
6389  def __repr__(self):
6390  r"""__repr__(StereochemistryPairFilter self) -> std::string"""
6391  return _IMP_atom.StereochemistryPairFilter___repr__(self)
6392 
6393  @staticmethod
6394  def get_from(o):
6395  return _object_cast_to_StereochemistryPairFilter(o)
6396 
6397 
6398 # Register StereochemistryPairFilter in _IMP_atom:
6399 _IMP_atom.StereochemistryPairFilter_swigregister(StereochemistryPairFilter)
6400 class SoapPairFilter(IMP.PairPredicate):
6401  r"""Proxy of C++ IMP::atom::SoapPairFilter class."""
6402 
6403  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6404 
6405  def __init__(self, library):
6406  r"""__init__(SoapPairFilter self, std::string library) -> SoapPairFilter"""
6407  _IMP_atom.SoapPairFilter_swiginit(self, _IMP_atom.new_SoapPairFilter(library))
6408 
6409  def do_get_inputs(self, m, pis):
6410  r"""do_get_inputs(SoapPairFilter self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6411  return _IMP_atom.SoapPairFilter_do_get_inputs(self, m, pis)
6412 
6413  def get_value(self, *args):
6414  r"""
6415  get_value(SoapPairFilter self, IMP::ParticlePair const & a) -> int
6416  get_value(SoapPairFilter self, IMP::ParticlePairsTemp const & o) -> IMP::Ints
6417  """
6418  return _IMP_atom.SoapPairFilter_get_value(self, *args)
6419 
6420  def get_value_index(self, *args):
6421  r"""
6422  get_value_index(SoapPairFilter self, Model m, IMP::ParticleIndexPair const & p) -> int
6423  get_value_index(SoapPairFilter self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
6424  """
6425  return _IMP_atom.SoapPairFilter_get_value_index(self, *args)
6426 
6427  def get_version_info(self):
6428  r"""get_version_info(SoapPairFilter self) -> VersionInfo"""
6429  return _IMP_atom.SoapPairFilter_get_version_info(self)
6430  __swig_destroy__ = _IMP_atom.delete_SoapPairFilter
6431 
6432  def __str__(self):
6433  r"""__str__(SoapPairFilter self) -> std::string"""
6434  return _IMP_atom.SoapPairFilter___str__(self)
6435 
6436  def __repr__(self):
6437  r"""__repr__(SoapPairFilter self) -> std::string"""
6438  return _IMP_atom.SoapPairFilter___repr__(self)
6439 
6440  @staticmethod
6441  def get_from(o):
6442  return _object_cast_to_SoapPairFilter(o)
6443 
6444 
6445 # Register SoapPairFilter in _IMP_atom:
6446 _IMP_atom.SoapPairFilter_swigregister(SoapPairFilter)
6447 class Mass(IMP.Decorator):
6448  r"""Proxy of C++ IMP::atom::Mass class."""
6449 
6450  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6451 
6452  def get_mass(self):
6453  r"""get_mass(Mass self) -> IMP::Float"""
6454  return _IMP_atom.Mass_get_mass(self)
6455 
6456  def set_mass(self, d):
6457  r"""set_mass(Mass self, IMP::Float d)"""
6458  return _IMP_atom.Mass_set_mass(self, d)
6459 
6460  def __init__(self, *args):
6461  r"""
6462  __init__(Mass self) -> Mass
6463  __init__(Mass self, Model m, ParticleIndex id) -> Mass
6464  __init__(Mass self, _ParticleAdaptor d) -> Mass
6465  """
6466  _IMP_atom.Mass_swiginit(self, _IMP_atom.new_Mass(*args))
6467 
6468  @staticmethod
6469  def get_is_setup(*args):
6470  r"""
6471  get_is_setup(Model m, ParticleIndex pi) -> bool
6472  get_is_setup(_ParticleAdaptor p) -> bool
6473  """
6474  return _IMP_atom.Mass_get_is_setup(*args)
6475 
6476  def show(self, *args):
6477  r"""show(Mass self, _ostream out=std::cout)"""
6478  return _IMP_atom.Mass_show(self, *args)
6479 
6480  @staticmethod
6481  def setup_particle(*args):
6482  r"""
6483  setup_particle(Model m, ParticleIndex pi, IMP::Float mass) -> Mass
6484  setup_particle(_ParticleAdaptor pa, IMP::Float mass) -> Mass
6485  setup_particle(Model m, ParticleIndex pi, Mass other) -> Mass
6486  setup_particle(_ParticleAdaptor pa, Mass other) -> Mass
6487  """
6488  return _IMP_atom.Mass_setup_particle(*args)
6489 
6490  @staticmethod
6491  def get_mass_key():
6492  r"""get_mass_key() -> FloatKey"""
6493  return _IMP_atom.Mass_get_mass_key()
6494 
6495  def add_attribute(self, *args):
6496  r"""
6497  add_attribute(Mass self, FloatKey k, IMP::Float v, bool opt)
6498  add_attribute(Mass self, FloatKey a0, IMP::Float a1)
6499  add_attribute(Mass self, IntKey a0, IMP::Int a1)
6500  add_attribute(Mass self, FloatsKey a0, IMP::Floats a1)
6501  add_attribute(Mass self, IntsKey a0, IMP::Ints a1)
6502  add_attribute(Mass self, StringKey a0, IMP::String a1)
6503  add_attribute(Mass self, ParticleIndexKey a0, Particle a1)
6504  add_attribute(Mass self, ObjectKey a0, Object a1)
6505  add_attribute(Mass self, SparseFloatKey a0, IMP::Float a1)
6506  add_attribute(Mass self, SparseIntKey a0, IMP::Int a1)
6507  add_attribute(Mass self, SparseStringKey a0, IMP::String a1)
6508  add_attribute(Mass self, SparseParticleIndexKey a0, ParticleIndex a1)
6509  """
6510  return _IMP_atom.Mass_add_attribute(self, *args)
6511 
6512  def get_value(self, *args):
6513  r"""
6514  get_value(Mass self, FloatKey a0) -> IMP::Float
6515  get_value(Mass self, IntKey a0) -> IMP::Int
6516  get_value(Mass self, FloatsKey a0) -> IMP::Floats
6517  get_value(Mass self, IntsKey a0) -> IMP::Ints
6518  get_value(Mass self, StringKey a0) -> IMP::String
6519  get_value(Mass self, ParticleIndexKey a0) -> Particle
6520  get_value(Mass self, ObjectKey a0) -> Object
6521  get_value(Mass self, SparseFloatKey a0) -> IMP::Float
6522  get_value(Mass self, SparseIntKey a0) -> IMP::Int
6523  get_value(Mass self, SparseStringKey a0) -> IMP::String
6524  get_value(Mass self, SparseParticleIndexKey a0) -> ParticleIndex
6525  """
6526  return _IMP_atom.Mass_get_value(self, *args)
6527 
6528  def set_value(self, *args):
6529  r"""
6530  set_value(Mass self, FloatKey a0, IMP::Float a1)
6531  set_value(Mass self, IntKey a0, IMP::Int a1)
6532  set_value(Mass self, FloatsKey a0, IMP::Floats a1)
6533  set_value(Mass self, IntsKey a0, IMP::Ints a1)
6534  set_value(Mass self, StringKey a0, IMP::String a1)
6535  set_value(Mass self, ParticleIndexKey a0, Particle a1)
6536  set_value(Mass self, ObjectKey a0, Object a1)
6537  set_value(Mass self, SparseFloatKey a0, IMP::Float a1)
6538  set_value(Mass self, SparseIntKey a0, IMP::Int a1)
6539  set_value(Mass self, SparseStringKey a0, IMP::String a1)
6540  set_value(Mass self, SparseParticleIndexKey a0, ParticleIndex a1)
6541  """
6542  return _IMP_atom.Mass_set_value(self, *args)
6543 
6544  def remove_attribute(self, *args):
6545  r"""
6546  remove_attribute(Mass self, FloatKey a0)
6547  remove_attribute(Mass self, IntKey a0)
6548  remove_attribute(Mass self, FloatsKey a0)
6549  remove_attribute(Mass self, IntsKey a0)
6550  remove_attribute(Mass self, StringKey a0)
6551  remove_attribute(Mass self, ParticleIndexKey a0)
6552  remove_attribute(Mass self, ObjectKey a0)
6553  remove_attribute(Mass self, SparseFloatKey a0)
6554  remove_attribute(Mass self, SparseIntKey a0)
6555  remove_attribute(Mass self, SparseStringKey a0)
6556  remove_attribute(Mass self, SparseParticleIndexKey a0)
6557  """
6558  return _IMP_atom.Mass_remove_attribute(self, *args)
6559 
6560  def has_attribute(self, *args):
6561  r"""
6562  has_attribute(Mass self, FloatKey a0) -> bool
6563  has_attribute(Mass self, IntKey a0) -> bool
6564  has_attribute(Mass self, FloatsKey a0) -> bool
6565  has_attribute(Mass self, IntsKey a0) -> bool
6566  has_attribute(Mass self, StringKey a0) -> bool
6567  has_attribute(Mass self, ParticleIndexKey a0) -> bool
6568  has_attribute(Mass self, ObjectKey a0) -> bool
6569  has_attribute(Mass self, SparseFloatKey a0) -> bool
6570  has_attribute(Mass self, SparseIntKey a0) -> bool
6571  has_attribute(Mass self, SparseStringKey a0) -> bool
6572  has_attribute(Mass self, SparseParticleIndexKey a0) -> bool
6573  """
6574  return _IMP_atom.Mass_has_attribute(self, *args)
6575 
6576  def get_derivative(self, a0):
6577  r"""get_derivative(Mass self, FloatKey a0) -> double"""
6578  return _IMP_atom.Mass_get_derivative(self, a0)
6579 
6580  def get_name(self):
6581  r"""get_name(Mass self) -> std::string"""
6582  return _IMP_atom.Mass_get_name(self)
6583 
6584  def clear_caches(self):
6585  r"""clear_caches(Mass self)"""
6586  return _IMP_atom.Mass_clear_caches(self)
6587 
6588  def set_name(self, a0):
6589  r"""set_name(Mass self, std::string a0)"""
6590  return _IMP_atom.Mass_set_name(self, a0)
6591 
6592  def set_check_level(self, a0):
6593  r"""set_check_level(Mass self, IMP::CheckLevel a0)"""
6594  return _IMP_atom.Mass_set_check_level(self, a0)
6595 
6596  def add_to_derivative(self, a0, a1, a2):
6597  r"""add_to_derivative(Mass self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
6598  return _IMP_atom.Mass_add_to_derivative(self, a0, a1, a2)
6599 
6600  def set_is_optimized(self, a0, a1):
6601  r"""set_is_optimized(Mass self, FloatKey a0, bool a1)"""
6602  return _IMP_atom.Mass_set_is_optimized(self, a0, a1)
6603 
6604  def get_is_optimized(self, a0):
6605  r"""get_is_optimized(Mass self, FloatKey a0) -> bool"""
6606  return _IMP_atom.Mass_get_is_optimized(self, a0)
6607 
6608  def get_check_level(self):
6609  r"""get_check_level(Mass self) -> IMP::CheckLevel"""
6610  return _IMP_atom.Mass_get_check_level(self)
6611 
6612  def __eq__(self, *args):
6613  r"""
6614  __eq__(Mass self, Mass o) -> bool
6615  __eq__(Mass self, Particle d) -> bool
6616  """
6617  return _IMP_atom.Mass___eq__(self, *args)
6618 
6619  def __ne__(self, *args):
6620  r"""
6621  __ne__(Mass self, Mass o) -> bool
6622  __ne__(Mass self, Particle d) -> bool
6623  """
6624  return _IMP_atom.Mass___ne__(self, *args)
6625 
6626  def __le__(self, *args):
6627  r"""
6628  __le__(Mass self, Mass o) -> bool
6629  __le__(Mass self, Particle d) -> bool
6630  """
6631  return _IMP_atom.Mass___le__(self, *args)
6632 
6633  def __lt__(self, *args):
6634  r"""
6635  __lt__(Mass self, Mass o) -> bool
6636  __lt__(Mass self, Particle d) -> bool
6637  """
6638  return _IMP_atom.Mass___lt__(self, *args)
6639 
6640  def __ge__(self, *args):
6641  r"""
6642  __ge__(Mass self, Mass o) -> bool
6643  __ge__(Mass self, Particle d) -> bool
6644  """
6645  return _IMP_atom.Mass___ge__(self, *args)
6646 
6647  def __gt__(self, *args):
6648  r"""
6649  __gt__(Mass self, Mass o) -> bool
6650  __gt__(Mass self, Particle d) -> bool
6651  """
6652  return _IMP_atom.Mass___gt__(self, *args)
6653 
6654  def __hash__(self):
6655  r"""__hash__(Mass self) -> std::size_t"""
6656  return _IMP_atom.Mass___hash__(self)
6657 
6658  def __str__(self):
6659  r"""__str__(Mass self) -> std::string"""
6660  return _IMP_atom.Mass___str__(self)
6661 
6662  def __repr__(self):
6663  r"""__repr__(Mass self) -> std::string"""
6664  return _IMP_atom.Mass___repr__(self)
6665 
6666  def _get_as_binary(self):
6667  r"""_get_as_binary(Mass self) -> PyObject *"""
6668  return _IMP_atom.Mass__get_as_binary(self)
6669 
6670  def _set_from_binary(self, p):
6671  r"""_set_from_binary(Mass self, PyObject * p)"""
6672  return _IMP_atom.Mass__set_from_binary(self, p)
6673 
6674  def __getstate__(self):
6675  p = self._get_as_binary()
6676  if len(self.__dict__) > 1:
6677  d = self.__dict__.copy()
6678  del d['this']
6679  p = (d, p)
6680  return p
6681 
6682  def __setstate__(self, p):
6683  if not hasattr(self, 'this'):
6684  self.__init__()
6685  if isinstance(p, tuple):
6686  d, p = p
6687  self.__dict__.update(d)
6688  return self._set_from_binary(p)
6689 
6690  __swig_destroy__ = _IMP_atom.delete_Mass
6691 
6692 # Register Mass in _IMP_atom:
6693 _IMP_atom.Mass_swigregister(Mass)
6694 class BondedPairFilter(IMP.PairPredicate):
6695  r"""Proxy of C++ IMP::atom::BondedPairFilter class."""
6696 
6697  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6698 
6699  def __init__(self):
6700  r"""__init__(BondedPairFilter self) -> BondedPairFilter"""
6701  _IMP_atom.BondedPairFilter_swiginit(self, _IMP_atom.new_BondedPairFilter())
6702 
6703  def do_get_inputs(self, m, pis):
6704  r"""do_get_inputs(BondedPairFilter self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6705  return _IMP_atom.BondedPairFilter_do_get_inputs(self, m, pis)
6706 
6707  def get_value(self, *args):
6708  r"""
6709  get_value(BondedPairFilter self, IMP::ParticlePair const & a) -> int
6710  get_value(BondedPairFilter self, IMP::ParticlePairsTemp const & o) -> IMP::Ints
6711  """
6712  return _IMP_atom.BondedPairFilter_get_value(self, *args)
6713 
6714  def get_value_index(self, *args):
6715  r"""
6716  get_value_index(BondedPairFilter self, Model m, IMP::ParticleIndexPair const & p) -> int
6717  get_value_index(BondedPairFilter self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
6718  """
6719  return _IMP_atom.BondedPairFilter_get_value_index(self, *args)
6720 
6721  def get_version_info(self):
6722  r"""get_version_info(BondedPairFilter self) -> VersionInfo"""
6723  return _IMP_atom.BondedPairFilter_get_version_info(self)
6724  __swig_destroy__ = _IMP_atom.delete_BondedPairFilter
6725 
6726  def __str__(self):
6727  r"""__str__(BondedPairFilter self) -> std::string"""
6728  return _IMP_atom.BondedPairFilter___str__(self)
6729 
6730  def __repr__(self):
6731  r"""__repr__(BondedPairFilter self) -> std::string"""
6732  return _IMP_atom.BondedPairFilter___repr__(self)
6733 
6734  @staticmethod
6735  def get_from(o):
6736  return _object_cast_to_BondedPairFilter(o)
6737 
6738 
6739 # Register BondedPairFilter in _IMP_atom:
6740 _IMP_atom.BondedPairFilter_swigregister(BondedPairFilter)
6741 class Mol2Selector(IMP.Object):
6742  r"""Proxy of C++ IMP::atom::Mol2Selector class."""
6743 
6744  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6745 
6746  def __init__(self, *args, **kwargs):
6747  raise AttributeError("No constructor defined - class is abstract")
6748 
6749  def get_is_selected(self, atom_line):
6750  r"""get_is_selected(Mol2Selector self, std::string const & atom_line) -> bool"""
6751  return _IMP_atom.Mol2Selector_get_is_selected(self, atom_line)
6752  __swig_destroy__ = _IMP_atom.delete_Mol2Selector
6753 
6754  def __str__(self):
6755  r"""__str__(Mol2Selector self) -> std::string"""
6756  return _IMP_atom.Mol2Selector___str__(self)
6757 
6758  def __repr__(self):
6759  r"""__repr__(Mol2Selector self) -> std::string"""
6760  return _IMP_atom.Mol2Selector___repr__(self)
6761 
6762  @staticmethod
6763  def get_from(o):
6764  return _object_cast_to_Mol2Selector(o)
6765 
6766 
6767 # Register Mol2Selector in _IMP_atom:
6768 _IMP_atom.Mol2Selector_swigregister(Mol2Selector)
6769 class AllMol2Selector(Mol2Selector):
6770  r"""Proxy of C++ IMP::atom::AllMol2Selector class."""
6771 
6772  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6773 
6774  def __str__(self):
6775  r"""__str__(AllMol2Selector self) -> std::string"""
6776  return _IMP_atom.AllMol2Selector___str__(self)
6777 
6778  def __repr__(self):
6779  r"""__repr__(AllMol2Selector self) -> std::string"""
6780  return _IMP_atom.AllMol2Selector___repr__(self)
6781 
6782  @staticmethod
6783  def get_from(o):
6784  return _object_cast_to_AllMol2Selector(o)
6785 
6786 
6787  def __init__(self):
6788  r"""__init__(AllMol2Selector self) -> AllMol2Selector"""
6789  _IMP_atom.AllMol2Selector_swiginit(self, _IMP_atom.new_AllMol2Selector())
6790  __swig_destroy__ = _IMP_atom.delete_AllMol2Selector
6791 
6792 # Register AllMol2Selector in _IMP_atom:
6793 _IMP_atom.AllMol2Selector_swigregister(AllMol2Selector)
6794 class NonHydrogenMol2Selector(Mol2Selector):
6795  r"""Proxy of C++ IMP::atom::NonHydrogenMol2Selector class."""
6796 
6797  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6798 
6799  def __str__(self):
6800  r"""__str__(NonHydrogenMol2Selector self) -> std::string"""
6801  return _IMP_atom.NonHydrogenMol2Selector___str__(self)
6802 
6803  def __repr__(self):
6804  r"""__repr__(NonHydrogenMol2Selector self) -> std::string"""
6805  return _IMP_atom.NonHydrogenMol2Selector___repr__(self)
6806 
6807  @staticmethod
6808  def get_from(o):
6809  return _object_cast_to_NonHydrogenMol2Selector(o)
6810 
6811 
6812  def __init__(self):
6813  r"""__init__(NonHydrogenMol2Selector self) -> NonHydrogenMol2Selector"""
6814  _IMP_atom.NonHydrogenMol2Selector_swiginit(self, _IMP_atom.new_NonHydrogenMol2Selector())
6815  __swig_destroy__ = _IMP_atom.delete_NonHydrogenMol2Selector
6816 
6817 # Register NonHydrogenMol2Selector in _IMP_atom:
6818 _IMP_atom.NonHydrogenMol2Selector_swigregister(NonHydrogenMol2Selector)
6819 
6820 def read_mol2(mol2_file, model, mol2sel=None):
6821  r"""read_mol2(TextInput mol2_file, Model model, Mol2Selector mol2sel=None) -> Hierarchy"""
6822  return _IMP_atom.read_mol2(mol2_file, model, mol2sel)
6823 
6824 def write_mol2(rhd, file_name):
6825  r"""write_mol2(Hierarchy rhd, TextOutput file_name)"""
6826  return _IMP_atom.write_mol2(rhd, file_name)
6827 class SecondaryStructureResidue(IMP.Decorator):
6828  r"""Proxy of C++ IMP::atom::SecondaryStructureResidue class."""
6829 
6830  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6831 
6832  def __init__(self, *args):
6833  r"""
6834  __init__(SecondaryStructureResidue self) -> SecondaryStructureResidue
6835  __init__(SecondaryStructureResidue self, Model m, ParticleIndex id) -> SecondaryStructureResidue
6836  __init__(SecondaryStructureResidue self, _ParticleAdaptor d) -> SecondaryStructureResidue
6837  """
6838  _IMP_atom.SecondaryStructureResidue_swiginit(self, _IMP_atom.new_SecondaryStructureResidue(*args))
6839 
6840  def show(self, *args):
6841  r"""show(SecondaryStructureResidue self, _ostream out=std::cout)"""
6842  return _IMP_atom.SecondaryStructureResidue_show(self, *args)
6843 
6844  @staticmethod
6845  def setup_particle(*args):
6846  r"""
6847  setup_particle(Model m, ParticleIndex pi, IMP::Float prob_helix, IMP::Float prob_strand, IMP::Float prob_coil) -> SecondaryStructureResidue
6848  setup_particle(_ParticleAdaptor pa, IMP::Float prob_helix, IMP::Float prob_strand, IMP::Float prob_coil) -> SecondaryStructureResidue
6849  setup_particle(Particle res_p) -> SecondaryStructureResidue
6850  """
6851  return _IMP_atom.SecondaryStructureResidue_setup_particle(*args)
6852 
6853  @staticmethod
6854  def get_is_setup(*args):
6855  r"""
6856  get_is_setup(_ParticleAdaptor p) -> bool
6857  get_is_setup(Model m, ParticleIndex pi) -> bool
6858  """
6859  return _IMP_atom.SecondaryStructureResidue_get_is_setup(*args)
6860 
6861  def get_particle(self):
6862  r"""get_particle(SecondaryStructureResidue self) -> Particle"""
6863  return _IMP_atom.SecondaryStructureResidue_get_particle(self)
6864 
6865  def get_all_probabilities(self):
6866  r"""get_all_probabilities(SecondaryStructureResidue self) -> IMP::Floats"""
6867  return _IMP_atom.SecondaryStructureResidue_get_all_probabilities(self)
6868 
6869  def get_prob_helix(self):
6870  r"""get_prob_helix(SecondaryStructureResidue self) -> IMP::Float"""
6871  return _IMP_atom.SecondaryStructureResidue_get_prob_helix(self)
6872 
6873  def set_prob_helix(self, t):
6874  r"""set_prob_helix(SecondaryStructureResidue self, IMP::Float t)"""
6875  return _IMP_atom.SecondaryStructureResidue_set_prob_helix(self, t)
6876 
6877  def get_prob_strand(self):
6878  r"""get_prob_strand(SecondaryStructureResidue self) -> IMP::Float"""
6879  return _IMP_atom.SecondaryStructureResidue_get_prob_strand(self)
6880 
6881  def set_prob_strand(self, t):
6882  r"""set_prob_strand(SecondaryStructureResidue self, IMP::Float t)"""
6883  return _IMP_atom.SecondaryStructureResidue_set_prob_strand(self, t)
6884 
6885  def get_prob_coil(self):
6886  r"""get_prob_coil(SecondaryStructureResidue self) -> IMP::Float"""
6887  return _IMP_atom.SecondaryStructureResidue_get_prob_coil(self)
6888 
6889  def set_prob_coil(self, t):
6890  r"""set_prob_coil(SecondaryStructureResidue self, IMP::Float t)"""
6891  return _IMP_atom.SecondaryStructureResidue_set_prob_coil(self, t)
6892 
6893  @staticmethod
6894  def get_prob_helix_key():
6895  r"""get_prob_helix_key() -> FloatKey"""
6896  return _IMP_atom.SecondaryStructureResidue_get_prob_helix_key()
6897 
6898  @staticmethod
6899  def get_prob_strand_key():
6900  r"""get_prob_strand_key() -> FloatKey"""
6901  return _IMP_atom.SecondaryStructureResidue_get_prob_strand_key()
6902 
6903  @staticmethod
6904  def get_prob_coil_key():
6905  r"""get_prob_coil_key() -> FloatKey"""
6906  return _IMP_atom.SecondaryStructureResidue_get_prob_coil_key()
6907 
6908  def add_attribute(self, *args):
6909  r"""
6910  add_attribute(SecondaryStructureResidue self, FloatKey k, IMP::Float v, bool opt)
6911  add_attribute(SecondaryStructureResidue self, FloatKey a0, IMP::Float a1)
6912  add_attribute(SecondaryStructureResidue self, IntKey a0, IMP::Int a1)
6913  add_attribute(SecondaryStructureResidue self, FloatsKey a0, IMP::Floats a1)
6914  add_attribute(SecondaryStructureResidue self, IntsKey a0, IMP::Ints a1)
6915  add_attribute(SecondaryStructureResidue self, StringKey a0, IMP::String a1)
6916  add_attribute(SecondaryStructureResidue self, ParticleIndexKey a0, Particle a1)
6917  add_attribute(SecondaryStructureResidue self, ObjectKey a0, Object a1)
6918  add_attribute(SecondaryStructureResidue self, SparseFloatKey a0, IMP::Float a1)
6919  add_attribute(SecondaryStructureResidue self, SparseIntKey a0, IMP::Int a1)
6920  add_attribute(SecondaryStructureResidue self, SparseStringKey a0, IMP::String a1)
6921  add_attribute(SecondaryStructureResidue self, SparseParticleIndexKey a0, ParticleIndex a1)
6922  """
6923  return _IMP_atom.SecondaryStructureResidue_add_attribute(self, *args)
6924 
6925  def get_value(self, *args):
6926  r"""
6927  get_value(SecondaryStructureResidue self, FloatKey a0) -> IMP::Float
6928  get_value(SecondaryStructureResidue self, IntKey a0) -> IMP::Int
6929  get_value(SecondaryStructureResidue self, FloatsKey a0) -> IMP::Floats
6930  get_value(SecondaryStructureResidue self, IntsKey a0) -> IMP::Ints
6931  get_value(SecondaryStructureResidue self, StringKey a0) -> IMP::String
6932  get_value(SecondaryStructureResidue self, ParticleIndexKey a0) -> Particle
6933  get_value(SecondaryStructureResidue self, ObjectKey a0) -> Object
6934  get_value(SecondaryStructureResidue self, SparseFloatKey a0) -> IMP::Float
6935  get_value(SecondaryStructureResidue self, SparseIntKey a0) -> IMP::Int
6936  get_value(SecondaryStructureResidue self, SparseStringKey a0) -> IMP::String
6937  get_value(SecondaryStructureResidue self, SparseParticleIndexKey a0) -> ParticleIndex
6938  """
6939  return _IMP_atom.SecondaryStructureResidue_get_value(self, *args)
6940 
6941  def set_value(self, *args):
6942  r"""
6943  set_value(SecondaryStructureResidue self, FloatKey a0, IMP::Float a1)
6944  set_value(SecondaryStructureResidue self, IntKey a0, IMP::Int a1)
6945  set_value(SecondaryStructureResidue self, FloatsKey a0, IMP::Floats a1)
6946  set_value(SecondaryStructureResidue self, IntsKey a0, IMP::Ints a1)
6947  set_value(SecondaryStructureResidue self, StringKey a0, IMP::String a1)
6948  set_value(SecondaryStructureResidue self, ParticleIndexKey a0, Particle a1)
6949  set_value(SecondaryStructureResidue self, ObjectKey a0, Object a1)
6950  set_value(SecondaryStructureResidue self, SparseFloatKey a0, IMP::Float a1)
6951  set_value(SecondaryStructureResidue self, SparseIntKey a0, IMP::Int a1)
6952  set_value(SecondaryStructureResidue self, SparseStringKey a0, IMP::String a1)
6953  set_value(SecondaryStructureResidue self, SparseParticleIndexKey a0, ParticleIndex a1)
6954  """
6955  return _IMP_atom.SecondaryStructureResidue_set_value(self, *args)
6956 
6957  def remove_attribute(self, *args):
6958  r"""
6959  remove_attribute(SecondaryStructureResidue self, FloatKey a0)
6960  remove_attribute(SecondaryStructureResidue self, IntKey a0)
6961  remove_attribute(SecondaryStructureResidue self, FloatsKey a0)
6962  remove_attribute(SecondaryStructureResidue self, IntsKey a0)
6963  remove_attribute(SecondaryStructureResidue self, StringKey a0)
6964  remove_attribute(SecondaryStructureResidue self, ParticleIndexKey a0)
6965  remove_attribute(SecondaryStructureResidue self, ObjectKey a0)
6966  remove_attribute(SecondaryStructureResidue self, SparseFloatKey a0)
6967  remove_attribute(SecondaryStructureResidue self, SparseIntKey a0)
6968  remove_attribute(SecondaryStructureResidue self, SparseStringKey a0)
6969  remove_attribute(SecondaryStructureResidue self, SparseParticleIndexKey a0)
6970  """
6971  return _IMP_atom.SecondaryStructureResidue_remove_attribute(self, *args)
6972 
6973  def has_attribute(self, *args):
6974  r"""
6975  has_attribute(SecondaryStructureResidue self, FloatKey a0) -> bool
6976  has_attribute(SecondaryStructureResidue self, IntKey a0) -> bool
6977  has_attribute(SecondaryStructureResidue self, FloatsKey a0) -> bool
6978  has_attribute(SecondaryStructureResidue self, IntsKey a0) -> bool
6979  has_attribute(SecondaryStructureResidue self, StringKey a0) -> bool
6980  has_attribute(SecondaryStructureResidue self, ParticleIndexKey a0) -> bool
6981  has_attribute(SecondaryStructureResidue self, ObjectKey a0) -> bool
6982  has_attribute(SecondaryStructureResidue self, SparseFloatKey a0) -> bool
6983  has_attribute(SecondaryStructureResidue self, SparseIntKey a0) -> bool
6984  has_attribute(SecondaryStructureResidue self, SparseStringKey a0) -> bool
6985  has_attribute(SecondaryStructureResidue self, SparseParticleIndexKey a0) -> bool
6986  """
6987  return _IMP_atom.SecondaryStructureResidue_has_attribute(self, *args)
6988 
6989  def get_derivative(self, a0):
6990  r"""get_derivative(SecondaryStructureResidue self, FloatKey a0) -> double"""
6991  return _IMP_atom.SecondaryStructureResidue_get_derivative(self, a0)
6992 
6993  def get_name(self):
6994  r"""get_name(SecondaryStructureResidue self) -> std::string"""
6995  return _IMP_atom.SecondaryStructureResidue_get_name(self)
6996 
6997  def clear_caches(self):
6998  r"""clear_caches(SecondaryStructureResidue self)"""
6999  return _IMP_atom.SecondaryStructureResidue_clear_caches(self)
7000 
7001  def set_name(self, a0):
7002  r"""set_name(SecondaryStructureResidue self, std::string a0)"""
7003  return _IMP_atom.SecondaryStructureResidue_set_name(self, a0)
7004 
7005  def set_check_level(self, a0):
7006  r"""set_check_level(SecondaryStructureResidue self, IMP::CheckLevel a0)"""
7007  return _IMP_atom.SecondaryStructureResidue_set_check_level(self, a0)
7008 
7009  def add_to_derivative(self, a0, a1, a2):
7010  r"""add_to_derivative(SecondaryStructureResidue self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
7011  return _IMP_atom.SecondaryStructureResidue_add_to_derivative(self, a0, a1, a2)
7012 
7013  def set_is_optimized(self, a0, a1):
7014  r"""set_is_optimized(SecondaryStructureResidue self, FloatKey a0, bool a1)"""
7015  return _IMP_atom.SecondaryStructureResidue_set_is_optimized(self, a0, a1)
7016 
7017  def get_is_optimized(self, a0):
7018  r"""get_is_optimized(SecondaryStructureResidue self, FloatKey a0) -> bool"""
7019  return _IMP_atom.SecondaryStructureResidue_get_is_optimized(self, a0)
7020 
7021  def get_check_level(self):
7022  r"""get_check_level(SecondaryStructureResidue self) -> IMP::CheckLevel"""
7023  return _IMP_atom.SecondaryStructureResidue_get_check_level(self)
7024 
7025  def __eq__(self, *args):
7026  r"""
7027  __eq__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7028  __eq__(SecondaryStructureResidue self, Particle d) -> bool
7029  """
7030  return _IMP_atom.SecondaryStructureResidue___eq__(self, *args)
7031 
7032  def __ne__(self, *args):
7033  r"""
7034  __ne__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7035  __ne__(SecondaryStructureResidue self, Particle d) -> bool
7036  """
7037  return _IMP_atom.SecondaryStructureResidue___ne__(self, *args)
7038 
7039  def __le__(self, *args):
7040  r"""
7041  __le__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7042  __le__(SecondaryStructureResidue self, Particle d) -> bool
7043  """
7044  return _IMP_atom.SecondaryStructureResidue___le__(self, *args)
7045 
7046  def __lt__(self, *args):
7047  r"""
7048  __lt__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7049  __lt__(SecondaryStructureResidue self, Particle d) -> bool
7050  """
7051  return _IMP_atom.SecondaryStructureResidue___lt__(self, *args)
7052 
7053  def __ge__(self, *args):
7054  r"""
7055  __ge__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7056  __ge__(SecondaryStructureResidue self, Particle d) -> bool
7057  """
7058  return _IMP_atom.SecondaryStructureResidue___ge__(self, *args)
7059 
7060  def __gt__(self, *args):
7061  r"""
7062  __gt__(SecondaryStructureResidue self, SecondaryStructureResidue o) -> bool
7063  __gt__(SecondaryStructureResidue self, Particle d) -> bool
7064  """
7065  return _IMP_atom.SecondaryStructureResidue___gt__(self, *args)
7066 
7067  def __hash__(self):
7068  r"""__hash__(SecondaryStructureResidue self) -> std::size_t"""
7069  return _IMP_atom.SecondaryStructureResidue___hash__(self)
7070 
7071  def __str__(self):
7072  r"""__str__(SecondaryStructureResidue self) -> std::string"""
7073  return _IMP_atom.SecondaryStructureResidue___str__(self)
7074 
7075  def __repr__(self):
7076  r"""__repr__(SecondaryStructureResidue self) -> std::string"""
7077  return _IMP_atom.SecondaryStructureResidue___repr__(self)
7078 
7079  def _get_as_binary(self):
7080  r"""_get_as_binary(SecondaryStructureResidue self) -> PyObject *"""
7081  return _IMP_atom.SecondaryStructureResidue__get_as_binary(self)
7082 
7083  def _set_from_binary(self, p):
7084  r"""_set_from_binary(SecondaryStructureResidue self, PyObject * p)"""
7085  return _IMP_atom.SecondaryStructureResidue__set_from_binary(self, p)
7086 
7087  def __getstate__(self):
7088  p = self._get_as_binary()
7089  if len(self.__dict__) > 1:
7090  d = self.__dict__.copy()
7091  del d['this']
7092  p = (d, p)
7093  return p
7094 
7095  def __setstate__(self, p):
7096  if not hasattr(self, 'this'):
7097  self.__init__()
7098  if isinstance(p, tuple):
7099  d, p = p
7100  self.__dict__.update(d)
7101  return self._set_from_binary(p)
7102 
7103  __swig_destroy__ = _IMP_atom.delete_SecondaryStructureResidue
7104 
7105 # Register SecondaryStructureResidue in _IMP_atom:
7106 _IMP_atom.SecondaryStructureResidue_swigregister(SecondaryStructureResidue)
7107 
7108 def setup_coarse_secondary_structure_residue(ssr_ps, mdl, winner_takes_all_per_res=False):
7109  r"""setup_coarse_secondary_structure_residue(IMP::Particles const & ssr_ps, Model mdl, bool winner_takes_all_per_res=False) -> SecondaryStructureResidue"""
7110  return _IMP_atom.setup_coarse_secondary_structure_residue(ssr_ps, mdl, winner_takes_all_per_res)
7111 
7112 def setup_coarse_secondary_structure_residues(ssr_ps, mdl, coarse_factor, start_res_num, winner_takes_all_per_res=False):
7113  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"""
7114  return _IMP_atom.setup_coarse_secondary_structure_residues(ssr_ps, mdl, coarse_factor, start_res_num, winner_takes_all_per_res)
7115 
7116 def get_secondary_structure_match_score(ssr1, ssr2):
7117  r"""get_secondary_structure_match_score(SecondaryStructureResidue ssr1, SecondaryStructureResidue ssr2) -> IMP::Float"""
7118  return _IMP_atom.get_secondary_structure_match_score(ssr1, ssr2)
7119 
7120 def read_psipred(*args):
7121  r"""
7122  read_psipred(TextInput inf, Model mdl) -> IMP::atom::SecondaryStructureResidues
7123  read_psipred(TextInput inf, IMP::Particles ps) -> IMP::atom::SecondaryStructureResidues
7124  """
7125  return _IMP_atom.read_psipred(*args)
7126 class _ADopeBase(IMP.PairScore):
7127  r"""Proxy of C++ IMP::score_functor::DistancePairScore< IMP::score_functor::Dope > class."""
7128 
7129  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7130  __repr__ = _swig_repr
7131 
7132  def __init__(self, *args):
7133  r"""
7134  __init__(_ADopeBase self, Dope t0, std::string name="FunctorDistancePairScore %1%") -> _ADopeBase
7135  __init__(_ADopeBase self) -> _ADopeBase
7136  """
7137  _IMP_atom._ADopeBase_swiginit(self, _IMP_atom.new__ADopeBase(*args))
7138 
7139  def do_get_inputs(self, m, pis):
7140  r"""do_get_inputs(_ADopeBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7141  return _IMP_atom._ADopeBase_do_get_inputs(self, m, pis)
7142 
7143  def get_score_functor(self, *args):
7144  r"""
7145  get_score_functor(_ADopeBase self) -> Dope
7146  get_score_functor(_ADopeBase self) -> Dope
7147  """
7148  return _IMP_atom._ADopeBase_get_score_functor(self, *args)
7149 
7150  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7151  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"""
7152  return _IMP_atom._ADopeBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7153 
7154  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7155  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"""
7156  return _IMP_atom._ADopeBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7157 
7158  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7159  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"""
7160  return _IMP_atom._ADopeBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7161 
7162  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7163  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"""
7164  return _IMP_atom._ADopeBase_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7165 
7166  def get_version_info(self):
7167  r"""get_version_info(_ADopeBase self) -> VersionInfo"""
7168  return _IMP_atom._ADopeBase_get_version_info(self)
7169  __swig_destroy__ = _IMP_atom.delete__ADopeBase
7170 
7171 # Register _ADopeBase in _IMP_atom:
7172 _IMP_atom._ADopeBase_swigregister(_ADopeBase)
7173 class _BDopeBase(IMP.PairScore):
7174  r"""Proxy of C++ IMP::score_functor::DistancePairScore< IMP::score_functor::Statistical< IMP::atom::DopeType,false,true,false > > class."""
7175 
7176  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7177  __repr__ = _swig_repr
7178 
7179  def __init__(self, *args):
7180  r"""
7181  __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
7182  __init__(_BDopeBase self) -> _BDopeBase
7183  """
7184  _IMP_atom._BDopeBase_swiginit(self, _IMP_atom.new__BDopeBase(*args))
7185 
7186  def do_get_inputs(self, m, pis):
7187  r"""do_get_inputs(_BDopeBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7188  return _IMP_atom._BDopeBase_do_get_inputs(self, m, pis)
7189 
7190  def get_score_functor(self, *args):
7191  r"""
7192  get_score_functor(_BDopeBase self) -> _DopeBase
7193  get_score_functor(_BDopeBase self) -> _DopeBase
7194  """
7195  return _IMP_atom._BDopeBase_get_score_functor(self, *args)
7196 
7197  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7198  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"""
7199  return _IMP_atom._BDopeBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7200 
7201  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7202  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"""
7203  return _IMP_atom._BDopeBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7204 
7205  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7206  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"""
7207  return _IMP_atom._BDopeBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7208 
7209  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7210  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"""
7211  return _IMP_atom._BDopeBase_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7212 
7213  def get_version_info(self):
7214  r"""get_version_info(_BDopeBase self) -> VersionInfo"""
7215  return _IMP_atom._BDopeBase_get_version_info(self)
7216  __swig_destroy__ = _IMP_atom.delete__BDopeBase
7217 
7218 # Register _BDopeBase in _IMP_atom:
7219 _IMP_atom._BDopeBase_swigregister(_BDopeBase)
7220 class _ALoopStatisticalBase(IMP.PairScore):
7221  r"""Proxy of C++ IMP::score_functor::DistancePairScore< IMP::score_functor::LoopStatistical > class."""
7222 
7223  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7224  __repr__ = _swig_repr
7225 
7226  def __init__(self, *args):
7227  r"""
7228  __init__(_ALoopStatisticalBase self, LoopStatistical t0, std::string name="FunctorDistancePairScore %1%") -> _ALoopStatisticalBase
7229  __init__(_ALoopStatisticalBase self) -> _ALoopStatisticalBase
7230  """
7231  _IMP_atom._ALoopStatisticalBase_swiginit(self, _IMP_atom.new__ALoopStatisticalBase(*args))
7232 
7233  def do_get_inputs(self, m, pis):
7234  r"""do_get_inputs(_ALoopStatisticalBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7235  return _IMP_atom._ALoopStatisticalBase_do_get_inputs(self, m, pis)
7236 
7237  def get_score_functor(self, *args):
7238  r"""
7239  get_score_functor(_ALoopStatisticalBase self) -> LoopStatistical
7240  get_score_functor(_ALoopStatisticalBase self) -> LoopStatistical
7241  """
7242  return _IMP_atom._ALoopStatisticalBase_get_score_functor(self, *args)
7243 
7244  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7245  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"""
7246  return _IMP_atom._ALoopStatisticalBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7247 
7248  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7249  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"""
7250  return _IMP_atom._ALoopStatisticalBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7251 
7252  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7253  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"""
7254  return _IMP_atom._ALoopStatisticalBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7255 
7256  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7257  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"""
7258  return _IMP_atom._ALoopStatisticalBase_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7259 
7260  def get_version_info(self):
7261  r"""get_version_info(_ALoopStatisticalBase self) -> VersionInfo"""
7262  return _IMP_atom._ALoopStatisticalBase_get_version_info(self)
7263  __swig_destroy__ = _IMP_atom.delete__ALoopStatisticalBase
7264 
7265 # Register _ALoopStatisticalBase in _IMP_atom:
7266 _IMP_atom._ALoopStatisticalBase_swigregister(_ALoopStatisticalBase)
7267 class _BLoopStatisticalBase(IMP.PairScore):
7268  r"""Proxy of C++ IMP::score_functor::DistancePairScore< IMP::score_functor::Statistical< IMP::atom::LoopStatisticalType,false,true,false > > class."""
7269 
7270  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7271  __repr__ = _swig_repr
7272 
7273  def __init__(self, *args):
7274  r"""
7275  __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
7276  __init__(_BLoopStatisticalBase self) -> _BLoopStatisticalBase
7277  """
7278  _IMP_atom._BLoopStatisticalBase_swiginit(self, _IMP_atom.new__BLoopStatisticalBase(*args))
7279 
7280  def do_get_inputs(self, m, pis):
7281  r"""do_get_inputs(_BLoopStatisticalBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7282  return _IMP_atom._BLoopStatisticalBase_do_get_inputs(self, m, pis)
7283 
7284  def get_score_functor(self, *args):
7285  r"""
7286  get_score_functor(_BLoopStatisticalBase self) -> _LoopStatisticalBase
7287  get_score_functor(_BLoopStatisticalBase self) -> _LoopStatisticalBase
7288  """
7289  return _IMP_atom._BLoopStatisticalBase_get_score_functor(self, *args)
7290 
7291  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7292  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"""
7293  return _IMP_atom._BLoopStatisticalBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7294 
7295  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7296  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"""
7297  return _IMP_atom._BLoopStatisticalBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7298 
7299  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7300  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"""
7301  return _IMP_atom._BLoopStatisticalBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7302 
7303  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7304  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"""
7305  return _IMP_atom._BLoopStatisticalBase_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7306 
7307  def get_version_info(self):
7308  r"""get_version_info(_BLoopStatisticalBase self) -> VersionInfo"""
7309  return _IMP_atom._BLoopStatisticalBase_get_version_info(self)
7310  __swig_destroy__ = _IMP_atom.delete__BLoopStatisticalBase
7311 
7312 # Register _BLoopStatisticalBase in _IMP_atom:
7313 _IMP_atom._BLoopStatisticalBase_swigregister(_BLoopStatisticalBase)
7314 class _OrientedSoapBase(IMP.PairScore):
7315  r"""Proxy of C++ IMP::score_functor::DistancePairScoreWithCache< IMP::score_functor::OrientedSoap > class."""
7316 
7317  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7318  __repr__ = _swig_repr
7319 
7320  def __init__(self, *args):
7321  r"""__init__(_OrientedSoapBase self, IMP::score_functor::DistancePairScoreWithCache< IMP::score_functor::OrientedSoap >::DistanceScore const & t0, std::string name="FunctorDistancePairScoreWithCache %1%") -> _OrientedSoapBase"""
7322  _IMP_atom._OrientedSoapBase_swiginit(self, _IMP_atom.new__OrientedSoapBase(*args))
7323 
7324  def do_get_inputs(self, m, pis):
7325  r"""do_get_inputs(_OrientedSoapBase self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7326  return _IMP_atom._OrientedSoapBase_do_get_inputs(self, m, pis)
7327 
7328  def get_score_functor(self):
7329  r"""get_score_functor(_OrientedSoapBase self) -> IMP::score_functor::OrientedSoap &"""
7330  return _IMP_atom._OrientedSoapBase_get_score_functor(self)
7331 
7332  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7333  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"""
7334  return _IMP_atom._OrientedSoapBase_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7335 
7336  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7337  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"""
7338  return _IMP_atom._OrientedSoapBase_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7339 
7340  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7341  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"""
7342  return _IMP_atom._OrientedSoapBase_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7343 
7344  def get_version_info(self):
7345  r"""get_version_info(_OrientedSoapBase self) -> VersionInfo"""
7346  return _IMP_atom._OrientedSoapBase_get_version_info(self)
7347  __swig_destroy__ = _IMP_atom.delete__OrientedSoapBase
7348 
7349 # Register _OrientedSoapBase in _IMP_atom:
7350 _IMP_atom._OrientedSoapBase_swigregister(_OrientedSoapBase)
7351 class _SPSFTB(IMP.PairScore):
7352  r"""Proxy of C++ IMP::score_functor::DistancePairScore< score_functor::Statistical< IMP::atom::ProteinLigandType,true,false > > 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"""
7359  __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
7360  __init__(_SPSFTB self) -> _SPSFTB
7361  """
7362  _IMP_atom._SPSFTB_swiginit(self, _IMP_atom.new__SPSFTB(*args))
7363 
7364  def do_get_inputs(self, m, pis):
7365  r"""do_get_inputs(_SPSFTB self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7366  return _IMP_atom._SPSFTB_do_get_inputs(self, m, pis)
7367 
7368  def get_score_functor(self, *args):
7369  r"""
7370  get_score_functor(_SPSFTB self) -> IMP::score_functor::Statistical< IMP::atom::ProteinLigandType,true,false,false >
7371  get_score_functor(_SPSFTB self) -> IMP::score_functor::Statistical< IMP::atom::ProteinLigandType,true,false,false > const &
7372  """
7373  return _IMP_atom._SPSFTB_get_score_functor(self, *args)
7374 
7375  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
7376  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"""
7377  return _IMP_atom._SPSFTB_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
7378 
7379  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7380  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"""
7381  return _IMP_atom._SPSFTB_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
7382 
7383  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
7384  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"""
7385  return _IMP_atom._SPSFTB_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
7386 
7387  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7388  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"""
7389  return _IMP_atom._SPSFTB_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
7390 
7391  def get_version_info(self):
7392  r"""get_version_info(_SPSFTB self) -> VersionInfo"""
7393  return _IMP_atom._SPSFTB_get_version_info(self)
7394  __swig_destroy__ = _IMP_atom.delete__SPSFTB
7395 
7396 # Register _SPSFTB in _IMP_atom:
7397 _IMP_atom._SPSFTB_swigregister(_SPSFTB)
7398 class _SPSTF(_SPSFTB):
7399  r"""Proxy of C++ IMP::core::StatisticalPairScore< IMP::atom::ProteinLigandType,true,false > class."""
7400 
7401  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7402  __repr__ = _swig_repr
7403 
7404  def __init__(self, *args):
7405  r"""
7406  __init__(_SPSTF self, IntKey k, double threshold, TextInput data_file) -> _SPSTF
7407  __init__(_SPSTF self, IntKey k, double threshold, TextInput data_file, unsigned int shift) -> _SPSTF
7408  """
7409  _IMP_atom._SPSTF_swiginit(self, _IMP_atom.new__SPSTF(*args))
7410  __swig_destroy__ = _IMP_atom.delete__SPSTF
7411 
7412 # Register _SPSTF in _IMP_atom:
7413 _IMP_atom._SPSTF_swigregister(_SPSTF)
7414 class _SPSFT(_BDopeBase):
7415  r"""Proxy of C++ IMP::core::StatisticalPairScore< IMP::atom::DopeType,false,true > class."""
7416 
7417  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7418  __repr__ = _swig_repr
7419 
7420  def __init__(self, *args):
7421  r"""
7422  __init__(_SPSFT self, IntKey k, double threshold, TextInput data_file) -> _SPSFT
7423  __init__(_SPSFT self, IntKey k, double threshold, TextInput data_file, unsigned int shift) -> _SPSFT
7424  """
7425  _IMP_atom._SPSFT_swiginit(self, _IMP_atom.new__SPSFT(*args))
7426  __swig_destroy__ = _IMP_atom.delete__SPSFT
7427 
7428 # Register _SPSFT in _IMP_atom:
7429 _IMP_atom._SPSFT_swigregister(_SPSFT)
7430 class _SPSFTL(_BLoopStatisticalBase):
7431  r"""Proxy of C++ IMP::core::StatisticalPairScore< IMP::atom::LoopStatisticalType,false,true > class."""
7432 
7433  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7434  __repr__ = _swig_repr
7435 
7436  def __init__(self, *args):
7437  r"""
7438  __init__(_SPSFTL self, IntKey k, double threshold, TextInput data_file) -> _SPSFTL
7439  __init__(_SPSFTL self, IntKey k, double threshold, TextInput data_file, unsigned int shift) -> _SPSFTL
7440  """
7441  _IMP_atom._SPSFTL_swiginit(self, _IMP_atom.new__SPSFTL(*args))
7442  __swig_destroy__ = _IMP_atom.delete__SPSFTL
7443 
7444 # Register _SPSFTL in _IMP_atom:
7445 _IMP_atom._SPSFTL_swigregister(_SPSFTL)
7446 class ProteinLigandAtomPairScore(_SPSTF):
7447  r"""Proxy of C++ IMP::atom::ProteinLigandAtomPairScore class."""
7448 
7449  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7450 
7451  def __init__(self, *args):
7452  r"""
7453  __init__(ProteinLigandAtomPairScore self, double threshold=std::numeric_limits< double >::max()) -> ProteinLigandAtomPairScore
7454  __init__(ProteinLigandAtomPairScore self, double threshold, TextInput data_file) -> ProteinLigandAtomPairScore
7455  """
7456  _IMP_atom.ProteinLigandAtomPairScore_swiginit(self, _IMP_atom.new_ProteinLigandAtomPairScore(*args))
7457 
7458  def get_maximum_distance(self):
7459  r"""get_maximum_distance(ProteinLigandAtomPairScore self) -> double"""
7460  return _IMP_atom.ProteinLigandAtomPairScore_get_maximum_distance(self)
7461 
7462  def __str__(self):
7463  r"""__str__(ProteinLigandAtomPairScore self) -> std::string"""
7464  return _IMP_atom.ProteinLigandAtomPairScore___str__(self)
7465 
7466  def __repr__(self):
7467  r"""__repr__(ProteinLigandAtomPairScore self) -> std::string"""
7468  return _IMP_atom.ProteinLigandAtomPairScore___repr__(self)
7469 
7470  @staticmethod
7471  def get_from(o):
7472  return _object_cast_to_ProteinLigandAtomPairScore(o)
7473 
7474  __swig_destroy__ = _IMP_atom.delete_ProteinLigandAtomPairScore
7475 
7476 # Register ProteinLigandAtomPairScore in _IMP_atom:
7477 _IMP_atom.ProteinLigandAtomPairScore_swigregister(ProteinLigandAtomPairScore)
7478 class ProteinLigandRestraint(IMP.container.PairsRestraint):
7479  r"""Proxy of C++ IMP::atom::ProteinLigandRestraint class."""
7480 
7481  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7482 
7483  def __init__(self, *args):
7484  r"""
7485  __init__(ProteinLigandRestraint self, Hierarchy protein, Hierarchy ligand, double threshold=std::numeric_limits< double >::max()) -> ProteinLigandRestraint
7486  __init__(ProteinLigandRestraint self, Hierarchy protein, Hierarchy ligand, double threshold, TextInput data_file) -> ProteinLigandRestraint
7487  """
7488  _IMP_atom.ProteinLigandRestraint_swiginit(self, _IMP_atom.new_ProteinLigandRestraint(*args))
7489 
7490  def __str__(self):
7491  r"""__str__(ProteinLigandRestraint self) -> std::string"""
7492  return _IMP_atom.ProteinLigandRestraint___str__(self)
7493 
7494  def __repr__(self):
7495  r"""__repr__(ProteinLigandRestraint self) -> std::string"""
7496  return _IMP_atom.ProteinLigandRestraint___repr__(self)
7497 
7498  @staticmethod
7499  def get_from(o):
7500  return _object_cast_to_ProteinLigandRestraint(o)
7501 
7502  __swig_destroy__ = _IMP_atom.delete_ProteinLigandRestraint
7503 
7504 # Register ProteinLigandRestraint in _IMP_atom:
7505 _IMP_atom.ProteinLigandRestraint_swigregister(ProteinLigandRestraint)
7506 
7508  r"""add_protein_ligand_score_data(Hierarchy h)"""
7509  return _IMP_atom.add_protein_ligand_score_data(h)
7510 class AtomType(IMP._Value):
7511  r"""Proxy of C++ IMP::Key< 8974343 > class."""
7512 
7513  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7514 
7515  def __init__(self, *args):
7516  r"""
7517  __init__(AtomType self) -> AtomType
7518  __init__(AtomType self, std::string const & c, bool is_implicit_add_permitted=True) -> AtomType
7519  __init__(AtomType self, unsigned int i) -> AtomType
7520  """
7521  _IMP_atom.AtomType_swiginit(self, _IMP_atom.new_AtomType(*args))
7522 
7523  @staticmethod
7524  def add_key(sc):
7525  r"""add_key(std::string sc) -> unsigned int"""
7526  return _IMP_atom.AtomType_add_key(sc)
7527 
7528  @staticmethod
7529  def get_key_exists(sc):
7530  r"""get_key_exists(std::string sc) -> bool"""
7531  return _IMP_atom.AtomType_get_key_exists(sc)
7532 
7533  def get_string(self):
7534  r"""get_string(AtomType self) -> std::string const"""
7535  return _IMP_atom.AtomType_get_string(self)
7536 
7537  def __cmp__(self, o):
7538  r"""__cmp__(AtomType self, AtomType o) -> int"""
7539  return _IMP_atom.AtomType___cmp__(self, o)
7540 
7541  def __eq__(self, o):
7542  r"""__eq__(AtomType self, AtomType o) -> bool"""
7543  return _IMP_atom.AtomType___eq__(self, o)
7544 
7545  def __ne__(self, o):
7546  r"""__ne__(AtomType self, AtomType o) -> bool"""
7547  return _IMP_atom.AtomType___ne__(self, o)
7548 
7549  def __lt__(self, o):
7550  r"""__lt__(AtomType self, AtomType o) -> bool"""
7551  return _IMP_atom.AtomType___lt__(self, o)
7552 
7553  def __gt__(self, o):
7554  r"""__gt__(AtomType self, AtomType o) -> bool"""
7555  return _IMP_atom.AtomType___gt__(self, o)
7556 
7557  def __ge__(self, o):
7558  r"""__ge__(AtomType self, AtomType o) -> bool"""
7559  return _IMP_atom.AtomType___ge__(self, o)
7560 
7561  def __le__(self, o):
7562  r"""__le__(AtomType self, AtomType o) -> bool"""
7563  return _IMP_atom.AtomType___le__(self, o)
7564 
7565  def __hash__(self):
7566  r"""__hash__(AtomType self) -> std::size_t"""
7567  return _IMP_atom.AtomType___hash__(self)
7568 
7569  def show(self, *args):
7570  r"""show(AtomType self, _ostream out=std::cout)"""
7571  return _IMP_atom.AtomType_show(self, *args)
7572 
7573  @staticmethod
7574  def add_alias(old_key, new_name):
7575  r"""add_alias(AtomType old_key, std::string new_name) -> AtomType"""
7576  return _IMP_atom.AtomType_add_alias(old_key, new_name)
7577 
7578  @staticmethod
7579  def get_number_of_keys():
7580  r"""get_number_of_keys() -> unsigned int"""
7581  return _IMP_atom.AtomType_get_number_of_keys()
7582 
7583  def get_index(self):
7584  r"""get_index(AtomType self) -> unsigned int"""
7585  return _IMP_atom.AtomType_get_index(self)
7586 
7587  @staticmethod
7588  def show_all(out):
7589  r"""show_all(_ostream out)"""
7590  return _IMP_atom.AtomType_show_all(out)
7591 
7592  @staticmethod
7593  def get_all_strings():
7594  r"""get_all_strings() -> IMP::Vector< std::string >"""
7595  return _IMP_atom.AtomType_get_all_strings()
7596 
7597  @staticmethod
7598  def get_number_unique():
7599  r"""get_number_unique() -> unsigned int"""
7600  return _IMP_atom.AtomType_get_number_unique()
7601 
7602  def __str__(self):
7603  r"""__str__(AtomType self) -> std::string"""
7604  return _IMP_atom.AtomType___str__(self)
7605 
7606  def __repr__(self):
7607  r"""__repr__(AtomType self) -> std::string"""
7608  return _IMP_atom.AtomType___repr__(self)
7609  __swig_destroy__ = _IMP_atom.delete_AtomType
7610 
7611 # Register AtomType in _IMP_atom:
7612 _IMP_atom.AtomType_swigregister(AtomType)
7613 class ResidueType(IMP._Value):
7614  r"""Proxy of C++ IMP::Key< 90784334 > class."""
7615 
7616  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7617 
7618  def __init__(self, *args):
7619  r"""
7620  __init__(ResidueType self) -> ResidueType
7621  __init__(ResidueType self, std::string const & c, bool is_implicit_add_permitted=True) -> ResidueType
7622  __init__(ResidueType self, unsigned int i) -> ResidueType
7623  """
7624  _IMP_atom.ResidueType_swiginit(self, _IMP_atom.new_ResidueType(*args))
7625 
7626  @staticmethod
7627  def add_key(sc):
7628  r"""add_key(std::string sc) -> unsigned int"""
7629  return _IMP_atom.ResidueType_add_key(sc)
7630 
7631  @staticmethod
7632  def get_key_exists(sc):
7633  r"""get_key_exists(std::string sc) -> bool"""
7634  return _IMP_atom.ResidueType_get_key_exists(sc)
7635 
7636  def get_string(self):
7637  r"""get_string(ResidueType self) -> std::string const"""
7638  return _IMP_atom.ResidueType_get_string(self)
7639 
7640  def __cmp__(self, o):
7641  r"""__cmp__(ResidueType self, ResidueType o) -> int"""
7642  return _IMP_atom.ResidueType___cmp__(self, o)
7643 
7644  def __eq__(self, o):
7645  r"""__eq__(ResidueType self, ResidueType o) -> bool"""
7646  return _IMP_atom.ResidueType___eq__(self, o)
7647 
7648  def __ne__(self, o):
7649  r"""__ne__(ResidueType self, ResidueType o) -> bool"""
7650  return _IMP_atom.ResidueType___ne__(self, o)
7651 
7652  def __lt__(self, o):
7653  r"""__lt__(ResidueType self, ResidueType o) -> bool"""
7654  return _IMP_atom.ResidueType___lt__(self, o)
7655 
7656  def __gt__(self, o):
7657  r"""__gt__(ResidueType self, ResidueType o) -> bool"""
7658  return _IMP_atom.ResidueType___gt__(self, o)
7659 
7660  def __ge__(self, o):
7661  r"""__ge__(ResidueType self, ResidueType o) -> bool"""
7662  return _IMP_atom.ResidueType___ge__(self, o)
7663 
7664  def __le__(self, o):
7665  r"""__le__(ResidueType self, ResidueType o) -> bool"""
7666  return _IMP_atom.ResidueType___le__(self, o)
7667 
7668  def __hash__(self):
7669  r"""__hash__(ResidueType self) -> std::size_t"""
7670  return _IMP_atom.ResidueType___hash__(self)
7671 
7672  def show(self, *args):
7673  r"""show(ResidueType self, _ostream out=std::cout)"""
7674  return _IMP_atom.ResidueType_show(self, *args)
7675 
7676  @staticmethod
7677  def add_alias(old_key, new_name):
7678  r"""add_alias(ResidueType old_key, std::string new_name) -> ResidueType"""
7679  return _IMP_atom.ResidueType_add_alias(old_key, new_name)
7680 
7681  @staticmethod
7682  def get_number_of_keys():
7683  r"""get_number_of_keys() -> unsigned int"""
7684  return _IMP_atom.ResidueType_get_number_of_keys()
7685 
7686  def get_index(self):
7687  r"""get_index(ResidueType self) -> unsigned int"""
7688  return _IMP_atom.ResidueType_get_index(self)
7689 
7690  @staticmethod
7691  def show_all(out):
7692  r"""show_all(_ostream out)"""
7693  return _IMP_atom.ResidueType_show_all(out)
7694 
7695  @staticmethod
7696  def get_all_strings():
7697  r"""get_all_strings() -> IMP::Vector< std::string >"""
7698  return _IMP_atom.ResidueType_get_all_strings()
7699 
7700  @staticmethod
7701  def get_number_unique():
7702  r"""get_number_unique() -> unsigned int"""
7703  return _IMP_atom.ResidueType_get_number_unique()
7704 
7705  def __str__(self):
7706  r"""__str__(ResidueType self) -> std::string"""
7707  return _IMP_atom.ResidueType___str__(self)
7708 
7709  def __repr__(self):
7710  r"""__repr__(ResidueType self) -> std::string"""
7711  return _IMP_atom.ResidueType___repr__(self)
7712  __swig_destroy__ = _IMP_atom.delete_ResidueType
7713 
7714 # Register ResidueType in _IMP_atom:
7715 _IMP_atom.ResidueType_swigregister(ResidueType)
7716 class ChainType(IMP._Value):
7717  r"""Proxy of C++ IMP::Key< 90784336 > class."""
7718 
7719  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7720 
7721  def __init__(self, *args):
7722  r"""
7723  __init__(ChainType self) -> ChainType
7724  __init__(ChainType self, std::string const & c, bool is_implicit_add_permitted=True) -> ChainType
7725  __init__(ChainType self, unsigned int i) -> ChainType
7726  """
7727  _IMP_atom.ChainType_swiginit(self, _IMP_atom.new_ChainType(*args))
7728 
7729  @staticmethod
7730  def add_key(sc):
7731  r"""add_key(std::string sc) -> unsigned int"""
7732  return _IMP_atom.ChainType_add_key(sc)
7733 
7734  @staticmethod
7735  def get_key_exists(sc):
7736  r"""get_key_exists(std::string sc) -> bool"""
7737  return _IMP_atom.ChainType_get_key_exists(sc)
7738 
7739  def get_string(self):
7740  r"""get_string(ChainType self) -> std::string const"""
7741  return _IMP_atom.ChainType_get_string(self)
7742 
7743  def __cmp__(self, o):
7744  r"""__cmp__(ChainType self, ChainType o) -> int"""
7745  return _IMP_atom.ChainType___cmp__(self, o)
7746 
7747  def __eq__(self, o):
7748  r"""__eq__(ChainType self, ChainType o) -> bool"""
7749  return _IMP_atom.ChainType___eq__(self, o)
7750 
7751  def __ne__(self, o):
7752  r"""__ne__(ChainType self, ChainType o) -> bool"""
7753  return _IMP_atom.ChainType___ne__(self, o)
7754 
7755  def __lt__(self, o):
7756  r"""__lt__(ChainType self, ChainType o) -> bool"""
7757  return _IMP_atom.ChainType___lt__(self, o)
7758 
7759  def __gt__(self, o):
7760  r"""__gt__(ChainType self, ChainType o) -> bool"""
7761  return _IMP_atom.ChainType___gt__(self, o)
7762 
7763  def __ge__(self, o):
7764  r"""__ge__(ChainType self, ChainType o) -> bool"""
7765  return _IMP_atom.ChainType___ge__(self, o)
7766 
7767  def __le__(self, o):
7768  r"""__le__(ChainType self, ChainType o) -> bool"""
7769  return _IMP_atom.ChainType___le__(self, o)
7770 
7771  def __hash__(self):
7772  r"""__hash__(ChainType self) -> std::size_t"""
7773  return _IMP_atom.ChainType___hash__(self)
7774 
7775  def show(self, *args):
7776  r"""show(ChainType self, _ostream out=std::cout)"""
7777  return _IMP_atom.ChainType_show(self, *args)
7778 
7779  @staticmethod
7780  def add_alias(old_key, new_name):
7781  r"""add_alias(ChainType old_key, std::string new_name) -> ChainType"""
7782  return _IMP_atom.ChainType_add_alias(old_key, new_name)
7783 
7784  @staticmethod
7785  def get_number_of_keys():
7786  r"""get_number_of_keys() -> unsigned int"""
7787  return _IMP_atom.ChainType_get_number_of_keys()
7788 
7789  def get_index(self):
7790  r"""get_index(ChainType self) -> unsigned int"""
7791  return _IMP_atom.ChainType_get_index(self)
7792 
7793  @staticmethod
7794  def show_all(out):
7795  r"""show_all(_ostream out)"""
7796  return _IMP_atom.ChainType_show_all(out)
7797 
7798  @staticmethod
7799  def get_all_strings():
7800  r"""get_all_strings() -> IMP::Vector< std::string >"""
7801  return _IMP_atom.ChainType_get_all_strings()
7802 
7803  @staticmethod
7804  def get_number_unique():
7805  r"""get_number_unique() -> unsigned int"""
7806  return _IMP_atom.ChainType_get_number_unique()
7807 
7808  def __str__(self):
7809  r"""__str__(ChainType self) -> std::string"""
7810  return _IMP_atom.ChainType___str__(self)
7811 
7812  def __repr__(self):
7813  r"""__repr__(ChainType self) -> std::string"""
7814  return _IMP_atom.ChainType___repr__(self)
7815  __swig_destroy__ = _IMP_atom.delete_ChainType
7816 
7817 # Register ChainType in _IMP_atom:
7818 _IMP_atom.ChainType_swigregister(ChainType)
7819 UNKNOWN_ELEMENT = _IMP_atom.UNKNOWN_ELEMENT
7820 
7821 OH = _IMP_atom.OH
7822 
7823 H2O = _IMP_atom.H2O
7824 
7825 H = _IMP_atom.H
7826 
7827 He = _IMP_atom.He
7828 
7829 Li = _IMP_atom.Li
7830 
7831 Be = _IMP_atom.Be
7832 
7833 B = _IMP_atom.B
7834 
7835 C = _IMP_atom.C
7836 
7837 N = _IMP_atom.N
7838 
7839 O = _IMP_atom.O
7840 
7841 F = _IMP_atom.F
7842 
7843 Ne = _IMP_atom.Ne
7844 
7845 Na = _IMP_atom.Na
7846 
7847 Mg = _IMP_atom.Mg
7848 
7849 Al = _IMP_atom.Al
7850 
7851 Si = _IMP_atom.Si
7852 
7853 P = _IMP_atom.P
7854 
7855 S = _IMP_atom.S
7856 
7857 Cl = _IMP_atom.Cl
7858 
7859 Ar = _IMP_atom.Ar
7860 
7861 K = _IMP_atom.K
7862 
7863 Ca = _IMP_atom.Ca
7864 
7865 Sc = _IMP_atom.Sc
7866 
7867 Ti = _IMP_atom.Ti
7868 
7869 V = _IMP_atom.V
7870 
7871 Cr = _IMP_atom.Cr
7872 
7873 Mn = _IMP_atom.Mn
7874 
7875 Fe = _IMP_atom.Fe
7876 
7877 Co = _IMP_atom.Co
7878 
7879 Ni = _IMP_atom.Ni
7880 
7881 Cu = _IMP_atom.Cu
7882 
7883 Zn = _IMP_atom.Zn
7884 
7885 Ga = _IMP_atom.Ga
7886 
7887 Ge = _IMP_atom.Ge
7888 
7889 As = _IMP_atom.As
7890 
7891 Se = _IMP_atom.Se
7892 
7893 Br = _IMP_atom.Br
7894 
7895 Kr = _IMP_atom.Kr
7896 
7897 Rb = _IMP_atom.Rb
7898 
7899 Sr = _IMP_atom.Sr
7900 
7901 Y = _IMP_atom.Y
7902 
7903 Zr = _IMP_atom.Zr
7904 
7905 Nb = _IMP_atom.Nb
7906 
7907 Mo = _IMP_atom.Mo
7908 
7909 Tc = _IMP_atom.Tc
7910 
7911 Ru = _IMP_atom.Ru
7912 
7913 Rh = _IMP_atom.Rh
7914 
7915 Pd = _IMP_atom.Pd
7916 
7917 Ag = _IMP_atom.Ag
7918 
7919 Cd = _IMP_atom.Cd
7920 
7921 In = _IMP_atom.In
7922 
7923 Sn = _IMP_atom.Sn
7924 
7925 Sb = _IMP_atom.Sb
7926 
7927 Te = _IMP_atom.Te
7928 
7929 I = _IMP_atom.I
7930 
7931 Xe = _IMP_atom.Xe
7932 
7933 Cs = _IMP_atom.Cs
7934 
7935 Ba = _IMP_atom.Ba
7936 
7937 La = _IMP_atom.La
7938 
7939 Ce = _IMP_atom.Ce
7940 
7941 Pr = _IMP_atom.Pr
7942 
7943 Nd = _IMP_atom.Nd
7944 
7945 Pm = _IMP_atom.Pm
7946 
7947 Sm = _IMP_atom.Sm
7948 
7949 Eu = _IMP_atom.Eu
7950 
7951 Gd = _IMP_atom.Gd
7952 
7953 Tb = _IMP_atom.Tb
7954 
7955 Dy = _IMP_atom.Dy
7956 
7957 Ho = _IMP_atom.Ho
7958 
7959 Er = _IMP_atom.Er
7960 
7961 Tm = _IMP_atom.Tm
7962 
7963 Yb = _IMP_atom.Yb
7964 
7965 Lu = _IMP_atom.Lu
7966 
7967 Hf = _IMP_atom.Hf
7968 
7969 Ta = _IMP_atom.Ta
7970 
7971 W = _IMP_atom.W
7972 
7973 Re = _IMP_atom.Re
7974 
7975 Os = _IMP_atom.Os
7976 
7977 Ir = _IMP_atom.Ir
7978 
7979 Pt = _IMP_atom.Pt
7980 
7981 Au = _IMP_atom.Au
7982 
7983 Hg = _IMP_atom.Hg
7984 
7985 Tl = _IMP_atom.Tl
7986 
7987 Pb = _IMP_atom.Pb
7988 
7989 Bi = _IMP_atom.Bi
7990 
7991 Po = _IMP_atom.Po
7992 
7993 At = _IMP_atom.At
7994 
7995 Rn = _IMP_atom.Rn
7996 
7997 Fr = _IMP_atom.Fr
7998 
7999 Ra = _IMP_atom.Ra
8000 
8001 Ac = _IMP_atom.Ac
8002 
8003 Th = _IMP_atom.Th
8004 
8005 Pa = _IMP_atom.Pa
8006 
8007 U = _IMP_atom.U
8008 
8009 Np = _IMP_atom.Np
8010 
8011 Pu = _IMP_atom.Pu
8012 
8013 Am = _IMP_atom.Am
8014 
8015 Cm = _IMP_atom.Cm
8016 
8017 Bk = _IMP_atom.Bk
8018 
8019 Cf = _IMP_atom.Cf
8020 
8021 Es = _IMP_atom.Es
8022 
8023 Fm = _IMP_atom.Fm
8024 
8025 Md = _IMP_atom.Md
8026 
8027 No = _IMP_atom.No
8028 
8029 Lr = _IMP_atom.Lr
8030 
8031 Db = _IMP_atom.Db
8032 
8033 Jl = _IMP_atom.Jl
8034 
8035 Rf = _IMP_atom.Rf
8036 
8037 NUMBER_OF_ELEMENTS = _IMP_atom.NUMBER_OF_ELEMENTS
8038 
8039 
8040 def hash_value(e):
8041  r"""hash_value(IMP::atom::Element e) -> size_t"""
8042  return _IMP_atom.hash_value(e)
8043 class ElementTable(object):
8044  r"""Proxy of C++ IMP::atom::ElementTable class."""
8045 
8046  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8047  __repr__ = _swig_repr
8048 
8049  def __init__(self):
8050  r"""__init__(ElementTable self) -> ElementTable"""
8051  _IMP_atom.ElementTable_swiginit(self, _IMP_atom.new_ElementTable())
8052 
8053  def get_element(self, s):
8054  r"""get_element(ElementTable self, std::string const & s) -> IMP::atom::Element"""
8055  return _IMP_atom.ElementTable_get_element(self, s)
8056 
8057  def get_name(self, e):
8058  r"""get_name(ElementTable self, IMP::atom::Element e) -> std::string"""
8059  return _IMP_atom.ElementTable_get_name(self, e)
8060 
8061  def get_mass(self, e):
8062  r"""get_mass(ElementTable self, IMP::atom::Element e) -> IMP::Float"""
8063  return _IMP_atom.ElementTable_get_mass(self, e)
8064  __swig_destroy__ = _IMP_atom.delete_ElementTable
8065 
8066 # Register ElementTable in _IMP_atom:
8067 _IMP_atom.ElementTable_swigregister(ElementTable)
8068 
8069 def get_element_table():
8070  r"""get_element_table() -> ElementTable"""
8071  return _IMP_atom.get_element_table()
8072 class Atom(Hierarchy):
8073  r"""Proxy of C++ IMP::atom::Atom class."""
8074 
8075  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8076 
8077  def __init__(self, *args):
8078  r"""
8079  __init__(Atom self) -> Atom
8080  __init__(Atom self, Model m, ParticleIndex id) -> Atom
8081  __init__(Atom self, _ParticleAdaptor d) -> Atom
8082  """
8083  _IMP_atom.Atom_swiginit(self, _IMP_atom.new_Atom(*args))
8084 
8085  def show(self, *args):
8086  r"""show(Atom self, _ostream out=std::cout)"""
8087  return _IMP_atom.Atom_show(self, *args)
8088 
8089  @staticmethod
8090  def setup_particle(*args):
8091  r"""
8092  setup_particle(Model m, ParticleIndex pi, Atom other) -> Atom
8093  setup_particle(_ParticleAdaptor pa, Atom other) -> Atom
8094  setup_particle(Model m, ParticleIndex pi, AtomType atom_type) -> Atom
8095  setup_particle(_ParticleAdaptor pa, AtomType atom_type) -> Atom
8096  """
8097  return _IMP_atom.Atom_setup_particle(*args)
8098 
8099  @staticmethod
8100  def get_is_setup(*args):
8101  r"""
8102  get_is_setup(_ParticleAdaptor p) -> bool
8103  get_is_setup(Model m, ParticleIndex pi) -> bool
8104  """
8105  return _IMP_atom.Atom_get_is_setup(*args)
8106 
8107  def get_atom_type(self):
8108  r"""get_atom_type(Atom self) -> AtomType"""
8109  return _IMP_atom.Atom_get_atom_type(self)
8110 
8111  def set_atom_type(self, t):
8112  r"""set_atom_type(Atom self, AtomType t)"""
8113  return _IMP_atom.Atom_set_atom_type(self, t)
8114 
8115  def get_element(self):
8116  r"""get_element(Atom self) -> IMP::atom::Element"""
8117  return _IMP_atom.Atom_get_element(self)
8118 
8119  def set_element(self, e):
8120  r"""set_element(Atom self, IMP::atom::Element e)"""
8121  return _IMP_atom.Atom_set_element(self, e)
8122 
8123  def get_occupancy(self):
8124  r"""get_occupancy(Atom self) -> double"""
8125  return _IMP_atom.Atom_get_occupancy(self)
8126 
8127  def set_occupancy(self, occupancy):
8128  r"""set_occupancy(Atom self, double occupancy)"""
8129  return _IMP_atom.Atom_set_occupancy(self, occupancy)
8130 
8131  def get_temperature_factor(self):
8132  r"""get_temperature_factor(Atom self) -> double"""
8133  return _IMP_atom.Atom_get_temperature_factor(self)
8134 
8135  def set_temperature_factor(self, tempFactor):
8136  r"""set_temperature_factor(Atom self, double tempFactor)"""
8137  return _IMP_atom.Atom_set_temperature_factor(self, tempFactor)
8138 
8139  def get_input_index(self):
8140  r"""get_input_index(Atom self) -> IMP::Int"""
8141  return _IMP_atom.Atom_get_input_index(self)
8142 
8143  def set_input_index(self, t):
8144  r"""set_input_index(Atom self, IMP::Int t)"""
8145  return _IMP_atom.Atom_set_input_index(self, t)
8146 
8147  @staticmethod
8148  def get_atom_type_key():
8149  r"""get_atom_type_key() -> IntKey"""
8150  return _IMP_atom.Atom_get_atom_type_key()
8151 
8152  @staticmethod
8153  def get_element_key():
8154  r"""get_element_key() -> IntKey"""
8155  return _IMP_atom.Atom_get_element_key()
8156 
8157  @staticmethod
8158  def get_input_index_key():
8159  r"""get_input_index_key() -> IntKey"""
8160  return _IMP_atom.Atom_get_input_index_key()
8161 
8162  @staticmethod
8163  def get_occupancy_key():
8164  r"""get_occupancy_key() -> FloatKey"""
8165  return _IMP_atom.Atom_get_occupancy_key()
8166 
8167  @staticmethod
8168  def get_temperature_factor_key():
8169  r"""get_temperature_factor_key() -> FloatKey"""
8170  return _IMP_atom.Atom_get_temperature_factor_key()
8171 
8172  def add_attribute(self, *args):
8173  r"""
8174  add_attribute(Atom self, FloatKey k, IMP::Float v, bool opt)
8175  add_attribute(Atom self, FloatKey a0, IMP::Float a1)
8176  add_attribute(Atom self, IntKey a0, IMP::Int a1)
8177  add_attribute(Atom self, FloatsKey a0, IMP::Floats a1)
8178  add_attribute(Atom self, IntsKey a0, IMP::Ints a1)
8179  add_attribute(Atom self, StringKey a0, IMP::String a1)
8180  add_attribute(Atom self, ParticleIndexKey a0, Particle a1)
8181  add_attribute(Atom self, ObjectKey a0, Object a1)
8182  add_attribute(Atom self, SparseFloatKey a0, IMP::Float a1)
8183  add_attribute(Atom self, SparseIntKey a0, IMP::Int a1)
8184  add_attribute(Atom self, SparseStringKey a0, IMP::String a1)
8185  add_attribute(Atom self, SparseParticleIndexKey a0, ParticleIndex a1)
8186  """
8187  return _IMP_atom.Atom_add_attribute(self, *args)
8188 
8189  def get_value(self, *args):
8190  r"""
8191  get_value(Atom self, FloatKey a0) -> IMP::Float
8192  get_value(Atom self, IntKey a0) -> IMP::Int
8193  get_value(Atom self, FloatsKey a0) -> IMP::Floats
8194  get_value(Atom self, IntsKey a0) -> IMP::Ints
8195  get_value(Atom self, StringKey a0) -> IMP::String
8196  get_value(Atom self, ParticleIndexKey a0) -> Particle
8197  get_value(Atom self, ObjectKey a0) -> Object
8198  get_value(Atom self, SparseFloatKey a0) -> IMP::Float
8199  get_value(Atom self, SparseIntKey a0) -> IMP::Int
8200  get_value(Atom self, SparseStringKey a0) -> IMP::String
8201  get_value(Atom self, SparseParticleIndexKey a0) -> ParticleIndex
8202  """
8203  return _IMP_atom.Atom_get_value(self, *args)
8204 
8205  def set_value(self, *args):
8206  r"""
8207  set_value(Atom self, FloatKey a0, IMP::Float a1)
8208  set_value(Atom self, IntKey a0, IMP::Int a1)
8209  set_value(Atom self, FloatsKey a0, IMP::Floats a1)
8210  set_value(Atom self, IntsKey a0, IMP::Ints a1)
8211  set_value(Atom self, StringKey a0, IMP::String a1)
8212  set_value(Atom self, ParticleIndexKey a0, Particle a1)
8213  set_value(Atom self, ObjectKey a0, Object a1)
8214  set_value(Atom self, SparseFloatKey a0, IMP::Float a1)
8215  set_value(Atom self, SparseIntKey a0, IMP::Int a1)
8216  set_value(Atom self, SparseStringKey a0, IMP::String a1)
8217  set_value(Atom self, SparseParticleIndexKey a0, ParticleIndex a1)
8218  """
8219  return _IMP_atom.Atom_set_value(self, *args)
8220 
8221  def remove_attribute(self, *args):
8222  r"""
8223  remove_attribute(Atom self, FloatKey a0)
8224  remove_attribute(Atom self, IntKey a0)
8225  remove_attribute(Atom self, FloatsKey a0)
8226  remove_attribute(Atom self, IntsKey a0)
8227  remove_attribute(Atom self, StringKey a0)
8228  remove_attribute(Atom self, ParticleIndexKey a0)
8229  remove_attribute(Atom self, ObjectKey a0)
8230  remove_attribute(Atom self, SparseFloatKey a0)
8231  remove_attribute(Atom self, SparseIntKey a0)
8232  remove_attribute(Atom self, SparseStringKey a0)
8233  remove_attribute(Atom self, SparseParticleIndexKey a0)
8234  """
8235  return _IMP_atom.Atom_remove_attribute(self, *args)
8236 
8237  def has_attribute(self, *args):
8238  r"""
8239  has_attribute(Atom self, FloatKey a0) -> bool
8240  has_attribute(Atom self, IntKey a0) -> bool
8241  has_attribute(Atom self, FloatsKey a0) -> bool
8242  has_attribute(Atom self, IntsKey a0) -> bool
8243  has_attribute(Atom self, StringKey a0) -> bool
8244  has_attribute(Atom self, ParticleIndexKey a0) -> bool
8245  has_attribute(Atom self, ObjectKey a0) -> bool
8246  has_attribute(Atom self, SparseFloatKey a0) -> bool
8247  has_attribute(Atom self, SparseIntKey a0) -> bool
8248  has_attribute(Atom self, SparseStringKey a0) -> bool
8249  has_attribute(Atom self, SparseParticleIndexKey a0) -> bool
8250  """
8251  return _IMP_atom.Atom_has_attribute(self, *args)
8252 
8253  def get_derivative(self, a0):
8254  r"""get_derivative(Atom self, FloatKey a0) -> double"""
8255  return _IMP_atom.Atom_get_derivative(self, a0)
8256 
8257  def get_name(self):
8258  r"""get_name(Atom self) -> std::string"""
8259  return _IMP_atom.Atom_get_name(self)
8260 
8261  def clear_caches(self):
8262  r"""clear_caches(Atom self)"""
8263  return _IMP_atom.Atom_clear_caches(self)
8264 
8265  def set_name(self, a0):
8266  r"""set_name(Atom self, std::string a0)"""
8267  return _IMP_atom.Atom_set_name(self, a0)
8268 
8269  def set_check_level(self, a0):
8270  r"""set_check_level(Atom self, IMP::CheckLevel a0)"""
8271  return _IMP_atom.Atom_set_check_level(self, a0)
8272 
8273  def add_to_derivative(self, a0, a1, a2):
8274  r"""add_to_derivative(Atom self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
8275  return _IMP_atom.Atom_add_to_derivative(self, a0, a1, a2)
8276 
8277  def set_is_optimized(self, a0, a1):
8278  r"""set_is_optimized(Atom self, FloatKey a0, bool a1)"""
8279  return _IMP_atom.Atom_set_is_optimized(self, a0, a1)
8280 
8281  def get_is_optimized(self, a0):
8282  r"""get_is_optimized(Atom self, FloatKey a0) -> bool"""
8283  return _IMP_atom.Atom_get_is_optimized(self, a0)
8284 
8285  def get_check_level(self):
8286  r"""get_check_level(Atom self) -> IMP::CheckLevel"""
8287  return _IMP_atom.Atom_get_check_level(self)
8288 
8289  def __eq__(self, *args):
8290  r"""
8291  __eq__(Atom self, Atom o) -> bool
8292  __eq__(Atom self, Particle d) -> bool
8293  """
8294  return _IMP_atom.Atom___eq__(self, *args)
8295 
8296  def __ne__(self, *args):
8297  r"""
8298  __ne__(Atom self, Atom o) -> bool
8299  __ne__(Atom self, Particle d) -> bool
8300  """
8301  return _IMP_atom.Atom___ne__(self, *args)
8302 
8303  def __le__(self, *args):
8304  r"""
8305  __le__(Atom self, Atom o) -> bool
8306  __le__(Atom self, Particle d) -> bool
8307  """
8308  return _IMP_atom.Atom___le__(self, *args)
8309 
8310  def __lt__(self, *args):
8311  r"""
8312  __lt__(Atom self, Atom o) -> bool
8313  __lt__(Atom self, Particle d) -> bool
8314  """
8315  return _IMP_atom.Atom___lt__(self, *args)
8316 
8317  def __ge__(self, *args):
8318  r"""
8319  __ge__(Atom self, Atom o) -> bool
8320  __ge__(Atom self, Particle d) -> bool
8321  """
8322  return _IMP_atom.Atom___ge__(self, *args)
8323 
8324  def __gt__(self, *args):
8325  r"""
8326  __gt__(Atom self, Atom o) -> bool
8327  __gt__(Atom self, Particle d) -> bool
8328  """
8329  return _IMP_atom.Atom___gt__(self, *args)
8330 
8331  def __hash__(self):
8332  r"""__hash__(Atom self) -> std::size_t"""
8333  return _IMP_atom.Atom___hash__(self)
8334 
8335  def __str__(self):
8336  r"""__str__(Atom self) -> std::string"""
8337  return _IMP_atom.Atom___str__(self)
8338 
8339  def __repr__(self):
8340  r"""__repr__(Atom self) -> std::string"""
8341  return _IMP_atom.Atom___repr__(self)
8342 
8343  def _get_as_binary(self):
8344  r"""_get_as_binary(Atom self) -> PyObject *"""
8345  return _IMP_atom.Atom__get_as_binary(self)
8346 
8347  def _set_from_binary(self, p):
8348  r"""_set_from_binary(Atom self, PyObject * p)"""
8349  return _IMP_atom.Atom__set_from_binary(self, p)
8350 
8351  def __getstate__(self):
8352  p = self._get_as_binary()
8353  if len(self.__dict__) > 1:
8354  d = self.__dict__.copy()
8355  del d['this']
8356  p = (d, p)
8357  return p
8358 
8359  def __setstate__(self, p):
8360  if not hasattr(self, 'this'):
8361  self.__init__()
8362  if isinstance(p, tuple):
8363  d, p = p
8364  self.__dict__.update(d)
8365  return self._set_from_binary(p)
8366 
8367  __swig_destroy__ = _IMP_atom.delete_Atom
8368 
8369 # Register Atom in _IMP_atom:
8370 _IMP_atom.Atom_swigregister(Atom)
8371 cvar = _IMP_atom.cvar
8372 AT_UNKNOWN = cvar.AT_UNKNOWN
8373 AT_N = cvar.AT_N
8374 AT_CA = cvar.AT_CA
8375 AT_C = cvar.AT_C
8376 AT_O = cvar.AT_O
8377 AT_H = cvar.AT_H
8378 AT_H1 = cvar.AT_H1
8379 AT_H2 = cvar.AT_H2
8380 AT_H3 = cvar.AT_H3
8381 AT_HA = cvar.AT_HA
8382 AT_HA1 = cvar.AT_HA1
8383 AT_HA2 = cvar.AT_HA2
8384 AT_HA3 = cvar.AT_HA3
8385 AT_CB = cvar.AT_CB
8386 AT_HB = cvar.AT_HB
8387 AT_HB1 = cvar.AT_HB1
8388 AT_HB2 = cvar.AT_HB2
8389 AT_HB3 = cvar.AT_HB3
8390 AT_OXT = cvar.AT_OXT
8391 AT_CH3 = cvar.AT_CH3
8392 AT_CH = cvar.AT_CH
8393 AT_CG = cvar.AT_CG
8394 AT_CG1 = cvar.AT_CG1
8395 AT_CG2 = cvar.AT_CG2
8396 AT_HG = cvar.AT_HG
8397 AT_HG1 = cvar.AT_HG1
8398 AT_HG2 = cvar.AT_HG2
8399 AT_HG3 = cvar.AT_HG3
8400 AT_HG11 = cvar.AT_HG11
8401 AT_HG21 = cvar.AT_HG21
8402 AT_HG31 = cvar.AT_HG31
8403 AT_HG12 = cvar.AT_HG12
8404 AT_HG13 = cvar.AT_HG13
8405 AT_HG22 = cvar.AT_HG22
8406 AT_HG23 = cvar.AT_HG23
8407 AT_HG32 = cvar.AT_HG32
8408 AT_OG = cvar.AT_OG
8409 AT_OG1 = cvar.AT_OG1
8410 AT_SG = cvar.AT_SG
8411 AT_CD = cvar.AT_CD
8412 AT_CD1 = cvar.AT_CD1
8413 AT_CD2 = cvar.AT_CD2
8414 AT_HD = cvar.AT_HD
8415 AT_HD1 = cvar.AT_HD1
8416 AT_HD2 = cvar.AT_HD2
8417 AT_HD3 = cvar.AT_HD3
8418 AT_HD11 = cvar.AT_HD11
8419 AT_HD21 = cvar.AT_HD21
8420 AT_HD31 = cvar.AT_HD31
8421 AT_HD12 = cvar.AT_HD12
8422 AT_HD13 = cvar.AT_HD13
8423 AT_HD22 = cvar.AT_HD22
8424 AT_HD23 = cvar.AT_HD23
8425 AT_HD32 = cvar.AT_HD32
8426 AT_SD = cvar.AT_SD
8427 AT_OD1 = cvar.AT_OD1
8428 AT_OD2 = cvar.AT_OD2
8429 AT_ND1 = cvar.AT_ND1
8430 AT_ND2 = cvar.AT_ND2
8431 AT_CE = cvar.AT_CE
8432 AT_CE1 = cvar.AT_CE1
8433 AT_CE2 = cvar.AT_CE2
8434 AT_CE3 = cvar.AT_CE3
8435 AT_HE = cvar.AT_HE
8436 AT_HE1 = cvar.AT_HE1
8437 AT_HE2 = cvar.AT_HE2
8438 AT_HE3 = cvar.AT_HE3
8439 AT_HE21 = cvar.AT_HE21
8440 AT_HE22 = cvar.AT_HE22
8441 AT_OE1 = cvar.AT_OE1
8442 AT_OE2 = cvar.AT_OE2
8443 AT_NE = cvar.AT_NE
8444 AT_NE1 = cvar.AT_NE1
8445 AT_NE2 = cvar.AT_NE2
8446 AT_CZ = cvar.AT_CZ
8447 AT_CZ2 = cvar.AT_CZ2
8448 AT_CZ3 = cvar.AT_CZ3
8449 AT_NZ = cvar.AT_NZ
8450 AT_HZ = cvar.AT_HZ
8451 AT_HZ1 = cvar.AT_HZ1
8452 AT_HZ2 = cvar.AT_HZ2
8453 AT_HZ3 = cvar.AT_HZ3
8454 AT_CH2 = cvar.AT_CH2
8455 AT_NH1 = cvar.AT_NH1
8456 AT_NH2 = cvar.AT_NH2
8457 AT_OH = cvar.AT_OH
8458 AT_HH = cvar.AT_HH
8459 AT_HH11 = cvar.AT_HH11
8460 AT_HH21 = cvar.AT_HH21
8461 AT_HH2 = cvar.AT_HH2
8462 AT_HH12 = cvar.AT_HH12
8463 AT_HH22 = cvar.AT_HH22
8464 AT_HH13 = cvar.AT_HH13
8465 AT_HH23 = cvar.AT_HH23
8466 AT_HH33 = cvar.AT_HH33
8467 AT_P = cvar.AT_P
8468 AT_OP1 = cvar.AT_OP1
8469 AT_OP2 = cvar.AT_OP2
8470 AT_OP3 = cvar.AT_OP3
8471 AT_O5p = cvar.AT_O5p
8472 AT_C5p = cvar.AT_C5p
8473 AT_H5p = cvar.AT_H5p
8474 AT_H5pp = cvar.AT_H5pp
8475 AT_C4p = cvar.AT_C4p
8476 AT_H4p = cvar.AT_H4p
8477 AT_O4p = cvar.AT_O4p
8478 AT_C1p = cvar.AT_C1p
8479 AT_H1p = cvar.AT_H1p
8480 AT_C3p = cvar.AT_C3p
8481 AT_H3p = cvar.AT_H3p
8482 AT_O3p = cvar.AT_O3p
8483 AT_C2p = cvar.AT_C2p
8484 AT_H2p = cvar.AT_H2p
8485 AT_H2pp = cvar.AT_H2pp
8486 AT_O2p = cvar.AT_O2p
8487 AT_HO2p = cvar.AT_HO2p
8488 AT_N9 = cvar.AT_N9
8489 AT_C8 = cvar.AT_C8
8490 AT_H8 = cvar.AT_H8
8491 AT_N7 = cvar.AT_N7
8492 AT_C5 = cvar.AT_C5
8493 AT_C4 = cvar.AT_C4
8494 AT_N3 = cvar.AT_N3
8495 AT_C2 = cvar.AT_C2
8496 AT_N1 = cvar.AT_N1
8497 AT_C6 = cvar.AT_C6
8498 AT_N6 = cvar.AT_N6
8499 AT_H61 = cvar.AT_H61
8500 AT_H62 = cvar.AT_H62
8501 AT_O6 = cvar.AT_O6
8502 AT_N2 = cvar.AT_N2
8503 AT_NT = cvar.AT_NT
8504 AT_H21 = cvar.AT_H21
8505 AT_H22 = cvar.AT_H22
8506 AT_H6 = cvar.AT_H6
8507 AT_H5 = cvar.AT_H5
8508 AT_O2 = cvar.AT_O2
8509 AT_N4 = cvar.AT_N4
8510 AT_H41 = cvar.AT_H41
8511 AT_H42 = cvar.AT_H42
8512 AT_O4 = cvar.AT_O4
8513 AT_C7 = cvar.AT_C7
8514 AT_H71 = cvar.AT_H71
8515 AT_H72 = cvar.AT_H72
8516 AT_H73 = cvar.AT_H73
8517 AT_O1A = cvar.AT_O1A
8518 AT_O2A = cvar.AT_O2A
8519 AT_O3A = cvar.AT_O3A
8520 AT_O1B = cvar.AT_O1B
8521 AT_O2B = cvar.AT_O2B
8522 AT_O3B = cvar.AT_O3B
8523 AT_CAY = cvar.AT_CAY
8524 AT_CY = cvar.AT_CY
8525 AT_OY = cvar.AT_OY
8526 AT_CAT = cvar.AT_CAT
8527 
8528 
8529 def get_residue(*args):
8530  r"""
8531  get_residue(Hierarchy mhd, unsigned int index) -> Hierarchy
8532  get_residue(Atom d, bool nothrow=False) -> Residue
8533  """
8534  return _IMP_atom.get_residue(*args)
8535 
8536 def get_atom(rd, at):
8537  r"""get_atom(Residue rd, AtomType at) -> Atom"""
8538  return _IMP_atom.get_atom(rd, at)
8539 
8540 def add_atom_type(name, e):
8541  r"""add_atom_type(std::string name, IMP::atom::Element e) -> AtomType"""
8542  return _IMP_atom.add_atom_type(name, e)
8543 
8544 def get_element_for_atom_type(at):
8545  r"""get_element_for_atom_type(AtomType at) -> IMP::atom::Element"""
8546  return _IMP_atom.get_element_for_atom_type(at)
8547 
8548 def get_atom_type_exists(name):
8549  r"""get_atom_type_exists(std::string name) -> bool"""
8550  return _IMP_atom.get_atom_type_exists(name)
8551 class Residue(Hierarchy):
8552  r"""Proxy of C++ IMP::atom::Residue class."""
8553 
8554  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8555 
8556  def __init__(self, *args):
8557  r"""
8558  __init__(Residue self) -> Residue
8559  __init__(Residue self, Model m, ParticleIndex id) -> Residue
8560  __init__(Residue self, _ParticleAdaptor d) -> Residue
8561  """
8562  _IMP_atom.Residue_swiginit(self, _IMP_atom.new_Residue(*args))
8563 
8564  def show(self, *args):
8565  r"""show(Residue self, _ostream out=std::cout)"""
8566  return _IMP_atom.Residue_show(self, *args)
8567 
8568  @staticmethod
8569  def setup_particle(*args):
8570  r"""
8571  setup_particle(Model m, ParticleIndex pi, ResidueType t, int index, int insertion_code) -> Residue
8572  setup_particle(_ParticleAdaptor pa, ResidueType t, int index, int insertion_code) -> Residue
8573  setup_particle(Model m, ParticleIndex pi, ResidueType t, int index) -> Residue
8574  setup_particle(_ParticleAdaptor pa, ResidueType t, int index) -> Residue
8575  setup_particle(Model m, ParticleIndex pi, ResidueType t) -> Residue
8576  setup_particle(_ParticleAdaptor pa, ResidueType t) -> Residue
8577  setup_particle(Model m, ParticleIndex pi, Residue other) -> Residue
8578  setup_particle(_ParticleAdaptor pa, Residue other) -> Residue
8579  """
8580  return _IMP_atom.Residue_setup_particle(*args)
8581 
8582  @staticmethod
8583  def get_is_setup(*args):
8584  r"""
8585  get_is_setup(_ParticleAdaptor p) -> bool
8586  get_is_setup(Model m, ParticleIndex pi) -> bool
8587  """
8588  return _IMP_atom.Residue_get_is_setup(*args)
8589 
8590  def get_residue_type(self):
8591  r"""get_residue_type(Residue self) -> ResidueType"""
8592  return _IMP_atom.Residue_get_residue_type(self)
8593 
8594  def set_residue_type(self, t):
8595  r"""set_residue_type(Residue self, ResidueType t)"""
8596  return _IMP_atom.Residue_set_residue_type(self, t)
8597 
8598  def get_is_protein(self):
8599  r"""get_is_protein(Residue self) -> bool"""
8600  return _IMP_atom.Residue_get_is_protein(self)
8601 
8602  def get_is_dna(self):
8603  r"""get_is_dna(Residue self) -> bool"""
8604  return _IMP_atom.Residue_get_is_dna(self)
8605 
8606  def get_is_rna(self):
8607  r"""get_is_rna(Residue self) -> bool"""
8608  return _IMP_atom.Residue_get_is_rna(self)
8609 
8610  def get_index(self):
8611  r"""get_index(Residue self) -> IMP::Int"""
8612  return _IMP_atom.Residue_get_index(self)
8613 
8614  def set_index(self, t):
8615  r"""set_index(Residue self, IMP::Int t)"""
8616  return _IMP_atom.Residue_set_index(self, t)
8617 
8618  def get_insertion_code(self):
8619  r"""get_insertion_code(Residue self) -> char"""
8620  return _IMP_atom.Residue_get_insertion_code(self)
8621 
8622  def set_insertion_code(self, insertion_code):
8623  r"""set_insertion_code(Residue self, char insertion_code)"""
8624  return _IMP_atom.Residue_set_insertion_code(self, insertion_code)
8625 
8626  @staticmethod
8627  def get_index_key():
8628  r"""get_index_key() -> IntKey"""
8629  return _IMP_atom.Residue_get_index_key()
8630 
8631  @staticmethod
8632  def get_residue_type_key():
8633  r"""get_residue_type_key() -> IntKey"""
8634  return _IMP_atom.Residue_get_residue_type_key()
8635 
8636  @staticmethod
8637  def get_insertion_code_key():
8638  r"""get_insertion_code_key() -> IntKey"""
8639  return _IMP_atom.Residue_get_insertion_code_key()
8640 
8641  @staticmethod
8642  def get_type_changed_key():
8643  r"""get_type_changed_key() -> TriggerKey"""
8644  return _IMP_atom.Residue_get_type_changed_key()
8645 
8646  def add_attribute(self, *args):
8647  r"""
8648  add_attribute(Residue self, FloatKey k, IMP::Float v, bool opt)
8649  add_attribute(Residue self, FloatKey a0, IMP::Float a1)
8650  add_attribute(Residue self, IntKey a0, IMP::Int a1)
8651  add_attribute(Residue self, FloatsKey a0, IMP::Floats a1)
8652  add_attribute(Residue self, IntsKey a0, IMP::Ints a1)
8653  add_attribute(Residue self, StringKey a0, IMP::String a1)
8654  add_attribute(Residue self, ParticleIndexKey a0, Particle a1)
8655  add_attribute(Residue self, ObjectKey a0, Object a1)
8656  add_attribute(Residue self, SparseFloatKey a0, IMP::Float a1)
8657  add_attribute(Residue self, SparseIntKey a0, IMP::Int a1)
8658  add_attribute(Residue self, SparseStringKey a0, IMP::String a1)
8659  add_attribute(Residue self, SparseParticleIndexKey a0, ParticleIndex a1)
8660  """
8661  return _IMP_atom.Residue_add_attribute(self, *args)
8662 
8663  def get_value(self, *args):
8664  r"""
8665  get_value(Residue self, FloatKey a0) -> IMP::Float
8666  get_value(Residue self, IntKey a0) -> IMP::Int
8667  get_value(Residue self, FloatsKey a0) -> IMP::Floats
8668  get_value(Residue self, IntsKey a0) -> IMP::Ints
8669  get_value(Residue self, StringKey a0) -> IMP::String
8670  get_value(Residue self, ParticleIndexKey a0) -> Particle
8671  get_value(Residue self, ObjectKey a0) -> Object
8672  get_value(Residue self, SparseFloatKey a0) -> IMP::Float
8673  get_value(Residue self, SparseIntKey a0) -> IMP::Int
8674  get_value(Residue self, SparseStringKey a0) -> IMP::String
8675  get_value(Residue self, SparseParticleIndexKey a0) -> ParticleIndex
8676  """
8677  return _IMP_atom.Residue_get_value(self, *args)
8678 
8679  def set_value(self, *args):
8680  r"""
8681  set_value(Residue self, FloatKey a0, IMP::Float a1)
8682  set_value(Residue self, IntKey a0, IMP::Int a1)
8683  set_value(Residue self, FloatsKey a0, IMP::Floats a1)
8684  set_value(Residue self, IntsKey a0, IMP::Ints a1)
8685  set_value(Residue self, StringKey a0, IMP::String a1)
8686  set_value(Residue self, ParticleIndexKey a0, Particle a1)
8687  set_value(Residue self, ObjectKey a0, Object a1)
8688  set_value(Residue self, SparseFloatKey a0, IMP::Float a1)
8689  set_value(Residue self, SparseIntKey a0, IMP::Int a1)
8690  set_value(Residue self, SparseStringKey a0, IMP::String a1)
8691  set_value(Residue self, SparseParticleIndexKey a0, ParticleIndex a1)
8692  """
8693  return _IMP_atom.Residue_set_value(self, *args)
8694 
8695  def remove_attribute(self, *args):
8696  r"""
8697  remove_attribute(Residue self, FloatKey a0)
8698  remove_attribute(Residue self, IntKey a0)
8699  remove_attribute(Residue self, FloatsKey a0)
8700  remove_attribute(Residue self, IntsKey a0)
8701  remove_attribute(Residue self, StringKey a0)
8702  remove_attribute(Residue self, ParticleIndexKey a0)
8703  remove_attribute(Residue self, ObjectKey a0)
8704  remove_attribute(Residue self, SparseFloatKey a0)
8705  remove_attribute(Residue self, SparseIntKey a0)
8706  remove_attribute(Residue self, SparseStringKey a0)
8707  remove_attribute(Residue self, SparseParticleIndexKey a0)
8708  """
8709  return _IMP_atom.Residue_remove_attribute(self, *args)
8710 
8711  def has_attribute(self, *args):
8712  r"""
8713  has_attribute(Residue self, FloatKey a0) -> bool
8714  has_attribute(Residue self, IntKey a0) -> bool
8715  has_attribute(Residue self, FloatsKey a0) -> bool
8716  has_attribute(Residue self, IntsKey a0) -> bool
8717  has_attribute(Residue self, StringKey a0) -> bool
8718  has_attribute(Residue self, ParticleIndexKey a0) -> bool
8719  has_attribute(Residue self, ObjectKey a0) -> bool
8720  has_attribute(Residue self, SparseFloatKey a0) -> bool
8721  has_attribute(Residue self, SparseIntKey a0) -> bool
8722  has_attribute(Residue self, SparseStringKey a0) -> bool
8723  has_attribute(Residue self, SparseParticleIndexKey a0) -> bool
8724  """
8725  return _IMP_atom.Residue_has_attribute(self, *args)
8726 
8727  def get_derivative(self, a0):
8728  r"""get_derivative(Residue self, FloatKey a0) -> double"""
8729  return _IMP_atom.Residue_get_derivative(self, a0)
8730 
8731  def get_name(self):
8732  r"""get_name(Residue self) -> std::string"""
8733  return _IMP_atom.Residue_get_name(self)
8734 
8735  def clear_caches(self):
8736  r"""clear_caches(Residue self)"""
8737  return _IMP_atom.Residue_clear_caches(self)
8738 
8739  def set_name(self, a0):
8740  r"""set_name(Residue self, std::string a0)"""
8741  return _IMP_atom.Residue_set_name(self, a0)
8742 
8743  def set_check_level(self, a0):
8744  r"""set_check_level(Residue self, IMP::CheckLevel a0)"""
8745  return _IMP_atom.Residue_set_check_level(self, a0)
8746 
8747  def add_to_derivative(self, a0, a1, a2):
8748  r"""add_to_derivative(Residue self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
8749  return _IMP_atom.Residue_add_to_derivative(self, a0, a1, a2)
8750 
8751  def set_is_optimized(self, a0, a1):
8752  r"""set_is_optimized(Residue self, FloatKey a0, bool a1)"""
8753  return _IMP_atom.Residue_set_is_optimized(self, a0, a1)
8754 
8755  def get_is_optimized(self, a0):
8756  r"""get_is_optimized(Residue self, FloatKey a0) -> bool"""
8757  return _IMP_atom.Residue_get_is_optimized(self, a0)
8758 
8759  def get_check_level(self):
8760  r"""get_check_level(Residue self) -> IMP::CheckLevel"""
8761  return _IMP_atom.Residue_get_check_level(self)
8762 
8763  def __eq__(self, *args):
8764  r"""
8765  __eq__(Residue self, Residue o) -> bool
8766  __eq__(Residue self, Particle d) -> bool
8767  """
8768  return _IMP_atom.Residue___eq__(self, *args)
8769 
8770  def __ne__(self, *args):
8771  r"""
8772  __ne__(Residue self, Residue o) -> bool
8773  __ne__(Residue self, Particle d) -> bool
8774  """
8775  return _IMP_atom.Residue___ne__(self, *args)
8776 
8777  def __le__(self, *args):
8778  r"""
8779  __le__(Residue self, Residue o) -> bool
8780  __le__(Residue self, Particle d) -> bool
8781  """
8782  return _IMP_atom.Residue___le__(self, *args)
8783 
8784  def __lt__(self, *args):
8785  r"""
8786  __lt__(Residue self, Residue o) -> bool
8787  __lt__(Residue self, Particle d) -> bool
8788  """
8789  return _IMP_atom.Residue___lt__(self, *args)
8790 
8791  def __ge__(self, *args):
8792  r"""
8793  __ge__(Residue self, Residue o) -> bool
8794  __ge__(Residue self, Particle d) -> bool
8795  """
8796  return _IMP_atom.Residue___ge__(self, *args)
8797 
8798  def __gt__(self, *args):
8799  r"""
8800  __gt__(Residue self, Residue o) -> bool
8801  __gt__(Residue self, Particle d) -> bool
8802  """
8803  return _IMP_atom.Residue___gt__(self, *args)
8804 
8805  def __hash__(self):
8806  r"""__hash__(Residue self) -> std::size_t"""
8807  return _IMP_atom.Residue___hash__(self)
8808 
8809  def __str__(self):
8810  r"""__str__(Residue self) -> std::string"""
8811  return _IMP_atom.Residue___str__(self)
8812 
8813  def __repr__(self):
8814  r"""__repr__(Residue self) -> std::string"""
8815  return _IMP_atom.Residue___repr__(self)
8816 
8817  def _get_as_binary(self):
8818  r"""_get_as_binary(Residue self) -> PyObject *"""
8819  return _IMP_atom.Residue__get_as_binary(self)
8820 
8821  def _set_from_binary(self, p):
8822  r"""_set_from_binary(Residue self, PyObject * p)"""
8823  return _IMP_atom.Residue__set_from_binary(self, p)
8824 
8825  def __getstate__(self):
8826  p = self._get_as_binary()
8827  if len(self.__dict__) > 1:
8828  d = self.__dict__.copy()
8829  del d['this']
8830  p = (d, p)
8831  return p
8832 
8833  def __setstate__(self, p):
8834  if not hasattr(self, 'this'):
8835  self.__init__()
8836  if isinstance(p, tuple):
8837  d, p = p
8838  self.__dict__.update(d)
8839  return self._set_from_binary(p)
8840 
8841  __swig_destroy__ = _IMP_atom.delete_Residue
8842 
8843 # Register Residue in _IMP_atom:
8844 _IMP_atom.Residue_swigregister(Residue)
8845 UNK = cvar.UNK
8846 GLY = cvar.GLY
8847 ALA = cvar.ALA
8848 VAL = cvar.VAL
8849 LEU = cvar.LEU
8850 ILE = cvar.ILE
8851 SER = cvar.SER
8852 THR = cvar.THR
8853 CYS = cvar.CYS
8854 MET = cvar.MET
8855 PRO = cvar.PRO
8856 ASP = cvar.ASP
8857 ASN = cvar.ASN
8858 GLU = cvar.GLU
8859 GLN = cvar.GLN
8860 LYS = cvar.LYS
8861 ARG = cvar.ARG
8862 HIS = cvar.HIS
8863 PHE = cvar.PHE
8864 TYR = cvar.TYR
8865 TRP = cvar.TRP
8866 ACE = cvar.ACE
8867 NH2 = cvar.NH2
8868 MSE = cvar.MSE
8869 ADE = cvar.ADE
8870 URA = cvar.URA
8871 CYT = cvar.CYT
8872 GUA = cvar.GUA
8873 THY = cvar.THY
8874 DADE = cvar.DADE
8875 DURA = cvar.DURA
8876 DCYT = cvar.DCYT
8877 DGUA = cvar.DGUA
8878 DTHY = cvar.DTHY
8879 HOH = cvar.HOH
8880 HEME = cvar.HEME
8881 POP = cvar.POP
8882 
8883 
8884 def get_next_residue(rd):
8885  r"""get_next_residue(Residue rd) -> Hierarchy"""
8886  return _IMP_atom.get_next_residue(rd)
8887 
8888 def get_previous_residue(rd):
8889  r"""get_previous_residue(Residue rd) -> Hierarchy"""
8890  return _IMP_atom.get_previous_residue(rd)
8891 
8892 def get_one_letter_code(c):
8893  r"""get_one_letter_code(ResidueType c) -> char"""
8894  return _IMP_atom.get_one_letter_code(c)
8895 BALLS = _IMP_atom.BALLS
8896 
8897 DENSITIES = _IMP_atom.DENSITIES
8898 
8899 class Representation(Hierarchy):
8900  r"""Proxy of C++ IMP::atom::Representation class."""
8901 
8902  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8903 
8904  @staticmethod
8905  def setup_particle(*args):
8906  r"""
8907  setup_particle(Model m, ParticleIndex pi) -> Representation
8908  setup_particle(_ParticleAdaptor pa) -> Representation
8909  setup_particle(Model m, ParticleIndex pi, double resolution) -> Representation
8910  setup_particle(_ParticleAdaptor pa, double resolution) -> Representation
8911  setup_particle(Model m, ParticleIndex pi, Representation other) -> Representation
8912  setup_particle(_ParticleAdaptor pa, Representation other) -> Representation
8913  """
8914  return _IMP_atom.Representation_setup_particle(*args)
8915 
8916  def __init__(self, *args):
8917  r"""
8918  __init__(Representation self) -> Representation
8919  __init__(Representation self, Model m, ParticleIndex id) -> Representation
8920  __init__(Representation self, _ParticleAdaptor d) -> Representation
8921  """
8922  _IMP_atom.Representation_swiginit(self, _IMP_atom.new_Representation(*args))
8923 
8924  def show(self, *args):
8925  r"""show(Representation self, _ostream out=std::cout)"""
8926  return _IMP_atom.Representation_show(self, *args)
8927 
8928  @staticmethod
8929  def get_is_setup(*args):
8930  r"""
8931  get_is_setup(_ParticleAdaptor p) -> bool
8932  get_is_setup(Model m, ParticleIndex pi) -> bool
8933  """
8934  return _IMP_atom.Representation_get_is_setup(*args)
8935 
8936  def get_representation(self, *args):
8937  r"""get_representation(Representation self, double resolution, IMP::atom::RepresentationType type=BALLS) -> Hierarchy"""
8938  return _IMP_atom.Representation_get_representation(self, *args)
8939 
8940  def get_representations(self, *args):
8941  r"""get_representations(Representation self, IMP::atom::RepresentationType type=BALLS) -> IMP::atom::Hierarchies"""
8942  return _IMP_atom.Representation_get_representations(self, *args)
8943 
8944  def add_representation(self, *args):
8945  r"""add_representation(Representation self, _ParticleIndexAdaptor rep, IMP::atom::RepresentationType type=BALLS, double resolution=-1)"""
8946  return _IMP_atom.Representation_add_representation(self, *args)
8947 
8948  def get_resolutions(self, *args):
8949  r"""get_resolutions(Representation self, IMP::atom::RepresentationType type=BALLS) -> IMP::Floats"""
8950  return _IMP_atom.Representation_get_resolutions(self, *args)
8951 
8952  def remove_representation(self, rep):
8953  r"""remove_representation(Representation self, _ParticleIndexAdaptor rep)"""
8954  return _IMP_atom.Representation_remove_representation(self, rep)
8955 
8956  def update_parents(self):
8957  r"""update_parents(Representation self)"""
8958  return _IMP_atom.Representation_update_parents(self)
8959 
8960  def add_attribute(self, *args):
8961  r"""
8962  add_attribute(Representation self, FloatKey k, IMP::Float v, bool opt)
8963  add_attribute(Representation self, FloatKey a0, IMP::Float a1)
8964  add_attribute(Representation self, IntKey a0, IMP::Int a1)
8965  add_attribute(Representation self, FloatsKey a0, IMP::Floats a1)
8966  add_attribute(Representation self, IntsKey a0, IMP::Ints a1)
8967  add_attribute(Representation self, StringKey a0, IMP::String a1)
8968  add_attribute(Representation self, ParticleIndexKey a0, Particle a1)
8969  add_attribute(Representation self, ObjectKey a0, Object a1)
8970  add_attribute(Representation self, SparseFloatKey a0, IMP::Float a1)
8971  add_attribute(Representation self, SparseIntKey a0, IMP::Int a1)
8972  add_attribute(Representation self, SparseStringKey a0, IMP::String a1)
8973  add_attribute(Representation self, SparseParticleIndexKey a0, ParticleIndex a1)
8974  """
8975  return _IMP_atom.Representation_add_attribute(self, *args)
8976 
8977  def get_value(self, *args):
8978  r"""
8979  get_value(Representation self, FloatKey a0) -> IMP::Float
8980  get_value(Representation self, IntKey a0) -> IMP::Int
8981  get_value(Representation self, FloatsKey a0) -> IMP::Floats
8982  get_value(Representation self, IntsKey a0) -> IMP::Ints
8983  get_value(Representation self, StringKey a0) -> IMP::String
8984  get_value(Representation self, ParticleIndexKey a0) -> Particle
8985  get_value(Representation self, ObjectKey a0) -> Object
8986  get_value(Representation self, SparseFloatKey a0) -> IMP::Float
8987  get_value(Representation self, SparseIntKey a0) -> IMP::Int
8988  get_value(Representation self, SparseStringKey a0) -> IMP::String
8989  get_value(Representation self, SparseParticleIndexKey a0) -> ParticleIndex
8990  """
8991  return _IMP_atom.Representation_get_value(self, *args)
8992 
8993  def set_value(self, *args):
8994  r"""
8995  set_value(Representation self, FloatKey a0, IMP::Float a1)
8996  set_value(Representation self, IntKey a0, IMP::Int a1)
8997  set_value(Representation self, FloatsKey a0, IMP::Floats a1)
8998  set_value(Representation self, IntsKey a0, IMP::Ints a1)
8999  set_value(Representation self, StringKey a0, IMP::String a1)
9000  set_value(Representation self, ParticleIndexKey a0, Particle a1)
9001  set_value(Representation self, ObjectKey a0, Object a1)
9002  set_value(Representation self, SparseFloatKey a0, IMP::Float a1)
9003  set_value(Representation self, SparseIntKey a0, IMP::Int a1)
9004  set_value(Representation self, SparseStringKey a0, IMP::String a1)
9005  set_value(Representation self, SparseParticleIndexKey a0, ParticleIndex a1)
9006  """
9007  return _IMP_atom.Representation_set_value(self, *args)
9008 
9009  def remove_attribute(self, *args):
9010  r"""
9011  remove_attribute(Representation self, FloatKey a0)
9012  remove_attribute(Representation self, IntKey a0)
9013  remove_attribute(Representation self, FloatsKey a0)
9014  remove_attribute(Representation self, IntsKey a0)
9015  remove_attribute(Representation self, StringKey a0)
9016  remove_attribute(Representation self, ParticleIndexKey a0)
9017  remove_attribute(Representation self, ObjectKey a0)
9018  remove_attribute(Representation self, SparseFloatKey a0)
9019  remove_attribute(Representation self, SparseIntKey a0)
9020  remove_attribute(Representation self, SparseStringKey a0)
9021  remove_attribute(Representation self, SparseParticleIndexKey a0)
9022  """
9023  return _IMP_atom.Representation_remove_attribute(self, *args)
9024 
9025  def has_attribute(self, *args):
9026  r"""
9027  has_attribute(Representation self, FloatKey a0) -> bool
9028  has_attribute(Representation self, IntKey a0) -> bool
9029  has_attribute(Representation self, FloatsKey a0) -> bool
9030  has_attribute(Representation self, IntsKey a0) -> bool
9031  has_attribute(Representation self, StringKey a0) -> bool
9032  has_attribute(Representation self, ParticleIndexKey a0) -> bool
9033  has_attribute(Representation self, ObjectKey a0) -> bool
9034  has_attribute(Representation self, SparseFloatKey a0) -> bool
9035  has_attribute(Representation self, SparseIntKey a0) -> bool
9036  has_attribute(Representation self, SparseStringKey a0) -> bool
9037  has_attribute(Representation self, SparseParticleIndexKey a0) -> bool
9038  """
9039  return _IMP_atom.Representation_has_attribute(self, *args)
9040 
9041  def get_derivative(self, a0):
9042  r"""get_derivative(Representation self, FloatKey a0) -> double"""
9043  return _IMP_atom.Representation_get_derivative(self, a0)
9044 
9045  def get_name(self):
9046  r"""get_name(Representation self) -> std::string"""
9047  return _IMP_atom.Representation_get_name(self)
9048 
9049  def clear_caches(self):
9050  r"""clear_caches(Representation self)"""
9051  return _IMP_atom.Representation_clear_caches(self)
9052 
9053  def set_name(self, a0):
9054  r"""set_name(Representation self, std::string a0)"""
9055  return _IMP_atom.Representation_set_name(self, a0)
9056 
9057  def set_check_level(self, a0):
9058  r"""set_check_level(Representation self, IMP::CheckLevel a0)"""
9059  return _IMP_atom.Representation_set_check_level(self, a0)
9060 
9061  def add_to_derivative(self, a0, a1, a2):
9062  r"""add_to_derivative(Representation self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9063  return _IMP_atom.Representation_add_to_derivative(self, a0, a1, a2)
9064 
9065  def set_is_optimized(self, a0, a1):
9066  r"""set_is_optimized(Representation self, FloatKey a0, bool a1)"""
9067  return _IMP_atom.Representation_set_is_optimized(self, a0, a1)
9068 
9069  def get_is_optimized(self, a0):
9070  r"""get_is_optimized(Representation self, FloatKey a0) -> bool"""
9071  return _IMP_atom.Representation_get_is_optimized(self, a0)
9072 
9073  def get_check_level(self):
9074  r"""get_check_level(Representation self) -> IMP::CheckLevel"""
9075  return _IMP_atom.Representation_get_check_level(self)
9076 
9077  def __eq__(self, *args):
9078  r"""
9079  __eq__(Representation self, Representation o) -> bool
9080  __eq__(Representation self, Particle d) -> bool
9081  """
9082  return _IMP_atom.Representation___eq__(self, *args)
9083 
9084  def __ne__(self, *args):
9085  r"""
9086  __ne__(Representation self, Representation o) -> bool
9087  __ne__(Representation self, Particle d) -> bool
9088  """
9089  return _IMP_atom.Representation___ne__(self, *args)
9090 
9091  def __le__(self, *args):
9092  r"""
9093  __le__(Representation self, Representation o) -> bool
9094  __le__(Representation self, Particle d) -> bool
9095  """
9096  return _IMP_atom.Representation___le__(self, *args)
9097 
9098  def __lt__(self, *args):
9099  r"""
9100  __lt__(Representation self, Representation o) -> bool
9101  __lt__(Representation self, Particle d) -> bool
9102  """
9103  return _IMP_atom.Representation___lt__(self, *args)
9104 
9105  def __ge__(self, *args):
9106  r"""
9107  __ge__(Representation self, Representation o) -> bool
9108  __ge__(Representation self, Particle d) -> bool
9109  """
9110  return _IMP_atom.Representation___ge__(self, *args)
9111 
9112  def __gt__(self, *args):
9113  r"""
9114  __gt__(Representation self, Representation o) -> bool
9115  __gt__(Representation self, Particle d) -> bool
9116  """
9117  return _IMP_atom.Representation___gt__(self, *args)
9118 
9119  def __hash__(self):
9120  r"""__hash__(Representation self) -> std::size_t"""
9121  return _IMP_atom.Representation___hash__(self)
9122 
9123  def __str__(self):
9124  r"""__str__(Representation self) -> std::string"""
9125  return _IMP_atom.Representation___str__(self)
9126 
9127  def __repr__(self):
9128  r"""__repr__(Representation self) -> std::string"""
9129  return _IMP_atom.Representation___repr__(self)
9130 
9131  def _get_as_binary(self):
9132  r"""_get_as_binary(Representation self) -> PyObject *"""
9133  return _IMP_atom.Representation__get_as_binary(self)
9134 
9135  def _set_from_binary(self, p):
9136  r"""_set_from_binary(Representation self, PyObject * p)"""
9137  return _IMP_atom.Representation__set_from_binary(self, p)
9138 
9139  def __getstate__(self):
9140  p = self._get_as_binary()
9141  if len(self.__dict__) > 1:
9142  d = self.__dict__.copy()
9143  del d['this']
9144  p = (d, p)
9145  return p
9146 
9147  def __setstate__(self, p):
9148  if not hasattr(self, 'this'):
9149  self.__init__()
9150  if isinstance(p, tuple):
9151  d, p = p
9152  self.__dict__.update(d)
9153  return self._set_from_binary(p)
9154 
9155  __swig_destroy__ = _IMP_atom.delete_Representation
9156 
9157 # Register Representation in _IMP_atom:
9158 _IMP_atom.Representation_swigregister(Representation)
9159 ALL_RESOLUTIONS = cvar.ALL_RESOLUTIONS
9160 
9161 
9162 def get_resolution(*args):
9163  r"""
9164  get_resolution(Model m, ParticleIndex pi) -> double
9165  get_resolution(Hierarchy h) -> double
9166  """
9167  return _IMP_atom.get_resolution(*args)
9168 
9169 def get_representation(h, nothrow=False):
9170  r"""get_representation(Hierarchy h, bool nothrow=False) -> Representation"""
9171  return _IMP_atom.get_representation(h, nothrow)
9172 
9173 def show_with_representations(*args):
9174  r"""show_with_representations(Hierarchy h, _ostream out=std::cout)"""
9175  return _IMP_atom.show_with_representations(*args)
9176 class State(Hierarchy):
9177  r"""Proxy of C++ IMP::atom::State class."""
9178 
9179  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9180 
9181  @staticmethod
9182  def setup_particle(*args):
9183  r"""
9184  setup_particle(Model m, ParticleIndex pi, unsigned int index) -> State
9185  setup_particle(_ParticleAdaptor pa, unsigned int index) -> State
9186  setup_particle(Model m, ParticleIndex pi, State other) -> State
9187  setup_particle(_ParticleAdaptor pa, State other) -> State
9188  """
9189  return _IMP_atom.State_setup_particle(*args)
9190 
9191  def __init__(self, *args):
9192  r"""
9193  __init__(State self) -> State
9194  __init__(State self, Model m, ParticleIndex id) -> State
9195  __init__(State self, _ParticleAdaptor d) -> State
9196  """
9197  _IMP_atom.State_swiginit(self, _IMP_atom.new_State(*args))
9198 
9199  def show(self, *args):
9200  r"""show(State self, _ostream out=std::cout)"""
9201  return _IMP_atom.State_show(self, *args)
9202 
9203  @staticmethod
9204  def get_is_setup(*args):
9205  r"""
9206  get_is_setup(_ParticleAdaptor p) -> bool
9207  get_is_setup(Model m, ParticleIndex pi) -> bool
9208  """
9209  return _IMP_atom.State_get_is_setup(*args)
9210 
9211  def get_state_index(self):
9212  r"""get_state_index(State self) -> unsigned int"""
9213  return _IMP_atom.State_get_state_index(self)
9214 
9215  def add_attribute(self, *args):
9216  r"""
9217  add_attribute(State self, FloatKey k, IMP::Float v, bool opt)
9218  add_attribute(State self, FloatKey a0, IMP::Float a1)
9219  add_attribute(State self, IntKey a0, IMP::Int a1)
9220  add_attribute(State self, FloatsKey a0, IMP::Floats a1)
9221  add_attribute(State self, IntsKey a0, IMP::Ints a1)
9222  add_attribute(State self, StringKey a0, IMP::String a1)
9223  add_attribute(State self, ParticleIndexKey a0, Particle a1)
9224  add_attribute(State self, ObjectKey a0, Object a1)
9225  add_attribute(State self, SparseFloatKey a0, IMP::Float a1)
9226  add_attribute(State self, SparseIntKey a0, IMP::Int a1)
9227  add_attribute(State self, SparseStringKey a0, IMP::String a1)
9228  add_attribute(State self, SparseParticleIndexKey a0, ParticleIndex a1)
9229  """
9230  return _IMP_atom.State_add_attribute(self, *args)
9231 
9232  def get_value(self, *args):
9233  r"""
9234  get_value(State self, FloatKey a0) -> IMP::Float
9235  get_value(State self, IntKey a0) -> IMP::Int
9236  get_value(State self, FloatsKey a0) -> IMP::Floats
9237  get_value(State self, IntsKey a0) -> IMP::Ints
9238  get_value(State self, StringKey a0) -> IMP::String
9239  get_value(State self, ParticleIndexKey a0) -> Particle
9240  get_value(State self, ObjectKey a0) -> Object
9241  get_value(State self, SparseFloatKey a0) -> IMP::Float
9242  get_value(State self, SparseIntKey a0) -> IMP::Int
9243  get_value(State self, SparseStringKey a0) -> IMP::String
9244  get_value(State self, SparseParticleIndexKey a0) -> ParticleIndex
9245  """
9246  return _IMP_atom.State_get_value(self, *args)
9247 
9248  def set_value(self, *args):
9249  r"""
9250  set_value(State self, FloatKey a0, IMP::Float a1)
9251  set_value(State self, IntKey a0, IMP::Int a1)
9252  set_value(State self, FloatsKey a0, IMP::Floats a1)
9253  set_value(State self, IntsKey a0, IMP::Ints a1)
9254  set_value(State self, StringKey a0, IMP::String a1)
9255  set_value(State self, ParticleIndexKey a0, Particle a1)
9256  set_value(State self, ObjectKey a0, Object a1)
9257  set_value(State self, SparseFloatKey a0, IMP::Float a1)
9258  set_value(State self, SparseIntKey a0, IMP::Int a1)
9259  set_value(State self, SparseStringKey a0, IMP::String a1)
9260  set_value(State self, SparseParticleIndexKey a0, ParticleIndex a1)
9261  """
9262  return _IMP_atom.State_set_value(self, *args)
9263 
9264  def remove_attribute(self, *args):
9265  r"""
9266  remove_attribute(State self, FloatKey a0)
9267  remove_attribute(State self, IntKey a0)
9268  remove_attribute(State self, FloatsKey a0)
9269  remove_attribute(State self, IntsKey a0)
9270  remove_attribute(State self, StringKey a0)
9271  remove_attribute(State self, ParticleIndexKey a0)
9272  remove_attribute(State self, ObjectKey a0)
9273  remove_attribute(State self, SparseFloatKey a0)
9274  remove_attribute(State self, SparseIntKey a0)
9275  remove_attribute(State self, SparseStringKey a0)
9276  remove_attribute(State self, SparseParticleIndexKey a0)
9277  """
9278  return _IMP_atom.State_remove_attribute(self, *args)
9279 
9280  def has_attribute(self, *args):
9281  r"""
9282  has_attribute(State self, FloatKey a0) -> bool
9283  has_attribute(State self, IntKey a0) -> bool
9284  has_attribute(State self, FloatsKey a0) -> bool
9285  has_attribute(State self, IntsKey a0) -> bool
9286  has_attribute(State self, StringKey a0) -> bool
9287  has_attribute(State self, ParticleIndexKey a0) -> bool
9288  has_attribute(State self, ObjectKey a0) -> bool
9289  has_attribute(State self, SparseFloatKey a0) -> bool
9290  has_attribute(State self, SparseIntKey a0) -> bool
9291  has_attribute(State self, SparseStringKey a0) -> bool
9292  has_attribute(State self, SparseParticleIndexKey a0) -> bool
9293  """
9294  return _IMP_atom.State_has_attribute(self, *args)
9295 
9296  def get_derivative(self, a0):
9297  r"""get_derivative(State self, FloatKey a0) -> double"""
9298  return _IMP_atom.State_get_derivative(self, a0)
9299 
9300  def get_name(self):
9301  r"""get_name(State self) -> std::string"""
9302  return _IMP_atom.State_get_name(self)
9303 
9304  def clear_caches(self):
9305  r"""clear_caches(State self)"""
9306  return _IMP_atom.State_clear_caches(self)
9307 
9308  def set_name(self, a0):
9309  r"""set_name(State self, std::string a0)"""
9310  return _IMP_atom.State_set_name(self, a0)
9311 
9312  def set_check_level(self, a0):
9313  r"""set_check_level(State self, IMP::CheckLevel a0)"""
9314  return _IMP_atom.State_set_check_level(self, a0)
9315 
9316  def add_to_derivative(self, a0, a1, a2):
9317  r"""add_to_derivative(State self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9318  return _IMP_atom.State_add_to_derivative(self, a0, a1, a2)
9319 
9320  def set_is_optimized(self, a0, a1):
9321  r"""set_is_optimized(State self, FloatKey a0, bool a1)"""
9322  return _IMP_atom.State_set_is_optimized(self, a0, a1)
9323 
9324  def get_is_optimized(self, a0):
9325  r"""get_is_optimized(State self, FloatKey a0) -> bool"""
9326  return _IMP_atom.State_get_is_optimized(self, a0)
9327 
9328  def get_check_level(self):
9329  r"""get_check_level(State self) -> IMP::CheckLevel"""
9330  return _IMP_atom.State_get_check_level(self)
9331 
9332  def __eq__(self, *args):
9333  r"""
9334  __eq__(State self, State o) -> bool
9335  __eq__(State self, Particle d) -> bool
9336  """
9337  return _IMP_atom.State___eq__(self, *args)
9338 
9339  def __ne__(self, *args):
9340  r"""
9341  __ne__(State self, State o) -> bool
9342  __ne__(State self, Particle d) -> bool
9343  """
9344  return _IMP_atom.State___ne__(self, *args)
9345 
9346  def __le__(self, *args):
9347  r"""
9348  __le__(State self, State o) -> bool
9349  __le__(State self, Particle d) -> bool
9350  """
9351  return _IMP_atom.State___le__(self, *args)
9352 
9353  def __lt__(self, *args):
9354  r"""
9355  __lt__(State self, State o) -> bool
9356  __lt__(State self, Particle d) -> bool
9357  """
9358  return _IMP_atom.State___lt__(self, *args)
9359 
9360  def __ge__(self, *args):
9361  r"""
9362  __ge__(State self, State o) -> bool
9363  __ge__(State self, Particle d) -> bool
9364  """
9365  return _IMP_atom.State___ge__(self, *args)
9366 
9367  def __gt__(self, *args):
9368  r"""
9369  __gt__(State self, State o) -> bool
9370  __gt__(State self, Particle d) -> bool
9371  """
9372  return _IMP_atom.State___gt__(self, *args)
9373 
9374  def __hash__(self):
9375  r"""__hash__(State self) -> std::size_t"""
9376  return _IMP_atom.State___hash__(self)
9377 
9378  def __str__(self):
9379  r"""__str__(State self) -> std::string"""
9380  return _IMP_atom.State___str__(self)
9381 
9382  def __repr__(self):
9383  r"""__repr__(State self) -> std::string"""
9384  return _IMP_atom.State___repr__(self)
9385 
9386  def _get_as_binary(self):
9387  r"""_get_as_binary(State self) -> PyObject *"""
9388  return _IMP_atom.State__get_as_binary(self)
9389 
9390  def _set_from_binary(self, p):
9391  r"""_set_from_binary(State self, PyObject * p)"""
9392  return _IMP_atom.State__set_from_binary(self, p)
9393 
9394  def __getstate__(self):
9395  p = self._get_as_binary()
9396  if len(self.__dict__) > 1:
9397  d = self.__dict__.copy()
9398  del d['this']
9399  p = (d, p)
9400  return p
9401 
9402  def __setstate__(self, p):
9403  if not hasattr(self, 'this'):
9404  self.__init__()
9405  if isinstance(p, tuple):
9406  d, p = p
9407  self.__dict__.update(d)
9408  return self._set_from_binary(p)
9409 
9410  __swig_destroy__ = _IMP_atom.delete_State
9411 
9412 # Register State in _IMP_atom:
9413 _IMP_atom.State_swigregister(State)
9414 
9415 def get_state_index(h):
9416  r"""get_state_index(Hierarchy h) -> int"""
9417  return _IMP_atom.get_state_index(h)
9418 
9419 def get_phi_dihedral_atoms(rd):
9420  r"""get_phi_dihedral_atoms(Residue rd) -> IMP::atom::Atoms"""
9421  return _IMP_atom.get_phi_dihedral_atoms(rd)
9422 
9423 def get_psi_dihedral_atoms(rd):
9424  r"""get_psi_dihedral_atoms(Residue rd) -> IMP::atom::Atoms"""
9425  return _IMP_atom.get_psi_dihedral_atoms(rd)
9426 
9427 def get_omega_dihedral_atoms(rd):
9428  r"""get_omega_dihedral_atoms(Residue rd) -> IMP::atom::Atoms"""
9429  return _IMP_atom.get_omega_dihedral_atoms(rd)
9430 
9432  r"""get_chi_dihedral_atom_types(ResidueType rt) -> IMP::Vector< IMP::atom::AtomTypes >"""
9433  return _IMP_atom.get_chi_dihedral_atom_types(rt)
9434 
9435 def get_chi_dihedral_atoms(rd):
9436  r"""get_chi_dihedral_atoms(Residue rd) -> IMP::Vector< IMP::atom::Atoms >"""
9437  return _IMP_atom.get_chi_dihedral_atoms(rd)
9438 
9440  r"""get_chi_dihedral_particle_indexes(Residue rd) -> IMP::ParticleIndexQuads"""
9441  return _IMP_atom.get_chi_dihedral_particle_indexes(rd)
9442 class Molecule(Hierarchy):
9443  r"""Proxy of C++ IMP::atom::Molecule class."""
9444 
9445  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9446 
9447  def __init__(self, *args):
9448  r"""
9449  __init__(Molecule self) -> Molecule
9450  __init__(Molecule self, Model m, ParticleIndex id) -> Molecule
9451  __init__(Molecule self, _ParticleAdaptor d) -> Molecule
9452  """
9453  _IMP_atom.Molecule_swiginit(self, _IMP_atom.new_Molecule(*args))
9454 
9455  def show(self, *args):
9456  r"""show(Molecule self, _ostream out=std::cout)"""
9457  return _IMP_atom.Molecule_show(self, *args)
9458 
9459  @staticmethod
9460  def setup_particle(*args):
9461  r"""
9462  setup_particle(Model m, ParticleIndex pi) -> Molecule
9463  setup_particle(_ParticleAdaptor pa) -> Molecule
9464  setup_particle(Model m, ParticleIndex pi, Molecule other) -> Molecule
9465  setup_particle(_ParticleAdaptor pa, Molecule other) -> Molecule
9466  """
9467  return _IMP_atom.Molecule_setup_particle(*args)
9468 
9469  @staticmethod
9470  def get_is_setup(*args):
9471  r"""
9472  get_is_setup(_ParticleAdaptor p) -> bool
9473  get_is_setup(Model m, ParticleIndex pi) -> bool
9474  """
9475  return _IMP_atom.Molecule_get_is_setup(*args)
9476 
9477  def add_attribute(self, *args):
9478  r"""
9479  add_attribute(Molecule self, FloatKey k, IMP::Float v, bool opt)
9480  add_attribute(Molecule self, FloatKey a0, IMP::Float a1)
9481  add_attribute(Molecule self, IntKey a0, IMP::Int a1)
9482  add_attribute(Molecule self, FloatsKey a0, IMP::Floats a1)
9483  add_attribute(Molecule self, IntsKey a0, IMP::Ints a1)
9484  add_attribute(Molecule self, StringKey a0, IMP::String a1)
9485  add_attribute(Molecule self, ParticleIndexKey a0, Particle a1)
9486  add_attribute(Molecule self, ObjectKey a0, Object a1)
9487  add_attribute(Molecule self, SparseFloatKey a0, IMP::Float a1)
9488  add_attribute(Molecule self, SparseIntKey a0, IMP::Int a1)
9489  add_attribute(Molecule self, SparseStringKey a0, IMP::String a1)
9490  add_attribute(Molecule self, SparseParticleIndexKey a0, ParticleIndex a1)
9491  """
9492  return _IMP_atom.Molecule_add_attribute(self, *args)
9493 
9494  def get_value(self, *args):
9495  r"""
9496  get_value(Molecule self, FloatKey a0) -> IMP::Float
9497  get_value(Molecule self, IntKey a0) -> IMP::Int
9498  get_value(Molecule self, FloatsKey a0) -> IMP::Floats
9499  get_value(Molecule self, IntsKey a0) -> IMP::Ints
9500  get_value(Molecule self, StringKey a0) -> IMP::String
9501  get_value(Molecule self, ParticleIndexKey a0) -> Particle
9502  get_value(Molecule self, ObjectKey a0) -> Object
9503  get_value(Molecule self, SparseFloatKey a0) -> IMP::Float
9504  get_value(Molecule self, SparseIntKey a0) -> IMP::Int
9505  get_value(Molecule self, SparseStringKey a0) -> IMP::String
9506  get_value(Molecule self, SparseParticleIndexKey a0) -> ParticleIndex
9507  """
9508  return _IMP_atom.Molecule_get_value(self, *args)
9509 
9510  def set_value(self, *args):
9511  r"""
9512  set_value(Molecule self, FloatKey a0, IMP::Float a1)
9513  set_value(Molecule self, IntKey a0, IMP::Int a1)
9514  set_value(Molecule self, FloatsKey a0, IMP::Floats a1)
9515  set_value(Molecule self, IntsKey a0, IMP::Ints a1)
9516  set_value(Molecule self, StringKey a0, IMP::String a1)
9517  set_value(Molecule self, ParticleIndexKey a0, Particle a1)
9518  set_value(Molecule self, ObjectKey a0, Object a1)
9519  set_value(Molecule self, SparseFloatKey a0, IMP::Float a1)
9520  set_value(Molecule self, SparseIntKey a0, IMP::Int a1)
9521  set_value(Molecule self, SparseStringKey a0, IMP::String a1)
9522  set_value(Molecule self, SparseParticleIndexKey a0, ParticleIndex a1)
9523  """
9524  return _IMP_atom.Molecule_set_value(self, *args)
9525 
9526  def remove_attribute(self, *args):
9527  r"""
9528  remove_attribute(Molecule self, FloatKey a0)
9529  remove_attribute(Molecule self, IntKey a0)
9530  remove_attribute(Molecule self, FloatsKey a0)
9531  remove_attribute(Molecule self, IntsKey a0)
9532  remove_attribute(Molecule self, StringKey a0)
9533  remove_attribute(Molecule self, ParticleIndexKey a0)
9534  remove_attribute(Molecule self, ObjectKey a0)
9535  remove_attribute(Molecule self, SparseFloatKey a0)
9536  remove_attribute(Molecule self, SparseIntKey a0)
9537  remove_attribute(Molecule self, SparseStringKey a0)
9538  remove_attribute(Molecule self, SparseParticleIndexKey a0)
9539  """
9540  return _IMP_atom.Molecule_remove_attribute(self, *args)
9541 
9542  def has_attribute(self, *args):
9543  r"""
9544  has_attribute(Molecule self, FloatKey a0) -> bool
9545  has_attribute(Molecule self, IntKey a0) -> bool
9546  has_attribute(Molecule self, FloatsKey a0) -> bool
9547  has_attribute(Molecule self, IntsKey a0) -> bool
9548  has_attribute(Molecule self, StringKey a0) -> bool
9549  has_attribute(Molecule self, ParticleIndexKey a0) -> bool
9550  has_attribute(Molecule self, ObjectKey a0) -> bool
9551  has_attribute(Molecule self, SparseFloatKey a0) -> bool
9552  has_attribute(Molecule self, SparseIntKey a0) -> bool
9553  has_attribute(Molecule self, SparseStringKey a0) -> bool
9554  has_attribute(Molecule self, SparseParticleIndexKey a0) -> bool
9555  """
9556  return _IMP_atom.Molecule_has_attribute(self, *args)
9557 
9558  def get_derivative(self, a0):
9559  r"""get_derivative(Molecule self, FloatKey a0) -> double"""
9560  return _IMP_atom.Molecule_get_derivative(self, a0)
9561 
9562  def get_name(self):
9563  r"""get_name(Molecule self) -> std::string"""
9564  return _IMP_atom.Molecule_get_name(self)
9565 
9566  def clear_caches(self):
9567  r"""clear_caches(Molecule self)"""
9568  return _IMP_atom.Molecule_clear_caches(self)
9569 
9570  def set_name(self, a0):
9571  r"""set_name(Molecule self, std::string a0)"""
9572  return _IMP_atom.Molecule_set_name(self, a0)
9573 
9574  def set_check_level(self, a0):
9575  r"""set_check_level(Molecule self, IMP::CheckLevel a0)"""
9576  return _IMP_atom.Molecule_set_check_level(self, a0)
9577 
9578  def add_to_derivative(self, a0, a1, a2):
9579  r"""add_to_derivative(Molecule self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9580  return _IMP_atom.Molecule_add_to_derivative(self, a0, a1, a2)
9581 
9582  def set_is_optimized(self, a0, a1):
9583  r"""set_is_optimized(Molecule self, FloatKey a0, bool a1)"""
9584  return _IMP_atom.Molecule_set_is_optimized(self, a0, a1)
9585 
9586  def get_is_optimized(self, a0):
9587  r"""get_is_optimized(Molecule self, FloatKey a0) -> bool"""
9588  return _IMP_atom.Molecule_get_is_optimized(self, a0)
9589 
9590  def get_check_level(self):
9591  r"""get_check_level(Molecule self) -> IMP::CheckLevel"""
9592  return _IMP_atom.Molecule_get_check_level(self)
9593 
9594  def __eq__(self, *args):
9595  r"""
9596  __eq__(Molecule self, Molecule o) -> bool
9597  __eq__(Molecule self, Particle d) -> bool
9598  """
9599  return _IMP_atom.Molecule___eq__(self, *args)
9600 
9601  def __ne__(self, *args):
9602  r"""
9603  __ne__(Molecule self, Molecule o) -> bool
9604  __ne__(Molecule self, Particle d) -> bool
9605  """
9606  return _IMP_atom.Molecule___ne__(self, *args)
9607 
9608  def __le__(self, *args):
9609  r"""
9610  __le__(Molecule self, Molecule o) -> bool
9611  __le__(Molecule self, Particle d) -> bool
9612  """
9613  return _IMP_atom.Molecule___le__(self, *args)
9614 
9615  def __lt__(self, *args):
9616  r"""
9617  __lt__(Molecule self, Molecule o) -> bool
9618  __lt__(Molecule self, Particle d) -> bool
9619  """
9620  return _IMP_atom.Molecule___lt__(self, *args)
9621 
9622  def __ge__(self, *args):
9623  r"""
9624  __ge__(Molecule self, Molecule o) -> bool
9625  __ge__(Molecule self, Particle d) -> bool
9626  """
9627  return _IMP_atom.Molecule___ge__(self, *args)
9628 
9629  def __gt__(self, *args):
9630  r"""
9631  __gt__(Molecule self, Molecule o) -> bool
9632  __gt__(Molecule self, Particle d) -> bool
9633  """
9634  return _IMP_atom.Molecule___gt__(self, *args)
9635 
9636  def __hash__(self):
9637  r"""__hash__(Molecule self) -> std::size_t"""
9638  return _IMP_atom.Molecule___hash__(self)
9639 
9640  def __str__(self):
9641  r"""__str__(Molecule self) -> std::string"""
9642  return _IMP_atom.Molecule___str__(self)
9643 
9644  def __repr__(self):
9645  r"""__repr__(Molecule self) -> std::string"""
9646  return _IMP_atom.Molecule___repr__(self)
9647 
9648  def _get_as_binary(self):
9649  r"""_get_as_binary(Molecule self) -> PyObject *"""
9650  return _IMP_atom.Molecule__get_as_binary(self)
9651 
9652  def _set_from_binary(self, p):
9653  r"""_set_from_binary(Molecule self, PyObject * p)"""
9654  return _IMP_atom.Molecule__set_from_binary(self, p)
9655 
9656  def __getstate__(self):
9657  p = self._get_as_binary()
9658  if len(self.__dict__) > 1:
9659  d = self.__dict__.copy()
9660  del d['this']
9661  p = (d, p)
9662  return p
9663 
9664  def __setstate__(self, p):
9665  if not hasattr(self, 'this'):
9666  self.__init__()
9667  if isinstance(p, tuple):
9668  d, p = p
9669  self.__dict__.update(d)
9670  return self._set_from_binary(p)
9671 
9672  __swig_destroy__ = _IMP_atom.delete_Molecule
9673 
9674 # Register Molecule in _IMP_atom:
9675 _IMP_atom.Molecule_swigregister(Molecule)
9676 
9677 def get_molecule_name(h):
9678  r"""get_molecule_name(Hierarchy h) -> std::string"""
9679  return _IMP_atom.get_molecule_name(h)
9680 class Copy(Molecule):
9681  r"""Proxy of C++ IMP::atom::Copy class."""
9682 
9683  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9684 
9685  @staticmethod
9686  def get_copy_index_key():
9687  r"""get_copy_index_key() -> IntKey"""
9688  return _IMP_atom.Copy_get_copy_index_key()
9689 
9690  def __init__(self, *args):
9691  r"""
9692  __init__(Copy self) -> Copy
9693  __init__(Copy self, Model m, ParticleIndex id) -> Copy
9694  __init__(Copy self, _ParticleAdaptor d) -> Copy
9695  """
9696  _IMP_atom.Copy_swiginit(self, _IMP_atom.new_Copy(*args))
9697 
9698  def show(self, *args):
9699  r"""show(Copy self, _ostream out=std::cout)"""
9700  return _IMP_atom.Copy_show(self, *args)
9701 
9702  @staticmethod
9703  def setup_particle(*args):
9704  r"""
9705  setup_particle(Model m, ParticleIndex pi, IMP::Int number) -> Copy
9706  setup_particle(_ParticleAdaptor pa, IMP::Int number) -> Copy
9707  """
9708  return _IMP_atom.Copy_setup_particle(*args)
9709 
9710  @staticmethod
9711  def get_is_setup(*args):
9712  r"""
9713  get_is_setup(_ParticleAdaptor p) -> bool
9714  get_is_setup(Model m, ParticleIndex pi) -> bool
9715  """
9716  return _IMP_atom.Copy_get_is_setup(*args)
9717 
9718  def get_copy_index(self):
9719  r"""get_copy_index(Copy self) -> int"""
9720  return _IMP_atom.Copy_get_copy_index(self)
9721 
9722  def add_attribute(self, *args):
9723  r"""
9724  add_attribute(Copy self, FloatKey k, IMP::Float v, bool opt)
9725  add_attribute(Copy self, FloatKey a0, IMP::Float a1)
9726  add_attribute(Copy self, IntKey a0, IMP::Int a1)
9727  add_attribute(Copy self, FloatsKey a0, IMP::Floats a1)
9728  add_attribute(Copy self, IntsKey a0, IMP::Ints a1)
9729  add_attribute(Copy self, StringKey a0, IMP::String a1)
9730  add_attribute(Copy self, ParticleIndexKey a0, Particle a1)
9731  add_attribute(Copy self, ObjectKey a0, Object a1)
9732  add_attribute(Copy self, SparseFloatKey a0, IMP::Float a1)
9733  add_attribute(Copy self, SparseIntKey a0, IMP::Int a1)
9734  add_attribute(Copy self, SparseStringKey a0, IMP::String a1)
9735  add_attribute(Copy self, SparseParticleIndexKey a0, ParticleIndex a1)
9736  """
9737  return _IMP_atom.Copy_add_attribute(self, *args)
9738 
9739  def get_value(self, *args):
9740  r"""
9741  get_value(Copy self, FloatKey a0) -> IMP::Float
9742  get_value(Copy self, IntKey a0) -> IMP::Int
9743  get_value(Copy self, FloatsKey a0) -> IMP::Floats
9744  get_value(Copy self, IntsKey a0) -> IMP::Ints
9745  get_value(Copy self, StringKey a0) -> IMP::String
9746  get_value(Copy self, ParticleIndexKey a0) -> Particle
9747  get_value(Copy self, ObjectKey a0) -> Object
9748  get_value(Copy self, SparseFloatKey a0) -> IMP::Float
9749  get_value(Copy self, SparseIntKey a0) -> IMP::Int
9750  get_value(Copy self, SparseStringKey a0) -> IMP::String
9751  get_value(Copy self, SparseParticleIndexKey a0) -> ParticleIndex
9752  """
9753  return _IMP_atom.Copy_get_value(self, *args)
9754 
9755  def set_value(self, *args):
9756  r"""
9757  set_value(Copy self, FloatKey a0, IMP::Float a1)
9758  set_value(Copy self, IntKey a0, IMP::Int a1)
9759  set_value(Copy self, FloatsKey a0, IMP::Floats a1)
9760  set_value(Copy self, IntsKey a0, IMP::Ints a1)
9761  set_value(Copy self, StringKey a0, IMP::String a1)
9762  set_value(Copy self, ParticleIndexKey a0, Particle a1)
9763  set_value(Copy self, ObjectKey a0, Object a1)
9764  set_value(Copy self, SparseFloatKey a0, IMP::Float a1)
9765  set_value(Copy self, SparseIntKey a0, IMP::Int a1)
9766  set_value(Copy self, SparseStringKey a0, IMP::String a1)
9767  set_value(Copy self, SparseParticleIndexKey a0, ParticleIndex a1)
9768  """
9769  return _IMP_atom.Copy_set_value(self, *args)
9770 
9771  def remove_attribute(self, *args):
9772  r"""
9773  remove_attribute(Copy self, FloatKey a0)
9774  remove_attribute(Copy self, IntKey a0)
9775  remove_attribute(Copy self, FloatsKey a0)
9776  remove_attribute(Copy self, IntsKey a0)
9777  remove_attribute(Copy self, StringKey a0)
9778  remove_attribute(Copy self, ParticleIndexKey a0)
9779  remove_attribute(Copy self, ObjectKey a0)
9780  remove_attribute(Copy self, SparseFloatKey a0)
9781  remove_attribute(Copy self, SparseIntKey a0)
9782  remove_attribute(Copy self, SparseStringKey a0)
9783  remove_attribute(Copy self, SparseParticleIndexKey a0)
9784  """
9785  return _IMP_atom.Copy_remove_attribute(self, *args)
9786 
9787  def has_attribute(self, *args):
9788  r"""
9789  has_attribute(Copy self, FloatKey a0) -> bool
9790  has_attribute(Copy self, IntKey a0) -> bool
9791  has_attribute(Copy self, FloatsKey a0) -> bool
9792  has_attribute(Copy self, IntsKey a0) -> bool
9793  has_attribute(Copy self, StringKey a0) -> bool
9794  has_attribute(Copy self, ParticleIndexKey a0) -> bool
9795  has_attribute(Copy self, ObjectKey a0) -> bool
9796  has_attribute(Copy self, SparseFloatKey a0) -> bool
9797  has_attribute(Copy self, SparseIntKey a0) -> bool
9798  has_attribute(Copy self, SparseStringKey a0) -> bool
9799  has_attribute(Copy self, SparseParticleIndexKey a0) -> bool
9800  """
9801  return _IMP_atom.Copy_has_attribute(self, *args)
9802 
9803  def get_derivative(self, a0):
9804  r"""get_derivative(Copy self, FloatKey a0) -> double"""
9805  return _IMP_atom.Copy_get_derivative(self, a0)
9806 
9807  def get_name(self):
9808  r"""get_name(Copy self) -> std::string"""
9809  return _IMP_atom.Copy_get_name(self)
9810 
9811  def clear_caches(self):
9812  r"""clear_caches(Copy self)"""
9813  return _IMP_atom.Copy_clear_caches(self)
9814 
9815  def set_name(self, a0):
9816  r"""set_name(Copy self, std::string a0)"""
9817  return _IMP_atom.Copy_set_name(self, a0)
9818 
9819  def set_check_level(self, a0):
9820  r"""set_check_level(Copy self, IMP::CheckLevel a0)"""
9821  return _IMP_atom.Copy_set_check_level(self, a0)
9822 
9823  def add_to_derivative(self, a0, a1, a2):
9824  r"""add_to_derivative(Copy self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9825  return _IMP_atom.Copy_add_to_derivative(self, a0, a1, a2)
9826 
9827  def set_is_optimized(self, a0, a1):
9828  r"""set_is_optimized(Copy self, FloatKey a0, bool a1)"""
9829  return _IMP_atom.Copy_set_is_optimized(self, a0, a1)
9830 
9831  def get_is_optimized(self, a0):
9832  r"""get_is_optimized(Copy self, FloatKey a0) -> bool"""
9833  return _IMP_atom.Copy_get_is_optimized(self, a0)
9834 
9835  def get_check_level(self):
9836  r"""get_check_level(Copy self) -> IMP::CheckLevel"""
9837  return _IMP_atom.Copy_get_check_level(self)
9838 
9839  def __eq__(self, *args):
9840  r"""
9841  __eq__(Copy self, Copy o) -> bool
9842  __eq__(Copy self, Particle d) -> bool
9843  """
9844  return _IMP_atom.Copy___eq__(self, *args)
9845 
9846  def __ne__(self, *args):
9847  r"""
9848  __ne__(Copy self, Copy o) -> bool
9849  __ne__(Copy self, Particle d) -> bool
9850  """
9851  return _IMP_atom.Copy___ne__(self, *args)
9852 
9853  def __le__(self, *args):
9854  r"""
9855  __le__(Copy self, Copy o) -> bool
9856  __le__(Copy self, Particle d) -> bool
9857  """
9858  return _IMP_atom.Copy___le__(self, *args)
9859 
9860  def __lt__(self, *args):
9861  r"""
9862  __lt__(Copy self, Copy o) -> bool
9863  __lt__(Copy self, Particle d) -> bool
9864  """
9865  return _IMP_atom.Copy___lt__(self, *args)
9866 
9867  def __ge__(self, *args):
9868  r"""
9869  __ge__(Copy self, Copy o) -> bool
9870  __ge__(Copy self, Particle d) -> bool
9871  """
9872  return _IMP_atom.Copy___ge__(self, *args)
9873 
9874  def __gt__(self, *args):
9875  r"""
9876  __gt__(Copy self, Copy o) -> bool
9877  __gt__(Copy self, Particle d) -> bool
9878  """
9879  return _IMP_atom.Copy___gt__(self, *args)
9880 
9881  def __hash__(self):
9882  r"""__hash__(Copy self) -> std::size_t"""
9883  return _IMP_atom.Copy___hash__(self)
9884 
9885  def __str__(self):
9886  r"""__str__(Copy self) -> std::string"""
9887  return _IMP_atom.Copy___str__(self)
9888 
9889  def __repr__(self):
9890  r"""__repr__(Copy self) -> std::string"""
9891  return _IMP_atom.Copy___repr__(self)
9892 
9893  def _get_as_binary(self):
9894  r"""_get_as_binary(Copy self) -> PyObject *"""
9895  return _IMP_atom.Copy__get_as_binary(self)
9896 
9897  def _set_from_binary(self, p):
9898  r"""_set_from_binary(Copy self, PyObject * p)"""
9899  return _IMP_atom.Copy__set_from_binary(self, p)
9900 
9901  def __getstate__(self):
9902  p = self._get_as_binary()
9903  if len(self.__dict__) > 1:
9904  d = self.__dict__.copy()
9905  del d['this']
9906  p = (d, p)
9907  return p
9908 
9909  def __setstate__(self, p):
9910  if not hasattr(self, 'this'):
9911  self.__init__()
9912  if isinstance(p, tuple):
9913  d, p = p
9914  self.__dict__.update(d)
9915  return self._set_from_binary(p)
9916 
9917  __swig_destroy__ = _IMP_atom.delete_Copy
9918 
9919 # Register Copy in _IMP_atom:
9920 _IMP_atom.Copy_swigregister(Copy)
9921 
9922 def get_copy_index(h):
9923  r"""get_copy_index(Hierarchy h) -> int"""
9924  return _IMP_atom.get_copy_index(h)
9925 class Chain(Hierarchy):
9926  r"""Proxy of C++ IMP::atom::Chain class."""
9927 
9928  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9929 
9930  def __init__(self, *args):
9931  r"""
9932  __init__(Chain self) -> Chain
9933  __init__(Chain self, Model m, ParticleIndex id) -> Chain
9934  __init__(Chain self, _ParticleAdaptor d) -> Chain
9935  """
9936  _IMP_atom.Chain_swiginit(self, _IMP_atom.new_Chain(*args))
9937 
9938  def show(self, *args):
9939  r"""show(Chain self, _ostream out=std::cout)"""
9940  return _IMP_atom.Chain_show(self, *args)
9941 
9942  @staticmethod
9943  def setup_particle(*args):
9944  r"""
9945  setup_particle(Model m, ParticleIndex pi, std::string id) -> Chain
9946  setup_particle(_ParticleAdaptor pa, std::string id) -> Chain
9947  setup_particle(Model m, ParticleIndex pi, char id) -> Chain
9948  setup_particle(_ParticleAdaptor pa, char id) -> Chain
9949  setup_particle(Model m, ParticleIndex pi, Chain other) -> Chain
9950  setup_particle(_ParticleAdaptor pa, Chain other) -> Chain
9951  """
9952  return _IMP_atom.Chain_setup_particle(*args)
9953 
9954  @staticmethod
9955  def get_is_setup(*args):
9956  r"""
9957  get_is_setup(_ParticleAdaptor p) -> bool
9958  get_is_setup(Model m, ParticleIndex pi) -> bool
9959  """
9960  return _IMP_atom.Chain_get_is_setup(*args)
9961 
9962  def get_id(self):
9963  r"""get_id(Chain self) -> std::string"""
9964  return _IMP_atom.Chain_get_id(self)
9965 
9966  def set_id(self, c):
9967  r"""set_id(Chain self, std::string c)"""
9968  return _IMP_atom.Chain_set_id(self, c)
9969 
9970  def get_label_asym_id(self):
9971  r"""get_label_asym_id(Chain self) -> std::string"""
9972  return _IMP_atom.Chain_get_label_asym_id(self)
9973 
9974  def set_label_asym_id(self, c):
9975  r"""set_label_asym_id(Chain self, std::string c)"""
9976  return _IMP_atom.Chain_set_label_asym_id(self, c)
9977 
9978  def get_sequence(self):
9979  r"""get_sequence(Chain self) -> std::string"""
9980  return _IMP_atom.Chain_get_sequence(self)
9981 
9982  def set_sequence(self, sequence):
9983  r"""set_sequence(Chain self, std::string sequence)"""
9984  return _IMP_atom.Chain_set_sequence(self, sequence)
9985 
9986  def get_sequence_offset(self):
9987  r"""get_sequence_offset(Chain self) -> int"""
9988  return _IMP_atom.Chain_get_sequence_offset(self)
9989 
9990  def set_sequence_offset(self, offset):
9991  r"""set_sequence_offset(Chain self, int offset)"""
9992  return _IMP_atom.Chain_set_sequence_offset(self, offset)
9993 
9994  def get_uniprot_accession(self):
9995  r"""get_uniprot_accession(Chain self) -> std::string"""
9996  return _IMP_atom.Chain_get_uniprot_accession(self)
9997 
9998  def set_uniprot_accession(self, accession):
9999  r"""set_uniprot_accession(Chain self, std::string accession)"""
10000  return _IMP_atom.Chain_set_uniprot_accession(self, accession)
10001 
10002  def get_chain_type(self):
10003  r"""get_chain_type(Chain self) -> ChainType"""
10004  return _IMP_atom.Chain_get_chain_type(self)
10005 
10006  def set_chain_type(self, t):
10007  r"""set_chain_type(Chain self, ChainType t)"""
10008  return _IMP_atom.Chain_set_chain_type(self, t)
10009 
10010  @staticmethod
10011  def get_id_key():
10012  r"""get_id_key() -> SparseStringKey"""
10013  return _IMP_atom.Chain_get_id_key()
10014 
10015  @staticmethod
10016  def get_label_asym_id_key():
10017  r"""get_label_asym_id_key() -> SparseStringKey"""
10018  return _IMP_atom.Chain_get_label_asym_id_key()
10019 
10020  @staticmethod
10021  def get_sequence_key():
10022  r"""get_sequence_key() -> SparseStringKey"""
10023  return _IMP_atom.Chain_get_sequence_key()
10024 
10025  @staticmethod
10026  def get_sequence_offset_key():
10027  r"""get_sequence_offset_key() -> SparseIntKey"""
10028  return _IMP_atom.Chain_get_sequence_offset_key()
10029 
10030  @staticmethod
10031  def get_uniprot_accession_key():
10032  r"""get_uniprot_accession_key() -> SparseStringKey"""
10033  return _IMP_atom.Chain_get_uniprot_accession_key()
10034 
10035  @staticmethod
10036  def get_chain_type_key():
10037  r"""get_chain_type_key() -> SparseIntKey"""
10038  return _IMP_atom.Chain_get_chain_type_key()
10039 
10040  def add_attribute(self, *args):
10041  r"""
10042  add_attribute(Chain self, FloatKey k, IMP::Float v, bool opt)
10043  add_attribute(Chain self, FloatKey a0, IMP::Float a1)
10044  add_attribute(Chain self, IntKey a0, IMP::Int a1)
10045  add_attribute(Chain self, FloatsKey a0, IMP::Floats a1)
10046  add_attribute(Chain self, IntsKey a0, IMP::Ints a1)
10047  add_attribute(Chain self, StringKey a0, IMP::String a1)
10048  add_attribute(Chain self, ParticleIndexKey a0, Particle a1)
10049  add_attribute(Chain self, ObjectKey a0, Object a1)
10050  add_attribute(Chain self, SparseFloatKey a0, IMP::Float a1)
10051  add_attribute(Chain self, SparseIntKey a0, IMP::Int a1)
10052  add_attribute(Chain self, SparseStringKey a0, IMP::String a1)
10053  add_attribute(Chain self, SparseParticleIndexKey a0, ParticleIndex a1)
10054  """
10055  return _IMP_atom.Chain_add_attribute(self, *args)
10056 
10057  def get_value(self, *args):
10058  r"""
10059  get_value(Chain self, FloatKey a0) -> IMP::Float
10060  get_value(Chain self, IntKey a0) -> IMP::Int
10061  get_value(Chain self, FloatsKey a0) -> IMP::Floats
10062  get_value(Chain self, IntsKey a0) -> IMP::Ints
10063  get_value(Chain self, StringKey a0) -> IMP::String
10064  get_value(Chain self, ParticleIndexKey a0) -> Particle
10065  get_value(Chain self, ObjectKey a0) -> Object
10066  get_value(Chain self, SparseFloatKey a0) -> IMP::Float
10067  get_value(Chain self, SparseIntKey a0) -> IMP::Int
10068  get_value(Chain self, SparseStringKey a0) -> IMP::String
10069  get_value(Chain self, SparseParticleIndexKey a0) -> ParticleIndex
10070  """
10071  return _IMP_atom.Chain_get_value(self, *args)
10072 
10073  def set_value(self, *args):
10074  r"""
10075  set_value(Chain self, FloatKey a0, IMP::Float a1)
10076  set_value(Chain self, IntKey a0, IMP::Int a1)
10077  set_value(Chain self, FloatsKey a0, IMP::Floats a1)
10078  set_value(Chain self, IntsKey a0, IMP::Ints a1)
10079  set_value(Chain self, StringKey a0, IMP::String a1)
10080  set_value(Chain self, ParticleIndexKey a0, Particle a1)
10081  set_value(Chain self, ObjectKey a0, Object a1)
10082  set_value(Chain self, SparseFloatKey a0, IMP::Float a1)
10083  set_value(Chain self, SparseIntKey a0, IMP::Int a1)
10084  set_value(Chain self, SparseStringKey a0, IMP::String a1)
10085  set_value(Chain self, SparseParticleIndexKey a0, ParticleIndex a1)
10086  """
10087  return _IMP_atom.Chain_set_value(self, *args)
10088 
10089  def remove_attribute(self, *args):
10090  r"""
10091  remove_attribute(Chain self, FloatKey a0)
10092  remove_attribute(Chain self, IntKey a0)
10093  remove_attribute(Chain self, FloatsKey a0)
10094  remove_attribute(Chain self, IntsKey a0)
10095  remove_attribute(Chain self, StringKey a0)
10096  remove_attribute(Chain self, ParticleIndexKey a0)
10097  remove_attribute(Chain self, ObjectKey a0)
10098  remove_attribute(Chain self, SparseFloatKey a0)
10099  remove_attribute(Chain self, SparseIntKey a0)
10100  remove_attribute(Chain self, SparseStringKey a0)
10101  remove_attribute(Chain self, SparseParticleIndexKey a0)
10102  """
10103  return _IMP_atom.Chain_remove_attribute(self, *args)
10104 
10105  def has_attribute(self, *args):
10106  r"""
10107  has_attribute(Chain self, FloatKey a0) -> bool
10108  has_attribute(Chain self, IntKey a0) -> bool
10109  has_attribute(Chain self, FloatsKey a0) -> bool
10110  has_attribute(Chain self, IntsKey a0) -> bool
10111  has_attribute(Chain self, StringKey a0) -> bool
10112  has_attribute(Chain self, ParticleIndexKey a0) -> bool
10113  has_attribute(Chain self, ObjectKey a0) -> bool
10114  has_attribute(Chain self, SparseFloatKey a0) -> bool
10115  has_attribute(Chain self, SparseIntKey a0) -> bool
10116  has_attribute(Chain self, SparseStringKey a0) -> bool
10117  has_attribute(Chain self, SparseParticleIndexKey a0) -> bool
10118  """
10119  return _IMP_atom.Chain_has_attribute(self, *args)
10120 
10121  def get_derivative(self, a0):
10122  r"""get_derivative(Chain self, FloatKey a0) -> double"""
10123  return _IMP_atom.Chain_get_derivative(self, a0)
10124 
10125  def get_name(self):
10126  r"""get_name(Chain self) -> std::string"""
10127  return _IMP_atom.Chain_get_name(self)
10128 
10129  def clear_caches(self):
10130  r"""clear_caches(Chain self)"""
10131  return _IMP_atom.Chain_clear_caches(self)
10132 
10133  def set_name(self, a0):
10134  r"""set_name(Chain self, std::string a0)"""
10135  return _IMP_atom.Chain_set_name(self, a0)
10136 
10137  def set_check_level(self, a0):
10138  r"""set_check_level(Chain self, IMP::CheckLevel a0)"""
10139  return _IMP_atom.Chain_set_check_level(self, a0)
10140 
10141  def add_to_derivative(self, a0, a1, a2):
10142  r"""add_to_derivative(Chain self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
10143  return _IMP_atom.Chain_add_to_derivative(self, a0, a1, a2)
10144 
10145  def set_is_optimized(self, a0, a1):
10146  r"""set_is_optimized(Chain self, FloatKey a0, bool a1)"""
10147  return _IMP_atom.Chain_set_is_optimized(self, a0, a1)
10148 
10149  def get_is_optimized(self, a0):
10150  r"""get_is_optimized(Chain self, FloatKey a0) -> bool"""
10151  return _IMP_atom.Chain_get_is_optimized(self, a0)
10152 
10153  def get_check_level(self):
10154  r"""get_check_level(Chain self) -> IMP::CheckLevel"""
10155  return _IMP_atom.Chain_get_check_level(self)
10156 
10157  def __eq__(self, *args):
10158  r"""
10159  __eq__(Chain self, Chain o) -> bool
10160  __eq__(Chain self, Particle d) -> bool
10161  """
10162  return _IMP_atom.Chain___eq__(self, *args)
10163 
10164  def __ne__(self, *args):
10165  r"""
10166  __ne__(Chain self, Chain o) -> bool
10167  __ne__(Chain self, Particle d) -> bool
10168  """
10169  return _IMP_atom.Chain___ne__(self, *args)
10170 
10171  def __le__(self, *args):
10172  r"""
10173  __le__(Chain self, Chain o) -> bool
10174  __le__(Chain self, Particle d) -> bool
10175  """
10176  return _IMP_atom.Chain___le__(self, *args)
10177 
10178  def __lt__(self, *args):
10179  r"""
10180  __lt__(Chain self, Chain o) -> bool
10181  __lt__(Chain self, Particle d) -> bool
10182  """
10183  return _IMP_atom.Chain___lt__(self, *args)
10184 
10185  def __ge__(self, *args):
10186  r"""
10187  __ge__(Chain self, Chain o) -> bool
10188  __ge__(Chain self, Particle d) -> bool
10189  """
10190  return _IMP_atom.Chain___ge__(self, *args)
10191 
10192  def __gt__(self, *args):
10193  r"""
10194  __gt__(Chain self, Chain o) -> bool
10195  __gt__(Chain self, Particle d) -> bool
10196  """
10197  return _IMP_atom.Chain___gt__(self, *args)
10198 
10199  def __hash__(self):
10200  r"""__hash__(Chain self) -> std::size_t"""
10201  return _IMP_atom.Chain___hash__(self)
10202 
10203  def __str__(self):
10204  r"""__str__(Chain self) -> std::string"""
10205  return _IMP_atom.Chain___str__(self)
10206 
10207  def __repr__(self):
10208  r"""__repr__(Chain self) -> std::string"""
10209  return _IMP_atom.Chain___repr__(self)
10210 
10211  def _get_as_binary(self):
10212  r"""_get_as_binary(Chain self) -> PyObject *"""
10213  return _IMP_atom.Chain__get_as_binary(self)
10214 
10215  def _set_from_binary(self, p):
10216  r"""_set_from_binary(Chain self, PyObject * p)"""
10217  return _IMP_atom.Chain__set_from_binary(self, p)
10218 
10219  def __getstate__(self):
10220  p = self._get_as_binary()
10221  if len(self.__dict__) > 1:
10222  d = self.__dict__.copy()
10223  del d['this']
10224  p = (d, p)
10225  return p
10226 
10227  def __setstate__(self, p):
10228  if not hasattr(self, 'this'):
10229  self.__init__()
10230  if isinstance(p, tuple):
10231  d, p = p
10232  self.__dict__.update(d)
10233  return self._set_from_binary(p)
10234 
10235  __swig_destroy__ = _IMP_atom.delete_Chain
10236 
10237 # Register Chain in _IMP_atom:
10238 _IMP_atom.Chain_swigregister(Chain)
10239 UnknownChainType = cvar.UnknownChainType
10240 DPolypeptide = cvar.DPolypeptide
10241 LPolypeptide = cvar.LPolypeptide
10242 Polydeoxyribonucleotide = cvar.Polydeoxyribonucleotide
10243 Polyribonucleotide = cvar.Polyribonucleotide
10244 DPolysaccharide = cvar.DPolysaccharide
10245 LPolysaccharide = cvar.LPolysaccharide
10246 Protein = cvar.Protein
10247 DNA = cvar.DNA
10248 RNA = cvar.RNA
10249 
10250 
10251 def get_chain(h):
10252  r"""get_chain(Hierarchy h) -> Chain"""
10253  return _IMP_atom.get_chain(h)
10254 
10255 def get_chain_id(h):
10256  r"""get_chain_id(Hierarchy h) -> std::string"""
10257  return _IMP_atom.get_chain_id(h)
10258 class Selection(IMP._ParticleIndexesAdaptor):
10259  r"""Proxy of C++ IMP::atom::Selection class."""
10260 
10261  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10262  NONE = _IMP_atom.Selection_NONE
10263 
10264  C = _IMP_atom.Selection_C
10265 
10266  N = _IMP_atom.Selection_N
10267 
10268 
10269  def __init__(self, *args):
10270  r"""
10271  __init__(Selection self) -> Selection
10272  __init__(Selection self, Hierarchy h) -> Selection
10273  __init__(Selection self, Particle h) -> Selection
10274  __init__(Selection self, Model m, IMP::ParticleIndexes const & pis) -> Selection
10275  __init__(Selection self, IMP::ParticlesTemp const & h) -> Selection
10276  """
10277  _IMP_atom.Selection_swiginit(self, _IMP_atom.new_Selection(*args))
10278 
10279  def create_clone(self):
10280  r"""create_clone(Selection self) -> Selection"""
10281  return _IMP_atom.Selection_create_clone(self)
10282 
10283  def get_hierarchies(self):
10284  r"""get_hierarchies(Selection self) -> IMP::atom::Hierarchies"""
10285  return _IMP_atom.Selection_get_hierarchies(self)
10286 
10287  def set_molecules(self, mols):
10288  r"""set_molecules(Selection self, IMP::Strings mols)"""
10289  return _IMP_atom.Selection_set_molecules(self, mols)
10290 
10291  def set_resolution(self, r):
10292  r"""set_resolution(Selection self, double r)"""
10293  return _IMP_atom.Selection_set_resolution(self, r)
10294 
10295  def set_representation_type(self, t):
10296  r"""set_representation_type(Selection self, IMP::atom::RepresentationType t)"""
10297  return _IMP_atom.Selection_set_representation_type(self, t)
10298 
10299  def set_state_index(self, state):
10300  r"""set_state_index(Selection self, int state)"""
10301  return _IMP_atom.Selection_set_state_index(self, state)
10302 
10303  def set_state_indexes(self, states):
10304  r"""set_state_indexes(Selection self, IMP::Ints states)"""
10305  return _IMP_atom.Selection_set_state_indexes(self, states)
10306 
10307  def set_terminus(self, t):
10308  r"""set_terminus(Selection self, IMP::atom::Selection::Terminus t)"""
10309  return _IMP_atom.Selection_set_terminus(self, t)
10310 
10311  def set_element(self, e):
10312  r"""set_element(Selection self, IMP::atom::Element e)"""
10313  return _IMP_atom.Selection_set_element(self, e)
10314 
10315  def set_chain_ids(self, chains):
10316  r"""set_chain_ids(Selection self, IMP::Strings chains)"""
10317  return _IMP_atom.Selection_set_chain_ids(self, chains)
10318 
10319  def set_chains(self, chains):
10320  r"""set_chains(Selection self, IMP::Strings chains)"""
10321  return _IMP_atom.Selection_set_chains(self, chains)
10322 
10323  def set_residue_indexes(self, indexes):
10324  r"""set_residue_indexes(Selection self, IMP::Ints indexes)"""
10325  return _IMP_atom.Selection_set_residue_indexes(self, indexes)
10326 
10327  def set_atom_types(self, types):
10328  r"""set_atom_types(Selection self, IMP::atom::AtomTypes types)"""
10329  return _IMP_atom.Selection_set_atom_types(self, types)
10330 
10331  def set_residue_types(self, types):
10332  r"""set_residue_types(Selection self, IMP::atom::ResidueTypes types)"""
10333  return _IMP_atom.Selection_set_residue_types(self, types)
10334 
10335  def set_domains(self, names):
10336  r"""set_domains(Selection self, IMP::Strings names)"""
10337  return _IMP_atom.Selection_set_domains(self, names)
10338 
10339  def set_molecule(self, mol):
10340  r"""set_molecule(Selection self, std::string mol)"""
10341  return _IMP_atom.Selection_set_molecule(self, mol)
10342 
10343  def set_chain_id(self, c):
10344  r"""set_chain_id(Selection self, std::string c)"""
10345  return _IMP_atom.Selection_set_chain_id(self, c)
10346 
10347  def set_chain(self, c):
10348  r"""set_chain(Selection self, std::string c)"""
10349  return _IMP_atom.Selection_set_chain(self, c)
10350 
10351  def set_residue_index(self, i):
10352  r"""set_residue_index(Selection self, int i)"""
10353  return _IMP_atom.Selection_set_residue_index(self, i)
10354 
10355  def set_atom_type(self, types):
10356  r"""set_atom_type(Selection self, AtomType types)"""
10357  return _IMP_atom.Selection_set_atom_type(self, types)
10358 
10359  def set_residue_type(self, type):
10360  r"""set_residue_type(Selection self, ResidueType type)"""
10361  return _IMP_atom.Selection_set_residue_type(self, type)
10362 
10363  def set_domain(self, name):
10364  r"""set_domain(Selection self, std::string name)"""
10365  return _IMP_atom.Selection_set_domain(self, name)
10366 
10367  def set_copy_index(self, copy):
10368  r"""set_copy_index(Selection self, unsigned int copy)"""
10369  return _IMP_atom.Selection_set_copy_index(self, copy)
10370 
10371  def set_copy_indexes(self, copies):
10372  r"""set_copy_indexes(Selection self, IMP::Ints copies)"""
10373  return _IMP_atom.Selection_set_copy_indexes(self, copies)
10374 
10375  def set_particle_type(self, t):
10376  r"""set_particle_type(Selection self, ParticleType t)"""
10377  return _IMP_atom.Selection_set_particle_type(self, t)
10378 
10379  def set_particle_types(self, t):
10380  r"""set_particle_types(Selection self, IMP::core::ParticleTypes t)"""
10381  return _IMP_atom.Selection_set_particle_types(self, t)
10382 
10383  def set_hierarchy_types(self, types):
10384  r"""set_hierarchy_types(Selection self, IMP::Ints types)"""
10385  return _IMP_atom.Selection_set_hierarchy_types(self, types)
10386 
10387  def set_intersection(self, s):
10388  r"""set_intersection(Selection self, Selection s)"""
10389  return _IMP_atom.Selection_set_intersection(self, s)
10390 
10391  def set_union(self, s):
10392  r"""set_union(Selection self, Selection s)"""
10393  return _IMP_atom.Selection_set_union(self, s)
10394 
10395  def set_symmetric_difference(self, s):
10396  r"""set_symmetric_difference(Selection self, Selection s)"""
10397  return _IMP_atom.Selection_set_symmetric_difference(self, s)
10398 
10399  def set_difference(self, s):
10400  r"""set_difference(Selection self, Selection s)"""
10401  return _IMP_atom.Selection_set_difference(self, s)
10402 
10403  def get_selected_particles(self, with_representation=True):
10404  r"""get_selected_particles(Selection self, bool with_representation=True) -> IMP::ParticlesTemp"""
10405  return _IMP_atom.Selection_get_selected_particles(self, with_representation)
10406 
10407  def get_selected_particle_indexes(self, with_representation=True):
10408  r"""get_selected_particle_indexes(Selection self, bool with_representation=True) -> IMP::ParticleIndexes"""
10409  return _IMP_atom.Selection_get_selected_particle_indexes(self, with_representation)
10410 
10411  def show(self, *args):
10412  r"""show(Selection self, _ostream out=std::cout)"""
10413  return _IMP_atom.Selection_show(self, *args)
10414 
10415  def __str__(self):
10416  r"""__str__(Selection self) -> std::string"""
10417  return _IMP_atom.Selection___str__(self)
10418 
10419  def __repr__(self):
10420  r"""__repr__(Selection self) -> std::string"""
10421  return _IMP_atom.Selection___repr__(self)
10422 
10423  def __init__(self, hierarchy=None,
10424  hierarchies=None, **params):
10425  if hierarchy and hierarchies:
10426  raise RuntimeError("You can't pass both hierarchy and hierarchies to Selection")
10427  if hierarchy:
10428  this = _IMP_atom.new_Selection(hierarchy)
10429  try: self.this.append(this)
10430  except: self.this = this
10431  elif hierarchies:
10432  this = _IMP_atom.new_Selection(hierarchies)
10433  try: self.this.append(this)
10434  except: self.this = this
10435  else:
10436  raise ValueError("Either hierarchy or hierarchies must be provided.")
10437  for k in params.keys():
10438  eval("self.set_%s(params[k])"%k)
10439 
10440  def union(self, s):
10441  news = self.create_clone()
10442  news.union_update(s)
10443  return news
10444  def intersection(self, s):
10445  news = self.create_clone()
10446  news.intersection_update(s)
10447  return news
10448  def symmetric_difference(self, s):
10449  news = self.create_clone()
10450  news.symmetric_difference_update(s)
10451  return news
10452  def difference(self, s):
10453  news = self.create_clone()
10454  news.difference_update(s)
10455  return news
10456  def union_update(self, s):
10457  self.set_union(s)
10458  return self
10459  def intersection_update(self, s):
10460  self.set_intersection(s)
10461  return self
10462  def symmetric_difference_update(self, s):
10463  self.set_symmetric_difference(s)
10464  return self
10465  def difference_update(self, s):
10466  self.set_difference(s)
10467  return self
10468  __or__ = union
10469  __and__ = intersection
10470  __xor__ = symmetric_difference
10471  __sub__ = difference
10472  __ior__ = union_update
10473  __iand__ = intersection_update
10474  __ixor__ = symmetric_difference_update
10475  __isub__ = difference_update
10476 
10477  __swig_destroy__ = _IMP_atom.delete_Selection
10478 
10479 # Register Selection in _IMP_atom:
10480 _IMP_atom.Selection_swigregister(Selection)
10481 
10482 def create_distance_restraint(*args):
10483  r"""create_distance_restraint(Selection n0, Selection n1, double x0, double k, std::string name="Distance%1%") -> Restraint"""
10484  return _IMP_atom.create_distance_restraint(*args)
10485 
10487  r"""
10488  create_connectivity_restraint(IMP::atom::Selections const & s, double k, std::string name="Connectivity%1%") -> Restraint
10489  create_connectivity_restraint(IMP::atom::Selections const & s, double x0, double k, std::string name="Connectivity%1%") -> Restraint
10490  """
10491  return _IMP_atom.create_connectivity_restraint(*args)
10492 
10494  r"""
10495  create_internal_connectivity_restraint(Selection s, double k, std::string name="Connectivity%1%") -> Restraint
10496  create_internal_connectivity_restraint(Selection s, double x0, double k, std::string name="Connectivity%1%") -> Restraint
10497  """
10498  return _IMP_atom.create_internal_connectivity_restraint(*args)
10499 
10500 def create_cover(*args):
10501  r"""create_cover(Selection s, std::string name=std::string()) -> XYZR"""
10502  return _IMP_atom.create_cover(*args)
10503 
10504 def get_mass(*args):
10505  r"""
10506  get_mass(ResidueType c) -> double
10507  get_mass(Selection s) -> double
10508  """
10509  return _IMP_atom.get_mass(*args)
10510 
10511 def get_volume(s):
10512  r"""get_volume(Selection s) -> double"""
10513  return _IMP_atom.get_volume(s)
10514 
10515 def get_surface_area(s):
10516  r"""get_surface_area(Selection s) -> double"""
10517  return _IMP_atom.get_surface_area(s)
10518 
10519 def get_leaves(*args):
10520  r"""
10521  get_leaves(Hierarchy h) -> IMP::atom::Hierarchies
10522  get_leaves(IMP::atom::Hierarchies const & h) -> IMP::atom::Hierarchies
10523  get_leaves(Selection h) -> IMP::atom::Hierarchies
10524  """
10525  return _IMP_atom.get_leaves(*args)
10526 class SelectionGeometry(IMP.display.Geometry):
10527  r"""Proxy of C++ IMP::atom::SelectionGeometry class."""
10528 
10529  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10530 
10531  def __init__(self, *args):
10532  r"""__init__(SelectionGeometry self, Selection d, std::string name="Selection") -> SelectionGeometry"""
10533  _IMP_atom.SelectionGeometry_swiginit(self, _IMP_atom.new_SelectionGeometry(*args))
10534 
10535  def get_version_info(self):
10536  r"""get_version_info(SelectionGeometry self) -> VersionInfo"""
10537  return _IMP_atom.SelectionGeometry_get_version_info(self)
10538  __swig_destroy__ = _IMP_atom.delete_SelectionGeometry
10539 
10540  def __str__(self):
10541  r"""__str__(SelectionGeometry self) -> std::string"""
10542  return _IMP_atom.SelectionGeometry___str__(self)
10543 
10544  def __repr__(self):
10545  r"""__repr__(SelectionGeometry self) -> std::string"""
10546  return _IMP_atom.SelectionGeometry___repr__(self)
10547 
10548  @staticmethod
10549  def get_from(o):
10550  return _object_cast_to_SelectionGeometry(o)
10551 
10552 
10553 # Register SelectionGeometry in _IMP_atom:
10554 _IMP_atom.SelectionGeometry_swigregister(SelectionGeometry)
10555 
10556 def get_rmsd(*args):
10557  r"""
10558  get_rmsd(IMP::core::XYZs const & s0, IMP::core::XYZs const & s1) -> double
10559  get_rmsd(Selection s0, Selection s1) -> double
10560  """
10561  return _IMP_atom.get_rmsd(*args)
10562 
10563 def get_rmsd_transforming_first(*args):
10564  r"""
10565  get_rmsd_transforming_first(Transformation3D tr, IMP::core::XYZs const & s0, IMP::core::XYZs const & s1) -> double
10566  get_rmsd_transforming_first(Transformation3D tr, Selection s0, Selection s1) -> double
10567  """
10568  return _IMP_atom.get_rmsd_transforming_first(*args)
10569 
10570 def get_placement_score(source, target):
10571  r"""get_placement_score(IMP::core::XYZs const & source, IMP::core::XYZs const & target) -> IMP::FloatPair"""
10572  return _IMP_atom.get_placement_score(source, target)
10573 
10574 def get_component_placement_score(ref1, ref2, mdl1, mdl2):
10575  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"""
10576  return _IMP_atom.get_component_placement_score(ref1, ref2, mdl1, mdl2)
10577 
10578 def get_pairwise_rmsd_score(ref1, ref2, mdl1, mdl2):
10579  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"""
10580  return _IMP_atom.get_pairwise_rmsd_score(ref1, ref2, mdl1, mdl2)
10581 
10582 def get_radius_of_gyration(*args):
10583  r"""
10584  get_radius_of_gyration(Selection s) -> double
10585  get_radius_of_gyration(IMP::ParticlesTemp const & ps, bool weighted=True) -> double
10586  """
10587  return _IMP_atom.get_radius_of_gyration(*args)
10588 class ForceFieldParameters(IMP.Object):
10589  r"""Proxy of C++ IMP::atom::ForceFieldParameters class."""
10590 
10591  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10592 
10593  def __init__(self):
10594  r"""__init__(ForceFieldParameters self) -> ForceFieldParameters"""
10595  _IMP_atom.ForceFieldParameters_swiginit(self, _IMP_atom.new_ForceFieldParameters())
10596 
10597  def get_radius(self, atom):
10598  r"""get_radius(ForceFieldParameters self, Atom atom) -> IMP::Float"""
10599  return _IMP_atom.ForceFieldParameters_get_radius(self, atom)
10600 
10601  def get_epsilon(self, atom):
10602  r"""get_epsilon(ForceFieldParameters self, Atom atom) -> IMP::Float"""
10603  return _IMP_atom.ForceFieldParameters_get_epsilon(self, atom)
10604 
10605  def add_radii(self, *args):
10606  r"""add_radii(ForceFieldParameters self, Hierarchy mhd, double scale=1.0, FloatKey radius_key=IMP::FloatKey("radius"))"""
10607  return _IMP_atom.ForceFieldParameters_add_radii(self, *args)
10608 
10609  def add_lennard_jones_types(self, mhd):
10610  r"""add_lennard_jones_types(ForceFieldParameters self, Hierarchy mhd)"""
10611  return _IMP_atom.ForceFieldParameters_add_lennard_jones_types(self, mhd)
10612 
10613  def add_bonds(self, mhd):
10614  r"""add_bonds(ForceFieldParameters self, Hierarchy mhd)"""
10615  return _IMP_atom.ForceFieldParameters_add_bonds(self, mhd)
10616  __swig_destroy__ = _IMP_atom.delete_ForceFieldParameters
10617 
10618  def __str__(self):
10619  r"""__str__(ForceFieldParameters self) -> std::string"""
10620  return _IMP_atom.ForceFieldParameters___str__(self)
10621 
10622  def __repr__(self):
10623  r"""__repr__(ForceFieldParameters self) -> std::string"""
10624  return _IMP_atom.ForceFieldParameters___repr__(self)
10625 
10626  @staticmethod
10627  def get_from(o):
10628  return _object_cast_to_ForceFieldParameters(o)
10629 
10630 
10631 # Register ForceFieldParameters in _IMP_atom:
10632 _IMP_atom.ForceFieldParameters_swigregister(ForceFieldParameters)
10633 class CHARMMAtomTopology(object):
10634  r"""Proxy of C++ IMP::atom::CHARMMAtomTopology class."""
10635 
10636  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10637 
10638  def __init__(self, *args):
10639  r"""
10640  __init__(CHARMMAtomTopology self) -> CHARMMAtomTopology
10641  __init__(CHARMMAtomTopology self, std::string name) -> CHARMMAtomTopology
10642  __init__(CHARMMAtomTopology self, std::string name, CHARMMAtomTopology other) -> CHARMMAtomTopology
10643  """
10644  _IMP_atom.CHARMMAtomTopology_swiginit(self, _IMP_atom.new_CHARMMAtomTopology(*args))
10645 
10646  def get_name(self):
10647  r"""get_name(CHARMMAtomTopology self) -> std::string"""
10648  return _IMP_atom.CHARMMAtomTopology_get_name(self)
10649 
10650  def get_charmm_type(self):
10651  r"""get_charmm_type(CHARMMAtomTopology self) -> std::string"""
10652  return _IMP_atom.CHARMMAtomTopology_get_charmm_type(self)
10653 
10654  def get_charge(self):
10655  r"""get_charge(CHARMMAtomTopology self) -> double"""
10656  return _IMP_atom.CHARMMAtomTopology_get_charge(self)
10657 
10658  def set_charmm_type(self, charmm_type):
10659  r"""set_charmm_type(CHARMMAtomTopology self, std::string charmm_type)"""
10660  return _IMP_atom.CHARMMAtomTopology_set_charmm_type(self, charmm_type)
10661 
10662  def set_charge(self, charge):
10663  r"""set_charge(CHARMMAtomTopology self, double charge)"""
10664  return _IMP_atom.CHARMMAtomTopology_set_charge(self, charge)
10665 
10666  def show(self, *args):
10667  r"""show(CHARMMAtomTopology self, _ostream out=std::cout)"""
10668  return _IMP_atom.CHARMMAtomTopology_show(self, *args)
10669 
10670  def __str__(self):
10671  r"""__str__(CHARMMAtomTopology self) -> std::string"""
10672  return _IMP_atom.CHARMMAtomTopology___str__(self)
10673 
10674  def __repr__(self):
10675  r"""__repr__(CHARMMAtomTopology self) -> std::string"""
10676  return _IMP_atom.CHARMMAtomTopology___repr__(self)
10677 
10678  def _get_as_binary(self):
10679  r"""_get_as_binary(CHARMMAtomTopology self) -> PyObject *"""
10680  return _IMP_atom.CHARMMAtomTopology__get_as_binary(self)
10681 
10682  def _set_from_binary(self, p):
10683  r"""_set_from_binary(CHARMMAtomTopology self, PyObject * p)"""
10684  return _IMP_atom.CHARMMAtomTopology__set_from_binary(self, p)
10685 
10686  def __getstate__(self):
10687  p = self._get_as_binary()
10688  if len(self.__dict__) > 1:
10689  d = self.__dict__.copy()
10690  del d['this']
10691  p = (d, p)
10692  return p
10693 
10694  def __setstate__(self, p):
10695  if not hasattr(self, 'this'):
10696  self.__init__()
10697  if isinstance(p, tuple):
10698  d, p = p
10699  self.__dict__.update(d)
10700  return self._set_from_binary(p)
10701 
10702  __swig_destroy__ = _IMP_atom.delete_CHARMMAtomTopology
10703 
10704 # Register CHARMMAtomTopology in _IMP_atom:
10705 _IMP_atom.CHARMMAtomTopology_swigregister(CHARMMAtomTopology)
10706 class CHARMMBondEndpoint(object):
10707  r"""Proxy of C++ IMP::atom::CHARMMBondEndpoint class."""
10708 
10709  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10710 
10711  def __init__(self, atom_name, residue=None):
10712  r"""__init__(CHARMMBondEndpoint self, std::string atom_name, CHARMMResidueTopology residue=None) -> CHARMMBondEndpoint"""
10713  _IMP_atom.CHARMMBondEndpoint_swiginit(self, _IMP_atom.new_CHARMMBondEndpoint(atom_name, residue))
10714 
10715  def get_atom_name(self):
10716  r"""get_atom_name(CHARMMBondEndpoint self) -> std::string"""
10717  return _IMP_atom.CHARMMBondEndpoint_get_atom_name(self)
10718 
10719  def get_atom(self, current_residue, previous_residue, next_residue, resmap):
10720  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"""
10721  return _IMP_atom.CHARMMBondEndpoint_get_atom(self, current_residue, previous_residue, next_residue, resmap)
10722 
10723  def show(self, *args):
10724  r"""show(CHARMMBondEndpoint self, _ostream out=std::cout)"""
10725  return _IMP_atom.CHARMMBondEndpoint_show(self, *args)
10726 
10727  def __str__(self):
10728  r"""__str__(CHARMMBondEndpoint self) -> std::string"""
10729  return _IMP_atom.CHARMMBondEndpoint___str__(self)
10730 
10731  def __repr__(self):
10732  r"""__repr__(CHARMMBondEndpoint self) -> std::string"""
10733  return _IMP_atom.CHARMMBondEndpoint___repr__(self)
10734  __swig_destroy__ = _IMP_atom.delete_CHARMMBondEndpoint
10735 
10736 # Register CHARMMBondEndpoint in _IMP_atom:
10737 _IMP_atom.CHARMMBondEndpoint_swigregister(CHARMMBondEndpoint)
10738 class CHARMMDihedral(object):
10739  r"""Proxy of C++ IMP::atom::CHARMMConnection< 4 > class."""
10740 
10741  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10742  __repr__ = _swig_repr
10743 
10744  def __init__(self, atoms):
10745  r"""__init__(CHARMMDihedral self, IMP::Strings const & atoms) -> CHARMMDihedral"""
10746  _IMP_atom.CHARMMDihedral_swiginit(self, _IMP_atom.new_CHARMMDihedral(atoms))
10747 
10748  def get_endpoint(self, i):
10749  r"""get_endpoint(CHARMMDihedral self, unsigned int i) -> CHARMMBondEndpoint"""
10750  return _IMP_atom.CHARMMDihedral_get_endpoint(self, i)
10751 
10752  def get_contains_atom(self, name):
10753  r"""get_contains_atom(CHARMMDihedral self, std::string name) -> bool"""
10754  return _IMP_atom.CHARMMDihedral_get_contains_atom(self, name)
10755 
10756  def show(self, *args):
10757  r"""show(CHARMMDihedral self, _ostream out=std::cout)"""
10758  return _IMP_atom.CHARMMDihedral_show(self, *args)
10759  __swig_destroy__ = _IMP_atom.delete_CHARMMDihedral
10760 
10761 # Register CHARMMDihedral in _IMP_atom:
10762 _IMP_atom.CHARMMDihedral_swigregister(CHARMMDihedral)
10763 class CHARMMInternalCoordinate(CHARMMDihedral):
10764  r"""Proxy of C++ IMP::atom::CHARMMInternalCoordinate class."""
10765 
10766  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10767 
10768  def __init__(self, *args):
10769  r"""
10770  __init__(CHARMMInternalCoordinate self, IMP::Strings const & atoms, float first_distance, float first_angle, float dihedral, float second_angle, float second_distance, bool improper) -> CHARMMInternalCoordinate
10771  __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
10772  """
10773  _IMP_atom.CHARMMInternalCoordinate_swiginit(self, _IMP_atom.new_CHARMMInternalCoordinate(*args))
10774 
10775  def get_first_distance(self):
10776  r"""get_first_distance(CHARMMInternalCoordinate self) -> float"""
10777  return _IMP_atom.CHARMMInternalCoordinate_get_first_distance(self)
10778 
10779  def get_second_distance(self):
10780  r"""get_second_distance(CHARMMInternalCoordinate self) -> float"""
10781  return _IMP_atom.CHARMMInternalCoordinate_get_second_distance(self)
10782 
10783  def get_first_angle(self):
10784  r"""get_first_angle(CHARMMInternalCoordinate self) -> float"""
10785  return _IMP_atom.CHARMMInternalCoordinate_get_first_angle(self)
10786 
10787  def get_second_angle(self):
10788  r"""get_second_angle(CHARMMInternalCoordinate self) -> float"""
10789  return _IMP_atom.CHARMMInternalCoordinate_get_second_angle(self)
10790 
10791  def get_dihedral(self):
10792  r"""get_dihedral(CHARMMInternalCoordinate self) -> float"""
10793  return _IMP_atom.CHARMMInternalCoordinate_get_dihedral(self)
10794 
10795  def get_improper(self):
10796  r"""get_improper(CHARMMInternalCoordinate self) -> bool"""
10797  return _IMP_atom.CHARMMInternalCoordinate_get_improper(self)
10798 
10799  def show(self, *args):
10800  r"""show(CHARMMInternalCoordinate self, _ostream out=std::cout)"""
10801  return _IMP_atom.CHARMMInternalCoordinate_show(self, *args)
10802 
10803  def __str__(self):
10804  r"""__str__(CHARMMInternalCoordinate self) -> std::string"""
10805  return _IMP_atom.CHARMMInternalCoordinate___str__(self)
10806 
10807  def __repr__(self):
10808  r"""__repr__(CHARMMInternalCoordinate self) -> std::string"""
10809  return _IMP_atom.CHARMMInternalCoordinate___repr__(self)
10810  __swig_destroy__ = _IMP_atom.delete_CHARMMInternalCoordinate
10811 
10812 # Register CHARMMInternalCoordinate in _IMP_atom:
10813 _IMP_atom.CHARMMInternalCoordinate_swigregister(CHARMMInternalCoordinate)
10814 class CHARMMResidueTopologyBase(IMP.Object):
10815  r"""Proxy of C++ IMP::atom::CHARMMResidueTopologyBase class."""
10816 
10817  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10818 
10819  def __init__(self, *args, **kwargs):
10820  raise AttributeError("No constructor defined")
10821 
10822  def get_type(self):
10823  r"""get_type(CHARMMResidueTopologyBase self) -> std::string"""
10824  return _IMP_atom.CHARMMResidueTopologyBase_get_type(self)
10825 
10826  def get_number_of_atoms(self):
10827  r"""get_number_of_atoms(CHARMMResidueTopologyBase self) -> unsigned int"""
10828  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_atoms(self)
10829 
10830  def add_atom(self, atom):
10831  r"""add_atom(CHARMMResidueTopologyBase self, CHARMMAtomTopology atom)"""
10832  return _IMP_atom.CHARMMResidueTopologyBase_add_atom(self, atom)
10833 
10834  def get_atom(self, *args):
10835  r"""
10836  get_atom(CHARMMResidueTopologyBase self, unsigned int i) -> CHARMMAtomTopology
10837  get_atom(CHARMMResidueTopologyBase self, AtomType type) -> CHARMMAtomTopology
10838  get_atom(CHARMMResidueTopologyBase self, std::string name) -> CHARMMAtomTopology
10839  """
10840  return _IMP_atom.CHARMMResidueTopologyBase_get_atom(self, *args)
10841 
10842  def get_number_of_bonds(self):
10843  r"""get_number_of_bonds(CHARMMResidueTopologyBase self) -> unsigned int"""
10844  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_bonds(self)
10845 
10846  def add_bond(self, bond):
10847  r"""add_bond(CHARMMResidueTopologyBase self, CHARMMBond bond)"""
10848  return _IMP_atom.CHARMMResidueTopologyBase_add_bond(self, bond)
10849 
10850  def get_number_of_angles(self):
10851  r"""get_number_of_angles(CHARMMResidueTopologyBase self) -> unsigned int"""
10852  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_angles(self)
10853 
10854  def add_angle(self, bond):
10855  r"""add_angle(CHARMMResidueTopologyBase self, CHARMMAngle bond)"""
10856  return _IMP_atom.CHARMMResidueTopologyBase_add_angle(self, bond)
10857 
10858  def get_number_of_dihedrals(self):
10859  r"""get_number_of_dihedrals(CHARMMResidueTopologyBase self) -> unsigned int"""
10860  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_dihedrals(self)
10861 
10862  def add_dihedral(self, bond):
10863  r"""add_dihedral(CHARMMResidueTopologyBase self, CHARMMDihedral bond)"""
10864  return _IMP_atom.CHARMMResidueTopologyBase_add_dihedral(self, bond)
10865 
10866  def get_number_of_impropers(self):
10867  r"""get_number_of_impropers(CHARMMResidueTopologyBase self) -> unsigned int"""
10868  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_impropers(self)
10869 
10870  def add_improper(self, bond):
10871  r"""add_improper(CHARMMResidueTopologyBase self, CHARMMDihedral bond)"""
10872  return _IMP_atom.CHARMMResidueTopologyBase_add_improper(self, bond)
10873 
10874  def get_number_of_internal_coordinates(self):
10875  r"""get_number_of_internal_coordinates(CHARMMResidueTopologyBase self) -> unsigned int"""
10876  return _IMP_atom.CHARMMResidueTopologyBase_get_number_of_internal_coordinates(self)
10877 
10878  def add_internal_coordinate(self, ic):
10879  r"""add_internal_coordinate(CHARMMResidueTopologyBase self, CHARMMInternalCoordinate ic)"""
10880  return _IMP_atom.CHARMMResidueTopologyBase_add_internal_coordinate(self, ic)
10881 
10882  def get_internal_coordinate(self, index):
10883  r"""get_internal_coordinate(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMInternalCoordinate"""
10884  return _IMP_atom.CHARMMResidueTopologyBase_get_internal_coordinate(self, index)
10885 
10886  def get_bond(self, index):
10887  r"""get_bond(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMBond"""
10888  return _IMP_atom.CHARMMResidueTopologyBase_get_bond(self, index)
10889 
10890  def get_angle(self, index):
10891  r"""get_angle(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMAngle"""
10892  return _IMP_atom.CHARMMResidueTopologyBase_get_angle(self, index)
10893 
10894  def get_dihedral(self, index):
10895  r"""get_dihedral(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMDihedral"""
10896  return _IMP_atom.CHARMMResidueTopologyBase_get_dihedral(self, index)
10897 
10898  def get_improper(self, index):
10899  r"""get_improper(CHARMMResidueTopologyBase self, unsigned int index) -> CHARMMDihedral"""
10900  return _IMP_atom.CHARMMResidueTopologyBase_get_improper(self, index)
10901 
10902  def get_version_info(self):
10903  r"""get_version_info(CHARMMResidueTopologyBase self) -> VersionInfo"""
10904  return _IMP_atom.CHARMMResidueTopologyBase_get_version_info(self)
10905  __swig_destroy__ = _IMP_atom.delete_CHARMMResidueTopologyBase
10906 
10907  def __str__(self):
10908  r"""__str__(CHARMMResidueTopologyBase self) -> std::string"""
10909  return _IMP_atom.CHARMMResidueTopologyBase___str__(self)
10910 
10911  def __repr__(self):
10912  r"""__repr__(CHARMMResidueTopologyBase self) -> std::string"""
10913  return _IMP_atom.CHARMMResidueTopologyBase___repr__(self)
10914 
10915  @staticmethod
10916  def get_from(o):
10917  return _object_cast_to_CHARMMResidueTopologyBase(o)
10918 
10919 
10920 # Register CHARMMResidueTopologyBase in _IMP_atom:
10921 _IMP_atom.CHARMMResidueTopologyBase_swigregister(CHARMMResidueTopologyBase)
10922 class CHARMMIdealResidueTopology(CHARMMResidueTopologyBase):
10923  r"""Proxy of C++ IMP::atom::CHARMMIdealResidueTopology class."""
10924 
10925  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10926 
10927  def __init__(self, *args):
10928  r"""
10929  __init__(CHARMMIdealResidueTopology self, std::string type) -> CHARMMIdealResidueTopology
10930  __init__(CHARMMIdealResidueTopology self, ResidueType type) -> CHARMMIdealResidueTopology
10931  """
10932  _IMP_atom.CHARMMIdealResidueTopology_swiginit(self, _IMP_atom.new_CHARMMIdealResidueTopology(*args))
10933 
10934  def remove_atom(self, name):
10935  r"""remove_atom(CHARMMIdealResidueTopology self, std::string name)"""
10936  return _IMP_atom.CHARMMIdealResidueTopology_remove_atom(self, name)
10937 
10938  def set_default_first_patch(self, patch):
10939  r"""set_default_first_patch(CHARMMIdealResidueTopology self, std::string patch)"""
10940  return _IMP_atom.CHARMMIdealResidueTopology_set_default_first_patch(self, patch)
10941 
10942  def set_default_last_patch(self, patch):
10943  r"""set_default_last_patch(CHARMMIdealResidueTopology self, std::string patch)"""
10944  return _IMP_atom.CHARMMIdealResidueTopology_set_default_last_patch(self, patch)
10945 
10946  def get_default_first_patch(self):
10947  r"""get_default_first_patch(CHARMMIdealResidueTopology self) -> std::string"""
10948  return _IMP_atom.CHARMMIdealResidueTopology_get_default_first_patch(self)
10949 
10950  def get_default_last_patch(self):
10951  r"""get_default_last_patch(CHARMMIdealResidueTopology self) -> std::string"""
10952  return _IMP_atom.CHARMMIdealResidueTopology_get_default_last_patch(self)
10953  __swig_destroy__ = _IMP_atom.delete_CHARMMIdealResidueTopology
10954 
10955  def __str__(self):
10956  r"""__str__(CHARMMIdealResidueTopology self) -> std::string"""
10957  return _IMP_atom.CHARMMIdealResidueTopology___str__(self)
10958 
10959  def __repr__(self):
10960  r"""__repr__(CHARMMIdealResidueTopology self) -> std::string"""
10961  return _IMP_atom.CHARMMIdealResidueTopology___repr__(self)
10962 
10963  @staticmethod
10964  def get_from(o):
10965  return _object_cast_to_CHARMMIdealResidueTopology(o)
10966 
10967 
10968 # Register CHARMMIdealResidueTopology in _IMP_atom:
10969 _IMP_atom.CHARMMIdealResidueTopology_swigregister(CHARMMIdealResidueTopology)
10970 class CHARMMPatch(CHARMMResidueTopologyBase):
10971  r"""Proxy of C++ IMP::atom::CHARMMPatch class."""
10972 
10973  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10974 
10975  def __init__(self, type):
10976  r"""__init__(CHARMMPatch self, std::string type) -> CHARMMPatch"""
10977  _IMP_atom.CHARMMPatch_swiginit(self, _IMP_atom.new_CHARMMPatch(type))
10978 
10979  def add_removed_atom(self, name):
10980  r"""add_removed_atom(CHARMMPatch self, std::string name)"""
10981  return _IMP_atom.CHARMMPatch_add_removed_atom(self, name)
10982 
10983  def get_number_of_removed_atoms(self):
10984  r"""get_number_of_removed_atoms(CHARMMPatch self) -> unsigned int"""
10985  return _IMP_atom.CHARMMPatch_get_number_of_removed_atoms(self)
10986 
10987  def get_removed_atom(self, i):
10988  r"""get_removed_atom(CHARMMPatch self, unsigned int i) -> std::string"""
10989  return _IMP_atom.CHARMMPatch_get_removed_atom(self, i)
10990 
10991  def apply(self, *args):
10992  r"""
10993  apply(CHARMMPatch self, CHARMMResidueTopology res)
10994  apply(CHARMMPatch self, CHARMMResidueTopology res1, CHARMMResidueTopology res2)
10995  """
10996  return _IMP_atom.CHARMMPatch_apply(self, *args)
10997  __swig_destroy__ = _IMP_atom.delete_CHARMMPatch
10998 
10999  def __str__(self):
11000  r"""__str__(CHARMMPatch self) -> std::string"""
11001  return _IMP_atom.CHARMMPatch___str__(self)
11002 
11003  def __repr__(self):
11004  r"""__repr__(CHARMMPatch self) -> std::string"""
11005  return _IMP_atom.CHARMMPatch___repr__(self)
11006 
11007  @staticmethod
11008  def get_from(o):
11009  return _object_cast_to_CHARMMPatch(o)
11010 
11011 
11012 # Register CHARMMPatch in _IMP_atom:
11013 _IMP_atom.CHARMMPatch_swigregister(CHARMMPatch)
11014 class CHARMMResidueTopology(CHARMMIdealResidueTopology):
11015  r"""Proxy of C++ IMP::atom::CHARMMResidueTopology class."""
11016 
11017  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11018 
11019  def __init__(self, *args):
11020  r"""
11021  __init__(CHARMMResidueTopology self, ResidueType type) -> CHARMMResidueTopology
11022  __init__(CHARMMResidueTopology self, CHARMMIdealResidueTopology ideal) -> CHARMMResidueTopology
11023  """
11024  _IMP_atom.CHARMMResidueTopology_swiginit(self, _IMP_atom.new_CHARMMResidueTopology(*args))
11025 
11026  def get_patched(self):
11027  r"""get_patched(CHARMMResidueTopology self) -> bool"""
11028  return _IMP_atom.CHARMMResidueTopology_get_patched(self)
11029 
11030  def set_patched(self, patched):
11031  r"""set_patched(CHARMMResidueTopology self, bool patched)"""
11032  return _IMP_atom.CHARMMResidueTopology_set_patched(self, patched)
11033  __swig_destroy__ = _IMP_atom.delete_CHARMMResidueTopology
11034 
11035  def __str__(self):
11036  r"""__str__(CHARMMResidueTopology self) -> std::string"""
11037  return _IMP_atom.CHARMMResidueTopology___str__(self)
11038 
11039  def __repr__(self):
11040  r"""__repr__(CHARMMResidueTopology self) -> std::string"""
11041  return _IMP_atom.CHARMMResidueTopology___repr__(self)
11042 
11043  @staticmethod
11044  def get_from(o):
11045  return _object_cast_to_CHARMMResidueTopology(o)
11046 
11047 
11048 # Register CHARMMResidueTopology in _IMP_atom:
11049 _IMP_atom.CHARMMResidueTopology_swigregister(CHARMMResidueTopology)
11050 class CHARMMAtom(Atom):
11051  r"""Proxy of C++ IMP::atom::CHARMMAtom class."""
11052 
11053  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11054 
11055  def __init__(self, *args):
11056  r"""
11057  __init__(CHARMMAtom self) -> CHARMMAtom
11058  __init__(CHARMMAtom self, Model m, ParticleIndex id) -> CHARMMAtom
11059  __init__(CHARMMAtom self, _ParticleAdaptor d) -> CHARMMAtom
11060  """
11061  _IMP_atom.CHARMMAtom_swiginit(self, _IMP_atom.new_CHARMMAtom(*args))
11062 
11063  def show(self, *args):
11064  r"""show(CHARMMAtom self, _ostream out=std::cout)"""
11065  return _IMP_atom.CHARMMAtom_show(self, *args)
11066 
11067  @staticmethod
11068  def setup_particle(*args):
11069  r"""
11070  setup_particle(Model m, ParticleIndex pi, IMP::String charmm_type) -> CHARMMAtom
11071  setup_particle(_ParticleAdaptor pa, IMP::String charmm_type) -> CHARMMAtom
11072  """
11073  return _IMP_atom.CHARMMAtom_setup_particle(*args)
11074 
11075  def get_charmm_type(self):
11076  r"""get_charmm_type(CHARMMAtom self) -> IMP::String"""
11077  return _IMP_atom.CHARMMAtom_get_charmm_type(self)
11078 
11079  def set_charmm_type(self, t):
11080  r"""set_charmm_type(CHARMMAtom self, IMP::String t)"""
11081  return _IMP_atom.CHARMMAtom_set_charmm_type(self, t)
11082 
11083  @staticmethod
11084  def get_is_setup(*args):
11085  r"""
11086  get_is_setup(_ParticleAdaptor p) -> bool
11087  get_is_setup(Model m, ParticleIndex pi) -> bool
11088  """
11089  return _IMP_atom.CHARMMAtom_get_is_setup(*args)
11090 
11091  @staticmethod
11092  def get_charmm_type_key():
11093  r"""get_charmm_type_key() -> StringKey"""
11094  return _IMP_atom.CHARMMAtom_get_charmm_type_key()
11095 
11096  def add_attribute(self, *args):
11097  r"""
11098  add_attribute(CHARMMAtom self, FloatKey k, IMP::Float v, bool opt)
11099  add_attribute(CHARMMAtom self, FloatKey a0, IMP::Float a1)
11100  add_attribute(CHARMMAtom self, IntKey a0, IMP::Int a1)
11101  add_attribute(CHARMMAtom self, FloatsKey a0, IMP::Floats a1)
11102  add_attribute(CHARMMAtom self, IntsKey a0, IMP::Ints a1)
11103  add_attribute(CHARMMAtom self, StringKey a0, IMP::String a1)
11104  add_attribute(CHARMMAtom self, ParticleIndexKey a0, Particle a1)
11105  add_attribute(CHARMMAtom self, ObjectKey a0, Object a1)
11106  add_attribute(CHARMMAtom self, SparseFloatKey a0, IMP::Float a1)
11107  add_attribute(CHARMMAtom self, SparseIntKey a0, IMP::Int a1)
11108  add_attribute(CHARMMAtom self, SparseStringKey a0, IMP::String a1)
11109  add_attribute(CHARMMAtom self, SparseParticleIndexKey a0, ParticleIndex a1)
11110  """
11111  return _IMP_atom.CHARMMAtom_add_attribute(self, *args)
11112 
11113  def get_value(self, *args):
11114  r"""
11115  get_value(CHARMMAtom self, FloatKey a0) -> IMP::Float
11116  get_value(CHARMMAtom self, IntKey a0) -> IMP::Int
11117  get_value(CHARMMAtom self, FloatsKey a0) -> IMP::Floats
11118  get_value(CHARMMAtom self, IntsKey a0) -> IMP::Ints
11119  get_value(CHARMMAtom self, StringKey a0) -> IMP::String
11120  get_value(CHARMMAtom self, ParticleIndexKey a0) -> Particle
11121  get_value(CHARMMAtom self, ObjectKey a0) -> Object
11122  get_value(CHARMMAtom self, SparseFloatKey a0) -> IMP::Float
11123  get_value(CHARMMAtom self, SparseIntKey a0) -> IMP::Int
11124  get_value(CHARMMAtom self, SparseStringKey a0) -> IMP::String
11125  get_value(CHARMMAtom self, SparseParticleIndexKey a0) -> ParticleIndex
11126  """
11127  return _IMP_atom.CHARMMAtom_get_value(self, *args)
11128 
11129  def set_value(self, *args):
11130  r"""
11131  set_value(CHARMMAtom self, FloatKey a0, IMP::Float a1)
11132  set_value(CHARMMAtom self, IntKey a0, IMP::Int a1)
11133  set_value(CHARMMAtom self, FloatsKey a0, IMP::Floats a1)
11134  set_value(CHARMMAtom self, IntsKey a0, IMP::Ints a1)
11135  set_value(CHARMMAtom self, StringKey a0, IMP::String a1)
11136  set_value(CHARMMAtom self, ParticleIndexKey a0, Particle a1)
11137  set_value(CHARMMAtom self, ObjectKey a0, Object a1)
11138  set_value(CHARMMAtom self, SparseFloatKey a0, IMP::Float a1)
11139  set_value(CHARMMAtom self, SparseIntKey a0, IMP::Int a1)
11140  set_value(CHARMMAtom self, SparseStringKey a0, IMP::String a1)
11141  set_value(CHARMMAtom self, SparseParticleIndexKey a0, ParticleIndex a1)
11142  """
11143  return _IMP_atom.CHARMMAtom_set_value(self, *args)
11144 
11145  def remove_attribute(self, *args):
11146  r"""
11147  remove_attribute(CHARMMAtom self, FloatKey a0)
11148  remove_attribute(CHARMMAtom self, IntKey a0)
11149  remove_attribute(CHARMMAtom self, FloatsKey a0)
11150  remove_attribute(CHARMMAtom self, IntsKey a0)
11151  remove_attribute(CHARMMAtom self, StringKey a0)
11152  remove_attribute(CHARMMAtom self, ParticleIndexKey a0)
11153  remove_attribute(CHARMMAtom self, ObjectKey a0)
11154  remove_attribute(CHARMMAtom self, SparseFloatKey a0)
11155  remove_attribute(CHARMMAtom self, SparseIntKey a0)
11156  remove_attribute(CHARMMAtom self, SparseStringKey a0)
11157  remove_attribute(CHARMMAtom self, SparseParticleIndexKey a0)
11158  """
11159  return _IMP_atom.CHARMMAtom_remove_attribute(self, *args)
11160 
11161  def has_attribute(self, *args):
11162  r"""
11163  has_attribute(CHARMMAtom self, FloatKey a0) -> bool
11164  has_attribute(CHARMMAtom self, IntKey a0) -> bool
11165  has_attribute(CHARMMAtom self, FloatsKey a0) -> bool
11166  has_attribute(CHARMMAtom self, IntsKey a0) -> bool
11167  has_attribute(CHARMMAtom self, StringKey a0) -> bool
11168  has_attribute(CHARMMAtom self, ParticleIndexKey a0) -> bool
11169  has_attribute(CHARMMAtom self, ObjectKey a0) -> bool
11170  has_attribute(CHARMMAtom self, SparseFloatKey a0) -> bool
11171  has_attribute(CHARMMAtom self, SparseIntKey a0) -> bool
11172  has_attribute(CHARMMAtom self, SparseStringKey a0) -> bool
11173  has_attribute(CHARMMAtom self, SparseParticleIndexKey a0) -> bool
11174  """
11175  return _IMP_atom.CHARMMAtom_has_attribute(self, *args)
11176 
11177  def get_derivative(self, a0):
11178  r"""get_derivative(CHARMMAtom self, FloatKey a0) -> double"""
11179  return _IMP_atom.CHARMMAtom_get_derivative(self, a0)
11180 
11181  def get_name(self):
11182  r"""get_name(CHARMMAtom self) -> std::string"""
11183  return _IMP_atom.CHARMMAtom_get_name(self)
11184 
11185  def clear_caches(self):
11186  r"""clear_caches(CHARMMAtom self)"""
11187  return _IMP_atom.CHARMMAtom_clear_caches(self)
11188 
11189  def set_name(self, a0):
11190  r"""set_name(CHARMMAtom self, std::string a0)"""
11191  return _IMP_atom.CHARMMAtom_set_name(self, a0)
11192 
11193  def set_check_level(self, a0):
11194  r"""set_check_level(CHARMMAtom self, IMP::CheckLevel a0)"""
11195  return _IMP_atom.CHARMMAtom_set_check_level(self, a0)
11196 
11197  def add_to_derivative(self, a0, a1, a2):
11198  r"""add_to_derivative(CHARMMAtom self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
11199  return _IMP_atom.CHARMMAtom_add_to_derivative(self, a0, a1, a2)
11200 
11201  def set_is_optimized(self, a0, a1):
11202  r"""set_is_optimized(CHARMMAtom self, FloatKey a0, bool a1)"""
11203  return _IMP_atom.CHARMMAtom_set_is_optimized(self, a0, a1)
11204 
11205  def get_is_optimized(self, a0):
11206  r"""get_is_optimized(CHARMMAtom self, FloatKey a0) -> bool"""
11207  return _IMP_atom.CHARMMAtom_get_is_optimized(self, a0)
11208 
11209  def get_check_level(self):
11210  r"""get_check_level(CHARMMAtom self) -> IMP::CheckLevel"""
11211  return _IMP_atom.CHARMMAtom_get_check_level(self)
11212 
11213  def __eq__(self, *args):
11214  r"""
11215  __eq__(CHARMMAtom self, CHARMMAtom o) -> bool
11216  __eq__(CHARMMAtom self, Particle d) -> bool
11217  """
11218  return _IMP_atom.CHARMMAtom___eq__(self, *args)
11219 
11220  def __ne__(self, *args):
11221  r"""
11222  __ne__(CHARMMAtom self, CHARMMAtom o) -> bool
11223  __ne__(CHARMMAtom self, Particle d) -> bool
11224  """
11225  return _IMP_atom.CHARMMAtom___ne__(self, *args)
11226 
11227  def __le__(self, *args):
11228  r"""
11229  __le__(CHARMMAtom self, CHARMMAtom o) -> bool
11230  __le__(CHARMMAtom self, Particle d) -> bool
11231  """
11232  return _IMP_atom.CHARMMAtom___le__(self, *args)
11233 
11234  def __lt__(self, *args):
11235  r"""
11236  __lt__(CHARMMAtom self, CHARMMAtom o) -> bool
11237  __lt__(CHARMMAtom self, Particle d) -> bool
11238  """
11239  return _IMP_atom.CHARMMAtom___lt__(self, *args)
11240 
11241  def __ge__(self, *args):
11242  r"""
11243  __ge__(CHARMMAtom self, CHARMMAtom o) -> bool
11244  __ge__(CHARMMAtom self, Particle d) -> bool
11245  """
11246  return _IMP_atom.CHARMMAtom___ge__(self, *args)
11247 
11248  def __gt__(self, *args):
11249  r"""
11250  __gt__(CHARMMAtom self, CHARMMAtom o) -> bool
11251  __gt__(CHARMMAtom self, Particle d) -> bool
11252  """
11253  return _IMP_atom.CHARMMAtom___gt__(self, *args)
11254 
11255  def __hash__(self):
11256  r"""__hash__(CHARMMAtom self) -> std::size_t"""
11257  return _IMP_atom.CHARMMAtom___hash__(self)
11258 
11259  def __str__(self):
11260  r"""__str__(CHARMMAtom self) -> std::string"""
11261  return _IMP_atom.CHARMMAtom___str__(self)
11262 
11263  def __repr__(self):
11264  r"""__repr__(CHARMMAtom self) -> std::string"""
11265  return _IMP_atom.CHARMMAtom___repr__(self)
11266 
11267  def _get_as_binary(self):
11268  r"""_get_as_binary(CHARMMAtom self) -> PyObject *"""
11269  return _IMP_atom.CHARMMAtom__get_as_binary(self)
11270 
11271  def _set_from_binary(self, p):
11272  r"""_set_from_binary(CHARMMAtom self, PyObject * p)"""
11273  return _IMP_atom.CHARMMAtom__set_from_binary(self, p)
11274 
11275  def __getstate__(self):
11276  p = self._get_as_binary()
11277  if len(self.__dict__) > 1:
11278  d = self.__dict__.copy()
11279  del d['this']
11280  p = (d, p)
11281  return p
11282 
11283  def __setstate__(self, p):
11284  if not hasattr(self, 'this'):
11285  self.__init__()
11286  if isinstance(p, tuple):
11287  d, p = p
11288  self.__dict__.update(d)
11289  return self._set_from_binary(p)
11290 
11291  __swig_destroy__ = _IMP_atom.delete_CHARMMAtom
11292 
11293 # Register CHARMMAtom in _IMP_atom:
11294 _IMP_atom.CHARMMAtom_swigregister(CHARMMAtom)
11295 
11296 def get_charmm_untyped_atoms(hierarchy):
11297  r"""get_charmm_untyped_atoms(Hierarchy hierarchy) -> IMP::atom::Atoms"""
11298  return _IMP_atom.get_charmm_untyped_atoms(hierarchy)
11299 
11300 def remove_charmm_untyped_atoms(hierarchy):
11301  r"""remove_charmm_untyped_atoms(Hierarchy hierarchy)"""
11302  return _IMP_atom.remove_charmm_untyped_atoms(hierarchy)
11303 class CHARMMBondParameters(object):
11304  r"""Proxy of C++ IMP::atom::CHARMMBondParameters class."""
11305 
11306  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11307  force_constant = property(_IMP_atom.CHARMMBondParameters_force_constant_get, _IMP_atom.CHARMMBondParameters_force_constant_set, doc=r"""force_constant : double""")
11308  ideal = property(_IMP_atom.CHARMMBondParameters_ideal_get, _IMP_atom.CHARMMBondParameters_ideal_set, doc=r"""ideal : double""")
11309 
11310  def __init__(self):
11311  r"""__init__(CHARMMBondParameters self) -> CHARMMBondParameters"""
11312  _IMP_atom.CHARMMBondParameters_swiginit(self, _IMP_atom.new_CHARMMBondParameters())
11313 
11314  def show(self, *args):
11315  r"""show(CHARMMBondParameters self, _ostream out=std::cout)"""
11316  return _IMP_atom.CHARMMBondParameters_show(self, *args)
11317 
11318  def __str__(self):
11319  r"""__str__(CHARMMBondParameters self) -> std::string"""
11320  return _IMP_atom.CHARMMBondParameters___str__(self)
11321 
11322  def __repr__(self):
11323  r"""__repr__(CHARMMBondParameters self) -> std::string"""
11324  return _IMP_atom.CHARMMBondParameters___repr__(self)
11325 
11326  def _get_as_binary(self):
11327  r"""_get_as_binary(CHARMMBondParameters self) -> PyObject *"""
11328  return _IMP_atom.CHARMMBondParameters__get_as_binary(self)
11329 
11330  def _set_from_binary(self, p):
11331  r"""_set_from_binary(CHARMMBondParameters self, PyObject * p)"""
11332  return _IMP_atom.CHARMMBondParameters__set_from_binary(self, p)
11333 
11334  def __getstate__(self):
11335  p = self._get_as_binary()
11336  if len(self.__dict__) > 1:
11337  d = self.__dict__.copy()
11338  del d['this']
11339  p = (d, p)
11340  return p
11341 
11342  def __setstate__(self, p):
11343  if not hasattr(self, 'this'):
11344  self.__init__()
11345  if isinstance(p, tuple):
11346  d, p = p
11347  self.__dict__.update(d)
11348  return self._set_from_binary(p)
11349 
11350  __swig_destroy__ = _IMP_atom.delete_CHARMMBondParameters
11351 
11352 # Register CHARMMBondParameters in _IMP_atom:
11353 _IMP_atom.CHARMMBondParameters_swigregister(CHARMMBondParameters)
11354 class CHARMMDihedralParameters(object):
11355  r"""Proxy of C++ IMP::atom::CHARMMDihedralParameters class."""
11356 
11357  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11358  force_constant = property(_IMP_atom.CHARMMDihedralParameters_force_constant_get, _IMP_atom.CHARMMDihedralParameters_force_constant_set, doc=r"""force_constant : double""")
11359  multiplicity = property(_IMP_atom.CHARMMDihedralParameters_multiplicity_get, _IMP_atom.CHARMMDihedralParameters_multiplicity_set, doc=r"""multiplicity : int""")
11360  ideal = property(_IMP_atom.CHARMMDihedralParameters_ideal_get, _IMP_atom.CHARMMDihedralParameters_ideal_set, doc=r"""ideal : double""")
11361 
11362  def __init__(self):
11363  r"""__init__(CHARMMDihedralParameters self) -> CHARMMDihedralParameters"""
11364  _IMP_atom.CHARMMDihedralParameters_swiginit(self, _IMP_atom.new_CHARMMDihedralParameters())
11365 
11366  def show(self, *args):
11367  r"""show(CHARMMDihedralParameters self, _ostream out=std::cout)"""
11368  return _IMP_atom.CHARMMDihedralParameters_show(self, *args)
11369 
11370  def __str__(self):
11371  r"""__str__(CHARMMDihedralParameters self) -> std::string"""
11372  return _IMP_atom.CHARMMDihedralParameters___str__(self)
11373 
11374  def __repr__(self):
11375  r"""__repr__(CHARMMDihedralParameters self) -> std::string"""
11376  return _IMP_atom.CHARMMDihedralParameters___repr__(self)
11377 
11378  def _get_as_binary(self):
11379  r"""_get_as_binary(CHARMMDihedralParameters self) -> PyObject *"""
11380  return _IMP_atom.CHARMMDihedralParameters__get_as_binary(self)
11381 
11382  def _set_from_binary(self, p):
11383  r"""_set_from_binary(CHARMMDihedralParameters self, PyObject * p)"""
11384  return _IMP_atom.CHARMMDihedralParameters__set_from_binary(self, p)
11385 
11386  def __getstate__(self):
11387  p = self._get_as_binary()
11388  if len(self.__dict__) > 1:
11389  d = self.__dict__.copy()
11390  del d['this']
11391  p = (d, p)
11392  return p
11393 
11394  def __setstate__(self, p):
11395  if not hasattr(self, 'this'):
11396  self.__init__()
11397  if isinstance(p, tuple):
11398  d, p = p
11399  self.__dict__.update(d)
11400  return self._set_from_binary(p)
11401 
11402  __swig_destroy__ = _IMP_atom.delete_CHARMMDihedralParameters
11403 
11404 # Register CHARMMDihedralParameters in _IMP_atom:
11405 _IMP_atom.CHARMMDihedralParameters_swigregister(CHARMMDihedralParameters)
11406 class CHARMMParameters(ForceFieldParameters):
11407  r"""Proxy of C++ IMP::atom::CHARMMParameters class."""
11408 
11409  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11410 
11411  def __init__(self, *args):
11412  r"""__init__(CHARMMParameters self, TextInput topology_file_name, TextInput par_file_name=IMP::TextInput(), bool translate_names_to_pdb=False) -> CHARMMParameters"""
11413  _IMP_atom.CHARMMParameters_swiginit(self, _IMP_atom.new_CHARMMParameters(*args))
11414 
11415  def add_residue_topology(self, res):
11416  r"""add_residue_topology(CHARMMParameters self, CHARMMIdealResidueTopology res)"""
11417  return _IMP_atom.CHARMMParameters_add_residue_topology(self, res)
11418 
11419  def get_residue_topology(self, type):
11420  r"""get_residue_topology(CHARMMParameters self, ResidueType type) -> CHARMMIdealResidueTopology"""
11421  return _IMP_atom.CHARMMParameters_get_residue_topology(self, type)
11422 
11423  def add_patch(self, patch):
11424  r"""add_patch(CHARMMParameters self, CHARMMPatch patch)"""
11425  return _IMP_atom.CHARMMParameters_add_patch(self, patch)
11426 
11427  def get_patch(self, name):
11428  r"""get_patch(CHARMMParameters self, std::string name) -> CHARMMPatch"""
11429  return _IMP_atom.CHARMMParameters_get_patch(self, name)
11430 
11431  def create_topology(self, hierarchy):
11432  r"""create_topology(CHARMMParameters self, Hierarchy hierarchy) -> CHARMMTopology"""
11433  return _IMP_atom.CHARMMParameters_create_topology(self, hierarchy)
11434 
11435  def get_bond_parameters(self, type1, type2):
11436  r"""get_bond_parameters(CHARMMParameters self, std::string type1, std::string type2) -> CHARMMBondParameters"""
11437  return _IMP_atom.CHARMMParameters_get_bond_parameters(self, type1, type2)
11438 
11439  def get_angle_parameters(self, type1, type2, type3):
11440  r"""get_angle_parameters(CHARMMParameters self, std::string type1, std::string type2, std::string type3) -> CHARMMBondParameters"""
11441  return _IMP_atom.CHARMMParameters_get_angle_parameters(self, type1, type2, type3)
11442 
11443  def get_dihedral_parameters(self, type1, type2, type3, type4):
11444  r"""get_dihedral_parameters(CHARMMParameters self, std::string type1, std::string type2, std::string type3, std::string type4) -> IMP::atom::CHARMMDihedralParametersList"""
11445  return _IMP_atom.CHARMMParameters_get_dihedral_parameters(self, type1, type2, type3, type4)
11446 
11447  def get_improper_parameters(self, type1, type2, type3, type4):
11448  r"""get_improper_parameters(CHARMMParameters self, std::string type1, std::string type2, std::string type3, std::string type4) -> CHARMMDihedralParameters"""
11449  return _IMP_atom.CHARMMParameters_get_improper_parameters(self, type1, type2, type3, type4)
11450 
11451  def create_angles(self, bonds):
11452  r"""create_angles(CHARMMParameters self, IMP::Particles bonds) -> IMP::Particles"""
11453  return _IMP_atom.CHARMMParameters_create_angles(self, bonds)
11454 
11455  def create_dihedrals(self, bonds):
11456  r"""create_dihedrals(CHARMMParameters self, IMP::Particles bonds) -> IMP::Particles"""
11457  return _IMP_atom.CHARMMParameters_create_dihedrals(self, bonds)
11458 
11459  def get_version_info(self):
11460  r"""get_version_info(CHARMMParameters self) -> VersionInfo"""
11461  return _IMP_atom.CHARMMParameters_get_version_info(self)
11462  __swig_destroy__ = _IMP_atom.delete_CHARMMParameters
11463 
11464  def __str__(self):
11465  r"""__str__(CHARMMParameters self) -> std::string"""
11466  return _IMP_atom.CHARMMParameters___str__(self)
11467 
11468  def __repr__(self):
11469  r"""__repr__(CHARMMParameters self) -> std::string"""
11470  return _IMP_atom.CHARMMParameters___repr__(self)
11471 
11472  @staticmethod
11473  def get_from(o):
11474  return _object_cast_to_CHARMMParameters(o)
11475 
11476 
11477 # Register CHARMMParameters in _IMP_atom:
11478 _IMP_atom.CHARMMParameters_swigregister(CHARMMParameters)
11479 
11481  r"""get_heavy_atom_CHARMM_parameters() -> CHARMMParameters"""
11482  return _IMP_atom.get_heavy_atom_CHARMM_parameters()
11483 
11485  r"""get_all_atom_CHARMM_parameters() -> CHARMMParameters"""
11486  return _IMP_atom.get_all_atom_CHARMM_parameters()
11487 class CHARMMSegmentTopology(IMP.Object):
11488  r"""Proxy of C++ IMP::atom::CHARMMSegmentTopology class."""
11489 
11490  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11491  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)
11492  def __set_residues(self, obj): IMP._list_util.set_varlist(self.residues, obj)
11493  def __del_residues(self): IMP._list_util.del_varlist(self.residues)
11494  residues = property(__get_residues, __set_residues, __del_residues, doc="List of ##ucnames")
11495 
11496  def remove_residue(self, d):
11497  r"""remove_residue(CHARMMSegmentTopology self, CHARMMResidueTopology d)"""
11498  return _IMP_atom.CHARMMSegmentTopology_remove_residue(self, d)
11499 
11500  def _python_index_residue(self, d, start, stop):
11501  r"""_python_index_residue(CHARMMSegmentTopology self, CHARMMResidueTopology d, unsigned int start, unsigned int stop) -> unsigned int"""
11502  return _IMP_atom.CHARMMSegmentTopology__python_index_residue(self, d, start, stop)
11503 
11504  def remove_residues(self, d):
11505  r"""remove_residues(CHARMMSegmentTopology self, IMP::atom::CHARMMResidueTopologies const & d)"""
11506  return _IMP_atom.CHARMMSegmentTopology_remove_residues(self, d)
11507 
11508  def set_residues(self, ps):
11509  r"""set_residues(CHARMMSegmentTopology self, IMP::atom::CHARMMResidueTopologies const & ps)"""
11510  return _IMP_atom.CHARMMSegmentTopology_set_residues(self, ps)
11511 
11512  def set_residues_order(self, objs):
11513  r"""set_residues_order(CHARMMSegmentTopology self, IMP::atom::CHARMMResidueTopologies const & objs)"""
11514  return _IMP_atom.CHARMMSegmentTopology_set_residues_order(self, objs)
11515 
11516  def add_residue(self, obj):
11517  r"""add_residue(CHARMMSegmentTopology self, CHARMMResidueTopology obj) -> unsigned int"""
11518  return _IMP_atom.CHARMMSegmentTopology_add_residue(self, obj)
11519 
11520  def add_residues(self, objs):
11521  r"""add_residues(CHARMMSegmentTopology self, IMP::atom::CHARMMResidueTopologies const & objs)"""
11522  return _IMP_atom.CHARMMSegmentTopology_add_residues(self, objs)
11523 
11524  def clear_residues(self):
11525  r"""clear_residues(CHARMMSegmentTopology self)"""
11526  return _IMP_atom.CHARMMSegmentTopology_clear_residues(self)
11527 
11528  def get_number_of_residues(self):
11529  r"""get_number_of_residues(CHARMMSegmentTopology self) -> unsigned int"""
11530  return _IMP_atom.CHARMMSegmentTopology_get_number_of_residues(self)
11531 
11532  def get_has_residues(self):
11533  r"""get_has_residues(CHARMMSegmentTopology self) -> bool"""
11534  return _IMP_atom.CHARMMSegmentTopology_get_has_residues(self)
11535 
11536  def get_residue(self, i):
11537  r"""get_residue(CHARMMSegmentTopology self, unsigned int i) -> CHARMMResidueTopology"""
11538  return _IMP_atom.CHARMMSegmentTopology_get_residue(self, i)
11539 
11540  def get_residues(self):
11541  r"""get_residues(CHARMMSegmentTopology self) -> IMP::atom::CHARMMResidueTopologies"""
11542  return _IMP_atom.CHARMMSegmentTopology_get_residues(self)
11543 
11544  def erase_residue(self, i):
11545  r"""erase_residue(CHARMMSegmentTopology self, unsigned int i)"""
11546  return _IMP_atom.CHARMMSegmentTopology_erase_residue(self, i)
11547 
11548  def reserve_residues(self, sz):
11549  r"""reserve_residues(CHARMMSegmentTopology self, unsigned int sz)"""
11550  return _IMP_atom.CHARMMSegmentTopology_reserve_residues(self, sz)
11551 
11552  def get_version_info(self):
11553  r"""get_version_info(CHARMMSegmentTopology self) -> VersionInfo"""
11554  return _IMP_atom.CHARMMSegmentTopology_get_version_info(self)
11555  __swig_destroy__ = _IMP_atom.delete_CHARMMSegmentTopology
11556 
11557  def __init__(self, *args):
11558  r"""__init__(CHARMMSegmentTopology self, std::string name="CHARMM segment topology %1%") -> CHARMMSegmentTopology"""
11559  _IMP_atom.CHARMMSegmentTopology_swiginit(self, _IMP_atom.new_CHARMMSegmentTopology(*args))
11560 
11561  def apply_default_patches(self, ff):
11562  r"""apply_default_patches(CHARMMSegmentTopology self, CHARMMParameters ff)"""
11563  return _IMP_atom.CHARMMSegmentTopology_apply_default_patches(self, ff)
11564 
11565  def __str__(self):
11566  r"""__str__(CHARMMSegmentTopology self) -> std::string"""
11567  return _IMP_atom.CHARMMSegmentTopology___str__(self)
11568 
11569  def __repr__(self):
11570  r"""__repr__(CHARMMSegmentTopology self) -> std::string"""
11571  return _IMP_atom.CHARMMSegmentTopology___repr__(self)
11572 
11573  @staticmethod
11574  def get_from(o):
11575  return _object_cast_to_CHARMMSegmentTopology(o)
11576 
11577 
11578 # Register CHARMMSegmentTopology in _IMP_atom:
11579 _IMP_atom.CHARMMSegmentTopology_swigregister(CHARMMSegmentTopology)
11580 class CHARMMTopology(IMP.Object):
11581  r"""Proxy of C++ IMP::atom::CHARMMTopology class."""
11582 
11583  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11584 
11585  def __init__(self, *args):
11586  r"""__init__(CHARMMTopology self, CHARMMParameters force_field, std::string name="CHARMM topology %1%") -> CHARMMTopology"""
11587  _IMP_atom.CHARMMTopology_swiginit(self, _IMP_atom.new_CHARMMTopology(*args))
11588 
11589  def get_parameters(self):
11590  r"""get_parameters(CHARMMTopology self) -> CHARMMParameters"""
11591  return _IMP_atom.CHARMMTopology_get_parameters(self)
11592 
11593  def add_sequence(self, sequence):
11594  r"""add_sequence(CHARMMTopology self, std::string sequence)"""
11595  return _IMP_atom.CHARMMTopology_add_sequence(self, sequence)
11596 
11597  def apply_default_patches(self):
11598  r"""apply_default_patches(CHARMMTopology self)"""
11599  return _IMP_atom.CHARMMTopology_apply_default_patches(self)
11600 
11601  def create_hierarchy(self, model):
11602  r"""create_hierarchy(CHARMMTopology self, Model model) -> Hierarchy"""
11603  return _IMP_atom.CHARMMTopology_create_hierarchy(self, model)
11604 
11605  def add_atom_types(self, hierarchy):
11606  r"""add_atom_types(CHARMMTopology self, Hierarchy hierarchy)"""
11607  return _IMP_atom.CHARMMTopology_add_atom_types(self, hierarchy)
11608 
11609  def add_coordinates(self, hierarchy):
11610  r"""add_coordinates(CHARMMTopology self, Hierarchy hierarchy)"""
11611  return _IMP_atom.CHARMMTopology_add_coordinates(self, hierarchy)
11612 
11613  def add_missing_atoms(self, hierarchy):
11614  r"""add_missing_atoms(CHARMMTopology self, Hierarchy hierarchy)"""
11615  return _IMP_atom.CHARMMTopology_add_missing_atoms(self, hierarchy)
11616 
11617  def setup_hierarchy(self, hierarchy):
11618  r"""setup_hierarchy(CHARMMTopology self, Hierarchy hierarchy)"""
11619  return _IMP_atom.CHARMMTopology_setup_hierarchy(self, hierarchy)
11620 
11621  def add_charges(self, hierarchy):
11622  r"""add_charges(CHARMMTopology self, Hierarchy hierarchy)"""
11623  return _IMP_atom.CHARMMTopology_add_charges(self, hierarchy)
11624 
11625  def add_bonds(self, hierarchy):
11626  r"""add_bonds(CHARMMTopology self, Hierarchy hierarchy) -> IMP::Particles"""
11627  return _IMP_atom.CHARMMTopology_add_bonds(self, hierarchy)
11628 
11629  def add_dihedrals(self, hierarchy):
11630  r"""add_dihedrals(CHARMMTopology self, Hierarchy hierarchy) -> IMP::Particles"""
11631  return _IMP_atom.CHARMMTopology_add_dihedrals(self, hierarchy)
11632 
11633  def add_impropers(self, hierarchy):
11634  r"""add_impropers(CHARMMTopology self, Hierarchy hierarchy) -> IMP::Particles"""
11635  return _IMP_atom.CHARMMTopology_add_impropers(self, hierarchy)
11636  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)
11637  def __set_segments(self, obj): IMP._list_util.set_varlist(self.segments, obj)
11638  def __del_segments(self): IMP._list_util.del_varlist(self.segments)
11639  segments = property(__get_segments, __set_segments, __del_segments, doc="List of ##ucnames")
11640 
11641  def remove_segment(self, d):
11642  r"""remove_segment(CHARMMTopology self, CHARMMSegmentTopology d)"""
11643  return _IMP_atom.CHARMMTopology_remove_segment(self, d)
11644 
11645  def _python_index_segment(self, d, start, stop):
11646  r"""_python_index_segment(CHARMMTopology self, CHARMMSegmentTopology d, unsigned int start, unsigned int stop) -> unsigned int"""
11647  return _IMP_atom.CHARMMTopology__python_index_segment(self, d, start, stop)
11648 
11649  def remove_segments(self, d):
11650  r"""remove_segments(CHARMMTopology self, IMP::atom::CHARMMSegmentTopologies const & d)"""
11651  return _IMP_atom.CHARMMTopology_remove_segments(self, d)
11652 
11653  def set_segments(self, ps):
11654  r"""set_segments(CHARMMTopology self, IMP::atom::CHARMMSegmentTopologies const & ps)"""
11655  return _IMP_atom.CHARMMTopology_set_segments(self, ps)
11656 
11657  def set_segments_order(self, objs):
11658  r"""set_segments_order(CHARMMTopology self, IMP::atom::CHARMMSegmentTopologies const & objs)"""
11659  return _IMP_atom.CHARMMTopology_set_segments_order(self, objs)
11660 
11661  def add_segment(self, obj):
11662  r"""add_segment(CHARMMTopology self, CHARMMSegmentTopology obj) -> unsigned int"""
11663  return _IMP_atom.CHARMMTopology_add_segment(self, obj)
11664 
11665  def add_segments(self, objs):
11666  r"""add_segments(CHARMMTopology self, IMP::atom::CHARMMSegmentTopologies const & objs)"""
11667  return _IMP_atom.CHARMMTopology_add_segments(self, objs)
11668 
11669  def clear_segments(self):
11670  r"""clear_segments(CHARMMTopology self)"""
11671  return _IMP_atom.CHARMMTopology_clear_segments(self)
11672 
11673  def get_number_of_segments(self):
11674  r"""get_number_of_segments(CHARMMTopology self) -> unsigned int"""
11675  return _IMP_atom.CHARMMTopology_get_number_of_segments(self)
11676 
11677  def get_has_segments(self):
11678  r"""get_has_segments(CHARMMTopology self) -> bool"""
11679  return _IMP_atom.CHARMMTopology_get_has_segments(self)
11680 
11681  def get_segment(self, i):
11682  r"""get_segment(CHARMMTopology self, unsigned int i) -> CHARMMSegmentTopology"""
11683  return _IMP_atom.CHARMMTopology_get_segment(self, i)
11684 
11685  def get_segments(self):
11686  r"""get_segments(CHARMMTopology self) -> IMP::atom::CHARMMSegmentTopologies"""
11687  return _IMP_atom.CHARMMTopology_get_segments(self)
11688 
11689  def erase_segment(self, i):
11690  r"""erase_segment(CHARMMTopology self, unsigned int i)"""
11691  return _IMP_atom.CHARMMTopology_erase_segment(self, i)
11692 
11693  def reserve_segments(self, sz):
11694  r"""reserve_segments(CHARMMTopology self, unsigned int sz)"""
11695  return _IMP_atom.CHARMMTopology_reserve_segments(self, sz)
11696 
11697  def get_version_info(self):
11698  r"""get_version_info(CHARMMTopology self) -> VersionInfo"""
11699  return _IMP_atom.CHARMMTopology_get_version_info(self)
11700  __swig_destroy__ = _IMP_atom.delete_CHARMMTopology
11701 
11702  def __str__(self):
11703  r"""__str__(CHARMMTopology self) -> std::string"""
11704  return _IMP_atom.CHARMMTopology___str__(self)
11705 
11706  def __repr__(self):
11707  r"""__repr__(CHARMMTopology self) -> std::string"""
11708  return _IMP_atom.CHARMMTopology___repr__(self)
11709 
11710  @staticmethod
11711  def get_from(o):
11712  return _object_cast_to_CHARMMTopology(o)
11713 
11714 
11715 # Register CHARMMTopology in _IMP_atom:
11716 _IMP_atom.CHARMMTopology_swigregister(CHARMMTopology)
11717 class CHARMMStereochemistryRestraint(IMP.Restraint):
11718  r"""Proxy of C++ IMP::atom::CHARMMStereochemistryRestraint class."""
11719 
11720  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11721 
11722  def __init__(self, *args):
11723  r"""
11724  __init__(CHARMMStereochemistryRestraint self, Hierarchy h, CHARMMTopology topology) -> CHARMMStereochemistryRestraint
11725  __init__(CHARMMStereochemistryRestraint self, Hierarchy h, CHARMMTopology topology, IMP::ParticlesTemp limit_to_these_particles) -> CHARMMStereochemistryRestraint
11726  """
11727  _IMP_atom.CHARMMStereochemistryRestraint_swiginit(self, _IMP_atom.new_CHARMMStereochemistryRestraint(*args))
11728 
11729  def get_pair_filter(self):
11730  r"""get_pair_filter(CHARMMStereochemistryRestraint self) -> StereochemistryPairFilter"""
11731  return _IMP_atom.CHARMMStereochemistryRestraint_get_pair_filter(self)
11732 
11733  def get_full_pair_filter(self):
11734  r"""get_full_pair_filter(CHARMMStereochemistryRestraint self) -> StereochemistryPairFilter"""
11735  return _IMP_atom.CHARMMStereochemistryRestraint_get_full_pair_filter(self)
11736 
11737  def do_get_inputs(self):
11738  r"""do_get_inputs(CHARMMStereochemistryRestraint self) -> IMP::ModelObjectsTemp"""
11739  return _IMP_atom.CHARMMStereochemistryRestraint_do_get_inputs(self)
11740 
11741  def get_version_info(self):
11742  r"""get_version_info(CHARMMStereochemistryRestraint self) -> VersionInfo"""
11743  return _IMP_atom.CHARMMStereochemistryRestraint_get_version_info(self)
11744  __swig_destroy__ = _IMP_atom.delete_CHARMMStereochemistryRestraint
11745 
11746  def __str__(self):
11747  r"""__str__(CHARMMStereochemistryRestraint self) -> std::string"""
11748  return _IMP_atom.CHARMMStereochemistryRestraint___str__(self)
11749 
11750  def __repr__(self):
11751  r"""__repr__(CHARMMStereochemistryRestraint self) -> std::string"""
11752  return _IMP_atom.CHARMMStereochemistryRestraint___repr__(self)
11753 
11754  @staticmethod
11755  def get_from(o):
11756  return _object_cast_to_CHARMMStereochemistryRestraint(o)
11757 
11758 
11759 # Register CHARMMStereochemistryRestraint in _IMP_atom:
11760 _IMP_atom.CHARMMStereochemistryRestraint_swigregister(CHARMMStereochemistryRestraint)
11761 
11762 def add_bonds(*args):
11763  r"""add_bonds(Hierarchy d, ForceFieldParameters ffp=IMP::atom::get_all_atom_CHARMM_parameters())"""
11764  return _IMP_atom.add_bonds(*args)
11765 
11766 def add_radii(*args):
11767  r"""add_radii(Hierarchy d, ForceFieldParameters ffp=IMP::atom::get_all_atom_CHARMM_parameters(), FloatKey radius_key=IMP::FloatKey("radius"))"""
11768  return _IMP_atom.add_radii(*args)
11769 ALBER = _IMP_atom.ALBER
11770 
11771 HARPAZ = _IMP_atom.HARPAZ
11772 
11773 ANDERSSON = _IMP_atom.ANDERSSON
11774 
11775 TSAI = _IMP_atom.TSAI
11776 
11777 QUILLIN = _IMP_atom.QUILLIN
11778 
11779 SQUIRE = _IMP_atom.SQUIRE
11780 
11781 
11782 def get_protein_density_from_reference(densityReference):
11783  r"""get_protein_density_from_reference(IMP::atom::ProteinDensityReference densityReference) -> double"""
11784  return _IMP_atom.get_protein_density_from_reference(densityReference)
11785 
11786 def get_volume_from_mass(*args):
11787  r"""get_volume_from_mass(double m, IMP::atom::ProteinDensityReference ref=ALBER) -> double"""
11788  return _IMP_atom.get_volume_from_mass(*args)
11789 
11790 def get_mass_from_volume(*args):
11791  r"""get_mass_from_volume(double v, IMP::atom::ProteinDensityReference ref=ALBER) -> double"""
11792  return _IMP_atom.get_mass_from_volume(*args)
11793 
11795  r"""get_mass_from_number_of_residues(unsigned int num_aa) -> double"""
11796  return _IMP_atom.get_mass_from_number_of_residues(num_aa)
11797 
11799  r"""get_volume_from_residue_type(ResidueType rt) -> double"""
11800  return _IMP_atom.get_volume_from_residue_type(rt)
11801 
11802 def get_molarity(n, volume):
11803  r"""get_molarity(double n, double volume) -> double"""
11804  return _IMP_atom.get_molarity(n, volume)
11805 
11806 def get_kd(na, nb, nab, volume):
11807  r"""get_kd(double na, double nb, double nab, double volume) -> double"""
11808  return _IMP_atom.get_kd(na, nb, nab, volume)
11809 
11810 def get_einstein_diffusion_coefficient(r, temp=-1):
11811  r"""get_einstein_diffusion_coefficient(double r, double temp=-1) -> double"""
11812  return _IMP_atom.get_einstein_diffusion_coefficient(r, temp)
11813 
11815  r"""get_einstein_rotational_diffusion_coefficient(double r, double temp=-1) -> double"""
11816  return _IMP_atom.get_einstein_rotational_diffusion_coefficient(r, temp)
11817 
11818 def get_diffusion_length(*args):
11819  r"""
11820  get_diffusion_length(double D, double t) -> double
11821  get_diffusion_length(double D, double force, double t, double temp=-1) -> double
11822  """
11823  return _IMP_atom.get_diffusion_length(*args)
11824 
11825 def get_diffusion_angle(D, dtfs):
11826  r"""get_diffusion_angle(double D, double dtfs) -> double"""
11827  return _IMP_atom.get_diffusion_angle(D, dtfs)
11828 
11829 def get_diffusion_coefficient(*args):
11830  r"""
11831  get_diffusion_coefficient(IMP::algebra::Vector3Ds const & displacements, double dt) -> double
11832  get_diffusion_coefficient(IMP::algebra::Vector3Ds const & displacements, IMP::Floats const & dts) -> double
11833  """
11834  return _IMP_atom.get_diffusion_coefficient(*args)
11835 
11836 def get_rotational_diffusion_coefficient(orientations, dt):
11837  r"""get_rotational_diffusion_coefficient(IMP::algebra::Rotation3Ds const & orientations, double dt) -> double"""
11838  return _IMP_atom.get_rotational_diffusion_coefficient(orientations, dt)
11839 
11840 def get_energy_in_femto_joules(energy_in_kcal_per_mol):
11841  r"""get_energy_in_femto_joules(double energy_in_kcal_per_mol) -> double"""
11842  return _IMP_atom.get_energy_in_femto_joules(energy_in_kcal_per_mol)
11843 
11844 def get_force_in_femto_newtons(force_in_kcal_per_mol_per_angstrom):
11845  r"""get_force_in_femto_newtons(double force_in_kcal_per_mol_per_angstrom) -> double"""
11846  return _IMP_atom.get_force_in_femto_newtons(force_in_kcal_per_mol_per_angstrom)
11847 
11848 def get_spring_constant_in_femto_newtons_per_angstrom(k_in_kcal_per_mol_per_angstrom_square):
11849  r"""get_spring_constant_in_femto_newtons_per_angstrom(double k_in_kcal_per_mol_per_angstrom_square) -> double"""
11850  return _IMP_atom.get_spring_constant_in_femto_newtons_per_angstrom(k_in_kcal_per_mol_per_angstrom_square)
11851 class EzRestraint(IMP.Restraint):
11852  r"""Proxy of C++ IMP::atom::EzRestraint class."""
11853 
11854  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11855 
11856  def __init__(self, m, ps):
11857  r"""__init__(EzRestraint self, Model m, _ParticleIndexesAdaptor ps) -> EzRestraint"""
11858  _IMP_atom.EzRestraint_swiginit(self, _IMP_atom.new_EzRestraint(m, ps))
11859 
11860  def get_version_info(self):
11861  r"""get_version_info(EzRestraint self) -> VersionInfo"""
11862  return _IMP_atom.EzRestraint_get_version_info(self)
11863  __swig_destroy__ = _IMP_atom.delete_EzRestraint
11864 
11865  def __str__(self):
11866  r"""__str__(EzRestraint self) -> std::string"""
11867  return _IMP_atom.EzRestraint___str__(self)
11868 
11869  def __repr__(self):
11870  r"""__repr__(EzRestraint self) -> std::string"""
11871  return _IMP_atom.EzRestraint___repr__(self)
11872 
11873  @staticmethod
11874  def get_from(o):
11875  return _object_cast_to_EzRestraint(o)
11876 
11877 
11878 # Register EzRestraint in _IMP_atom:
11879 _IMP_atom.EzRestraint_swigregister(EzRestraint)
11880 
11881 def create_protein(*args):
11882  r"""
11883  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
11884  create_protein(Model m, std::string name, double target_radius, IMP::Ints const domain_boundaries) -> Hierarchy
11885  """
11886  return _IMP_atom.create_protein(*args)
11887 
11889  r"""
11890  create_simplified_along_backbone(Hierarchy input, int num_res, bool keep_detailed=False) -> Hierarchy
11891  create_simplified_along_backbone(Chain input, IMP::IntRanges const & residue_segments, bool keep_detailed=False) -> Hierarchy
11892  """
11893  return _IMP_atom.create_simplified_along_backbone(*args)
11894 
11895 def create_simplified_from_volume(h, resolution):
11896  r"""create_simplified_from_volume(Hierarchy h, double resolution) -> Hierarchy"""
11897  return _IMP_atom.create_simplified_from_volume(h, resolution)
11898 
11899 def create_simplified_assembly_from_volume(h, resolution):
11900  r"""create_simplified_assembly_from_volume(Hierarchy h, double resolution) -> Hierarchy"""
11901  return _IMP_atom.create_simplified_assembly_from_volume(h, resolution)
11902 
11903 def get_residue_indexes(h):
11904  r"""get_residue_indexes(Hierarchy h) -> IMP::Ints"""
11905  return _IMP_atom.get_residue_indexes(h)
11906 
11907 def get_residue_type(*args):
11908  r"""
11909  get_residue_type(char c) -> ResidueType
11910  get_residue_type(Hierarchy h) -> ResidueType
11911  """
11912  return _IMP_atom.get_residue_type(*args)
11913 
11914 def get_atom_type(h):
11915  r"""get_atom_type(Hierarchy h) -> AtomType"""
11916  return _IMP_atom.get_atom_type(h)
11917 
11918 def get_domain_name(h):
11919  r"""get_domain_name(Hierarchy h) -> std::string"""
11920  return _IMP_atom.get_domain_name(h)
11921 
11923  r"""
11924  create_excluded_volume_restraint(IMP::atom::Selections const & s) -> Restraint
11925  create_excluded_volume_restraint(IMP::atom::Hierarchies const & hs, double resolution=-1) -> Restraint
11926  """
11927  return _IMP_atom.create_excluded_volume_restraint(*args)
11928 
11929 def setup_as_approximation(*args):
11930  r"""
11931  setup_as_approximation(Particle h, IMP::ParticlesTemp const & other, double resolution=-1)
11932  setup_as_approximation(Hierarchy h, double resolution=-1)
11933  """
11934  return _IMP_atom.setup_as_approximation(*args)
11935 class _HierarchyTreeVertexIndex(object):
11936  r"""Proxy of C++ IMP::atom::HierarchyTreeVertexIndex class."""
11937 
11938  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11939  __repr__ = _swig_repr
11940 
11941  def __init__(self):
11942  r"""__init__(_HierarchyTreeVertexIndex self) -> _HierarchyTreeVertexIndex"""
11943  _IMP_atom._HierarchyTreeVertexIndex_swiginit(self, _IMP_atom.new__HierarchyTreeVertexIndex())
11944  __swig_destroy__ = _IMP_atom.delete__HierarchyTreeVertexIndex
11945 
11946 # Register _HierarchyTreeVertexIndex in _IMP_atom:
11947 _IMP_atom._HierarchyTreeVertexIndex_swigregister(_HierarchyTreeVertexIndex)
11948 
11949 def show_as_graphviz(name, out):
11950  r"""show_as_graphviz(IMP::atom::HierarchyTree const & name, TextOutput out)"""
11951  return _IMP_atom.show_as_graphviz(name, out)
11952 
11953 def get_vertex_index(g):
11954  r"""get_vertex_index(IMP::atom::HierarchyTree const & g) -> _HierarchyTreeVertexIndex"""
11955  return _IMP_atom.get_vertex_index(g)
11956 
11957 def get_hierarchy_tree(h):
11958  r"""get_hierarchy_tree(Hierarchy h) -> IMP::atom::HierarchyTree"""
11959  return _IMP_atom.get_hierarchy_tree(h)
11960 class HierarchyGeometry(IMP.display.SingletonGeometry):
11961  r"""Proxy of C++ IMP::atom::HierarchyGeometry class."""
11962 
11963  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11964 
11965  def __init__(self, d, resolution=0):
11966  r"""__init__(HierarchyGeometry self, Hierarchy d, double resolution=0) -> HierarchyGeometry"""
11967  _IMP_atom.HierarchyGeometry_swiginit(self, _IMP_atom.new_HierarchyGeometry(d, resolution))
11968 
11969  def get_version_info(self):
11970  r"""get_version_info(HierarchyGeometry self) -> VersionInfo"""
11971  return _IMP_atom.HierarchyGeometry_get_version_info(self)
11972  __swig_destroy__ = _IMP_atom.delete_HierarchyGeometry
11973 
11974  def __str__(self):
11975  r"""__str__(HierarchyGeometry self) -> std::string"""
11976  return _IMP_atom.HierarchyGeometry___str__(self)
11977 
11978  def __repr__(self):
11979  r"""__repr__(HierarchyGeometry self) -> std::string"""
11980  return _IMP_atom.HierarchyGeometry___repr__(self)
11981 
11982  @staticmethod
11983  def get_from(o):
11984  return _object_cast_to_HierarchyGeometry(o)
11985 
11986 
11987 # Register HierarchyGeometry in _IMP_atom:
11988 _IMP_atom.HierarchyGeometry_swigregister(HierarchyGeometry)
11989 class HierarchiesGeometry(IMP.display.SingletonsGeometry):
11990  r"""Proxy of C++ IMP::atom::HierarchiesGeometry class."""
11991 
11992  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11993 
11994  def __init__(self, sc, resolution=-1):
11995  r"""__init__(HierarchiesGeometry self, SingletonContainer sc, double resolution=-1) -> HierarchiesGeometry"""
11996  _IMP_atom.HierarchiesGeometry_swiginit(self, _IMP_atom.new_HierarchiesGeometry(sc, resolution))
11997 
11998  def get_version_info(self):
11999  r"""get_version_info(HierarchiesGeometry self) -> VersionInfo"""
12000  return _IMP_atom.HierarchiesGeometry_get_version_info(self)
12001  __swig_destroy__ = _IMP_atom.delete_HierarchiesGeometry
12002 
12003  def __str__(self):
12004  r"""__str__(HierarchiesGeometry self) -> std::string"""
12005  return _IMP_atom.HierarchiesGeometry___str__(self)
12006 
12007  def __repr__(self):
12008  r"""__repr__(HierarchiesGeometry self) -> std::string"""
12009  return _IMP_atom.HierarchiesGeometry___repr__(self)
12010 
12011  @staticmethod
12012  def get_from(o):
12013  return _object_cast_to_HierarchiesGeometry(o)
12014 
12015 
12016 # Register HierarchiesGeometry in _IMP_atom:
12017 _IMP_atom.HierarchiesGeometry_swigregister(HierarchiesGeometry)
12018 
12019 def transform(*args):
12020  r"""
12021  transform(Hierarchy h, Transformation3D tr)
12022  transform(Hierarchy h, Transformation3D tr)
12023  """
12024  return _IMP_atom.transform(*args)
12025 class DopePairScore(_ADopeBase):
12026  r"""Proxy of C++ IMP::atom::DopePairScore class."""
12027 
12028  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12029 
12030  def __init__(self, *args):
12031  r"""
12032  __init__(DopePairScore self, double threshold=std::numeric_limits< double >::max()) -> DopePairScore
12033  __init__(DopePairScore self, double threshold, TextInput data_file) -> DopePairScore
12034  """
12035  _IMP_atom.DopePairScore_swiginit(self, _IMP_atom.new_DopePairScore(*args))
12036  __swig_destroy__ = _IMP_atom.delete_DopePairScore
12037 
12038  def __str__(self):
12039  r"""__str__(DopePairScore self) -> std::string"""
12040  return _IMP_atom.DopePairScore___str__(self)
12041 
12042  def __repr__(self):
12043  r"""__repr__(DopePairScore self) -> std::string"""
12044  return _IMP_atom.DopePairScore___repr__(self)
12045 
12046  @staticmethod
12047  def get_from(o):
12048  return _object_cast_to_DopePairScore(o)
12049 
12050 
12051  def _get_jax(self, m, indexes):
12052  import numpy as np
12053  import jax.lax
12054  import jax.numpy as jnp
12055  from IMP.core._jax_util import _spline
12056  def score_one(jm, index, minrange, maxrange, spacing, values,
12057  second_derivs):
12058  # Score a single atom pair
12059  xyz = jnp.asarray(jm['xyz'])[index]
12060  dr = jnp.linalg.norm(xyz[1] - xyz[0])
12061  def spline_score():
12062  dope_type_pair = jnp.asarray(jm['dope atom type'])
12063  # Get index into values/second_derivs tables
12064  i = jnp.max(dope_type_pair[index])
12065  j = jnp.min(dope_type_pair[index])
12066  dope_type = i * (i + 1) // 2 + j
12067  # tabulated values are for the center of each bin, but
12068  # _spline works with the values at the low side of each bin
12069  x = dr - 0.5 * spacing
12070  # determine bin index and thus the cubic fragment to use:
12071  lowbin = jnp.array((x - minrange) / spacing, dtype=int)
12072  return _spline(x, minrange, lowbin, lowbin + 1, spacing,
12073  values[dope_type], second_derivs[dope_type])
12074  def maybe_score():
12075  return jax.lax.cond(dr <= minrange, lambda: 0.0, spline_score)
12076  return jax.lax.cond(dr >= maxrange, lambda: 0.0, maybe_score)
12077  sf = self.get_score_functor()
12078  if sf.get_is_bipartite() or not sf.get_is_interpolated():
12079  raise TypeError("Only implemented for unipartite splines")
12080  ntyp = sf.get_number_of_particle_types()[0]
12081  # Get spline parameters for all atom types. The matrix is symmetric
12082  # so only store the upper diagonal
12083  values = []
12084  second_derivs = []
12085  for i in range(ntyp):
12086  for j in range(0, i + 1):
12087  values.append(sf.get_values(i, j))
12088  second_derivs.append(sf.get_second_derivatives(i, j))
12089  values = np.vstack(values)
12090  second_derivs = np.vstack(second_derivs)
12091  f = functools.partial(
12092  score_one, minrange=sf.get_offset(),
12093  maxrange=min(sf.get_max(), sf.get_threshold()),
12094  spacing=sf.get_spacing(), values=jnp.asarray(values),
12095  second_derivs=jnp.asarray(second_derivs))
12096  # Vectorize to take multiple indexes (second argument)
12097  vf = jax.vmap(f, in_axes=(None, 0))
12098  return self._wrap_jax(m, lambda jm: vf(jm, indexes),
12099  keys=(sf.get_dope_type_key(),))
12100 
12101 
12102 # Register DopePairScore in _IMP_atom:
12103 _IMP_atom.DopePairScore_swigregister(DopePairScore)
12104 
12105 def add_dope_score_data(h):
12106  r"""add_dope_score_data(Hierarchy h)"""
12107  return _IMP_atom.add_dope_score_data(h)
12108 class LoopStatisticalPairScore(_ALoopStatisticalBase):
12109  r"""Proxy of C++ IMP::atom::LoopStatisticalPairScore class."""
12110 
12111  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12112 
12113  def __init__(self, *args):
12114  r"""
12115  __init__(LoopStatisticalPairScore self, double threshold=std::numeric_limits< double >::max()) -> LoopStatisticalPairScore
12116  __init__(LoopStatisticalPairScore self, double threshold, TextInput data_file) -> LoopStatisticalPairScore
12117  """
12118  _IMP_atom.LoopStatisticalPairScore_swiginit(self, _IMP_atom.new_LoopStatisticalPairScore(*args))
12119 
12120  def __str__(self):
12121  r"""__str__(LoopStatisticalPairScore self) -> std::string"""
12122  return _IMP_atom.LoopStatisticalPairScore___str__(self)
12123 
12124  def __repr__(self):
12125  r"""__repr__(LoopStatisticalPairScore self) -> std::string"""
12126  return _IMP_atom.LoopStatisticalPairScore___repr__(self)
12127 
12128  @staticmethod
12129  def get_from(o):
12130  return _object_cast_to_LoopStatisticalPairScore(o)
12131 
12132  __swig_destroy__ = _IMP_atom.delete_LoopStatisticalPairScore
12133 
12134 # Register LoopStatisticalPairScore in _IMP_atom:
12135 _IMP_atom.LoopStatisticalPairScore_swigregister(LoopStatisticalPairScore)
12136 
12138  r"""add_loop_statistical_score_data(Hierarchy h)"""
12139  return _IMP_atom.add_loop_statistical_score_data(h)
12140 class OrientedSoapPairScore(_OrientedSoapBase):
12141  r"""Proxy of C++ IMP::atom::OrientedSoapPairScore class."""
12142 
12143  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12144 
12145  def __init__(self, library):
12146  r"""__init__(OrientedSoapPairScore self, std::string library) -> OrientedSoapPairScore"""
12147  _IMP_atom.OrientedSoapPairScore_swiginit(self, _IMP_atom.new_OrientedSoapPairScore(library))
12148 
12149  def get_pair_filter(self):
12150  r"""get_pair_filter(OrientedSoapPairScore self) -> SoapPairFilter"""
12151  return _IMP_atom.OrientedSoapPairScore_get_pair_filter(self)
12152 
12153  def __str__(self):
12154  r"""__str__(OrientedSoapPairScore self) -> std::string"""
12155  return _IMP_atom.OrientedSoapPairScore___str__(self)
12156 
12157  def __repr__(self):
12158  r"""__repr__(OrientedSoapPairScore self) -> std::string"""
12159  return _IMP_atom.OrientedSoapPairScore___repr__(self)
12160 
12161  @staticmethod
12162  def get_from(o):
12163  return _object_cast_to_OrientedSoapPairScore(o)
12164 
12165  __swig_destroy__ = _IMP_atom.delete_OrientedSoapPairScore
12166 
12167 # Register OrientedSoapPairScore in _IMP_atom:
12168 _IMP_atom.OrientedSoapPairScore_swigregister(OrientedSoapPairScore)
12169 class SameResiduePairFilter(IMP.PairPredicate):
12170  r"""Proxy of C++ IMP::atom::SameResiduePairFilter class."""
12171 
12172  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12173 
12174  def __init__(self):
12175  r"""__init__(SameResiduePairFilter self) -> SameResiduePairFilter"""
12176  _IMP_atom.SameResiduePairFilter_swiginit(self, _IMP_atom.new_SameResiduePairFilter())
12177 
12178  def do_get_inputs(self, m, pis):
12179  r"""do_get_inputs(SameResiduePairFilter self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
12180  return _IMP_atom.SameResiduePairFilter_do_get_inputs(self, m, pis)
12181 
12182  def get_value(self, *args):
12183  r"""
12184  get_value(SameResiduePairFilter self, IMP::ParticlePair const & a) -> int
12185  get_value(SameResiduePairFilter self, IMP::ParticlePairsTemp const & o) -> IMP::Ints
12186  """
12187  return _IMP_atom.SameResiduePairFilter_get_value(self, *args)
12188 
12189  def get_value_index(self, *args):
12190  r"""
12191  get_value_index(SameResiduePairFilter self, Model m, IMP::ParticleIndexPair const & p) -> int
12192  get_value_index(SameResiduePairFilter self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
12193  """
12194  return _IMP_atom.SameResiduePairFilter_get_value_index(self, *args)
12195 
12196  def get_version_info(self):
12197  r"""get_version_info(SameResiduePairFilter self) -> VersionInfo"""
12198  return _IMP_atom.SameResiduePairFilter_get_version_info(self)
12199  __swig_destroy__ = _IMP_atom.delete_SameResiduePairFilter
12200 
12201  def __str__(self):
12202  r"""__str__(SameResiduePairFilter self) -> std::string"""
12203  return _IMP_atom.SameResiduePairFilter___str__(self)
12204 
12205  def __repr__(self):
12206  r"""__repr__(SameResiduePairFilter self) -> std::string"""
12207  return _IMP_atom.SameResiduePairFilter___repr__(self)
12208 
12209  @staticmethod
12210  def get_from(o):
12211  return _object_cast_to_SameResiduePairFilter(o)
12212 
12213 
12214 # Register SameResiduePairFilter in _IMP_atom:
12215 _IMP_atom.SameResiduePairFilter_swigregister(SameResiduePairFilter)
12216 class RemoveRigidMotionOptimizerState(IMP.OptimizerState):
12217  r"""Proxy of C++ IMP::atom::RemoveRigidMotionOptimizerState class."""
12218 
12219  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12220 
12221  def __init__(self, m, pis):
12222  r"""__init__(RemoveRigidMotionOptimizerState self, Model m, _ParticleIndexesAdaptor pis) -> RemoveRigidMotionOptimizerState"""
12223  _IMP_atom.RemoveRigidMotionOptimizerState_swiginit(self, _IMP_atom.new_RemoveRigidMotionOptimizerState(m, pis))
12224 
12225  def set_particles(self, pis):
12226  r"""set_particles(RemoveRigidMotionOptimizerState self, IMP::Particles const & pis)"""
12227  return _IMP_atom.RemoveRigidMotionOptimizerState_set_particles(self, pis)
12228 
12229  def remove_rigid_motion(self):
12230  r"""remove_rigid_motion(RemoveRigidMotionOptimizerState self)"""
12231  return _IMP_atom.RemoveRigidMotionOptimizerState_remove_rigid_motion(self)
12232 
12233  def get_version_info(self):
12234  r"""get_version_info(RemoveRigidMotionOptimizerState self) -> VersionInfo"""
12235  return _IMP_atom.RemoveRigidMotionOptimizerState_get_version_info(self)
12236  __swig_destroy__ = _IMP_atom.delete_RemoveRigidMotionOptimizerState
12237 
12238  def __str__(self):
12239  r"""__str__(RemoveRigidMotionOptimizerState self) -> std::string"""
12240  return _IMP_atom.RemoveRigidMotionOptimizerState___str__(self)
12241 
12242  def __repr__(self):
12243  r"""__repr__(RemoveRigidMotionOptimizerState self) -> std::string"""
12244  return _IMP_atom.RemoveRigidMotionOptimizerState___repr__(self)
12245 
12246  @staticmethod
12247  def get_from(o):
12248  return _object_cast_to_RemoveRigidMotionOptimizerState(o)
12249 
12250 
12251 # Register RemoveRigidMotionOptimizerState in _IMP_atom:
12252 _IMP_atom.RemoveRigidMotionOptimizerState_swigregister(RemoveRigidMotionOptimizerState)
12253 class BerendsenThermostatOptimizerState(IMP.OptimizerState):
12254  r"""Proxy of C++ IMP::atom::BerendsenThermostatOptimizerState class."""
12255 
12256  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12257 
12258  def __init__(self, pis, temperature, tau):
12259  r"""__init__(BerendsenThermostatOptimizerState self, IMP::Particles const & pis, double temperature, double tau) -> BerendsenThermostatOptimizerState"""
12260  _IMP_atom.BerendsenThermostatOptimizerState_swiginit(self, _IMP_atom.new_BerendsenThermostatOptimizerState(pis, temperature, tau))
12261 
12262  def set_particles(self, pis):
12263  r"""set_particles(BerendsenThermostatOptimizerState self, IMP::Particles const & pis)"""
12264  return _IMP_atom.BerendsenThermostatOptimizerState_set_particles(self, pis)
12265 
12266  def get_particles(self):
12267  r"""get_particles(BerendsenThermostatOptimizerState self) -> IMP::Particles"""
12268  return _IMP_atom.BerendsenThermostatOptimizerState_get_particles(self)
12269 
12270  def get_temperature(self):
12271  r"""get_temperature(BerendsenThermostatOptimizerState self) -> double"""
12272  return _IMP_atom.BerendsenThermostatOptimizerState_get_temperature(self)
12273 
12274  def get_tau(self):
12275  r"""get_tau(BerendsenThermostatOptimizerState self) -> double"""
12276  return _IMP_atom.BerendsenThermostatOptimizerState_get_tau(self)
12277 
12278  def set_temperature(self, temperature):
12279  r"""set_temperature(BerendsenThermostatOptimizerState self, double temperature)"""
12280  return _IMP_atom.BerendsenThermostatOptimizerState_set_temperature(self, temperature)
12281 
12282  def set_tau(self, tau):
12283  r"""set_tau(BerendsenThermostatOptimizerState self, double tau)"""
12284  return _IMP_atom.BerendsenThermostatOptimizerState_set_tau(self, tau)
12285 
12286  def rescale_velocities(self):
12287  r"""rescale_velocities(BerendsenThermostatOptimizerState self)"""
12288  return _IMP_atom.BerendsenThermostatOptimizerState_rescale_velocities(self)
12289 
12290  def get_version_info(self):
12291  r"""get_version_info(BerendsenThermostatOptimizerState self) -> VersionInfo"""
12292  return _IMP_atom.BerendsenThermostatOptimizerState_get_version_info(self)
12293  __swig_destroy__ = _IMP_atom.delete_BerendsenThermostatOptimizerState
12294 
12295  def __str__(self):
12296  r"""__str__(BerendsenThermostatOptimizerState self) -> std::string"""
12297  return _IMP_atom.BerendsenThermostatOptimizerState___str__(self)
12298 
12299  def __repr__(self):
12300  r"""__repr__(BerendsenThermostatOptimizerState self) -> std::string"""
12301  return _IMP_atom.BerendsenThermostatOptimizerState___repr__(self)
12302 
12303  @staticmethod
12304  def get_from(o):
12305  return _object_cast_to_BerendsenThermostatOptimizerState(o)
12306 
12307 
12308  def _get_jax(self, state_index):
12309  import jax.lax
12310  import jax.numpy as jnp
12311 
12312  def apply_func(md, temperature, tau, indexes):
12313  ekinetic = md.get_kinetic_energy()
12314  tkinetic = md.get_kinetic_temperature(ekinetic)
12315  scale = jnp.sqrt(1.0 + (md.time_step / tau)
12316  * (temperature / tkinetic - 1.0))
12317  linvel = md.jm['linvel'].at[indexes]
12318  md.jm['linvel'] = linvel.multiply(scale)
12319  return md
12320 
12321  f = functools.partial(
12322  apply_func, temperature=self.get_temperature(),
12323  tau=self.get_tau(),
12324  indexes=jnp.asarray(IMP.get_indexes(self.get_particles())))
12325  return self._wrap_jax(lambda x: x, f)
12326 
12327 
12328 # Register BerendsenThermostatOptimizerState in _IMP_atom:
12329 _IMP_atom.BerendsenThermostatOptimizerState_swigregister(BerendsenThermostatOptimizerState)
12330 class LangevinThermostatOptimizerState(IMP.OptimizerState):
12331  r"""Proxy of C++ IMP::atom::LangevinThermostatOptimizerState class."""
12332 
12333  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12334 
12335  def __init__(self, m, pis, temperature, gamma):
12336  r"""__init__(LangevinThermostatOptimizerState self, Model m, _ParticleIndexesAdaptor pis, double temperature, double gamma) -> LangevinThermostatOptimizerState"""
12337  _IMP_atom.LangevinThermostatOptimizerState_swiginit(self, _IMP_atom.new_LangevinThermostatOptimizerState(m, pis, temperature, gamma))
12338 
12339  def set_particles(self, pis):
12340  r"""set_particles(LangevinThermostatOptimizerState self, IMP::Particles const & pis)"""
12341  return _IMP_atom.LangevinThermostatOptimizerState_set_particles(self, pis)
12342 
12343  def get_particles(self):
12344  r"""get_particles(LangevinThermostatOptimizerState self) -> IMP::Particles"""
12345  return _IMP_atom.LangevinThermostatOptimizerState_get_particles(self)
12346 
12347  def get_temperature(self):
12348  r"""get_temperature(LangevinThermostatOptimizerState self) -> double"""
12349  return _IMP_atom.LangevinThermostatOptimizerState_get_temperature(self)
12350 
12351  def get_gamma(self):
12352  r"""get_gamma(LangevinThermostatOptimizerState self) -> double"""
12353  return _IMP_atom.LangevinThermostatOptimizerState_get_gamma(self)
12354 
12355  def set_temperature(self, temperature):
12356  r"""set_temperature(LangevinThermostatOptimizerState self, double temperature)"""
12357  return _IMP_atom.LangevinThermostatOptimizerState_set_temperature(self, temperature)
12358 
12359  def set_gamma(self, gamma):
12360  r"""set_gamma(LangevinThermostatOptimizerState self, double gamma)"""
12361  return _IMP_atom.LangevinThermostatOptimizerState_set_gamma(self, gamma)
12362 
12363  def rescale_velocities(self):
12364  r"""rescale_velocities(LangevinThermostatOptimizerState self)"""
12365  return _IMP_atom.LangevinThermostatOptimizerState_rescale_velocities(self)
12366 
12367  def get_version_info(self):
12368  r"""get_version_info(LangevinThermostatOptimizerState self) -> VersionInfo"""
12369  return _IMP_atom.LangevinThermostatOptimizerState_get_version_info(self)
12370  __swig_destroy__ = _IMP_atom.delete_LangevinThermostatOptimizerState
12371 
12372  def __str__(self):
12373  r"""__str__(LangevinThermostatOptimizerState self) -> std::string"""
12374  return _IMP_atom.LangevinThermostatOptimizerState___str__(self)
12375 
12376  def __repr__(self):
12377  r"""__repr__(LangevinThermostatOptimizerState self) -> std::string"""
12378  return _IMP_atom.LangevinThermostatOptimizerState___repr__(self)
12379 
12380  @staticmethod
12381  def get_from(o):
12382  return _object_cast_to_LangevinThermostatOptimizerState(o)
12383 
12384 
12385  def _get_jax(self, state_index):
12386  import jax.lax
12387  import jax.numpy as jnp
12388  import jax.random
12389  gas_constant = 8.31441e-7
12390 
12391  def init_func(md):
12392  # Make our own random key split off from MD's key
12393  md.rkey, subkey = jax.random.split(md.rkey)
12394  md.optimizer_states[state_index] = subkey
12395  return md
12396 
12397  def apply_func(md, temperature, gamma, indexes):
12398  c1 = jnp.exp(-gamma * md.time_step)
12399  c2 = jnp.sqrt((1.0 - c1) * gas_constant * temperature)
12400  md.optimizer_states[state_index], subkey = jax.random.split(
12401  md.optimizer_states[state_index])
12402  sample = jax.random.normal(subkey, shape=(len(indexes), 3))
12403  mass = md.jm['mass'][indexes]
12404  linvel = md.jm['linvel'].at[indexes]
12405  md.jm['linvel'] = linvel.set(
12406  c1 * linvel.get()
12407  + c2 * jnp.sqrt((c1 + 1.0) / mass).reshape(len(indexes), 1)
12408  * sample)
12409  return md
12410 
12411  f = functools.partial(
12412  apply_func, temperature=self.get_temperature(),
12413  gamma=self.get_gamma(),
12414  indexes=jnp.asarray(IMP.get_indexes(self.get_particles())))
12415  return self._wrap_jax(init_func, f)
12416 
12417 
12418 # Register LangevinThermostatOptimizerState in _IMP_atom:
12419 _IMP_atom.LangevinThermostatOptimizerState_swigregister(LangevinThermostatOptimizerState)
12420 class PDBRecord(IMP._Value):
12421  r"""Proxy of C++ IMP::atom::PDBRecord class."""
12422 
12423  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12424 
12425  def __init__(self):
12426  r"""__init__(PDBRecord self) -> PDBRecord"""
12427  _IMP_atom.PDBRecord_swiginit(self, _IMP_atom.new_PDBRecord())
12428 
12429  def get_alt_loc_indicator(self):
12430  r"""get_alt_loc_indicator(PDBRecord self) -> std::string"""
12431  return _IMP_atom.PDBRecord_get_alt_loc_indicator(self)
12432 
12433  def get_is_atom(self):
12434  r"""get_is_atom(PDBRecord self) -> bool"""
12435  return _IMP_atom.PDBRecord_get_is_atom(self)
12436 
12437  def get_trimmed_atom_name(self):
12438  r"""get_trimmed_atom_name(PDBRecord self) -> std::string"""
12439  return _IMP_atom.PDBRecord_get_trimmed_atom_name(self)
12440 
12441  def get_padded_atom_name(self):
12442  r"""get_padded_atom_name(PDBRecord self) -> std::string"""
12443  return _IMP_atom.PDBRecord_get_padded_atom_name(self)
12444 
12445  def get_residue_name(self):
12446  r"""get_residue_name(PDBRecord self) -> std::string"""
12447  return _IMP_atom.PDBRecord_get_residue_name(self)
12448 
12449  def get_chain_id(self):
12450  r"""get_chain_id(PDBRecord self) -> std::string"""
12451  return _IMP_atom.PDBRecord_get_chain_id(self)
12452 
12453  def get_element(self):
12454  r"""get_element(PDBRecord self) -> std::string"""
12455  return _IMP_atom.PDBRecord_get_element(self)
12456 
12457  def show(self, *args):
12458  r"""show(PDBRecord self, _ostream out=std::cout)"""
12459  return _IMP_atom.PDBRecord_show(self, *args)
12460 
12461  def __str__(self):
12462  r"""__str__(PDBRecord self) -> std::string"""
12463  return _IMP_atom.PDBRecord___str__(self)
12464 
12465  def __repr__(self):
12466  r"""__repr__(PDBRecord self) -> std::string"""
12467  return _IMP_atom.PDBRecord___repr__(self)
12468  __swig_destroy__ = _IMP_atom.delete_PDBRecord
12469 
12470 # Register PDBRecord in _IMP_atom:
12471 _IMP_atom.PDBRecord_swigregister(PDBRecord)
12472 class PDBSelector(IMP.Object):
12473  r"""Proxy of C++ IMP::atom::PDBSelector 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, name):
12478  r"""__init__(PDBSelector self, std::string name) -> PDBSelector"""
12479  if self.__class__ == PDBSelector:
12480  _self = None
12481  else:
12482  _self = self
12483  _IMP_atom.PDBSelector_swiginit(self, _IMP_atom.new_PDBSelector(_self, name))
12484 
12485  if self.__class__ != PDBSelector:
12486  _director_objects.register(self)
12487 
12488 
12489 
12490 
12491  def get_is_selected(self, record):
12492  r"""get_is_selected(PDBSelector self, PDBRecord record) -> bool"""
12493  return _IMP_atom.PDBSelector_get_is_selected(self, record)
12494  __swig_destroy__ = _IMP_atom.delete_PDBSelector
12495 
12496  def __str__(self):
12497  r"""__str__(PDBSelector self) -> std::string"""
12498  return _IMP_atom.PDBSelector___str__(self)
12499 
12500  def __repr__(self):
12501  r"""__repr__(PDBSelector self) -> std::string"""
12502  return _IMP_atom.PDBSelector___repr__(self)
12503 
12504  @staticmethod
12505  def get_from(o):
12506  return _object_cast_to_PDBSelector(o)
12507 
12508 
12509  def do_show(self, out):
12510  pass
12511 
12512  @staticmethod
12513  def get_from(o):
12514  return _object_cast_to_PDBSelector(o)
12515 
12516 
12517  def __and__(self, s):
12518  return AndPDBSelector(self, s)
12519  def __or__(self, s):
12520  return OrPDBSelector(self, s)
12521  def __xor__(self, s):
12522  return XorPDBSelector(self, s)
12523  def __invert__(self):
12524  return NotPDBSelector(self)
12525  def __sub__(self, s):
12526  return AndPDBSelector(self, NotPDBSelector(s))
12527 
12528  def __disown__(self):
12529  self.this.disown()
12530  _IMP_atom.disown_PDBSelector(self)
12531  return weakref.proxy(self)
12532 
12533  def do_destroy(self):
12534  r"""do_destroy(PDBSelector self)"""
12535  return _IMP_atom.PDBSelector_do_destroy(self)
12536 
12537 # Register PDBSelector in _IMP_atom:
12538 _IMP_atom.PDBSelector_swigregister(PDBSelector)
12539 class NonAlternativePDBSelector(PDBSelector):
12540  r"""Proxy of C++ IMP::atom::NonAlternativePDBSelector class."""
12541 
12542  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12543 
12544  def __init__(self, *args):
12545  r"""__init__(NonAlternativePDBSelector self, std::string name="NonAlternativePDBSelector%1%") -> NonAlternativePDBSelector"""
12546  _IMP_atom.NonAlternativePDBSelector_swiginit(self, _IMP_atom.new_NonAlternativePDBSelector(*args))
12547 
12548  def get_version_info(self):
12549  r"""get_version_info(NonAlternativePDBSelector self) -> VersionInfo"""
12550  return _IMP_atom.NonAlternativePDBSelector_get_version_info(self)
12551  __swig_destroy__ = _IMP_atom.delete_NonAlternativePDBSelector
12552 
12553  def __str__(self):
12554  r"""__str__(NonAlternativePDBSelector self) -> std::string"""
12555  return _IMP_atom.NonAlternativePDBSelector___str__(self)
12556 
12557  def __repr__(self):
12558  r"""__repr__(NonAlternativePDBSelector self) -> std::string"""
12559  return _IMP_atom.NonAlternativePDBSelector___repr__(self)
12560 
12561  @staticmethod
12562  def get_from(o):
12563  return _object_cast_to_NonAlternativePDBSelector(o)
12564 
12565 
12566 # Register NonAlternativePDBSelector in _IMP_atom:
12567 _IMP_atom.NonAlternativePDBSelector_swigregister(NonAlternativePDBSelector)
12568 class ATOMPDBSelector(NonAlternativePDBSelector):
12569  r"""Proxy of C++ IMP::atom::ATOMPDBSelector class."""
12570 
12571  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12572 
12573  def __init__(self, *args):
12574  r"""__init__(ATOMPDBSelector self, std::string name="ATOMPDBSelector%1%") -> ATOMPDBSelector"""
12575  _IMP_atom.ATOMPDBSelector_swiginit(self, _IMP_atom.new_ATOMPDBSelector(*args))
12576  __swig_destroy__ = _IMP_atom.delete_ATOMPDBSelector
12577 
12578  def __str__(self):
12579  r"""__str__(ATOMPDBSelector self) -> std::string"""
12580  return _IMP_atom.ATOMPDBSelector___str__(self)
12581 
12582  def __repr__(self):
12583  r"""__repr__(ATOMPDBSelector self) -> std::string"""
12584  return _IMP_atom.ATOMPDBSelector___repr__(self)
12585 
12586  @staticmethod
12587  def get_from(o):
12588  return _object_cast_to_ATOMPDBSelector(o)
12589 
12590 
12591 # Register ATOMPDBSelector in _IMP_atom:
12592 _IMP_atom.ATOMPDBSelector_swigregister(ATOMPDBSelector)
12593 class CAlphaPDBSelector(NonAlternativePDBSelector):
12594  r"""Proxy of C++ IMP::atom::CAlphaPDBSelector class."""
12595 
12596  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12597 
12598  def __init__(self, *args):
12599  r"""__init__(CAlphaPDBSelector self, std::string name="CAlphaPDBSelector%1%") -> CAlphaPDBSelector"""
12600  _IMP_atom.CAlphaPDBSelector_swiginit(self, _IMP_atom.new_CAlphaPDBSelector(*args))
12601  __swig_destroy__ = _IMP_atom.delete_CAlphaPDBSelector
12602 
12603  def __str__(self):
12604  r"""__str__(CAlphaPDBSelector self) -> std::string"""
12605  return _IMP_atom.CAlphaPDBSelector___str__(self)
12606 
12607  def __repr__(self):
12608  r"""__repr__(CAlphaPDBSelector self) -> std::string"""
12609  return _IMP_atom.CAlphaPDBSelector___repr__(self)
12610 
12611  @staticmethod
12612  def get_from(o):
12613  return _object_cast_to_CAlphaPDBSelector(o)
12614 
12615 
12616 # Register CAlphaPDBSelector in _IMP_atom:
12617 _IMP_atom.CAlphaPDBSelector_swigregister(CAlphaPDBSelector)
12618 class CBetaPDBSelector(NonAlternativePDBSelector):
12619  r"""Proxy of C++ IMP::atom::CBetaPDBSelector class."""
12620 
12621  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12622 
12623  def __init__(self, *args):
12624  r"""__init__(CBetaPDBSelector self, std::string name="CBetaPDBSelector%1%") -> CBetaPDBSelector"""
12625  _IMP_atom.CBetaPDBSelector_swiginit(self, _IMP_atom.new_CBetaPDBSelector(*args))
12626  __swig_destroy__ = _IMP_atom.delete_CBetaPDBSelector
12627 
12628  def __str__(self):
12629  r"""__str__(CBetaPDBSelector self) -> std::string"""
12630  return _IMP_atom.CBetaPDBSelector___str__(self)
12631 
12632  def __repr__(self):
12633  r"""__repr__(CBetaPDBSelector self) -> std::string"""
12634  return _IMP_atom.CBetaPDBSelector___repr__(self)
12635 
12636  @staticmethod
12637  def get_from(o):
12638  return _object_cast_to_CBetaPDBSelector(o)
12639 
12640 
12641 # Register CBetaPDBSelector in _IMP_atom:
12642 _IMP_atom.CBetaPDBSelector_swigregister(CBetaPDBSelector)
12643 class AtomTypePDBSelector(PDBSelector):
12644  r"""Proxy of C++ IMP::atom::AtomTypePDBSelector class."""
12645 
12646  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12647 
12648  def __init__(self, *args):
12649  r"""__init__(AtomTypePDBSelector self, IMP::Strings atom_types, std::string name="AtomTypePDBSelector%1%") -> AtomTypePDBSelector"""
12650  _IMP_atom.AtomTypePDBSelector_swiginit(self, _IMP_atom.new_AtomTypePDBSelector(*args))
12651 
12652  def get_version_info(self):
12653  r"""get_version_info(AtomTypePDBSelector self) -> VersionInfo"""
12654  return _IMP_atom.AtomTypePDBSelector_get_version_info(self)
12655  __swig_destroy__ = _IMP_atom.delete_AtomTypePDBSelector
12656 
12657  def __str__(self):
12658  r"""__str__(AtomTypePDBSelector self) -> std::string"""
12659  return _IMP_atom.AtomTypePDBSelector___str__(self)
12660 
12661  def __repr__(self):
12662  r"""__repr__(AtomTypePDBSelector self) -> std::string"""
12663  return _IMP_atom.AtomTypePDBSelector___repr__(self)
12664 
12665  @staticmethod
12666  def get_from(o):
12667  return _object_cast_to_AtomTypePDBSelector(o)
12668 
12669 
12670 # Register AtomTypePDBSelector in _IMP_atom:
12671 _IMP_atom.AtomTypePDBSelector_swigregister(AtomTypePDBSelector)
12672 class ResidueTypePDBSelector(PDBSelector):
12673  r"""Proxy of C++ IMP::atom::ResidueTypePDBSelector class."""
12674 
12675  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12676 
12677  def __init__(self, *args):
12678  r"""__init__(ResidueTypePDBSelector self, IMP::Strings residue_types, std::string name="ResidueTypePDBSelector%1%") -> ResidueTypePDBSelector"""
12679  _IMP_atom.ResidueTypePDBSelector_swiginit(self, _IMP_atom.new_ResidueTypePDBSelector(*args))
12680 
12681  def get_version_info(self):
12682  r"""get_version_info(ResidueTypePDBSelector self) -> VersionInfo"""
12683  return _IMP_atom.ResidueTypePDBSelector_get_version_info(self)
12684  __swig_destroy__ = _IMP_atom.delete_ResidueTypePDBSelector
12685 
12686  def __str__(self):
12687  r"""__str__(ResidueTypePDBSelector self) -> std::string"""
12688  return _IMP_atom.ResidueTypePDBSelector___str__(self)
12689 
12690  def __repr__(self):
12691  r"""__repr__(ResidueTypePDBSelector self) -> std::string"""
12692  return _IMP_atom.ResidueTypePDBSelector___repr__(self)
12693 
12694  @staticmethod
12695  def get_from(o):
12696  return _object_cast_to_ResidueTypePDBSelector(o)
12697 
12698 
12699 # Register ResidueTypePDBSelector in _IMP_atom:
12700 _IMP_atom.ResidueTypePDBSelector_swigregister(ResidueTypePDBSelector)
12701 class CPDBSelector(NonAlternativePDBSelector):
12702  r"""Proxy of C++ IMP::atom::CPDBSelector class."""
12703 
12704  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12705 
12706  def __init__(self, *args):
12707  r"""__init__(CPDBSelector self, std::string name="CPDBSelector%1%") -> CPDBSelector"""
12708  _IMP_atom.CPDBSelector_swiginit(self, _IMP_atom.new_CPDBSelector(*args))
12709  __swig_destroy__ = _IMP_atom.delete_CPDBSelector
12710 
12711  def __str__(self):
12712  r"""__str__(CPDBSelector self) -> std::string"""
12713  return _IMP_atom.CPDBSelector___str__(self)
12714 
12715  def __repr__(self):
12716  r"""__repr__(CPDBSelector self) -> std::string"""
12717  return _IMP_atom.CPDBSelector___repr__(self)
12718 
12719  @staticmethod
12720  def get_from(o):
12721  return _object_cast_to_CPDBSelector(o)
12722 
12723 
12724 # Register CPDBSelector in _IMP_atom:
12725 _IMP_atom.CPDBSelector_swigregister(CPDBSelector)
12726 class NPDBSelector(NonAlternativePDBSelector):
12727  r"""Proxy of C++ IMP::atom::NPDBSelector class."""
12728 
12729  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12730 
12731  def __init__(self, *args):
12732  r"""__init__(NPDBSelector self, std::string name="NPDBSelector%1%") -> NPDBSelector"""
12733  _IMP_atom.NPDBSelector_swiginit(self, _IMP_atom.new_NPDBSelector(*args))
12734  __swig_destroy__ = _IMP_atom.delete_NPDBSelector
12735 
12736  def __str__(self):
12737  r"""__str__(NPDBSelector self) -> std::string"""
12738  return _IMP_atom.NPDBSelector___str__(self)
12739 
12740  def __repr__(self):
12741  r"""__repr__(NPDBSelector self) -> std::string"""
12742  return _IMP_atom.NPDBSelector___repr__(self)
12743 
12744  @staticmethod
12745  def get_from(o):
12746  return _object_cast_to_NPDBSelector(o)
12747 
12748 
12749 # Register NPDBSelector in _IMP_atom:
12750 _IMP_atom.NPDBSelector_swigregister(NPDBSelector)
12751 class AllPDBSelector(PDBSelector):
12752  r"""Proxy of C++ IMP::atom::AllPDBSelector class."""
12753 
12754  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12755 
12756  def __init__(self, *args):
12757  r"""__init__(AllPDBSelector self, std::string name="AllPDBSelector%1%") -> AllPDBSelector"""
12758  _IMP_atom.AllPDBSelector_swiginit(self, _IMP_atom.new_AllPDBSelector(*args))
12759 
12760  def get_version_info(self):
12761  r"""get_version_info(AllPDBSelector self) -> VersionInfo"""
12762  return _IMP_atom.AllPDBSelector_get_version_info(self)
12763  __swig_destroy__ = _IMP_atom.delete_AllPDBSelector
12764 
12765  def __str__(self):
12766  r"""__str__(AllPDBSelector self) -> std::string"""
12767  return _IMP_atom.AllPDBSelector___str__(self)
12768 
12769  def __repr__(self):
12770  r"""__repr__(AllPDBSelector self) -> std::string"""
12771  return _IMP_atom.AllPDBSelector___repr__(self)
12772 
12773  @staticmethod
12774  def get_from(o):
12775  return _object_cast_to_AllPDBSelector(o)
12776 
12777 
12778 # Register AllPDBSelector in _IMP_atom:
12779 _IMP_atom.AllPDBSelector_swigregister(AllPDBSelector)
12780 class ChainPDBSelector(NonAlternativePDBSelector):
12781  r"""Proxy of C++ IMP::atom::ChainPDBSelector class."""
12782 
12783  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12784  __swig_destroy__ = _IMP_atom.delete_ChainPDBSelector
12785 
12786  def __init__(self, *args):
12787  r"""__init__(ChainPDBSelector self, IMP::Strings chains, std::string name="ChainPDBSelector%1%") -> ChainPDBSelector"""
12788  _IMP_atom.ChainPDBSelector_swiginit(self, _IMP_atom.new_ChainPDBSelector(*args))
12789 
12790  def __str__(self):
12791  r"""__str__(ChainPDBSelector self) -> std::string"""
12792  return _IMP_atom.ChainPDBSelector___str__(self)
12793 
12794  def __repr__(self):
12795  r"""__repr__(ChainPDBSelector self) -> std::string"""
12796  return _IMP_atom.ChainPDBSelector___repr__(self)
12797 
12798  @staticmethod
12799  def get_from(o):
12800  return _object_cast_to_ChainPDBSelector(o)
12801 
12802 
12803 # Register ChainPDBSelector in _IMP_atom:
12804 _IMP_atom.ChainPDBSelector_swigregister(ChainPDBSelector)
12805 class WaterPDBSelector(NonAlternativePDBSelector):
12806  r"""Proxy of C++ IMP::atom::WaterPDBSelector class."""
12807 
12808  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12809 
12810  def __init__(self, *args):
12811  r"""__init__(WaterPDBSelector self, std::string name="WaterPDBSelector%1%") -> WaterPDBSelector"""
12812  _IMP_atom.WaterPDBSelector_swiginit(self, _IMP_atom.new_WaterPDBSelector(*args))
12813  __swig_destroy__ = _IMP_atom.delete_WaterPDBSelector
12814 
12815  def __str__(self):
12816  r"""__str__(WaterPDBSelector self) -> std::string"""
12817  return _IMP_atom.WaterPDBSelector___str__(self)
12818 
12819  def __repr__(self):
12820  r"""__repr__(WaterPDBSelector self) -> std::string"""
12821  return _IMP_atom.WaterPDBSelector___repr__(self)
12822 
12823  @staticmethod
12824  def get_from(o):
12825  return _object_cast_to_WaterPDBSelector(o)
12826 
12827 
12828 # Register WaterPDBSelector in _IMP_atom:
12829 _IMP_atom.WaterPDBSelector_swigregister(WaterPDBSelector)
12830 class HydrogenPDBSelector(NonAlternativePDBSelector):
12831  r"""Proxy of C++ IMP::atom::HydrogenPDBSelector class."""
12832 
12833  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12834 
12835  def __init__(self, *args):
12836  r"""__init__(HydrogenPDBSelector self, std::string name="HydrogenPDBSelector%1%") -> HydrogenPDBSelector"""
12837  _IMP_atom.HydrogenPDBSelector_swiginit(self, _IMP_atom.new_HydrogenPDBSelector(*args))
12838  __swig_destroy__ = _IMP_atom.delete_HydrogenPDBSelector
12839 
12840  def __str__(self):
12841  r"""__str__(HydrogenPDBSelector self) -> std::string"""
12842  return _IMP_atom.HydrogenPDBSelector___str__(self)
12843 
12844  def __repr__(self):
12845  r"""__repr__(HydrogenPDBSelector self) -> std::string"""
12846  return _IMP_atom.HydrogenPDBSelector___repr__(self)
12847 
12848  @staticmethod
12849  def get_from(o):
12850  return _object_cast_to_HydrogenPDBSelector(o)
12851 
12852 
12853 # Register HydrogenPDBSelector in _IMP_atom:
12854 _IMP_atom.HydrogenPDBSelector_swigregister(HydrogenPDBSelector)
12855 class NonWaterNonHydrogenPDBSelector(NonAlternativePDBSelector):
12856  r"""Proxy of C++ IMP::atom::NonWaterNonHydrogenPDBSelector class."""
12857 
12858  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12859  __swig_destroy__ = _IMP_atom.delete_NonWaterNonHydrogenPDBSelector
12860 
12861  def __init__(self, *args):
12862  r"""
12863  __init__(NonWaterNonHydrogenPDBSelector self, std::string name) -> NonWaterNonHydrogenPDBSelector
12864  __init__(NonWaterNonHydrogenPDBSelector self) -> NonWaterNonHydrogenPDBSelector
12865  """
12866  _IMP_atom.NonWaterNonHydrogenPDBSelector_swiginit(self, _IMP_atom.new_NonWaterNonHydrogenPDBSelector(*args))
12867 
12868  def __str__(self):
12869  r"""__str__(NonWaterNonHydrogenPDBSelector self) -> std::string"""
12870  return _IMP_atom.NonWaterNonHydrogenPDBSelector___str__(self)
12871 
12872  def __repr__(self):
12873  r"""__repr__(NonWaterNonHydrogenPDBSelector self) -> std::string"""
12874  return _IMP_atom.NonWaterNonHydrogenPDBSelector___repr__(self)
12875 
12876  @staticmethod
12877  def get_from(o):
12878  return _object_cast_to_NonWaterNonHydrogenPDBSelector(o)
12879 
12880 
12881 # Register NonWaterNonHydrogenPDBSelector in _IMP_atom:
12882 _IMP_atom.NonWaterNonHydrogenPDBSelector_swigregister(NonWaterNonHydrogenPDBSelector)
12883 class NonHydrogenPDBSelector(NonAlternativePDBSelector):
12884  r"""Proxy of C++ IMP::atom::NonHydrogenPDBSelector class."""
12885 
12886  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12887  __swig_destroy__ = _IMP_atom.delete_NonHydrogenPDBSelector
12888 
12889  def __init__(self, *args):
12890  r"""
12891  __init__(NonHydrogenPDBSelector self, std::string name) -> NonHydrogenPDBSelector
12892  __init__(NonHydrogenPDBSelector self) -> NonHydrogenPDBSelector
12893  """
12894  _IMP_atom.NonHydrogenPDBSelector_swiginit(self, _IMP_atom.new_NonHydrogenPDBSelector(*args))
12895 
12896  def __str__(self):
12897  r"""__str__(NonHydrogenPDBSelector self) -> std::string"""
12898  return _IMP_atom.NonHydrogenPDBSelector___str__(self)
12899 
12900  def __repr__(self):
12901  r"""__repr__(NonHydrogenPDBSelector self) -> std::string"""
12902  return _IMP_atom.NonHydrogenPDBSelector___repr__(self)
12903 
12904  @staticmethod
12905  def get_from(o):
12906  return _object_cast_to_NonHydrogenPDBSelector(o)
12907 
12908 
12909 # Register NonHydrogenPDBSelector in _IMP_atom:
12910 _IMP_atom.NonHydrogenPDBSelector_swigregister(NonHydrogenPDBSelector)
12911 class NonWaterPDBSelector(NonAlternativePDBSelector):
12912  r"""Proxy of C++ IMP::atom::NonWaterPDBSelector 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_NonWaterPDBSelector
12916 
12917  def __init__(self, *args):
12918  r"""
12919  __init__(NonWaterPDBSelector self, std::string name) -> NonWaterPDBSelector
12920  __init__(NonWaterPDBSelector self) -> NonWaterPDBSelector
12921  """
12922  _IMP_atom.NonWaterPDBSelector_swiginit(self, _IMP_atom.new_NonWaterPDBSelector(*args))
12923 
12924  def __str__(self):
12925  r"""__str__(NonWaterPDBSelector self) -> std::string"""
12926  return _IMP_atom.NonWaterPDBSelector___str__(self)
12927 
12928  def __repr__(self):
12929  r"""__repr__(NonWaterPDBSelector self) -> std::string"""
12930  return _IMP_atom.NonWaterPDBSelector___repr__(self)
12931 
12932  @staticmethod
12933  def get_from(o):
12934  return _object_cast_to_NonWaterPDBSelector(o)
12935 
12936 
12937 # Register NonWaterPDBSelector in _IMP_atom:
12938 _IMP_atom.NonWaterPDBSelector_swigregister(NonWaterPDBSelector)
12939 class BackbonePDBSelector(NonWaterNonHydrogenPDBSelector):
12940  r"""Proxy of C++ IMP::atom::BackbonePDBSelector class."""
12941 
12942  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12943 
12944  def __init__(self, *args):
12945  r"""__init__(BackbonePDBSelector self, std::string name="BackbonePDBSelector%1%") -> BackbonePDBSelector"""
12946  _IMP_atom.BackbonePDBSelector_swiginit(self, _IMP_atom.new_BackbonePDBSelector(*args))
12947  __swig_destroy__ = _IMP_atom.delete_BackbonePDBSelector
12948 
12949  def __str__(self):
12950  r"""__str__(BackbonePDBSelector self) -> std::string"""
12951  return _IMP_atom.BackbonePDBSelector___str__(self)
12952 
12953  def __repr__(self):
12954  r"""__repr__(BackbonePDBSelector self) -> std::string"""
12955  return _IMP_atom.BackbonePDBSelector___repr__(self)
12956 
12957  @staticmethod
12958  def get_from(o):
12959  return _object_cast_to_BackbonePDBSelector(o)
12960 
12961 
12962 # Register BackbonePDBSelector in _IMP_atom:
12963 _IMP_atom.BackbonePDBSelector_swigregister(BackbonePDBSelector)
12964 class PPDBSelector(NonAlternativePDBSelector):
12965  r"""Proxy of C++ IMP::atom::PPDBSelector class."""
12966 
12967  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12968 
12969  def __init__(self, *args):
12970  r"""__init__(PPDBSelector self, std::string name="PPDBSelector%1%") -> PPDBSelector"""
12971  _IMP_atom.PPDBSelector_swiginit(self, _IMP_atom.new_PPDBSelector(*args))
12972  __swig_destroy__ = _IMP_atom.delete_PPDBSelector
12973 
12974  def __str__(self):
12975  r"""__str__(PPDBSelector self) -> std::string"""
12976  return _IMP_atom.PPDBSelector___str__(self)
12977 
12978  def __repr__(self):
12979  r"""__repr__(PPDBSelector self) -> std::string"""
12980  return _IMP_atom.PPDBSelector___repr__(self)
12981 
12982  @staticmethod
12983  def get_from(o):
12984  return _object_cast_to_PPDBSelector(o)
12985 
12986 
12987 # Register PPDBSelector in _IMP_atom:
12988 _IMP_atom.PPDBSelector_swigregister(PPDBSelector)
12989 class AndPDBSelector(PDBSelector):
12990  r"""Proxy of C++ IMP::atom::AndPDBSelector class."""
12991 
12992  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12993 
12994  def get_version_info(self):
12995  r"""get_version_info(AndPDBSelector self) -> VersionInfo"""
12996  return _IMP_atom.AndPDBSelector_get_version_info(self)
12997  __swig_destroy__ = _IMP_atom.delete_AndPDBSelector
12998 
12999  def __init__(self, a, b):
13000  r"""__init__(AndPDBSelector self, PDBSelector a, PDBSelector b) -> AndPDBSelector"""
13001  _IMP_atom.AndPDBSelector_swiginit(self, _IMP_atom.new_AndPDBSelector(a, b))
13002 
13003  def __str__(self):
13004  r"""__str__(AndPDBSelector self) -> std::string"""
13005  return _IMP_atom.AndPDBSelector___str__(self)
13006 
13007  def __repr__(self):
13008  r"""__repr__(AndPDBSelector self) -> std::string"""
13009  return _IMP_atom.AndPDBSelector___repr__(self)
13010 
13011  @staticmethod
13012  def get_from(o):
13013  return _object_cast_to_AndPDBSelector(o)
13014 
13015 
13016 # Register AndPDBSelector in _IMP_atom:
13017 _IMP_atom.AndPDBSelector_swigregister(AndPDBSelector)
13018 class OrPDBSelector(PDBSelector):
13019  r"""Proxy of C++ IMP::atom::OrPDBSelector class."""
13020 
13021  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13022 
13023  def get_version_info(self):
13024  r"""get_version_info(OrPDBSelector self) -> VersionInfo"""
13025  return _IMP_atom.OrPDBSelector_get_version_info(self)
13026  __swig_destroy__ = _IMP_atom.delete_OrPDBSelector
13027 
13028  def __init__(self, a, b):
13029  r"""__init__(OrPDBSelector self, PDBSelector a, PDBSelector b) -> OrPDBSelector"""
13030  _IMP_atom.OrPDBSelector_swiginit(self, _IMP_atom.new_OrPDBSelector(a, b))
13031 
13032  def __str__(self):
13033  r"""__str__(OrPDBSelector self) -> std::string"""
13034  return _IMP_atom.OrPDBSelector___str__(self)
13035 
13036  def __repr__(self):
13037  r"""__repr__(OrPDBSelector self) -> std::string"""
13038  return _IMP_atom.OrPDBSelector___repr__(self)
13039 
13040  @staticmethod
13041  def get_from(o):
13042  return _object_cast_to_OrPDBSelector(o)
13043 
13044 
13045 # Register OrPDBSelector in _IMP_atom:
13046 _IMP_atom.OrPDBSelector_swigregister(OrPDBSelector)
13047 class XorPDBSelector(PDBSelector):
13048  r"""Proxy of C++ IMP::atom::XorPDBSelector class."""
13049 
13050  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13051 
13052  def get_version_info(self):
13053  r"""get_version_info(XorPDBSelector self) -> VersionInfo"""
13054  return _IMP_atom.XorPDBSelector_get_version_info(self)
13055  __swig_destroy__ = _IMP_atom.delete_XorPDBSelector
13056 
13057  def __init__(self, a, b):
13058  r"""__init__(XorPDBSelector self, PDBSelector a, PDBSelector b) -> XorPDBSelector"""
13059  _IMP_atom.XorPDBSelector_swiginit(self, _IMP_atom.new_XorPDBSelector(a, b))
13060 
13061  def __str__(self):
13062  r"""__str__(XorPDBSelector self) -> std::string"""
13063  return _IMP_atom.XorPDBSelector___str__(self)
13064 
13065  def __repr__(self):
13066  r"""__repr__(XorPDBSelector self) -> std::string"""
13067  return _IMP_atom.XorPDBSelector___repr__(self)
13068 
13069  @staticmethod
13070  def get_from(o):
13071  return _object_cast_to_XorPDBSelector(o)
13072 
13073 
13074 # Register XorPDBSelector in _IMP_atom:
13075 _IMP_atom.XorPDBSelector_swigregister(XorPDBSelector)
13076 class NotPDBSelector(PDBSelector):
13077  r"""Proxy of C++ IMP::atom::NotPDBSelector class."""
13078 
13079  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13080 
13081  def get_version_info(self):
13082  r"""get_version_info(NotPDBSelector self) -> VersionInfo"""
13083  return _IMP_atom.NotPDBSelector_get_version_info(self)
13084  __swig_destroy__ = _IMP_atom.delete_NotPDBSelector
13085 
13086  def __init__(self, a):
13087  r"""__init__(NotPDBSelector self, PDBSelector a) -> NotPDBSelector"""
13088  _IMP_atom.NotPDBSelector_swiginit(self, _IMP_atom.new_NotPDBSelector(a))
13089 
13090  def __str__(self):
13091  r"""__str__(NotPDBSelector self) -> std::string"""
13092  return _IMP_atom.NotPDBSelector___str__(self)
13093 
13094  def __repr__(self):
13095  r"""__repr__(NotPDBSelector self) -> std::string"""
13096  return _IMP_atom.NotPDBSelector___repr__(self)
13097 
13098  @staticmethod
13099  def get_from(o):
13100  return _object_cast_to_NotPDBSelector(o)
13101 
13102 
13103 # Register NotPDBSelector in _IMP_atom:
13104 _IMP_atom.NotPDBSelector_swigregister(NotPDBSelector)
13105 
13106 def get_default_pdb_selector():
13107  r"""get_default_pdb_selector() -> PDBSelector"""
13108  return _IMP_atom.get_default_pdb_selector()
13109 
13110 def read_pdb(*args):
13111  r"""
13112  read_pdb(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool select_first_model=True, bool no_radii=False) -> Hierarchy
13113  read_pdb(TextInput input, int model, Hierarchy h)
13114  """
13115  return _IMP_atom.read_pdb(*args)
13116 
13117 def read_multimodel_pdb(*args):
13118  r"""read_multimodel_pdb(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool noradii=False) -> IMP::atom::Hierarchies"""
13119  return _IMP_atom.read_multimodel_pdb(*args)
13120 
13121 def write_pdb(mhd, out, model=1):
13122  r"""write_pdb(Selection mhd, TextOutput out, unsigned int model=1)"""
13123  return _IMP_atom.write_pdb(mhd, out, model)
13124 
13125 def write_pdb_of_c_alphas(mhd, out, model=1):
13126  r"""write_pdb_of_c_alphas(Selection mhd, TextOutput out, unsigned int model=1)"""
13127  return _IMP_atom.write_pdb_of_c_alphas(mhd, out, model)
13128 
13129 def write_multimodel_pdb(mhd, out):
13130  r"""write_multimodel_pdb(IMP::atom::Hierarchies const & mhd, TextOutput out)"""
13131  return _IMP_atom.write_multimodel_pdb(mhd, out)
13132 
13133 def get_pdb_string(*args):
13134  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"""
13135  return _IMP_atom.get_pdb_string(*args)
13136 
13137 def get_pdb_conect_record_string(arg1, arg2):
13138  r"""get_pdb_conect_record_string(int arg1, int arg2) -> std::string"""
13139  return _IMP_atom.get_pdb_conect_record_string(arg1, arg2)
13140 class WritePDBOptimizerState(IMP.OptimizerState):
13141  r"""Proxy of C++ IMP::atom::WritePDBOptimizerState class."""
13142 
13143  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13144 
13145  def __init__(self, *args):
13146  r"""
13147  __init__(WritePDBOptimizerState self, Model m, _ParticleIndexesAdaptor pis, std::string filename) -> WritePDBOptimizerState
13148  __init__(WritePDBOptimizerState self, IMP::atom::Hierarchies const mh, std::string filename) -> WritePDBOptimizerState
13149  __init__(WritePDBOptimizerState self) -> WritePDBOptimizerState
13150  """
13151  _IMP_atom.WritePDBOptimizerState_swiginit(self, _IMP_atom.new_WritePDBOptimizerState(*args))
13152 
13153  def get_version_info(self):
13154  r"""get_version_info(WritePDBOptimizerState self) -> VersionInfo"""
13155  return _IMP_atom.WritePDBOptimizerState_get_version_info(self)
13156  __swig_destroy__ = _IMP_atom.delete_WritePDBOptimizerState
13157 
13158  def __str__(self):
13159  r"""__str__(WritePDBOptimizerState self) -> std::string"""
13160  return _IMP_atom.WritePDBOptimizerState___str__(self)
13161 
13162  def __repr__(self):
13163  r"""__repr__(WritePDBOptimizerState self) -> std::string"""
13164  return _IMP_atom.WritePDBOptimizerState___repr__(self)
13165 
13166  @staticmethod
13167  def get_from(o):
13168  return _object_cast_to_WritePDBOptimizerState(o)
13169 
13170 
13171  def _get_as_binary(self):
13172  r"""_get_as_binary(WritePDBOptimizerState self) -> PyObject *"""
13173  return _IMP_atom.WritePDBOptimizerState__get_as_binary(self)
13174 
13175  def _set_from_binary(self, p):
13176  r"""_set_from_binary(WritePDBOptimizerState self, PyObject * p)"""
13177  return _IMP_atom.WritePDBOptimizerState__set_from_binary(self, p)
13178 
13179  def __getstate__(self):
13180  p = self._get_as_binary()
13181  if len(self.__dict__) > 1:
13182  d = self.__dict__.copy()
13183  del d['this']
13184  p = (d, p)
13185  return p
13186 
13187  def __setstate__(self, p):
13188  if not hasattr(self, 'this'):
13189  self.__init__()
13190  if isinstance(p, tuple):
13191  d, p = p
13192  self.__dict__.update(d)
13193  return self._set_from_binary(p)
13194 
13195 
13196 # Register WritePDBOptimizerState in _IMP_atom:
13197 _IMP_atom.WritePDBOptimizerState_swigregister(WritePDBOptimizerState)
13198 
13199 def read_multimodel_mmcif(*args):
13200  r"""read_multimodel_mmcif(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool noradii=False) -> IMP::atom::Hierarchies"""
13201  return _IMP_atom.read_multimodel_mmcif(*args)
13202 
13203 def read_mmcif(*args):
13204  r"""read_mmcif(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool select_first_model=True, bool noradii=False) -> Hierarchy"""
13205  return _IMP_atom.read_mmcif(*args)
13206 
13207 def read_multimodel_bcif(*args):
13208  r"""read_multimodel_bcif(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool noradii=False) -> IMP::atom::Hierarchies"""
13209  return _IMP_atom.read_multimodel_bcif(*args)
13210 
13211 def read_bcif(*args):
13212  r"""read_bcif(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool select_first_model=True, bool noradii=False) -> Hierarchy"""
13213  return _IMP_atom.read_bcif(*args)
13214 
13215 def read_pdb_any(*args):
13216  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"""
13217  return _IMP_atom.read_pdb_any(*args)
13218 
13219 def read_multimodel_pdb_any(*args):
13220  r"""read_multimodel_pdb_any(TextInput input, Model model, PDBSelector selector=IMP::atom::get_default_pdb_selector(), bool noradii=False) -> IMP::atom::Hierarchies"""
13221  return _IMP_atom.read_multimodel_pdb_any(*args)
13222 
13223 def get_kt(T):
13224  r"""get_kt(double T) -> double"""
13225  return _IMP_atom.get_kt(T)
13226 class CAAngleRestraint(IMP.Restraint):
13227  r"""Proxy of C++ IMP::atom::CAAngleRestraint class."""
13228 
13229  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13230 
13231  def __init__(self, m, p1, p2, p3, phi0, score):
13232  r"""__init__(CAAngleRestraint self, Model m, _ParticleIndexAdaptor p1, _ParticleIndexAdaptor p2, _ParticleIndexAdaptor p3, IMP::Floats phi0, IMP::Floats score) -> CAAngleRestraint"""
13233  _IMP_atom.CAAngleRestraint_swiginit(self, _IMP_atom.new_CAAngleRestraint(m, p1, p2, p3, phi0, score))
13234 
13235  def do_get_inputs(self):
13236  r"""do_get_inputs(CAAngleRestraint self) -> IMP::ModelObjectsTemp"""
13237  return _IMP_atom.CAAngleRestraint_do_get_inputs(self)
13238 
13239  def get_version_info(self):
13240  r"""get_version_info(CAAngleRestraint self) -> VersionInfo"""
13241  return _IMP_atom.CAAngleRestraint_get_version_info(self)
13242  __swig_destroy__ = _IMP_atom.delete_CAAngleRestraint
13243 
13244  def __str__(self):
13245  r"""__str__(CAAngleRestraint self) -> std::string"""
13246  return _IMP_atom.CAAngleRestraint___str__(self)
13247 
13248  def __repr__(self):
13249  r"""__repr__(CAAngleRestraint self) -> std::string"""
13250  return _IMP_atom.CAAngleRestraint___repr__(self)
13251 
13252  @staticmethod
13253  def get_from(o):
13254  return _object_cast_to_CAAngleRestraint(o)
13255 
13256 
13257 # Register CAAngleRestraint in _IMP_atom:
13258 _IMP_atom.CAAngleRestraint_swigregister(CAAngleRestraint)
13259 class CADihedralRestraint(IMP.Restraint):
13260  r"""Proxy of C++ IMP::atom::CADihedralRestraint class."""
13261 
13262  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13263 
13264  def __init__(self, m, p1, p2, p3, p4, p5, phi0, phi1, score):
13265  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"""
13266  _IMP_atom.CADihedralRestraint_swiginit(self, _IMP_atom.new_CADihedralRestraint(m, p1, p2, p3, p4, p5, phi0, phi1, score))
13267 
13268  def do_get_inputs(self):
13269  r"""do_get_inputs(CADihedralRestraint self) -> IMP::ModelObjectsTemp"""
13270  return _IMP_atom.CADihedralRestraint_do_get_inputs(self)
13271 
13272  def get_version_info(self):
13273  r"""get_version_info(CADihedralRestraint self) -> VersionInfo"""
13274  return _IMP_atom.CADihedralRestraint_get_version_info(self)
13275  __swig_destroy__ = _IMP_atom.delete_CADihedralRestraint
13276 
13277  def __str__(self):
13278  r"""__str__(CADihedralRestraint self) -> std::string"""
13279  return _IMP_atom.CADihedralRestraint___str__(self)
13280 
13281  def __repr__(self):
13282  r"""__repr__(CADihedralRestraint self) -> std::string"""
13283  return _IMP_atom.CADihedralRestraint___repr__(self)
13284 
13285  @staticmethod
13286  def get_from(o):
13287  return _object_cast_to_CADihedralRestraint(o)
13288 
13289 
13290 # Register CADihedralRestraint in _IMP_atom:
13291 _IMP_atom.CADihedralRestraint_swigregister(CADihedralRestraint)
13292 class StructureSource(IMP.Decorator):
13293  r"""Proxy of C++ IMP::atom::StructureSource class."""
13294 
13295  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13296 
13297  def get_source_id(self):
13298  r"""get_source_id(StructureSource self) -> std::string"""
13299  return _IMP_atom.StructureSource_get_source_id(self)
13300 
13301  def get_source_chain_id(self):
13302  r"""get_source_chain_id(StructureSource self) -> std::string"""
13303  return _IMP_atom.StructureSource_get_source_chain_id(self)
13304 
13305  def set_source_id(self, source_id):
13306  r"""set_source_id(StructureSource self, std::string source_id)"""
13307  return _IMP_atom.StructureSource_set_source_id(self, source_id)
13308 
13309  def set_source_chain_id(self, source_chain_id):
13310  r"""set_source_chain_id(StructureSource self, std::string source_chain_id)"""
13311  return _IMP_atom.StructureSource_set_source_chain_id(self, source_chain_id)
13312 
13313  def __init__(self, *args):
13314  r"""
13315  __init__(StructureSource self) -> StructureSource
13316  __init__(StructureSource self, Model m, ParticleIndex id) -> StructureSource
13317  __init__(StructureSource self, _ParticleAdaptor d) -> StructureSource
13318  """
13319  _IMP_atom.StructureSource_swiginit(self, _IMP_atom.new_StructureSource(*args))
13320 
13321  @staticmethod
13322  def get_is_setup(*args):
13323  r"""
13324  get_is_setup(Model m, ParticleIndex pi) -> bool
13325  get_is_setup(_ParticleAdaptor p) -> bool
13326  """
13327  return _IMP_atom.StructureSource_get_is_setup(*args)
13328 
13329  def show(self, *args):
13330  r"""show(StructureSource self, _ostream out=std::cout)"""
13331  return _IMP_atom.StructureSource_show(self, *args)
13332 
13333  @staticmethod
13334  def setup_particle(*args):
13335  r"""
13336  setup_particle(Model m, ParticleIndex pi, std::string source_id, std::string source_chain_id) -> StructureSource
13337  setup_particle(_ParticleAdaptor pa, std::string source_id, std::string source_chain_id) -> StructureSource
13338  """
13339  return _IMP_atom.StructureSource_setup_particle(*args)
13340 
13341  def add_attribute(self, *args):
13342  r"""
13343  add_attribute(StructureSource self, FloatKey k, IMP::Float v, bool opt)
13344  add_attribute(StructureSource self, FloatKey a0, IMP::Float a1)
13345  add_attribute(StructureSource self, IntKey a0, IMP::Int a1)
13346  add_attribute(StructureSource self, FloatsKey a0, IMP::Floats a1)
13347  add_attribute(StructureSource self, IntsKey a0, IMP::Ints a1)
13348  add_attribute(StructureSource self, StringKey a0, IMP::String a1)
13349  add_attribute(StructureSource self, ParticleIndexKey a0, Particle a1)
13350  add_attribute(StructureSource self, ObjectKey a0, Object a1)
13351  add_attribute(StructureSource self, SparseFloatKey a0, IMP::Float a1)
13352  add_attribute(StructureSource self, SparseIntKey a0, IMP::Int a1)
13353  add_attribute(StructureSource self, SparseStringKey a0, IMP::String a1)
13354  add_attribute(StructureSource self, SparseParticleIndexKey a0, ParticleIndex a1)
13355  """
13356  return _IMP_atom.StructureSource_add_attribute(self, *args)
13357 
13358  def get_value(self, *args):
13359  r"""
13360  get_value(StructureSource self, FloatKey a0) -> IMP::Float
13361  get_value(StructureSource self, IntKey a0) -> IMP::Int
13362  get_value(StructureSource self, FloatsKey a0) -> IMP::Floats
13363  get_value(StructureSource self, IntsKey a0) -> IMP::Ints
13364  get_value(StructureSource self, StringKey a0) -> IMP::String
13365  get_value(StructureSource self, ParticleIndexKey a0) -> Particle
13366  get_value(StructureSource self, ObjectKey a0) -> Object
13367  get_value(StructureSource self, SparseFloatKey a0) -> IMP::Float
13368  get_value(StructureSource self, SparseIntKey a0) -> IMP::Int
13369  get_value(StructureSource self, SparseStringKey a0) -> IMP::String
13370  get_value(StructureSource self, SparseParticleIndexKey a0) -> ParticleIndex
13371  """
13372  return _IMP_atom.StructureSource_get_value(self, *args)
13373 
13374  def set_value(self, *args):
13375  r"""
13376  set_value(StructureSource self, FloatKey a0, IMP::Float a1)
13377  set_value(StructureSource self, IntKey a0, IMP::Int a1)
13378  set_value(StructureSource self, FloatsKey a0, IMP::Floats a1)
13379  set_value(StructureSource self, IntsKey a0, IMP::Ints a1)
13380  set_value(StructureSource self, StringKey a0, IMP::String a1)
13381  set_value(StructureSource self, ParticleIndexKey a0, Particle a1)
13382  set_value(StructureSource self, ObjectKey a0, Object a1)
13383  set_value(StructureSource self, SparseFloatKey a0, IMP::Float a1)
13384  set_value(StructureSource self, SparseIntKey a0, IMP::Int a1)
13385  set_value(StructureSource self, SparseStringKey a0, IMP::String a1)
13386  set_value(StructureSource self, SparseParticleIndexKey a0, ParticleIndex a1)
13387  """
13388  return _IMP_atom.StructureSource_set_value(self, *args)
13389 
13390  def remove_attribute(self, *args):
13391  r"""
13392  remove_attribute(StructureSource self, FloatKey a0)
13393  remove_attribute(StructureSource self, IntKey a0)
13394  remove_attribute(StructureSource self, FloatsKey a0)
13395  remove_attribute(StructureSource self, IntsKey a0)
13396  remove_attribute(StructureSource self, StringKey a0)
13397  remove_attribute(StructureSource self, ParticleIndexKey a0)
13398  remove_attribute(StructureSource self, ObjectKey a0)
13399  remove_attribute(StructureSource self, SparseFloatKey a0)
13400  remove_attribute(StructureSource self, SparseIntKey a0)
13401  remove_attribute(StructureSource self, SparseStringKey a0)
13402  remove_attribute(StructureSource self, SparseParticleIndexKey a0)
13403  """
13404  return _IMP_atom.StructureSource_remove_attribute(self, *args)
13405 
13406  def has_attribute(self, *args):
13407  r"""
13408  has_attribute(StructureSource self, FloatKey a0) -> bool
13409  has_attribute(StructureSource self, IntKey a0) -> bool
13410  has_attribute(StructureSource self, FloatsKey a0) -> bool
13411  has_attribute(StructureSource self, IntsKey a0) -> bool
13412  has_attribute(StructureSource self, StringKey a0) -> bool
13413  has_attribute(StructureSource self, ParticleIndexKey a0) -> bool
13414  has_attribute(StructureSource self, ObjectKey a0) -> bool
13415  has_attribute(StructureSource self, SparseFloatKey a0) -> bool
13416  has_attribute(StructureSource self, SparseIntKey a0) -> bool
13417  has_attribute(StructureSource self, SparseStringKey a0) -> bool
13418  has_attribute(StructureSource self, SparseParticleIndexKey a0) -> bool
13419  """
13420  return _IMP_atom.StructureSource_has_attribute(self, *args)
13421 
13422  def get_derivative(self, a0):
13423  r"""get_derivative(StructureSource self, FloatKey a0) -> double"""
13424  return _IMP_atom.StructureSource_get_derivative(self, a0)
13425 
13426  def get_name(self):
13427  r"""get_name(StructureSource self) -> std::string"""
13428  return _IMP_atom.StructureSource_get_name(self)
13429 
13430  def clear_caches(self):
13431  r"""clear_caches(StructureSource self)"""
13432  return _IMP_atom.StructureSource_clear_caches(self)
13433 
13434  def set_name(self, a0):
13435  r"""set_name(StructureSource self, std::string a0)"""
13436  return _IMP_atom.StructureSource_set_name(self, a0)
13437 
13438  def set_check_level(self, a0):
13439  r"""set_check_level(StructureSource self, IMP::CheckLevel a0)"""
13440  return _IMP_atom.StructureSource_set_check_level(self, a0)
13441 
13442  def add_to_derivative(self, a0, a1, a2):
13443  r"""add_to_derivative(StructureSource self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
13444  return _IMP_atom.StructureSource_add_to_derivative(self, a0, a1, a2)
13445 
13446  def set_is_optimized(self, a0, a1):
13447  r"""set_is_optimized(StructureSource self, FloatKey a0, bool a1)"""
13448  return _IMP_atom.StructureSource_set_is_optimized(self, a0, a1)
13449 
13450  def get_is_optimized(self, a0):
13451  r"""get_is_optimized(StructureSource self, FloatKey a0) -> bool"""
13452  return _IMP_atom.StructureSource_get_is_optimized(self, a0)
13453 
13454  def get_check_level(self):
13455  r"""get_check_level(StructureSource self) -> IMP::CheckLevel"""
13456  return _IMP_atom.StructureSource_get_check_level(self)
13457 
13458  def __eq__(self, *args):
13459  r"""
13460  __eq__(StructureSource self, StructureSource o) -> bool
13461  __eq__(StructureSource self, Particle d) -> bool
13462  """
13463  return _IMP_atom.StructureSource___eq__(self, *args)
13464 
13465  def __ne__(self, *args):
13466  r"""
13467  __ne__(StructureSource self, StructureSource o) -> bool
13468  __ne__(StructureSource self, Particle d) -> bool
13469  """
13470  return _IMP_atom.StructureSource___ne__(self, *args)
13471 
13472  def __le__(self, *args):
13473  r"""
13474  __le__(StructureSource self, StructureSource o) -> bool
13475  __le__(StructureSource self, Particle d) -> bool
13476  """
13477  return _IMP_atom.StructureSource___le__(self, *args)
13478 
13479  def __lt__(self, *args):
13480  r"""
13481  __lt__(StructureSource self, StructureSource o) -> bool
13482  __lt__(StructureSource self, Particle d) -> bool
13483  """
13484  return _IMP_atom.StructureSource___lt__(self, *args)
13485 
13486  def __ge__(self, *args):
13487  r"""
13488  __ge__(StructureSource self, StructureSource o) -> bool
13489  __ge__(StructureSource self, Particle d) -> bool
13490  """
13491  return _IMP_atom.StructureSource___ge__(self, *args)
13492 
13493  def __gt__(self, *args):
13494  r"""
13495  __gt__(StructureSource self, StructureSource o) -> bool
13496  __gt__(StructureSource self, Particle d) -> bool
13497  """
13498  return _IMP_atom.StructureSource___gt__(self, *args)
13499 
13500  def __hash__(self):
13501  r"""__hash__(StructureSource self) -> std::size_t"""
13502  return _IMP_atom.StructureSource___hash__(self)
13503 
13504  def __str__(self):
13505  r"""__str__(StructureSource self) -> std::string"""
13506  return _IMP_atom.StructureSource___str__(self)
13507 
13508  def __repr__(self):
13509  r"""__repr__(StructureSource self) -> std::string"""
13510  return _IMP_atom.StructureSource___repr__(self)
13511 
13512  def _get_as_binary(self):
13513  r"""_get_as_binary(StructureSource self) -> PyObject *"""
13514  return _IMP_atom.StructureSource__get_as_binary(self)
13515 
13516  def _set_from_binary(self, p):
13517  r"""_set_from_binary(StructureSource self, PyObject * p)"""
13518  return _IMP_atom.StructureSource__set_from_binary(self, p)
13519 
13520  def __getstate__(self):
13521  p = self._get_as_binary()
13522  if len(self.__dict__) > 1:
13523  d = self.__dict__.copy()
13524  del d['this']
13525  p = (d, p)
13526  return p
13527 
13528  def __setstate__(self, p):
13529  if not hasattr(self, 'this'):
13530  self.__init__()
13531  if isinstance(p, tuple):
13532  d, p = p
13533  self.__dict__.update(d)
13534  return self._set_from_binary(p)
13535 
13536  __swig_destroy__ = _IMP_atom.delete_StructureSource
13537 
13538 # Register StructureSource in _IMP_atom:
13539 _IMP_atom.StructureSource_swigregister(StructureSource)
13540 
13541 def __lshift__(*args):
13542  r"""
13543  __lshift__(_ostream out, Bonded n) -> _ostream
13544  __lshift__(_ostream out, Bond n) -> _ostream
13545  __lshift__(_ostream out, Hierarchy n) -> _ostream
13546  __lshift__(_ostream out, Angle n) -> _ostream
13547  __lshift__(_ostream out, Dihedral n) -> _ostream
13548  __lshift__(_ostream out, CenterOfMass n) -> _ostream
13549  __lshift__(_ostream out, Diffusion n) -> _ostream
13550  __lshift__(_ostream out, RigidBodyDiffusion n) -> _ostream
13551  __lshift__(_ostream out, TAMDParticle n) -> _ostream
13552  __lshift__(_ostream out, Charged n) -> _ostream
13553  __lshift__(_ostream out, Domain n) -> _ostream
13554  __lshift__(_ostream out, LennardJonesTyped n) -> _ostream
13555  __lshift__(_ostream out, Fragment n) -> _ostream
13556  __lshift__(_ostream out, SecondaryStructureResidue n) -> _ostream
13557  __lshift__(_ostream out, Atom n) -> _ostream
13558  __lshift__(_ostream out, Residue n) -> _ostream
13559  __lshift__(_ostream out, Representation n) -> _ostream
13560  __lshift__(_ostream out, State n) -> _ostream
13561  __lshift__(_ostream out, Molecule n) -> _ostream
13562  __lshift__(_ostream out, Copy n) -> _ostream
13563  __lshift__(_ostream out, Chain n) -> _ostream
13564  __lshift__(_ostream out, StructureSource n) -> _ostream
13565  """
13566  return _IMP_atom.__lshift__(*args)
13567 class HelixRestraint(IMP.Restraint):
13568  r"""Proxy of C++ IMP::atom::HelixRestraint class."""
13569 
13570  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13571 
13572  def __init__(self, rs, ideal=True):
13573  r"""__init__(HelixRestraint self, IMP::atom::Residues rs, bool ideal=True) -> HelixRestraint"""
13574  _IMP_atom.HelixRestraint_swiginit(self, _IMP_atom.new_HelixRestraint(rs, ideal))
13575 
13576  def get_number_of_bonds(self):
13577  r"""get_number_of_bonds(HelixRestraint self) -> int"""
13578  return _IMP_atom.HelixRestraint_get_number_of_bonds(self)
13579 
13580  def get_number_of_dihedrals(self):
13581  r"""get_number_of_dihedrals(HelixRestraint self) -> int"""
13582  return _IMP_atom.HelixRestraint_get_number_of_dihedrals(self)
13583 
13584  def do_get_inputs(self):
13585  r"""do_get_inputs(HelixRestraint self) -> IMP::ModelObjectsTemp"""
13586  return _IMP_atom.HelixRestraint_do_get_inputs(self)
13587 
13588  def get_version_info(self):
13589  r"""get_version_info(HelixRestraint self) -> VersionInfo"""
13590  return _IMP_atom.HelixRestraint_get_version_info(self)
13591  __swig_destroy__ = _IMP_atom.delete_HelixRestraint
13592 
13593  def __str__(self):
13594  r"""__str__(HelixRestraint self) -> std::string"""
13595  return _IMP_atom.HelixRestraint___str__(self)
13596 
13597  def __repr__(self):
13598  r"""__repr__(HelixRestraint self) -> std::string"""
13599  return _IMP_atom.HelixRestraint___repr__(self)
13600 
13601  @staticmethod
13602  def get_from(o):
13603  return _object_cast_to_HelixRestraint(o)
13604 
13605 
13606 # Register HelixRestraint in _IMP_atom:
13607 _IMP_atom.HelixRestraint_swigregister(HelixRestraint)
13608 
13610  r"""get_transformation_aligning_first_to_second(Selection s1, Selection s2) -> Transformation3D"""
13611  return _IMP_atom.get_transformation_aligning_first_to_second(s1, s2)
13612 
13613 def show_molecular_hierarchy(*args):
13614  r"""show_molecular_hierarchy(Hierarchy h, _ostream out=std::cout) -> _ostream"""
13615  return _IMP_atom.show_molecular_hierarchy(*args)
13616 class CHARMMBond(object):
13617  r"""Proxy of C++ IMP::atom::CHARMMConnection< 2 > class."""
13618 
13619  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13620  __repr__ = _swig_repr
13621 
13622  def __init__(self, atoms):
13623  r"""__init__(CHARMMBond self, IMP::Strings const & atoms) -> CHARMMBond"""
13624  _IMP_atom.CHARMMBond_swiginit(self, _IMP_atom.new_CHARMMBond(atoms))
13625 
13626  def get_endpoint(self, i):
13627  r"""get_endpoint(CHARMMBond self, unsigned int i) -> CHARMMBondEndpoint"""
13628  return _IMP_atom.CHARMMBond_get_endpoint(self, i)
13629 
13630  def get_contains_atom(self, name):
13631  r"""get_contains_atom(CHARMMBond self, std::string name) -> bool"""
13632  return _IMP_atom.CHARMMBond_get_contains_atom(self, name)
13633 
13634  def show(self, *args):
13635  r"""show(CHARMMBond self, _ostream out=std::cout)"""
13636  return _IMP_atom.CHARMMBond_show(self, *args)
13637  __swig_destroy__ = _IMP_atom.delete_CHARMMBond
13638 
13639 # Register CHARMMBond in _IMP_atom:
13640 _IMP_atom.CHARMMBond_swigregister(CHARMMBond)
13641 class CHARMMAngle(object):
13642  r"""Proxy of C++ IMP::atom::CHARMMConnection< 3 > class."""
13643 
13644  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13645  __repr__ = _swig_repr
13646 
13647  def __init__(self, atoms):
13648  r"""__init__(CHARMMAngle self, IMP::Strings const & atoms) -> CHARMMAngle"""
13649  _IMP_atom.CHARMMAngle_swiginit(self, _IMP_atom.new_CHARMMAngle(atoms))
13650 
13651  def get_endpoint(self, i):
13652  r"""get_endpoint(CHARMMAngle self, unsigned int i) -> CHARMMBondEndpoint"""
13653  return _IMP_atom.CHARMMAngle_get_endpoint(self, i)
13654 
13655  def get_contains_atom(self, name):
13656  r"""get_contains_atom(CHARMMAngle self, std::string name) -> bool"""
13657  return _IMP_atom.CHARMMAngle_get_contains_atom(self, name)
13658 
13659  def show(self, *args):
13660  r"""show(CHARMMAngle self, _ostream out=std::cout)"""
13661  return _IMP_atom.CHARMMAngle_show(self, *args)
13662  __swig_destroy__ = _IMP_atom.delete_CHARMMAngle
13663 
13664 # Register CHARMMAngle in _IMP_atom:
13665 _IMP_atom.CHARMMAngle_swigregister(CHARMMAngle)
13666 
13667 def _get_native_overlap_cpp(m1, m2, threshold):
13668  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"""
13669  return _IMP_atom._get_native_overlap_cpp(m1, m2, threshold)
13670 
13671 def _get_drmsd_cpp(m0, m1):
13672  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"""
13673  return _IMP_atom._get_drmsd_cpp(m0, m1)
13674 
13675 def _get_drmsd_Q_cpp(m0, m1, threshold):
13676  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"""
13677  return _IMP_atom._get_drmsd_Q_cpp(m0, m1, threshold)
13678 
13679 def _get_drms_cpp(m1, m2):
13680  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"""
13681  return _IMP_atom._get_drms_cpp(m1, m2)
13682 
13683 def _get_rigid_bodies_drms_cpp(m1, m2, ranges):
13684  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"""
13685  return _IMP_atom._get_rigid_bodies_drms_cpp(m1, m2, ranges)
13686 
13687 def get_native_overlap(a, b, d):
13688  va= [IMP.algebra.get_vector(x) for x in a]
13689  vb= [IMP.algebra.get_vector(x) for x in b]
13690  return _get_native_overlap_cpp(va, vb, d)
13691 
13692 def get_drmsd(a, b):
13693  va= [IMP.algebra.get_vector(x) for x in a]
13694  vb= [IMP.algebra.get_vector(x) for x in b]
13695  return _get_drmsd_cpp(va, vb)
13696 
13697 def get_drms(a, b):
13698  va= [IMP.algebra.get_vector(x) for x in a]
13699  vb= [IMP.algebra.get_vector(x) for x in b]
13700  return _get_drms_cpp(va, vb)
13701 
13702 def get_drmsd_Q(a, b, t):
13703  va= [IMP.algebra.get_vector(x) for x in a]
13704  vb= [IMP.algebra.get_vector(x) for x in b]
13705  return _get_drmsd_Q_cpp(va, vb, t)
13706 
13707 def get_rigid_bodies_drms(a, b, ranges):
13708  va= [IMP.algebra.get_vector(x) for x in a]
13709  vb= [IMP.algebra.get_vector(x) for x in b]
13710 #rs = [IMP.IntRange(r[0],r[1]) for r in ranges]
13711  return _get_rigid_bodies_drms_cpp(va, vb, ranges)
13712 
13713 
13714 class _LennardJonesTypedPairScore(IMP.PairScore):
13715  r"""Proxy of C++ IMP::atom::LennardJonesTypedPairScore< IMP::atom::SmoothingFunction > class."""
13716 
13717  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13718  __repr__ = _swig_repr
13719 
13720  def __init__(self, f):
13721  r"""__init__(_LennardJonesTypedPairScore self, SmoothingFunction f) -> _LennardJonesTypedPairScore"""
13722  _IMP_atom._LennardJonesTypedPairScore_swiginit(self, _IMP_atom.new__LennardJonesTypedPairScore(f))
13723 
13724  def set_repulsive_weight(self, repulsive_weight):
13725  r"""set_repulsive_weight(_LennardJonesTypedPairScore self, double repulsive_weight)"""
13726  return _IMP_atom._LennardJonesTypedPairScore_set_repulsive_weight(self, repulsive_weight)
13727 
13728  def get_repulsive_weight(self):
13729  r"""get_repulsive_weight(_LennardJonesTypedPairScore self) -> double"""
13730  return _IMP_atom._LennardJonesTypedPairScore_get_repulsive_weight(self)
13731 
13732  def set_attractive_weight(self, attractive_weight):
13733  r"""set_attractive_weight(_LennardJonesTypedPairScore self, double attractive_weight)"""
13734  return _IMP_atom._LennardJonesTypedPairScore_set_attractive_weight(self, attractive_weight)
13735 
13736  def get_attractive_weight(self):
13737  r"""get_attractive_weight(_LennardJonesTypedPairScore self) -> double"""
13738  return _IMP_atom._LennardJonesTypedPairScore_get_attractive_weight(self)
13739 
13740  def get_repulsive_type_factors(self):
13741  r"""get_repulsive_type_factors(_LennardJonesTypedPairScore self) -> IMP::Floats"""
13742  return _IMP_atom._LennardJonesTypedPairScore_get_repulsive_type_factors(self)
13743 
13744  def get_attractive_type_factors(self):
13745  r"""get_attractive_type_factors(_LennardJonesTypedPairScore self) -> IMP::Floats"""
13746  return _IMP_atom._LennardJonesTypedPairScore_get_attractive_type_factors(self)
13747 
13748  def get_smoothing_function(self):
13749  r"""get_smoothing_function(_LennardJonesTypedPairScore self) -> SmoothingFunction"""
13750  return _IMP_atom._LennardJonesTypedPairScore_get_smoothing_function(self)
13751 
13752  def do_get_inputs(self, m, pis):
13753  r"""do_get_inputs(_LennardJonesTypedPairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
13754  return _IMP_atom._LennardJonesTypedPairScore_do_get_inputs(self, m, pis)
13755 
13756  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
13757  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"""
13758  return _IMP_atom._LennardJonesTypedPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
13759 
13760  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
13761  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"""
13762  return _IMP_atom._LennardJonesTypedPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
13763 
13764  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
13765  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"""
13766  return _IMP_atom._LennardJonesTypedPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
13767 
13768  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
13769  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"""
13770  return _IMP_atom._LennardJonesTypedPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
13771 
13772  def get_version_info(self):
13773  r"""get_version_info(_LennardJonesTypedPairScore self) -> VersionInfo"""
13774  return _IMP_atom._LennardJonesTypedPairScore_get_version_info(self)
13775  __swig_destroy__ = _IMP_atom.delete__LennardJonesTypedPairScore
13776 
13777  @staticmethod
13778  def get_from(o):
13779  return _object_cast_to__LennardJonesTypedPairScore(o)
13780 
13781 
13782  def _get_jax(self, m, indexes):
13783  import IMP.atom._jax_util
13784  score = IMP.atom._jax_util._get_lennard_jones_score(self, indexes)
13785  return self._wrap_jax(m, score, keys=[LennardJonesTyped.get_type_key()])
13786 
13787 
13788 # Register _LennardJonesTypedPairScore in _IMP_atom:
13789 _IMP_atom._LennardJonesTypedPairScore_swigregister(_LennardJonesTypedPairScore)
13790 class _SwitchedLennardJonesTypedPairScore(IMP.PairScore):
13791  r"""Proxy of C++ IMP::atom::LennardJonesTypedPairScore< IMP::atom::ForceSwitch > class."""
13792 
13793  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
13794  __repr__ = _swig_repr
13795 
13796  def __init__(self, f):
13797  r"""__init__(_SwitchedLennardJonesTypedPairScore self, ForceSwitch f) -> _SwitchedLennardJonesTypedPairScore"""
13798  _IMP_atom._SwitchedLennardJonesTypedPairScore_swiginit(self, _IMP_atom.new__SwitchedLennardJonesTypedPairScore(f))
13799 
13800  def set_repulsive_weight(self, repulsive_weight):
13801  r"""set_repulsive_weight(_SwitchedLennardJonesTypedPairScore self, double repulsive_weight)"""
13802  return _IMP_atom._SwitchedLennardJonesTypedPairScore_set_repulsive_weight(self, repulsive_weight)
13803 
13804  def get_repulsive_weight(self):
13805  r"""get_repulsive_weight(_SwitchedLennardJonesTypedPairScore self) -> double"""
13806  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_repulsive_weight(self)
13807 
13808  def set_attractive_weight(self, attractive_weight):
13809  r"""set_attractive_weight(_SwitchedLennardJonesTypedPairScore self, double attractive_weight)"""
13810  return _IMP_atom._SwitchedLennardJonesTypedPairScore_set_attractive_weight(self, attractive_weight)
13811 
13812  def get_attractive_weight(self):
13813  r"""get_attractive_weight(_SwitchedLennardJonesTypedPairScore self) -> double"""
13814  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_attractive_weight(self)
13815 
13816  def get_repulsive_type_factors(self):
13817  r"""get_repulsive_type_factors(_SwitchedLennardJonesTypedPairScore self) -> IMP::Floats"""
13818  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_repulsive_type_factors(self)
13819 
13820  def get_attractive_type_factors(self):
13821  r"""get_attractive_type_factors(_SwitchedLennardJonesTypedPairScore self) -> IMP::Floats"""
13822  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_attractive_type_factors(self)
13823 
13824  def get_smoothing_function(self):
13825  r"""get_smoothing_function(_SwitchedLennardJonesTypedPairScore self) -> ForceSwitch"""
13826  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_smoothing_function(self)
13827 
13828  def do_get_inputs(self, m, pis):
13829  r"""do_get_inputs(_SwitchedLennardJonesTypedPairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
13830  return _IMP_atom._SwitchedLennardJonesTypedPairScore_do_get_inputs(self, m, pis)
13831 
13832  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
13833  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"""
13834  return _IMP_atom._SwitchedLennardJonesTypedPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
13835 
13836  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
13837  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"""
13838  return _IMP_atom._SwitchedLennardJonesTypedPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
13839 
13840  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
13841  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"""
13842  return _IMP_atom._SwitchedLennardJonesTypedPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
13843 
13844  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
13845  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"""
13846  return _IMP_atom._SwitchedLennardJonesTypedPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
13847 
13848  def get_version_info(self):
13849  r"""get_version_info(_SwitchedLennardJonesTypedPairScore self) -> VersionInfo"""
13850  return _IMP_atom._SwitchedLennardJonesTypedPairScore_get_version_info(self)
13851  __swig_destroy__ = _IMP_atom.delete__SwitchedLennardJonesTypedPairScore
13852 
13853  @staticmethod
13854  def get_from(o):
13855  return _object_cast_to__SwitchedLennardJonesTypedPairScore(o)
13856 
13857 
13858  def _get_jax(self, m, indexes):
13859  import IMP.atom._jax_util
13860  score = IMP.atom._jax_util._get_lennard_jones_score(self, indexes)
13861  return self._wrap_jax(m, score, keys=[LennardJonesTyped.get_type_key()])
13862 
13863 
13864 # Register _SwitchedLennardJonesTypedPairScore in _IMP_atom:
13865 _IMP_atom._SwitchedLennardJonesTypedPairScore_swigregister(_SwitchedLennardJonesTypedPairScore)
13866 
13867 class LennardJonesTypedPairScore(_SwitchedLennardJonesTypedPairScore.__bases__[0]):
13868  def __init__(self, f):
13869  if isinstance(f, ForceSwitch):
13870  p = _SwitchedLennardJonesTypedPairScore(f)
13871  else:
13872  p = _LennardJonesTypedPairScore(f)
13873  self.__dict__['_proxied'] = p
13874  def __getattr__(self, key):
13875  return getattr(self._proxied, key)
13876  def __setattr__(self, key, val):
13877  return setattr(self._proxied, key, val)
13878 
13879  def _get_jax(self, *args, **kwargs):
13880  return self._proxied._get_jax(*args, **kwargs)
13881 
13882  @staticmethod
13883  def get_from(o):
13884  try:
13885  p = _SwitchedLennardJonesTypedPairScore.get_from(o)
13886  except ValueError:
13887  p = _LennardJonesTypedPairScore.get_from(o)
13888  obj = object.__new__(LennardJonesTypedPairScore)
13889  obj.__dict__['_proxied'] = p
13890  return obj
13891 
13892 
13893 def get_module_name():
13894  r"""get_module_name() -> std::string const"""
13895  return _IMP_atom.get_module_name()
13896 
13897 def get_module_version():
13898  r"""get_module_version() -> std::string const"""
13899  return _IMP_atom.get_module_version()
13900 
13901 def get_example_path(fname):
13902  r"""get_example_path(std::string fname) -> std::string"""
13903  return _IMP_atom.get_example_path(fname)
13904 
13905 def get_data_path(fname):
13906  r"""get_data_path(std::string fname) -> std::string"""
13907  return _IMP_atom.get_data_path(fname)
13908 
13909 from . import _version_check
13910 _version_check.check_version(get_module_version())
13911 __version__ = get_module_version()
13912 
13913 
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.
Hierarchy create_simplified_along_backbone(Hierarchy input, int num_res, bool keep_detailed=false)
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:281
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.
Provenance create_clone(Provenance p)
Clone provenance (including previous provenance)
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.
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:170
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
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())
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