docs: def parse_dge(
          dge_path: str,
          entrez_id_header: str,
          log2_fold_change_header: str,
          adj_p_header: str,
          entrez_delimiter: str,
          base_mean_header: Optional[str] = None
  ) -> List[Gene]:
      """Parse a differential expression file.
  
      :param dge_path: Path to the file.
      :param entrez_id_header: Header for the Entrez identifier column
      :param log2_fold_change_header: Header for the log2 fold change column
      :param adj_p_header: Header for the adjusted p-value column
      :param entrez_delimiter: Delimiter between Entrez ids.
      :param base_mean_header: Header for the base mean column.
      :return: A list of genes.
      """
      if dge_path.endswith('.xlsx'):
          return parsers.parse_excel(
              dge_path,
              entrez_id_header=entrez_id_header,
              log_fold_change_header=log2_fold_change_header,
              adjusted_p_value_header=adj_p_header,
              entrez_delimiter=entrez_delimiter,
              base_mean_header=base_mean_header,
          )
  
      if dge_path.endswith('.csv'):
          return parsers.parse_csv(
              dge_path,
              entrez_id_header=entrez_id_header,
              log_fold_change_header=log2_fold_change_header,
              adjusted_p_value_header=adj_p_header,
              entrez_delimiter=entrez_delimiter,
              base_mean_header=base_mean_header,
          )
  
      if dge_path.endswith('.tsv'):
          return parsers.parse_csv(
              dge_path,
              entrez_id_header=entrez_id_header,
              log_fold_change_header=log2_fold_change_header,
              adjusted_p_value_header=adj_p_header,
              entrez_delimiter=entrez_delimiter,
              base_mean_header=base_mean_header,
              sep="\t"
          )
  
      raise ValueError(f'Unsupported extension: {dge_path}')