diff --git a/common/python/nomadcore/md_data_access/MDDataAccess.py b/common/python/nomadcore/md_data_access/MDDataAccess.py index 9e9d0e3da132e2463d664bb68b34c1e8c295a7f7..09fddf2f11979aaf5b8d592142f057fdfd0d73ee 100644 --- a/common/python/nomadcore/md_data_access/MDDataAccess.py +++ b/common/python/nomadcore/md_data_access/MDDataAccess.py @@ -1062,7 +1062,7 @@ class MDDataAccess(object): if self.topohandler is None: if self.topofile: - self.check_topology_format_support("traj") + self.check_topology_format_support() if self.trajhandler is None: self.check_trajectory_format_support("traj") @@ -1288,9 +1288,8 @@ class MDDataAccess(object): filetrajformat = re.sub('[.]', '', chkformat) trajhandler_check = None if self.topohandler is not None: - numatoms = self.get_natoms_from_topo(topocode="pymolfile") - if(isinstance(self.topohandler, pym.OpenMolfile) - or isinstance(self.topohandler, pym.OpenMolfile.topology)): + numatoms = self.get_natoms_from_topo(topocode=self.topocode) + if isinstance(self.topohandler, pym.OpenMolfile): molfile_traj = pym.OpenMolfile(chkfile, file_format=filetrajformat, topology=self.topohandler, silent=False) elif numatoms is not None: if numatoms > 0: @@ -1409,7 +1408,7 @@ class MDDataAccess(object): self.natoms = numatoms usedefault=False break - except (AttributeError, IOError, OSError, ValueError, TypeError): + except (AttributeError, IOError, OSError, ValueError, TypeError, KeyError): try: universe = mda_u.Universe(self.topohandler, self.trajfile, format=mdanalysis_format) trajhandler = None @@ -1447,8 +1446,8 @@ class MDDataAccess(object): self.natoms = numatoms usedefault=False break - #except (AttributeError, IOError, OSError, ValueError, TypeError): - except IOError: + except (IOError, ValueError, TypeError, KeyError): + #except IOError: pass # if topology handler is not a MDAnalysis Universe # or is not initialized, we can try accessing only @@ -2799,11 +2798,21 @@ class MDDataAccess(object): if __name__ == "__main__": topo_file = sys.argv[1] - traj_file = sys.argv[2] + topo_format = sys.argv[2] + traj_file = sys.argv[3] + traj_format = sys.argv[4] MDdata = MDDataAccess() MDdata.trajfile = traj_file MDdata.topofile = topo_file - #MDdata.interfaceorder = ["mdanalysis", "pymolfile", "mdtraj", "ase"] + if 'None' in topo_format: + pass + else: + MDdata.topoformat = topo_format + if 'None' in traj_format: + pass + else: + MDdata.trajformat = traj_format + MDdata.interfaceorder = ["mdanalysis", "pymolfile", "mdtraj", "ase"] #MDdata.interfaceorder = ["pymolfile", "mdanalysis", "mdtraj", "ase"] MDdata.interfacematch = False traj_iterator = MDdata.load()