docs: def get_transcript_ids(ensembl, gene_id):
      """ gets transcript IDs for a gene.
      
      Args:
          ensembl: EnsemblRequest object to request data from ensembl
          gene_id: HGNC symbol for gene
      
      Returns:
          dictionary of transcript ID: transcript lengths for all transcripts
          for a given HGNC symbol.
      """
      
      ensembl_genes = ensembl.get_genes_for_hgnc_id(gene_id)
      transcript_ids = ensembl.get_transcript_ids_for_ensembl_gene_ids(ensembl_genes, [gene_id])
      
      # sometimes we get HGNC symbols that do not match the ensembl rest version
      # that we are currentl using. We can look for earlier HGNC symbols for
      # the gene using the service at rest.genenames.org
      alt_symbols = []
      if len(transcript_ids) == 0:
          alt_symbols = ensembl.get_previous_symbol(gene_id)
          genes = [ensembl.get_genes_for_hgnc_id(symbol) for symbol in alt_symbols]
          genes = [item for sublist in genes for item in sublist]
          ensembl_genes += genes
          symbols = [gene_id] + alt_symbols
          
          transcript_ids = ensembl.get_transcript_ids_for_ensembl_gene_ids(ensembl_genes, symbols)
      
      return get_transcript_lengths(ensembl, transcript_ids)