Пример #1
0
def validate_tp_set(k, t, tp_set, reference_name, reference_set, universe, latex_f=None, p_values=None):
    test_tp_drawn, num_in_ref, num_not_in_ref, num_in_tp, p_value = test_enrichment(tp_set, reference_set, universe)
    assert len(tp_set) == num_in_tp
    assert len(reference_set) == num_in_ref
    if None != p_values:
        p_values.append(p_value)
    if p_value < get_p_value_threshold_for(reference_name):
        logging.info(
            "TP %3d; %s; % 4d/%4d in % 5d/%5d; %e; %s",
            k,
            t,
            test_tp_drawn,
            num_in_tp,
            num_in_ref,
            num_in_ref + num_not_in_ref,
            p_value,
            reference_name,
        )
        if latex_f:
            print >> latex_f, "%3d & %s & %5d & %80s & %5d & %-5d & %.1e" % (
                k,
                t,
                num_in_tp,
                reference_name,
                test_tp_drawn,
                num_in_ref,
                p_value,
            )
Пример #2
0
def validate_tp_set(k,
                    t,
                    tp_set,
                    reference_name,
                    reference_set,
                    universe,
                    latex_f=None,
                    p_values=None):
    test_tp_drawn, num_in_ref, num_not_in_ref, num_in_tp, p_value = test_enrichment(
        tp_set, reference_set, universe)
    assert len(tp_set) == num_in_tp
    assert len(reference_set) == num_in_ref
    if None != p_values:
        p_values.append(p_value)
    if p_value < get_p_value_threshold_for(reference_name):
        logging.info('TP %3d; %s; % 4d/%4d in % 5d/%5d; %e; %s', k, t,
                     test_tp_drawn, num_in_tp, num_in_ref,
                     num_in_ref + num_not_in_ref, p_value, reference_name)
        if latex_f:
            print >> latex_f, '%3d & %s & %5d & %80s & %5d & %-5d & %.1e' % (
                k, t, num_in_tp, reference_name, test_tp_drawn, num_in_ref,
                p_value)
Пример #3
0
def as_set(s):
    if set == type(s):
        return s
    else:
        return set(s)

def as_str_set(s):
    return as_set(str(t) for t in s)


if '__main__' == __name__:
    from gene_set_enrichment import test_enrichment

    kegg_pathways = get_kegg_pathways()

    for i, tp in enumerate(transcriptional_programs):
        threshold = 0.05
        target_universe = as_str_set(tp.genes)
        factor_universe = as_str_set(tp.factors)
        target_set = as_str_set(tp.tp_targets)
        factor_set = as_str_set(tp.tp_factors)
        for name, pathway in kegg_pathways:
            pathway_target_set = as_str_set(pathway)
            pathway_target_set.intersection_update(target_universe)
            pathway_factor_set = as_str_set(pathway)
            pathway_factor_set.intersection_update(factor_universe)
            targets_p_value = test_enrichment(target_set, pathway_target_set, target_universe) * len(kegg_pathways)
            factors_p_value = test_enrichment(factor_set, pathway_factor_set, factor_universe) * len(kegg_pathways)
            if targets_p_value < threshold or factors_p_value < threshold:
                print i, name, targets_p_value, factors_p_value