Example #1
0
    # for each node (from diff expr) making a set of  other diff expt gene nodes reachable from it
    for node in diff_expressed_nodes:
        diff_expr_descendants = nx.descendants(G, node) & diff_expressed_nodes
        diff_ancestors[node].update(diff_expr_descendants)

    all_mega_ancestorz += optimal_greedy(G, diff_expressed)

freq = {k: len(v) for k, v in diff_ancestors.items()}
freq = sorted(freq.items(), key=lambda x: x[1], reverse=True)

hsa_names = FileDict(file='data/hsa_names.tsv',
                     pattern='hsa:(?P<key>\d+)\t(?P<value>.*)')

n_top_genes = 10
print('Top {} genes:'.format(n_top_genes))
hsa_names.preload(*[gene for gene, fr in freq[:n_top_genes]])
for gene, fr in freq[:n_top_genes]:
    print('{:>4} : {:>7} : {}'.format(fr, gene, hsa_names[gene]))
print()

print('Top {} genes in optimal-greedy algorithm:'.format(n_top_genes))
for gene, fr in all_mega_ancestorz.most_common(n_top_genes):
    print('{:>4} : {:>7} : {}'.format(fr, gene, hsa_names[gene]))
print()

print('Looking in the supergraph')
supergraph.graph['name'] = 'SuperGraph'
print(nx.info(supergraph))
diff_ancestors = defaultdict(set)
diff_expressed_nodes = supergraph.nodes & diff_expressed
# for each node (from diff expr) making a set of  other diff expt gene nodes reachable from it