Skip to content

Commit 81f401e

Browse files
committed
WIP get source counts for get_ora_statements + endpoint
1 parent e15b5e2 commit 81f401e

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/indra_cogex/apps/search/search.py

+14-13
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ def get_ora_statements(
169169
is_downstream: bool = False,
170170
*,
171171
client: Neo4jClient,
172-
) -> Tuple[List[Statement], Mapping[int, int]]:
172+
) -> Tuple[List[Statement], Mapping[int, Mapping[str, int]]]:
173173
"""Get statements connecting input genes to target entity for ORA analysis.
174174
175175
Parameters
@@ -192,7 +192,7 @@ def get_ora_statements(
192192
:
193193
A tuple containing:
194194
- List of INDRA statements representing the relationships
195-
- Dictionary mapping statement hashes to their evidence counts
195+
- Dictionary mapping statement hashes to their source counts
196196
"""
197197
# Normalize gene IDs
198198
normalized_genes = [norm_id('HGNC', gene.split(':')[1]) for gene in genes]
@@ -255,18 +255,15 @@ def get_ora_statements(
255255
stmts = indra_stmts_from_relations(flattened_rels, deduplicate=True)
256256

257257
# Enrich statements with complete evidence (no limit)
258-
stmts = enrich_statements(
259-
stmts,
260-
client=client
261-
)
258+
stmts = enrich_statements(stmts, client=client)
262259

263-
# Create evidence count mapping
264-
evidence_counts = {
265-
stmt.get_hash(): rel.data.get("evidence_count", 0)
266-
for rel, stmt in zip(flattened_rels, stmts)
260+
# Create source count mapping
261+
source_counts = {
262+
rel.data["stmt_hash"]: json.loads(rel.data["source_counts"])
263+
for rel in flattened_rels
267264
}
268265

269-
return stmts, evidence_counts
266+
return stmts, source_counts
270267

271268

272269
@search_blueprint.route("/ora_statements/", methods=['GET'])
@@ -287,17 +284,21 @@ def search_ora_statements():
287284
return jsonify({"error": "target_id and genes are required"}), 400
288285

289286
try:
290-
statements, evidence_counts = get_ora_statements(
287+
statements, source_counts = get_ora_statements(
291288
target_id=target_id,
292289
genes=genes,
293290
minimum_belief=minimum_belief,
294291
minimum_evidence=minimum_evidence,
295292
is_downstream=is_downstream
296293
)
294+
evidence_counts = {
295+
k: sum(v.values()) for k, v in source_counts.items()
296+
}
297297

298298
return render_statements(
299299
stmts=statements,
300-
evidence_count=evidence_counts
300+
evidence_count=evidence_counts,
301+
source_counts_dict=source_counts
301302
)
302303

303304
except Exception as e:

0 commit comments

Comments
 (0)