docs: def get_transcript_ids_for_ensembl_gene_ids(self, gene_ids, hgnc_symbols):
          """ fetch the ensembl transcript IDs for a given ensembl gene ID.
          
          Args:
              gene_ids: list of Ensembl gene IDs for the gene
              hgnc_symbols: list of possible HGNC symbols for gene
          """
          
          chroms = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", \
               "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", \
                "X", "Y"}
          
          headers = {"content-type": "application/json"}
          
          transcript_ids = []
          for gene_id in gene_ids:
              self.attempt = 0
              ext = "/overlap/id/{}?feature=transcript".format(gene_id)
              r = self.ensembl_request(ext, headers)
              
              for item in json.loads(r):
                  # ignore non-coding transcripts
                  if item["biotype"] not in ["protein_coding", "polymorphic_pseudogene"]:
                      continue
                  
                  # ignore transcripts not on the standard chromosomes
                  # (non-default chroms fail to map the known de novo variants
                  # to the gene location
                  if item["Parent"] != gene_id or item["seq_region_name"] not in \
                          chroms or \
                          all([symbol not in item["external_name"] for symbol in hgnc_symbols]):
                      continue
                  transcript_ids.append(item["id"])
          
          return transcript_ids