def fetch_protein_gene_map(self, taxon_id):
        """
        Fetch a list of proteins for a species in biomart
        :param taxid:
        :return: dict
        """
        protein_dict = dict()
        # col = self.columns['ensembl_biomart']
        col = ['ensembl_peptide_id', 'ensembl_gene_id']
        raw_query = self._build_biomart_gene_query(taxon_id, col)

        params = urllib.parse.urlencode({'query': raw_query})

        conn = http.client.HTTPConnection(ENS_URL)
        conn.request("GET", '/biomart/martservice?' + params)
        response = conn.getresponse()

        for line in response:
            line = line.decode('utf-8').rstrip()
            row = line.split('\t')

            if len(row) != len(col):
                LOG.warning("Data error for p2g query on %s", taxon_id)
                LOG.warning("Expected columns for \n%s", col)
                LOG.warning("Got data \n%s", row)
                continue

            protein_dict[
                row[col.index('ensembl_peptide_id')]] = [
                    row[col.index('ensembl_gene_id')]
                ]

        conn.close()
        LOG.info(
            "length protien list for taxon: %s is %i", taxon_id, len(protein_dict))
        return protein_dict
Fetch a list of proteins for a species in biomart
        :param taxid:
        :return: dict