diff --git a/modules/gfx/src/impl/backbone_trace.cc b/modules/gfx/src/impl/backbone_trace.cc index 2a0315380b75dfe55ef774155d60416c59f07fe9..e3a14b7a7106414d3fb98cdfbab962b8a0a34c95 100644 --- a/modules/gfx/src/impl/backbone_trace.cc +++ b/modules/gfx/src/impl/backbone_trace.cc @@ -38,6 +38,8 @@ bool in_sequence(const mol::ResidueHandle& r1, const mol::ResidueHandle& r2) if(n2.GetInsCode()!='\0') { if(n1.NextInsertionCode()==n2) return true; } + if(mol::InSequence(r1,r2)) return true; + // perhaps this fallback is not so good... if(n1.GetNum()+1==n2.GetNum()) return true; return false; } diff --git a/modules/io/src/mol/dcd_io.cc b/modules/io/src/mol/dcd_io.cc index bc36cb93f9237ba3494266cb4adbe97d39c9df48..15e056daff29fbf3f294a8a4f8f809e80b748b6a 100644 --- a/modules/io/src/mol/dcd_io.cc +++ b/modules/io/src/mol/dcd_io.cc @@ -188,12 +188,18 @@ mol::CoordGroupHandle load_dcd(const mol::AtomHandleList& alist2, const String& trj_fn, unsigned int stride) { + std::ifstream istream(trj_fn.c_str(), std::ios::binary); + if(!istream) { + std::ostringstream msg; + msg << "LoadCHARMMTraj: cannot open " << trj_fn; + throw(IOException(msg.str())); + } Profile profile_load("LoadCHARMMTraj"); mol::AtomHandleList alist(alist2); std::sort(alist.begin(),alist.end(),less_index); - std::ifstream istream(trj_fn.c_str(), std::ios::binary); + DCDHeader header; bool swap_flag=false, skip_flag=false, gap_flag=false; read_dcd_header(istream, header, swap_flag, skip_flag, gap_flag); @@ -315,7 +321,7 @@ mol::CoordGroupHandle LoadCHARMMTraj(const mol::EntityHandle& ent, DCDCoordSource* source=new DCDCoordSource(alist, trj_fn, stride); return mol::CoordGroupHandle(DCDCoordSourcePtr(source)); } - LOG_INFO("Importing CHARMM trajectory with lazy_load=false"); + LOG_INFO("Importing CHARMM trajectory with lazy_load=false"); return load_dcd(alist, trj_fn, stride); }