Exemple #1
0
    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)
Exemple #2
0
    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))