Communicated proteins

import os
from json import dumps
import logging
import pandas as pd
import numpy as np
import copy

import matplotlib.pyplot as plt
from matplotlib import cm

from CoRe.cypher_commands import command_set

import networkx as nx
import json
current_directory = os.getcwd()

selected_TopLevelPathway = 'Immune System'
pathway_nametag = selected_TopLevelPathway.replace(' ','_')

network_type = 'medium-PPI'

state_type = 'maxEnt'

data_directory = current_directory + "/Examples/"+pathway_nametag
os.chdir(data_directory)

f = open('SARS_CoV2-'+pathway_nametag+'_interactions.json')
SARS_nodes = json.load(f)
f.close()

communicated_proteins = pd.read_csv(state_type+'-SARS_CoV2_'+pathway_nametag+'_'+network_type+'_affected_genes0.0.csv')
print(list(communicated_proteins))
print(communicated_proteins['node_ids'].count())
['node_ids', 'node_index', 'SARS-CoV2 Nsp2', 'SARS-CoV2 Nsp7', 'SARS-CoV2 Nsp12', 'SARS-CoV2 Nsp13', 'SARS-CoV2 Nsp14', 'SARS-CoV2 ORF3a', 'SARS-CoV2 M', 'SARS-CoV2 ORF8', 'SARS-CoV2 ORF9b', 'SARS-CoV2 ORF9c', 'SARS-CoV2 ORF10']
91
all_ref_gene_names = {}

i = 0
for gen_name in communicated_proteins['node_ids']:
    try:
        all_ref_gene_names[gen_name].append(i)
    except KeyError:
        all_ref_gene_names[gen_name] = [i]

    i += 1
# Condense selected protein list
first_indices = []
indices_to_drop = []

for k in all_ref_gene_names.keys():
    first_indices.append(all_ref_gene_names[k][0])

    for d in all_ref_gene_names[k][1:]:
        indices_to_drop.append(d)
communicated_proteins = communicated_proteins.drop(indices_to_drop)
all_ref_gene_names = communicated_proteins['node_ids'].to_list()
sars_proteins = list(communicated_proteins)[2:]
print(sars_proteins)
['SARS-CoV2 Nsp2', 'SARS-CoV2 Nsp7', 'SARS-CoV2 Nsp12', 'SARS-CoV2 Nsp13', 'SARS-CoV2 Nsp14', 'SARS-CoV2 ORF3a', 'SARS-CoV2 M', 'SARS-CoV2 ORF8', 'SARS-CoV2 ORF9b', 'SARS-CoV2 ORF9c', 'SARS-CoV2 ORF10']
SARS_indirect_nodes = {}
SARS_indirect_nodes_wts = {}

for k in SARS_nodes.keys():
    SARS_indirect_nodes[k] = []
    SARS_indirect_nodes_wts[k] = []

print(SARS_nodes.keys())

for s in sars_proteins:
    d = communicated_proteins[s].to_numpy()

    for i in range(0,d.shape[0]):
        if d[i]>0.0 and all_ref_gene_names[i] not in SARS_indirect_nodes[s]:
            SARS_indirect_nodes[s].append(all_ref_gene_names[i])
            SARS_indirect_nodes_wts[s].append(d[i])
dict_keys(['SARS-CoV2 Nsp2', 'SARS-CoV2 Nsp7', 'SARS-CoV2 Nsp8', 'SARS-CoV2 Nsp10', 'SARS-CoV2 Nsp12', 'SARS-CoV2 Nsp13', 'SARS-CoV2 Nsp14', 'SARS-CoV2 Nsp15', 'SARS-CoV2 Spike', 'SARS-CoV2 ORF3a', 'SARS-CoV2 E', 'SARS-CoV2 M', 'SARS-CoV2 ORF8', 'SARS-CoV2 ORF9b', 'SARS-CoV2 ORF9c', 'SARS-CoV2 N', 'SARS-CoV2 ORF10'])
SARS_affected_refgenes = copy.deepcopy(SARS_nodes)

for s in sars_proteins:
    d = communicated_proteins[s].to_numpy()

    for i in range(0,d.shape[0]):
        if d[i]>0.0 and all_ref_gene_names[i] not in SARS_affected_refgenes[s]:
            SARS_affected_refgenes[s].append(all_ref_gene_names[i])

    print(s,'\t',len(SARS_affected_refgenes[s]))

json_obj = json.dumps(SARS_affected_refgenes)

f = open(state_type+'-SARS_CoV2_total_'+pathway_nametag+'_'+network_type+'_interactions.json','w')
f.write(json_obj)
f.close()
SARS-CoV2 Nsp2       3
SARS-CoV2 Nsp7       28
SARS-CoV2 Nsp12      7
SARS-CoV2 Nsp13      3
SARS-CoV2 Nsp14      7
SARS-CoV2 ORF3a      2
SARS-CoV2 M          33
SARS-CoV2 ORF8       46
SARS-CoV2 ORF9b      3
SARS-CoV2 ORF9c      5
SARS-CoV2 ORF10      4