@@ -345,14 +345,18 @@ def __init__(self, universe,
345
345
.. versionchanged:: 2.8.0
346
346
Introduced :meth:`get_supported_backends` allowing for parallel execution on
347
347
:mod:`multiprocessing` and :mod:`dask` backends.
348
+ .. versionchanged:: 2.10.0
349
+ The `donors_sel`, `hydrogens_sel`, and `acceptors_sel` are stored as properties
350
+ now and update the internal `_donor`, `_hydrogens`, and `_acceptors` when they
351
+ are modified.
348
352
"""
349
353
350
354
self .u = universe
351
355
self ._trajectory = self .u .trajectory
352
356
353
- self .donors_sel = donors_sel .strip () if donors_sel is not None else donors_sel
354
- self .hydrogens_sel = hydrogens_sel .strip () if hydrogens_sel is not None else hydrogens_sel
355
- self .acceptors_sel = acceptors_sel .strip () if acceptors_sel is not None else acceptors_sel
357
+ self ._donors_sel = donors_sel .strip () if donors_sel is not None else donors_sel
358
+ self ._hydrogens_sel = hydrogens_sel .strip () if hydrogens_sel is not None else hydrogens_sel
359
+ self ._acceptors_sel = acceptors_sel .strip () if acceptors_sel is not None else acceptors_sel
356
360
357
361
msg = ("{} is an empty selection string - no hydrogen bonds will "
358
362
"be found. This may be intended, but please check your "
@@ -393,10 +397,10 @@ def __init__(self, universe,
393
397
self .results .hbonds = None
394
398
395
399
# Set atom selections if they have not been provided
396
- if self .acceptors_sel is None :
397
- self .acceptors_sel = self .guess_acceptors ()
398
- if self .hydrogens_sel is None :
399
- self .hydrogens_sel = self .guess_hydrogens ()
400
+ if self ._acceptors_sel is None :
401
+ self ._acceptors_sel = self .guess_acceptors ()
402
+ if self ._hydrogens_sel is None :
403
+ self ._hydrogens_sel = self .guess_hydrogens ()
400
404
401
405
# Select atom groups
402
406
self ._acceptors = self .u .select_atoms (self .acceptors_sel ,
@@ -984,3 +988,47 @@ def count_by_ids(self):
984
988
unique_hbonds = unique_hbonds [unique_hbonds [:, 3 ].argsort ()[::- 1 ]]
985
989
986
990
return unique_hbonds
991
+
992
+ @property
993
+ def donors_sel (self ):
994
+ """Selection string for the hydrogen bond donor atoms.
995
+
996
+ .. versionadded:: 2.10.0
997
+ """
998
+ return self ._donors_sel
999
+
1000
+ @donors_sel .setter
1001
+ def donors_sel (self , value ):
1002
+ self ._donors_sel = value
1003
+ self ._donors , self ._hydrogens = self ._get_dh_pairs ()
1004
+
1005
+ @property
1006
+ def hydrogens_sel (self ):
1007
+ """Selection string for the hydrogen bond hydrogen atoms.
1008
+
1009
+ .. versionadded:: 2.10.0
1010
+ """
1011
+ return self ._hydrogens_sel
1012
+
1013
+ @hydrogens_sel .setter
1014
+ def hydrogens_sel (self , value ):
1015
+ self ._hydrogens_sel = value
1016
+ if self ._hydrogens_sel is None :
1017
+ self ._hydrogens_sel = self .guess_hydrogens ()
1018
+ self ._donors , self ._hydrogens = self ._get_dh_pairs ()
1019
+
1020
+ @property
1021
+ def acceptors_sel (self ):
1022
+ """Selection string for the hydrogen bond acceptor atoms.
1023
+
1024
+ .. versionadded:: 2.10.0
1025
+ """
1026
+ return self ._acceptors_sel
1027
+
1028
+ @acceptors_sel .setter
1029
+ def acceptors_sel (self , value ):
1030
+ self ._acceptors_sel = value
1031
+ if self ._acceptors_sel is None :
1032
+ self ._acceptors_sel = self .guess_acceptors ()
1033
+ self ._acceptors = self .u .select_atoms (self ._acceptors_sel ,
1034
+ updating = self .update_selections )
0 commit comments