Skip to content
Snippets Groups Projects
Commit 120b1034 authored by James Graham's avatar James Graham
Browse files

Handle trajectories that don't return box dims with MDTraj

parent 57932278
Branches raf
No related tags found
No related merge requests found
......@@ -39,9 +39,10 @@ def get_frame_reader(top, traj=None, frame_start=0, name=None):
for name, reader in readers.items(): # Return first reader that accepts given files
try:
return reader(top, traj, frame_start)
except (UnsupportedFormatException, ImportError):
except (UnsupportedFormatException, ImportError) as e:
print(e)
continue
raise UnsupportedFormatException("None of the available readers support the trajector format provided")
raise UnsupportedFormatException("None of the available readers support the trajector format provided, {0} {1}".format(top, traj))
class FrameReader(metaclass=abc.ABCMeta):
......@@ -65,6 +66,8 @@ class FrameReader(metaclass=abc.ABCMeta):
def read_frame_number(self, number, frame):
try:
time, coords, box = self._read_frame_number(number)
if box is None:
box = np.zeros(3)
frame.time = time
frame.box = box
......@@ -114,6 +117,10 @@ class FrameReaderSimpleTraj(FrameReader):
raise FileNotFoundError(trajname) from e
e.args = ("Error opening file '{0}'".format(trajname),)
raise
except Exception as e:
if "extension" in repr(e) and "not supported" in repr(e):
raise UnsupportedFormatException from e
raise
if self._traj.numatoms != self.num_atoms:
raise UnsupportedFormatException
......@@ -233,7 +240,10 @@ class FrameReaderMDTraj(FrameReader):
"""
Read next frame from XTC using mdtraj library.
"""
try:
return self._traj.time[number], self._traj.xyz[number], self._traj.unitcell_lengths[number]
except TypeError:
return self._traj.time[number], self._traj.xyz[number], None
class FrameReaderMDAnalysis(FrameReader):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment