In [5]:
import pandas as pd
pd.set_option("display.max_colwidth", 1)
import py2neo
graph = py2neo.Graph()
graph
Out[5]:
In [ ]:
In [31]:
import pandas as pd
query="""
MATCH (p:Project)-[:CONTAINS*]->(t:Type)
WITH t, SPLIT(t.fqn, ".")[-2] as buildingblock
MERGE (b:Abb { name : buildingblock})
MERGE (b)-[:CONSISTS_OF]->(t)
RETURN b.name, t.name
"""
pd.DataFrame(graph.data(query)).head()
Out[31]:
In [35]:
query="""
MATCH
(s1:Subdomain)<-[:BELONGS_TO]-
(type:Type)-[:DECLARES]->(m:Method)-[r:INVOKES]->(mdep:Method)<-[:DECLARES]-
(dependency:Type)-[:BELONGS_TO]->(s2:Subdomain)
RETURN s1.name as from, s2.name as to, COUNT(r) as x_number
"""
df = pd.DataFrame(graph.data(query))
df.head()
Out[35]:
In [36]:
import json
json_data = df.to_dict(orient='split')['data']
with open ( "vis/chord_data.json", mode='w') as json_file:
json_file.write(json.dumps(json_data, indent=3))
json_data[:5]
Out[36]:
In [39]:
query="""
MATCH
(s1:Subdomain { name: "Owner"})<-[:BELONGS_TO]-
(type:Type)-[:DECLARES]->(m:Method)-[r:INVOKES]->(mdep:Method)<-[:DECLARES]-
(dependency:Type)-[:BELONGS_TO]->(s2:Subdomain {name: "Clinic"})
RETURN type.name as from, dependency.name as to, m.name, r.lineNumber, mdep.name
"""
df = pd.DataFrame(graph.data(query))
df
Out[39]: