diff --git a/indra/assemblers/indranet/assembler.py b/indra/assemblers/indranet/assembler.py index 7d43a56829..66f13d1b1e 100644 --- a/indra/assemblers/indranet/assembler.py +++ b/indra/assemblers/indranet/assembler.py @@ -518,7 +518,7 @@ def _store_edge_data(stmts, extra_columns=None): def statement_to_rows(stmt, exclude_stmts=None, complex_members=3, - extra_columns=None, keep_self_loops=True): + extra_columns=None, keep_self_loops=True, source_counts=None): rows = [] if exclude_stmts: exclude_types = tuple( @@ -592,6 +592,13 @@ def statement_to_rows(stmt, exclude_stmts=None, complex_members=3, pos = None # Create a simple flat list of just the values instead # of a dict with keys + statemet_hash = stmt.get_hash(refresh=True) + if source_counts: + evidence_count = sum(source_counts.get(statemet_hash, {}).values()) + source_count = source_counts.get(statemet_hash, {}) + else: + evidence_count = len(stmt.evidence) + source_count = _get_source_counts(stmt) row = [ agA.name, agB.name, @@ -602,10 +609,10 @@ def statement_to_rows(stmt, exclude_stmts=None, complex_members=3, res, pos, stmt_type, - len(stmt.evidence), - stmt.get_hash(refresh=True), + evidence_count, + statemet_hash, stmt.belief, - _get_source_counts(stmt), + source_count, sign ] if extra_columns: diff --git a/indra/tests/test_indranet_assembler.py b/indra/tests/test_indranet_assembler.py index 87b86477cb..7314160ca5 100644 --- a/indra/tests/test_indranet_assembler.py +++ b/indra/tests/test_indranet_assembler.py @@ -337,3 +337,9 @@ def test_stmt_to_rows(): assert len(rows) == 1 assert rows[0] == ['a', 'b', 'HGNC', '1', 'TEXT', 'b', None, None, 'Activation', 1, 8197018847132618, 1, {None: 1}, None] + + source_count = {-25125767941752990: {'db1': 1}} + rows = statement_to_rows(st2, source_counts=source_count) + assert rows[0] == ['a', 'c', 'HGNC', '1', 'TEXT', 'c', None, None, + 'Inhibition', 1, -25125767941752990, 0.76, {'db1': 1}, None] +