Skip to content

Commit fe1fd2e

Browse files
committed
fixed calling get_custom_axes in get_non_terminal_axes and get_terminal_axes
1 parent ec5d4df commit fe1fd2e

1 file changed

Lines changed: 28 additions & 8 deletions

File tree

‎CodeEntropy/levels/axes.py‎

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,16 @@ def get_residue_axes(
151151
trans_axes = data_container.atoms.principal_axes()
152152
if len(edge_atom_set) == 1:
153153
edge_atom = edge_atom_set[0]
154-
rot_center, rot_axes = self.get_terminal_axes(residue, edge_atom)
154+
rot_center, rot_axes = self.get_terminal_axes(
155+
residue=residue,
156+
edge=edge_atom,
157+
dimensions=data_container.dimensions[:3],
158+
)
155159
else:
156160
rot_center, rot_axes = self.get_non_terminal_axes(
157-
residue, edge_atom_set
161+
residue=residue,
162+
edges=edge_atom_set,
163+
dimensions=data_container.dimensions[:3],
158164
)
159165
moment_of_inertia = self.get_custom_residue_moment_of_inertia(
160166
center_of_mass=rot_center,
@@ -297,7 +303,9 @@ def get_UA_axes(self, data_container, index: int, res_position):
297303
)
298304
edge_atom = edge_atom_set[0]
299305
trans_center, trans_axes = self.get_terminal_axes(
300-
residue, edge_atom
306+
residue=residue,
307+
edge=edge_atom,
308+
dimensions=data_container.dimensions[:3],
301309
)
302310
else:
303311
# between 2 residues
@@ -312,7 +320,9 @@ def get_UA_axes(self, data_container, index: int, res_position):
312320
f"resindex {resindex_next})"
313321
)
314322
trans_center, trans_axes = self.get_non_terminal_axes(
315-
residue, edge_atom_set
323+
residue=residue,
324+
edges=edge_atom_set,
325+
dimensions=data_container.dimensions[:3],
316326
)
317327
# look for heavy atoms in residue of interest
318328
residue_heavy_atoms = residue.atoms.select_atoms("mass 2 to 999")
@@ -562,7 +572,7 @@ def get_residue_custom_axes(self, edges, center):
562572
rot_center = first_edge_origin_vector + edges[0]
563573
return rot_center, rot_axes
564574

565-
def get_terminal_axes(self, residue, edge):
575+
def get_terminal_axes(self, residue, edge, dimensions):
566576
"""
567577
Compute rotation axes at the residue level/translation axes at the UA level
568578
for the terminal residues in a polymer, given the edge atom
@@ -582,6 +592,7 @@ def get_terminal_axes(self, residue, edge):
582592
Args:
583593
residue: MDAnalysis AtomGroup
584594
edge: MDAnalysis atom
595+
dimensions: (3,) dimensions of the simulation box
585596
586597
Returns:
587598
rot_center: (3,) rotation centre,
@@ -616,11 +627,14 @@ def get_terminal_axes(self, residue, edge):
616627
else:
617628
rot_center = edge.position
618629
rot_axes = self.get_custom_axes(
619-
a=edge.position, b=[average_bonded], c=np.zeros(3)
630+
a=edge.position,
631+
b_list=[average_bonded],
632+
c=np.zeros(3),
633+
dimensions=dimensions,
620634
)
621635
return rot_center, rot_axes
622636

623-
def get_non_terminal_axes(self, residue, edges):
637+
def get_non_terminal_axes(self, residue, edges, dimensions):
624638
"""
625639
Compute rotation axes at the residue level/ translation axes at
626640
the UA level for the non-terminal residues in a linear polymer, given the
@@ -635,6 +649,7 @@ def get_non_terminal_axes(self, residue, edges):
635649
Args:
636650
residue: MDAnalysis AtomGroup
637651
edges: MDAnalysis AtomGroup
652+
dimensions: (3,) dimensions of the simulation box
638653
639654
Returns:
640655
rot_center: (3,) rotation centre,
@@ -651,7 +666,12 @@ def get_non_terminal_axes(self, residue, edges):
651666
)
652667
else:
653668
rot_center = (edges[0].position + edges[1].position) / 2
654-
rot_axes = self.get_custom_axes(a=rot_center, b=[edges[0]], c=np.zeros(3))
669+
rot_axes = self.get_custom_axes(
670+
a=rot_center,
671+
b_list=[edges[0].position],
672+
c=np.zeros(3),
673+
dimensions=dimensions,
674+
)
655675
return rot_center, rot_axes
656676

657677
def get_bonded_axes(self, system, atom, dimensions: np.ndarray):

0 commit comments

Comments
 (0)