Creates Gene Ontology graph from a custom set of genes
(data_path, pert_list, data_name, num_workers=25, save=True)
| 578 | return edge_list |
| 579 | |
| 580 | def make_GO(data_path, pert_list, data_name, num_workers=25, save=True): |
| 581 | """ |
| 582 | Creates Gene Ontology graph from a custom set of genes |
| 583 | """ |
| 584 | |
| 585 | fname = './data/go_essential_' + data_name + '.csv' |
| 586 | if os.path.exists(fname): |
| 587 | return pd.read_csv(fname) |
| 588 | |
| 589 | with open(os.path.join(data_path, 'gene2go_all.pkl'), 'rb') as f: |
| 590 | gene2go = pickle.load(f) |
| 591 | gene2go = {i: gene2go[i] for i in pert_list} |
| 592 | |
| 593 | print('Creating custom GO graph, this can take a few minutes') |
| 594 | with Pool(num_workers) as p: |
| 595 | all_edge_list = list( |
| 596 | tqdm(p.imap(get_GO_edge_list, ((g, gene2go) for g in gene2go.keys())), |
| 597 | total=len(gene2go.keys()))) |
| 598 | edge_list = [] |
| 599 | for i in all_edge_list: |
| 600 | edge_list = edge_list + i |
| 601 | |
| 602 | df_edge_list = pd.DataFrame(edge_list).rename( |
| 603 | columns={0: 'source', 1: 'target', 2: 'importance'}) |
| 604 | |
| 605 | if save: |
| 606 | print('Saving edge_list to file') |
| 607 | df_edge_list.to_csv(fname, index=False) |
| 608 | |
| 609 | return df_edge_list |
| 610 | |
| 611 | def get_similarity_network(network_type, adata, threshold, k, |
| 612 | data_path, data_name, split, seed, train_gene_set_size, |
no test coverage detected