Skip to content
2 changes: 2 additions & 0 deletions package/CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ The rules for this file:
* 2.0.0

Fixes
* Fixed MDAnalysis.analysis.align.alignto to reindex given mobile and
reference atoms before passing for alignment (issue #2977)
* Only GRO files with unit cells defined with 3 or 9 entries are now
supported (Issue #3305)
* Ensures that reading and writing of GRO files with missing unit cell
Expand Down
4 changes: 2 additions & 2 deletions package/MDAnalysis/analysis/align.py
Original file line number Diff line number Diff line change
Expand Up @@ -482,8 +482,8 @@ def alignto(mobile, reference, select=None, weights=None,
ref_atoms = reference.atoms
else:
select = rms.process_selection(select)
mobile_atoms = mobile.select_atoms(*select['mobile'])
ref_atoms = reference.select_atoms(*select['reference'])
mobile_atoms = mobile.select_atoms(*select['mobile']).sort()
ref_atoms = reference.select_atoms(*select['reference']).sort()


ref_atoms, mobile_atoms = get_matching_atoms(ref_atoms, mobile_atoms,
Expand Down
6 changes: 6 additions & 0 deletions testsuite/MDAnalysisTests/analysis/test_align.py
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,12 @@ def test_alignto_partial_universe(self, universe, reference):
assert_array_almost_equal(segB_bound.positions, segB_free.positions,
decimal=3)

def test_alignto_sort(self, universe):
mobile = universe.atoms[:4]
ref = universe.atoms[[3, 2, 1, 0]]
np.testing.assert_allclose(align.alignto(mobile, ref,
select='bynum 1-4'), (0.0, 0.0))


def _get_aligned_average_positions(ref_files, ref, select="all", **kwargs):
u = mda.Universe(*ref_files, in_memory=True)
Expand Down