def _get_complex_agents(self, complex_id):
        agents = []
        components = self._recursively_lookup_complex(complex_id)
        for c in components:
            db_refs = {}
            name = uniprot_client.get_gene_name(c)
            if name is None:
                db_refs['SIGNOR'] = c
            else:
                db_refs['UP'] = c
                hgnc_id = hgnc_client.get_hgnc_id(name)
                if hgnc_id:
                    db_refs['HGNC'] = hgnc_id
            famplex_key = ('SIGNOR', c)
            if famplex_key in famplex_map:
                db_refs['FPLX'] = famplex_map[famplex_key]
                if not name:
                    name = db_refs['FPLX']
            elif not name:
                logger.info('Have neither a Uniprot nor Famplex grounding ' + \
                            'for ' + c)
                if not name:
                    name = db_refs['SIGNOR']
            assert(name is not None)
            agents.append(Agent(name, db_refs=db_refs))
        return agents