def init_chain(self, chain_id): """Initiate a new Chain object with given id. Arguments: o chain_id - string """ if self.current_model.has_chain_with_id(chain_id): self.current_chain = self.current_model.chains(chain_id) warnings.warn( "WARNING: Chain %s is discontinuous at line %i." % (chain_id, self.line_counter), PDBConstructionWarning) else: self.current_chain = Chain(chain_id) self.current_model.add_chain(self.current_chain)
def _parse_coordinates(self, lines): self.__chain = Chain(lines[0].split()[4]) for i in range(len(lines)): items = lines[i].split() atom_serial_num = int(items[1]) atom_name = items[2] element = lines[i][13] residue_name = items[3] residue_serial_num = int(items[5]) coords = array([items[6], items[7], items[8]], 'f') if self.__current_residue is None or self.__current_residue.sequence_number( ) != residue_serial_num: self.__current_residue = Residue(residue_serial_num, residue_name) self.__chain.add_residue(self.__current_residue) self.__current_residue.add_atom( Atom(atom_serial_num, atom_name, coords, element))