Skip to content

Commit eaf1a14

Browse files
authored
Merge pull request #780 from hubmapconsortium/Derek-Furst/update-prov
updated prov to version 2.0.1. Modified neo4j query to return only ce…
2 parents 11bf30e + f8df5e8 commit eaf1a14

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/app_neo4j_queries.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -574,13 +574,25 @@ def get_provenance(neo4j_driver, uuid, depth):
574574
max_level_str = ''
575575
if depth is not None and len(str(depth)) > 0:
576576
max_level_str = f"maxLevel: {depth}, "
577-
577+
delimiter = ', '
578+
entity_properties = ['group_uuid', 'created_by_user_displayname', 'created_by_user_sub', 'created_by_user_email', 'uuid', 'dataset_type', 'hubmap_id', 'entity_type', 'status', 'created_timestamp']
579+
activity_properties = ['hubmap_id', 'created_by_user_displayname', 'created_by_user_sub', 'created_by_user_email', 'creation_action', 'uuid', 'status', 'created_timestamp']
580+
entity_cypher_pairs_list = [f'{prop}: node.{prop}' for prop in entity_properties]
581+
activity_cypher_pairs_list = [f'{prop}: node.{prop}' for prop in activity_properties]
582+
entity_cypher_pairs_string = delimiter.join(entity_cypher_pairs_list)
583+
activity_cypher_pairs_string = delimiter.join(activity_cypher_pairs_list)
578584
# More info on apoc.path.subgraphAll() procedure: https://neo4j.com/labs/apoc/4.0/graph-querying/expand-subgraph/
579585
query = (f"MATCH (n:Entity) "
580586
f"WHERE n.uuid = '{uuid}' "
581587
f"CALL apoc.path.subgraphAll(n, {{ {max_level_str} relationshipFilter:'<ACTIVITY_INPUT|<ACTIVITY_OUTPUT', labelFilter:'-Lab' }}) "
582588
f"YIELD nodes, relationships "
583-
f"WITH [node in nodes | node {{ .*, label:labels(node)[0] }} ] as nodes, "
589+
f"WITH [node in nodes | "
590+
f" CASE "
591+
f" WHEN 'Activity' IN labels(node) THEN node {{{activity_cypher_pairs_string} , label: labels(node)[0] }} "
592+
f" WHEN 'Entity' IN labels(node) THEN node {{{entity_cypher_pairs_string} , label: labels(node)[0] }} "
593+
f" ELSE node {{ label: labels(node)[0] }} "
594+
f" END "
595+
f"] as nodes, "
584596
f"[rel in relationships | rel {{ .*, fromNode: {{ label:labels(startNode(rel))[0], uuid:startNode(rel).uuid }}, toNode: {{ label:labels(endNode(rel))[0], uuid:endNode(rel).uuid }}, rel_data: {{ type: type(rel) }} }} ] as rels "
585597
f"WITH {{ nodes:nodes, relationships:rels }} as json "
586598
f"RETURN json")

src/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Flask==3.0.3
22
neo4j==5.20.0
3-
prov==2.0.0
3+
prov==2.0.1
44
Werkzeug==3.0.3
55
deepdiff==7.0.1
66

0 commit comments

Comments
 (0)