def breakdown_df_shapes(global_tp, global_tn, global_fp, global_fn,  col, val):
    """
    Counts tp, fp, fn, tn on a subset
    :param global_tp: Dataframe with all true_positives
    :param global_tn: Dataframe with all true_negatives
    :param global_fp: Dataframe with all false_positives
    :param global_fn: Dataframe with all false_negatives
    :param col: Candidate column
    :param val: Value of the column
    :return: tuple of of (tp, fp, fn, tn) computed on the subset
    """
    return (global_tp[global_tp[col] == val].shape[0],
            global_tn[global_tn[col] == val].shape[0],
            global_fp[global_fp[col] == val].shape[0],
            global_fn[global_fn[col] == val].shape[0])