Skip to content
Snippets Groups Projects
Commit 996d673a authored by Ikenna Oluigbo's avatar Ikenna Oluigbo
Browse files

CNI encoding

parent 3aae5642
No related branches found
No related tags found
No related merge requests found
CNI.py 0 → 100644
import math
import numpy as np
from prettytable import PrettyTable
from build_graph import *
G = build()
nodes_array = np.array(G.nodes)
#nx.write_gpickle(G, "proteins.pkl")
def cantor_pairing(x, y):
if x > (y + x - 1):
return 0
if y + x - 1 == 1:
return 1
st = 1
i = 1
t = y
while t <= (y + x - 1):
st *= t
t += 1
while (i <= x) and (st % i == 0) and (st > 0):
st = st / i
i += 1
return st
def CNI():
neighbor_labels = node_neighbor_labels(G)
CNI_Nodes_log = {}
CNI_original = {}
for node in G.nodes:
visited = []
CNI_list = []
CNI_Sum = 0
hop_labels = sorted(neighbor_labels[node]) #Returns Labels of Node neighbors
hop_count = np.zeros(len(only_labels))
for label in only_labels:
if label in hop_labels:
hop_count[only_labels.index(label)] = hop_labels.count(label) #returns counts of unique neighbor labels
else: 0
hop_count = [int(n) for n in hop_count]
#print(node, '>>>', hop_count)
for i in range(len(only_labels)):
visited.append(hop_count.pop(0))
CNI_list.append((only_labels[i],sum(visited))) #Returns the label, hop count sum pair
for j in CNI_list:
CNI_Sum += cantor_pairing(j[0], j[1])
CNI_original[node] = int(CNI_Sum)
if CNI_Sum == 1:
CNI_Nodes_log[node] = CNI_Sum
else:
CNI_Nodes_log[node] = round(math.log(CNI_Sum), 2)
return CNI_original, CNI_Nodes_log
CNI_original, CNI_log = CNI()
CNI_Table = PrettyTable(['Node ID', 'CNI ORIGINAL', 'CNI LOG VALUES'])
for i in range(len(CNI_original.keys())):
CNI_Table.add_row([nodes_array[i], CNI_original[nodes_array[i]], CNI_log[nodes_array[i]]])
#print(CNI_Table)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment