def METHOD_NAME(self):
    """Parse query results (PRIVATE)."""
    for event, elem in self.xml_iter:
        if event == "end" and elem.tag == self.NS + "protein":
            # store the query sequence
            seq = elem.find(self.NS + "sequence")
            query_seq = seq.text
            # store the query id and description
            xref = elem.find(self.NS + "xref")
            query_id = xref.attrib["id"]
            query_desc = xref.attrib["name"]
            # parse each hit
            hit_list = []
            for hit_new in self._parse_hit(
                elem.find(self.NS + "matches"), query_id, query_seq
            ):
                # interproscan results contain duplicate hits rather than
                # a single hit with multiple hsps. In this case the hsps
                # of a duplicate hit will be appended to the already
                # existing hit
                for hit in hit_list:
                    if hit.id == hit_new.id:
                        for hsp in hit_new.hsps:
                            hit.hsps.append(hsp)
                        break
                else:
                    hit_list.append(hit_new)
            # create qresult and assign attributes
            qresult = QueryResult(hit_list, query_id)
            setattr(qresult, "description", query_desc)
            for key, value in self._meta.items():
                setattr(qresult, key, value)
            yield qresult