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
No related branches found
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): ...@@ -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 for name, reader in readers.items(): # Return first reader that accepts given files
try: try:
return reader(top, traj, frame_start) return reader(top, traj, frame_start)
except (UnsupportedFormatException, ImportError): except (UnsupportedFormatException, ImportError) as e:
print(e)
continue 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): class FrameReader(metaclass=abc.ABCMeta):
...@@ -65,6 +66,8 @@ class FrameReader(metaclass=abc.ABCMeta): ...@@ -65,6 +66,8 @@ class FrameReader(metaclass=abc.ABCMeta):
def read_frame_number(self, number, frame): def read_frame_number(self, number, frame):
try: try:
time, coords, box = self._read_frame_number(number) time, coords, box = self._read_frame_number(number)
if box is None:
box = np.zeros(3)
frame.time = time frame.time = time
frame.box = box frame.box = box
...@@ -114,6 +117,10 @@ class FrameReaderSimpleTraj(FrameReader): ...@@ -114,6 +117,10 @@ class FrameReaderSimpleTraj(FrameReader):
raise FileNotFoundError(trajname) from e raise FileNotFoundError(trajname) from e
e.args = ("Error opening file '{0}'".format(trajname),) e.args = ("Error opening file '{0}'".format(trajname),)
raise 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: if self._traj.numatoms != self.num_atoms:
raise UnsupportedFormatException raise UnsupportedFormatException
...@@ -233,7 +240,10 @@ class FrameReaderMDTraj(FrameReader): ...@@ -233,7 +240,10 @@ class FrameReaderMDTraj(FrameReader):
""" """
Read next frame from XTC using mdtraj library. Read next frame from XTC using mdtraj library.
""" """
try:
return self._traj.time[number], self._traj.xyz[number], self._traj.unitcell_lengths[number] 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): class FrameReaderMDAnalysis(FrameReader):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment