def _read_atom_definitions(self, f): # Make an atom list self.atom_list = AtomList() # Eat 3 lines, then begin f.readline() f.readline() f.readline() line = f.readline() for i in xrange(self.pointers['natom']): try: atnum = int(line[:6]) self.atom_list.add(line[11:14], line[14:21], line[21:28], line[28:34], line[34:44], line[44:49], line[54:].strip()) except ValueError: raise TinkerAnaloutError('Error parsing atomic properties\n\t' '[%s]' % line.rstrip()) line = f.readline() if atnum != i + 1: raise TinkerAnaloutError('Atom number mismatch [%d vs %d]' % (i + 1, atnum))