Ejemplo n.º 1
0
 def _bc_agent_from_up_list(self, up_id_list):
     # Return the first agent with the remaining agents as a bound condition
     agents_list = [self._agent_from_up_id(up_id) for up_id in up_id_list]
     agent = agents_list[0]
     agent.bound_conditions = \
         [BoundCondition(a, True) for a in agents_list[1:]]
     return agent
Ejemplo n.º 2
0
def test_cljson_stmt():
    gtp = Agent('GTP')
    kras_bound = Agent("KRAS", bound_conditions=[BoundCondition(gtp, True)])
    braf = Agent('BRAF')
    stmt = Phosphorylation(kras_bound, braf, position='373')
    cj = Bioagent.make_cljson(stmt)
    stmt2 = Bioagent.get_statement(cj)
    assert stmt.equals(stmt2)
Ejemplo n.º 3
0
def test_bound_condition_deep_refinement():
    """A statement with more specific bound context should be supported by a
    less specific statement."""
    src = Agent('SRC', db_refs={'HGNC': '11283'})
    gtp1 = Agent('GTP', db_refs={'CHEBI': '15996'})
    gtp2 = Agent('GTP',
                 mods=[ModCondition('phosphorylation')],
                 db_refs={'CHEBI': '15996'})
    nrasgtp1 = Agent('NRAS',
                     db_refs={'HGNC': '7989'},
                     bound_conditions=[BoundCondition(gtp1, True)])
    nrasgtp2 = Agent('NRAS',
                     db_refs={'HGNC': '7989'},
                     bound_conditions=[BoundCondition(gtp2, True)])
    st1 = Phosphorylation(src, nrasgtp1, 'tyrosine', '32')
    st2 = Phosphorylation(src, nrasgtp2, 'tyrosine', '32')
    # The top-level list should contain only one statement, the more specific
    # modification, supported by the less-specific modification.
    pa = Preassembler(hierarchies, stmts=[st1, st2])
    stmts = pa.combine_related()
    assert len(stmts) == 1
    assert stmts[0].equals(st2)
    assert len(stmts[0].supported_by) == 1
    assert stmts[0].supported_by[0].equals(st1)
Ejemplo n.º 4
0
def test_bound_condition_norefinement():
    """A statement with more specific bound context should be supported by a
    less specific statement."""
    src = Agent('SRC', db_refs={'HGNC': '11283'})
    gtp = Agent('GTP', db_refs={'CHEBI': '15996'})
    nras = Agent('NRAS', db_refs={'HGNC': '7989'})
    nrasgtp = Agent('NRAS',
                    db_refs={'HGNC': '7989'},
                    bound_conditions=[BoundCondition(gtp, True)])
    st1 = Phosphorylation(src, nras, 'tyrosine', '32')
    st2 = Phosphorylation(src, nrasgtp)
    pa = Preassembler(hierarchies, stmts=[st1, st2])
    stmts = pa.combine_related()
    # The bound condition is more specific in st2 but the modification is less
    # specific. Therefore these statements should not be combined.
    assert len(stmts) == 2
Ejemplo n.º 5
0
def test_bound_condition_mapping_multi():
    # Test with multiple agents
    akt = Agent('pkbA', db_refs={'TEXT': 'Akt', 'UP': 'XXXXXX'})
    erk = Agent('ERK1', db_refs={'TEXT': 'ERK1'})
    akt.bound_conditions = [BoundCondition(erk)]
    stmt = Phosphorylation(akt, erk)
    mapped_stmts = gm.map_stmts([stmt])
    s = mapped_stmts[0]
    mapped_akt = mapped_stmts[0].enz
    mapped_erk1 = mapped_akt.bound_conditions[0].agent
    mapped_erk2 = mapped_stmts[0].sub

    assert mapped_akt.db_refs['TEXT'] == 'Akt'
    assert mapped_akt.db_refs['FPLX'] == 'AKT'

    for e in (mapped_erk1, mapped_erk2):
        assert e.db_refs['TEXT'] == 'ERK1'
        assert e.db_refs['HGNC'] == '6877'
        assert e.db_refs['UP'] == 'P27361'
Ejemplo n.º 6
0
def test_bound_condition_mapping_agent_json():
    # Test with agent/json mapping
    akt = Agent('pkbA', db_refs={'TEXT': 'p-Akt', 'UP': 'XXXXXX'})
    erk = Agent('ERK1', db_refs={'TEXT': 'ERK1'})
    akt.bound_conditions = [BoundCondition(erk)]
    stmt = Phosphorylation(None, akt)

    mapped_stmts = gm.map_stmts([stmt])

    s = mapped_stmts[0]
    mapped_akt = mapped_stmts[0].sub
    mapped_erk = mapped_akt.bound_conditions[0].agent

    #assert mapped_akt.db_refs['TEXT'] == 'p-AKT', mapped_akt.db_refs
    assert mapped_akt.db_refs['FPLX'] == 'AKT', mapped_akt.db_refs

    assert mapped_erk.db_refs['TEXT'] == 'ERK1'
    assert mapped_erk.db_refs['HGNC'] == '6877'
    assert mapped_erk.db_refs['UP'] == 'P27361'
Ejemplo n.º 7
0
def test_bound_condition_mapping():
    # Verify that the grounding mapper grounds the agents within a bound
    # condition
    akt = Agent('pkbA', db_refs={'TEXT': 'Akt', 'UP': 'XXXXXX'})
    erk = Agent('ERK1', db_refs={'TEXT': 'ERK1'})
    akt.bound_conditions = [BoundCondition(erk)]

    stmt = Phosphorylation(None, akt)

    mapped_stmts = gm.map_stmts([stmt])

    s = mapped_stmts[0]
    mapped_akt = mapped_stmts[0].sub
    mapped_erk = mapped_akt.bound_conditions[0].agent

    assert mapped_akt.db_refs['TEXT'] == 'Akt'
    assert mapped_akt.db_refs['FPLX'] == 'AKT'

    assert mapped_erk.db_refs['TEXT'] == 'ERK1'
    assert mapped_erk.db_refs['HGNC'] == '6877'
    assert mapped_erk.db_refs['UP'] == 'P27361'
Ejemplo n.º 8
0
from kqml import KQMLList

from indra.statements import Agent, Activation, BoundCondition, stmts_to_json, \
    ActivityCondition, Phosphorylation

from bioagents.tests.util import get_request
from bioagents.bionlg.bionlg_module import BioNLG_Module
from bioagents.tests.integration import _IntegrationTest

kras = Agent('KRAS')
braf = Agent('BRAF')
map2k1 = Agent('MAP2K1')
mapk3 = Agent('MAPK3')
gtp = Agent('GTP')
active_braf = Agent('BRAF', activity=ActivityCondition('activity', True))
kras_bound = Agent("KRAS", bound_conditions=[BoundCondition(gtp, True)])


class _NlgTestBase(_IntegrationTest):
    message_funcs = ['statements']

    # Define these in the sub-classes with statements, and sentences that
    # correspond to those statements.
    statements = []
    sentences = []

    def __init__(self, *args, **kwargs):
        super().__init__(BioNLG_Module)

    def create_statements(self):
        content = KQMLList('INDRA-TO-NL')