code: def fetch_protein_gene_map(self, taxon_id):
          
          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
docs: Fetch a list of proteins for a species in biomart
          :param taxid:
          :return: dict