Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #2692 #2694

Merged
merged 67 commits into from
Jun 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
7af3352
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Aug 7, 2019
51624f3
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Aug 9, 2019
fa7777e
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Aug 13, 2019
94ac6cc
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Aug 20, 2019
80370af
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Sep 5, 2019
36fa2ea
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Sep 10, 2019
5111103
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Oct 2, 2019
ad0c149
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Oct 3, 2019
def7c14
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Oct 16, 2019
2d693e3
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Oct 30, 2019
f7d5bc6
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Nov 21, 2019
64bcae5
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Nov 28, 2019
2e2561e
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Dec 23, 2019
2184e2b
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jan 14, 2020
de7afcc
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jan 16, 2020
ff4ed8d
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jan 17, 2020
c515e89
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jan 17, 2020
7d27138
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jan 18, 2020
3c35af0
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jan 21, 2020
22def6a
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jan 23, 2020
93413dc
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jan 24, 2020
8c5dc00
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 1, 2020
ad1766e
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 4, 2020
65e4d66
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 4, 2020
549c1a2
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 6, 2020
f527e62
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 9, 2020
4d5f7de
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 9, 2020
d7eda78
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 13, 2020
ccd77e9
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 15, 2020
7546c3e
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 16, 2020
af65b17
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 26, 2020
5944b83
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 27, 2020
640ce81
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Feb 29, 2020
4d639f9
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Mar 3, 2020
30effbd
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Mar 13, 2020
a2951ee
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Mar 15, 2020
51d1347
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Mar 19, 2020
8023811
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Apr 10, 2020
591bf39
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Apr 13, 2020
2e248fb
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Apr 24, 2020
9009c82
Merge remote-tracking branch 'upstream/develop' into develop
RMeli May 15, 2020
a0b2a79
Merge remote-tracking branch 'upstream/develop' into develop
RMeli May 19, 2020
833aff3
Merge remote-tracking branch 'upstream/develop' into develop
RMeli May 19, 2020
d2f330c
add failing test
RMeli May 19, 2020
5bf934f
fix
RMeli May 19, 2020
1e1280b
simpler dimensions check
RMeli May 19, 2020
d670fbb
changelog
RMeli May 19, 2020
ecb8612
address pr comments
RMeli May 19, 2020
62fe9d3
improve docstrings
RMeli May 19, 2020
e1dba87
fix remark and test
RMeli May 22, 2020
60e0583
better tests
RMeli May 22, 2020
0c55bf2
versionchanged
RMeli May 22, 2020
b968a51
changelog
RMeli May 22, 2020
d263d1f
Merge remote-tracking branch 'upstream/develop' into develop
RMeli May 25, 2020
a6a1976
Merge remote-tracking branch 'upstream/develop' into develop
RMeli May 29, 2020
888b1f9
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jun 3, 2020
13d6c5e
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jun 5, 2020
9581ee4
Merge remote-tracking branch 'upstream/develop' into develop
RMeli Jun 5, 2020
86938ae
Merge branch 'develop' into fix/#2692
RMeli Jun 5, 2020
c0be2d0
revert PDB change
RMeli Jun 5, 2020
05784c0
make diff zero
RMeli Jun 5, 2020
433881e
remove spurious PDB universe
RMeli Jun 5, 2020
c344477
fix doc
RMeli Jun 5, 2020
0abe440
final doc fixes
RMeli Jun 5, 2020
f25a894
address pr comments
RMeli Jun 6, 2020
5ef97b5
suggested change
RMeli Jun 6, 2020
85ef6e8
Merge remote-tracking branch 'upstream/develop' into fix/#2692
RMeli Jun 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions package/CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ mm/dd/yy richardjgowers, kain88-de, lilyminium, p-j-smith, bdice, joaomcteixeira
* 0.21.0

Fixes
* Use user-provided `remark` in `XYZWriter` (Issue #2692)
* Added more informative error messages about topology attributes
(Issue #2565)
* Made NoDataError a subclass of ValueError *and* AttributeError
Expand Down
37 changes: 28 additions & 9 deletions package/MDAnalysis/coordinates/XYZ.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
XYZ File format
---------------

Definiton used by the :class:`XYZReader` and :class:`XYZWriter` (and
Definition used by the :class:`XYZReader` and :class:`XYZWriter` (and
the `VMD xyzplugin`_ from whence the definition was taken)::

[ comment line ] !! NOT IMPLEMENTED !! DO NOT INCLUDE
Expand Down Expand Up @@ -146,16 +146,18 @@ def __init__(self, filename, n_atoms=None, atoms=None, convert_units=True,
writing [``True``]
remark: str (optional)
single line of text ("molecule name"). By default writes MDAnalysis
version
version and frame

.. versionchanged:: 1.0.0
Removed :code:`default_remark` variable (Issue #2692).
"""
self.filename = filename
self.remark = remark
self.n_atoms = n_atoms
self.convert_units = convert_units

self.atomnames = self._get_atoms_elements_or_names(atoms)
default_remark = "Written by {0} (release {1})".format(
self.__class__.__name__, __version__)
self.remark = default_remark if remark is None else remark

# can also be gz, bz2
self._xyz = util.anyopen(self.filename, 'wt')

Expand Down Expand Up @@ -190,8 +192,8 @@ def close(self):
def write(self, obj):
"""Write object `obj` at current trajectory frame to file.

Atom elements (or names) in the output are taken from the `obj` or default
to the value of the `atoms` keyword supplied to the
Atom elements (or names) in the output are taken from the `obj` or
default to the value of the `atoms` keyword supplied to the
:class:`XYZWriter` constructor.

Parameters
Expand Down Expand Up @@ -229,7 +231,13 @@ def write(self, obj):
self.write_next_timestep(ts)

def write_next_timestep(self, ts=None):
"""Write coordinate information in *ts* to the trajectory"""
"""
Write coordinate information in *ts* to the trajectory

.. versionchanged:: 1.0.0
Print out :code:`remark` if present, otherwise use generic one
(Issue #2692).
"""
if ts is None:
if not hasattr(self, 'ts'):
raise NoDataError('XYZWriter: no coordinate data to write to '
Expand Down Expand Up @@ -259,8 +267,19 @@ def write_next_timestep(self, ts=None):
else:
coordinates = ts.positions

# Write number of atoms
self._xyz.write("{0:d}\n".format(ts.n_atoms))
self._xyz.write("frame {0}\n".format(ts.frame))

# Write remark
if self.remark is None:
remark = "frame {} | Written by MDAnalysis {} (release {})\n".format(
ts.frame, self.__class__.__name__, __version__)

self._xyz.write(remark)
else:
self._xyz.write(self.remark.strip() + "\n")

# Write content
for atom, (x, y, z) in zip(self.atomnames, coordinates):
self._xyz.write("{0!s:>8} {1:10.5f} {2:10.5f} {3:10.5f}\n"
"".format(atom, x, y, z))
Expand Down
20 changes: 20 additions & 0 deletions testsuite/MDAnalysisTests/coordinates/test_xyz.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
BaseWriterTest)
from MDAnalysisTests import make_Universe

from MDAnalysis import __version__

class XYZReference(BaseReference):
def __init__(self):
Expand Down Expand Up @@ -106,6 +107,25 @@ def test_no_conversion(self, ref, reader, tmpdir):
w.write(ts)
self._check_copy(outfile, ref, reader)

@pytest.mark.parametrize("remarkout, remarkin",
[
2 * ["Curstom Remark"],
2 * [""],
[None, "frame 0 | Written by MDAnalysis XYZWriter (release {0})".format(__version__)],
]
)
def test_remark(self, remarkout, remarkin, ref, tmpdir):
u = mda.Universe(ref.topology, ref.trajectory)
outfile = "write-remark.xyz"

with tmpdir.as_cwd():
u.atoms.write(outfile, remark=remarkout)

with open(outfile, "r") as xyzout:
lines = xyzout.readlines()

assert lines[1].strip() == remarkin


class XYZ_BZ_Reference(XYZReference):
def __init__(self):
Expand Down