@@ -4882,28 +4882,33 @@ def change_angle(
4882
4882
angle -= a2 .angle (a1 , a3 )
4883
4883
4884
4884
# get target fragments
4885
- a1_frag = self .get_fragment (a1 , a2 )
4886
- a3_frag = self .get_fragment (a3 , a2 )
4887
-
4885
+ if as_group :
4886
+ a1_frag = self .get_fragment (a1 , a2 )
4887
+ a3_frag = self .get_fragment (a3 , a2 )
4888
+ else :
4889
+ a1_frag = [a1 ]
4890
+ a3_frag = [a3 ]
4891
+
4888
4892
# shift a2 to origin
4889
- self .coord_shift (- a2 .coords , a1_frag )
4890
- self .coord_shift (- a2 .coords , a3_frag )
4893
+ # using center=a2 to be cleaner and consistent with change_dihedral
4894
+ #self.coord_shift(-a2.coords, a1_frag)
4895
+ #self.coord_shift(-a2.coords, a3_frag)
4891
4896
4892
4897
# perform rotation
4893
4898
if fix == 0 :
4894
4899
angle /= 2
4895
- self .rotate (w , - angle , a1_frag )
4896
- self .rotate (w , angle , a3_frag )
4900
+ self .rotate (w , - angle , a1_frag , center = a2 )
4901
+ self .rotate (w , angle , a3_frag , center = a2 )
4897
4902
elif fix == 1 :
4898
- self .rotate (w , angle , a3_frag )
4903
+ self .rotate (w , angle , a3_frag , center = a2 )
4899
4904
elif fix == 3 :
4900
- self .rotate (w , - angle , a1_frag )
4905
+ self .rotate (w , - angle , a1_frag , center = a2 )
4901
4906
else :
4902
4907
raise ValueError ("fix must be 0, 1, 3 (supplied: {})" .format (fix ))
4903
4908
4904
4909
# shift a2 back to original location
4905
- self .coord_shift (a2 .coords , a1_frag )
4906
- self .coord_shift (a2 .coords , a3_frag )
4910
+ # self.coord_shift(a2.coords, a1_frag)
4911
+ # self.coord_shift(a2.coords, a3_frag)
4907
4912
4908
4913
def change_dihedral (self , * args , ** kwargs ):
4909
4914
"""
0 commit comments