code: def get_mutations(study_id, gene_list, mutation_type=None,
                    case_id=None):
      
      genetic_profile = get_genetic_profiles(study_id, 'mutation')[0]
      gene_list_str = ','.join(gene_list)
  
      data = {'cmd': 'getMutationData',
              'case_set_id': study_id,
              'genetic_profile_id': genetic_profile,
              'gene_list': gene_list_str,
              'skiprows': -1}
      df = send_request(**data)
      if case_id:
          df = df[df['case_id'] == case_id]
      res = _filter_data_frame(df, ['gene_symbol', 'amino_acid_change'],
                               'mutation_type', mutation_type)
      mutations = {'gene_symbol': list(res['gene_symbol'].values()),
                   'amino_acid_change': list(res['amino_acid_change'].values())}
      return mutations
docs: Return mutations as a list of genes and list of amino acid changes.
  
      Parameters
      ----------
      study_id : str
          The ID of the cBio study.
          Example: 'cellline_ccle_broad' or 'paad_icgc'
      gene_list : list[str]
          A list of genes with their HGNC symbols.
          Example: ['BRAF', 'KRAS']
      mutation_type : Optional[str]
          The type of mutation to filter to.
          mutation_type can be one of: missense, nonsense, frame_shift_ins,
          frame_shift_del, splice_site
      case_id : Optional[str]
          The case ID within the study to filter to.
  
      Returns
      -------
      mutations : tuple[list]
          A tuple of two lists, the first one containing a list of genes, and
          the second one a list of amino acid changes in those genes.