Convert data frame on differential expression values as Gene objects.

    :param df: Data frame with columns showing values on differential
    expression.
    :param cfp: An object that includes paths, cutoffs and other information.
    :return list: A list of Gene objects.

def handle_dataframe(
        df: pd.DataFrame,
        entrez_id_name,
        log2_fold_change_name,
        adjusted_p_value_name,
        entrez_delimiter,
        base_mean=None,
) -> List[Gene]:
    """Convert data frame on differential expression values as Gene objects.

    :param df: Data frame with columns showing values on differential
    expression.
    :param cfp: An object that includes paths, cutoffs and other information.
    :return list: A list of Gene objects.
    """
    logger.info("In _handle_df()")

    if base_mean is not None and base_mean in df.columns:
        df = df[pd.notnull(df[base_mean])]

    df = df[pd.notnull(df[entrez_id_name])]
    df = df[pd.notnull(df[log2_fold_change_name])]
    df = df[pd.notnull(df[adjusted_p_value_name])]

    # try:
    #     import bio2bel_hgnc
    # except ImportError:
    #     logger.debug('skipping mapping')
    # else:
    #     manager = bio2bel_hgnc.Manager()
    #     # TODO @cthoyt

    return [
        Gene(
            entrez_id=entrez_id,
            log2_fold_change=data[log2_fold_change_name],
            padj=data[adjusted_p_value_name]
        )
        for _, data in df.iterrows()
        for entrez_id in str(data[entrez_id_name]).split(entrez_delimiter)
    ]