diff --git a/package/CHANGELOG b/package/CHANGELOG index cbd69f7e13f..da37b8957d5 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -23,6 +23,7 @@ mm/dd/yy richardjgowers, kain88-de, lilyminium, p-j-smith, bdice, joaomcteixeira * 0.21.0 Fixes + * MOL2Writer now accepts both Universes and AtomgGroups (Issue #2717) * Use user-provided `remark` in `XYZWriter` (Issue #2692) * Added more informative error messages about topology attributes (Issue #2565) diff --git a/package/MDAnalysis/coordinates/MOL2.py b/package/MDAnalysis/coordinates/MOL2.py index c21a64db3b9..696128913ef 100644 --- a/package/MDAnalysis/coordinates/MOL2.py +++ b/package/MDAnalysis/coordinates/MOL2.py @@ -306,6 +306,8 @@ def encode_block(self, obj): ---------- obj : AtomGroup or Universe """ + # Issue 2717 + obj = obj.atoms traj = obj.universe.trajectory ts = traj.ts diff --git a/testsuite/MDAnalysisTests/coordinates/test_mol2.py b/testsuite/MDAnalysisTests/coordinates/test_mol2.py index 0fe25e79eea..b42f2d2b068 100644 --- a/testsuite/MDAnalysisTests/coordinates/test_mol2.py +++ b/testsuite/MDAnalysisTests/coordinates/test_mol2.py @@ -29,6 +29,7 @@ from numpy.testing import ( assert_equal, assert_array_equal, assert_array_almost_equal, TestCase, + assert_almost_equal ) from MDAnalysisTests.datafiles import ( @@ -190,3 +191,19 @@ def test_mol2_multi_write(tmpdir): u = mda.Universe(mol2_molecules) u.atoms[:4].write('group1.mol2') u.atoms[:4].write('group1.mol2') + + +def test_mol2_universe_write(tmpdir): + # see Issue 2717 + with tmpdir.as_cwd(): + outfile = 'test.mol2' + + u = mda.Universe(mol2_comments_header) + + with mda.Writer(outfile) as W: + W.write(u) + + u2 = mda.Universe(outfile) + + assert_almost_equal(u.atoms.positions, u2.atoms.positions) + assert_almost_equal(u.dimensions, u2.dimensions)