From 84e1a9605d84037fc8165cb51e347b959c516547 Mon Sep 17 00:00:00 2001 From: Will Usher Date: Fri, 9 Oct 2020 13:29:03 +0200 Subject: [PATCH 1/5] Update code to use networkx objects (incomplete) --- .../GLUCOSE_VisualizingRES.py | 195 +++++++++--------- 1 file changed, 95 insertions(+), 100 deletions(-) diff --git a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py index c20c047..8467810 100755 --- a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py +++ b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py @@ -9,105 +9,100 @@ from networkx.utils import open_file import pandas as pd - - -RES = nx.read_graphml('glucoseRES_modified,noDUMMY,v2_202009.graphml') -#%% -edg = pd.DataFrame(RES.edges(data=True)) -nds = pd.DataFrame(RES.nodes(data=True)) - -# info_edg = edg[2][144] -# info_nds = nds[1][119] - -#%% -input_edg=pd.DataFrame(columns=edg.columns) -output_edg=pd.DataFrame(columns=edg.columns) -emission_edg=pd.DataFrame(columns=edg.columns) - -i=0 -for i in edg.index: - info_edge=edg[2][i] - if 'input_ratio' in info_edge: - input_edg=input_edg.append(edg.iloc[[i]], ignore_index=True) - if 'output_ratio' in info_edge: - output_edg=output_edg.append(edg.iloc[[i]], ignore_index=True) - if 'emission_ratio' in info_edge: - emission_edg=emission_edg.append(edg.iloc[[i]], ignore_index=True) - i=i+1 - - -k=0 -for k in input_edg.index: - fuel1=input_edg[2][k]['label'] - a= input_edg[0][k] - node=nds.loc[nds[0]==a] - node = node.reset_index(drop=True) - x1=0 - for x1 in node.index: - b=node[1][node.index[x1]] - b['label']=fuel1 - x1=x1+1 - k=k+1 - -z=0 -for z in output_edg.index: - c = output_edg[1][z] - d = nds.loc[nds[0]==c] - fuel2 = d[1][d.index[0]]['label'] - edge = output_edg.loc[output_edg[1]==c] - edge = edge.reset_index(drop=True) - x2=0 - for x2 in edge.index: - e=edge[2][edge.index[x2]] - e['label']=fuel2 - x2=x2+1 - edge2 = edg.loc[edg[1]==c] - edge2 = edge2.reset_index(drop=True) - x3=0 - for x3 in edge2.index: - f=edge2[2][edge2.index[x3]] - f['label']=fuel2 - x3=x3+1 - z=z+1 - -y=0 -for y in emission_edg.index: - g = emission_edg[1][y] - h = nds.loc[nds[0]==g] - emission = h[1][h.index[0]]['label'] - edge3 = emission_edg.loc[emission_edg[1]==g] - edge3 = edge3.reset_index(drop=True) - x4=0 - for x4 in edge3.index: - m=edge3[2][edge3.index[x4]] - m['label']=emission - x4=x4+1 - edge4 = edg.loc[edg[1]==g] - edge4 = edge4.reset_index(drop=True) - x5=0 - for x5 in edge4.index: - n=edge4[2][edge4.index[x5]] - n['label']=emission - x5=x5+1 - y=y+1 - - -nds.to_dict() -edg.to_dict() - -#%% -RES = nx.DiGraph() -#RES.add_edges_from(edg) - -for i in edg: - RES.add_edge(edg[0][i], edg[1][i]) -for j in nds: - RES.add_node(nds[0][j]) - -#%% -#RES.add_nodes_from(edg) -#RES.add_nodes_from(nds) -#RESdata = nx.path_grap() -nx.write_graphml(RES, 'glucoseRES_modified,noDUMMY,v4_202010.graphml') +import sys + +def main(filepath): + + RES = nx.read_graphml(filepath) + + edges = RES.edges(data=True) + nodes = RES.nodes(data=True) + + input_edges = [] + output_edges = [] + emission_edges = [] + + # Extract edges with input, output and emission ratios + for edge in edges: + info_edge = edge[2] + if 'input_ratio' in info_edge: + input_edges.append(edge) + if 'output_ratio' in info_edge: + output_edges.append(edge) + if 'emission_ratio' in info_edge: + emission_edges.append(edge) + + # Update the labels of nodes + for edge in input_edges: + fuel = edge[2]['label'] + from_node = edge[0] + RES.nodes[from_node]['label'] = fuel + + + + # k=0 + # for k in input_edg.index: + # fuel1 = input_edg[2]['label'] + # a= input_edg[0][k] + # node=nds.loc[nds[0]==a] + # node = node.reset_index(drop=True) + # x1=0 + # for x1 in node.index: + # b=node[1][node.index[x1]] + # b['label']=fuel1 + # x1=x1+1 + # k=k+1 + + # z=0 + # for z in output_edg.index: + # c = output_edg[1][z] + # d = nds.loc[nds[0]==c] + # fuel2 = d[1][d.index[0]]['label'] + # edge = output_edg.loc[output_edg[1]==c] + # edge = edge.reset_index(drop=True) + # x2=0 + # for x2 in edge.index: + # e=edge[2][edge.index[x2]] + # e['label']=fuel2 + # x2=x2+1 + # edge2 = edg.loc[edg[1]==c] + # edge2 = edge2.reset_index(drop=True) + # x3=0 + # for x3 in edge2.index: + # f=edge2[2][edge2.index[x3]] + # f['label']=fuel2 + # x3=x3+1 + # z=z+1 + + # y=0 + # for y in emission_edg.index: + # g = emission_edg[1][y] + # h = nds.loc[nds[0]==g] + # emission = h[1][h.index[0]]['label'] + # edge3 = emission_edg.loc[emission_edg[1]==g] + # edge3 = edge3.reset_index(drop=True) + # x4=0 + # for x4 in edge3.index: + # m=edge3[2][edge3.index[x4]] + # m['label']=emission + # x4=x4+1 + # edge4 = edg.loc[edg[1]==g] + # edge4 = edge4.reset_index(drop=True) + # x5=0 + # for x5 in edge4.index: + # n=edge4[2][edge4.index[x5]] + # n['label']=emission + # x5=x5+1 + # y=y+1 + + + # nds.to_dict() + # edg.to_dict() + + + # Write out the graph to a new file + nx.write_graphml(RES, 'glucoseRES_modified,noDUMMY,v4_202010.graphml') # %% +if __name__ == "__main__": + main(sys.argv[1]) \ No newline at end of file From 91cc82900ab2a58435c274c54c6a764b132eff9b Mon Sep 17 00:00:00 2001 From: Agnese Date: Mon, 12 Oct 2020 13:32:10 +0200 Subject: [PATCH 2/5] added output_edges and emission_edges to the script replacing pd.DataFrame with networkx data structure --- .../GLUCOSE_VisualizingRES.py | 43 +++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py index 8467810..0b7773b 100755 --- a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py +++ b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py @@ -10,7 +10,32 @@ import pandas as pd import sys +#%% +# RES = nx.read_graphml('glucoseRES_modified,noDUMMY,v2_202009.graphml') +# edg = pd.DataFrame(RES.edges(data=True)) +# edg1 = edg[2][4] +# nds = pd.DataFrame(RES.nodes(data=True)) +# nds1=nds[1][4] + +# input_edg=pd.DataFrame(columns=edg.columns) +# output_edg=pd.DataFrame(columns=edg.columns) +# emission_edg=pd.DataFrame(columns=edg.columns) + +# i=0 +# for i in edg.index: +# info_edge=edg[2][i] +# if 'input_ratio' in info_edge: +# input_edg=input_edg.append(edg.iloc[[i]], ignore_index=True) +# if 'output_ratio' in info_edge: +# output_edg=output_edg.append(edg.iloc[[i]], ignore_index=True) +# if 'emission_ratio' in info_edge: +# emission_edg=emission_edg.append(edg.iloc[[i]], ignore_index=True) +# i=i+1 +# input_edg1 = input_edg[2][4] +# output_edg1=output_edg[2][4] +# emission_edg1 = emission_edg[2][7] +#%% def main(filepath): RES = nx.read_graphml(filepath) @@ -34,10 +59,21 @@ def main(filepath): # Update the labels of nodes for edge in input_edges: - fuel = edge[2]['label'] + fuel_in = edge[2]['label'] from_node = edge[0] - RES.nodes[from_node]['label'] = fuel + RES.nodes[from_node]['label'] = fuel_in + for edge in output_edges: + from_node = edge[0] + to_node = edge[1] + fuel_out = RES.nodes[to_node]['label'] + RES.edges[0,1]['label'] = fuel_out + + for edge in emission_edges: + from_node = edge[0] + to_node = edge[1] + emission = RES.nodes[to_node]['label'] + RES.edges[0,1]['label'] = emission # k=0 @@ -105,4 +141,5 @@ def main(filepath): # %% if __name__ == "__main__": - main(sys.argv[1]) \ No newline at end of file + main(sys.argv[1]) +# %% From ef430e4436bcb260549fe1db2c8eb61236671089 Mon Sep 17 00:00:00 2001 From: Agnese Date: Mon, 12 Oct 2020 13:45:53 +0200 Subject: [PATCH 3/5] cleaning the script --- .../GLUCOSE_VisualizingRES.py | 27 +------------------ 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py index 0b7773b..9675943 100755 --- a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py +++ b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py @@ -10,32 +10,7 @@ import pandas as pd import sys -#%% -# RES = nx.read_graphml('glucoseRES_modified,noDUMMY,v2_202009.graphml') -# edg = pd.DataFrame(RES.edges(data=True)) -# edg1 = edg[2][4] -# nds = pd.DataFrame(RES.nodes(data=True)) -# nds1=nds[1][4] - -# input_edg=pd.DataFrame(columns=edg.columns) -# output_edg=pd.DataFrame(columns=edg.columns) -# emission_edg=pd.DataFrame(columns=edg.columns) - -# i=0 -# for i in edg.index: -# info_edge=edg[2][i] -# if 'input_ratio' in info_edge: -# input_edg=input_edg.append(edg.iloc[[i]], ignore_index=True) -# if 'output_ratio' in info_edge: -# output_edg=output_edg.append(edg.iloc[[i]], ignore_index=True) -# if 'emission_ratio' in info_edge: -# emission_edg=emission_edg.append(edg.iloc[[i]], ignore_index=True) -# i=i+1 -# input_edg1 = input_edg[2][4] -# output_edg1=output_edg[2][4] -# emission_edg1 = emission_edg[2][7] -#%% def main(filepath): RES = nx.read_graphml(filepath) @@ -142,4 +117,4 @@ def main(filepath): # %% if __name__ == "__main__": main(sys.argv[1]) -# %% + From e65ad037d1731ebb5500bf666a61b60be3a172e7 Mon Sep 17 00:00:00 2001 From: Agnese Date: Mon, 12 Oct 2020 14:41:22 +0200 Subject: [PATCH 4/5] addressing Will comment on RES.edges --- ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py index 9675943..4947d70 100755 --- a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py +++ b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py @@ -5,10 +5,11 @@ This is a temporary script file. """ #%% + import networkx as nx from networkx.utils import open_file -import pandas as pd +#import pandas as pd import sys def main(filepath): @@ -42,13 +43,13 @@ def main(filepath): from_node = edge[0] to_node = edge[1] fuel_out = RES.nodes[to_node]['label'] - RES.edges[0,1]['label'] = fuel_out + RES.edges[from_node,to_node]['label'] = fuel_out for edge in emission_edges: from_node = edge[0] to_node = edge[1] emission = RES.nodes[to_node]['label'] - RES.edges[0,1]['label'] = emission + RES.edges[from_node,to_node]['label'] = emission # k=0 From 94f0e9f5dfa1e6d89b24ac8e73b7ec1779a565bc Mon Sep 17 00:00:00 2001 From: Agnese Date: Tue, 13 Oct 2020 17:07:07 +0200 Subject: [PATCH 5/5] trying to add pyyed to transfer grouping and geometry info from yED to new .graphml file --- ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py index 4947d70..17e6f3e 100755 --- a/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py +++ b/ReferenceResourcesSystem/GLUCOSE_VisualizingRES.py @@ -9,6 +9,8 @@ import networkx as nx from networkx.utils import open_file +#import pyyed + #import pandas as pd import sys