Пример #1
0
def get_members(agent):
    dbname, dbid = agent.get_grounding()
    if dbname not in ['FPLX', 'BE']:
        return None
    eh = hierarchies['entity']
    uri = eh.get_uri(dbname, dbid)
    children_uris = sorted(eh.get_children(uri))
    children_agents = [
        expand_families._agent_from_uri(uri) for uri in children_uris
    ]
    return children_agents
Пример #2
0
def _get_members(agent):
    if 'FPLX' not in agent.db_refs:
        return None
    dbname, dbid = 'FPLX', agent.db_refs['FPLX']
    eh = hierarchies['entity']
    uri = eh.get_uri(dbname, dbid)
    children_uris = sorted(eh.get_children(uri))
    children_agents = [
        expand_families._agent_from_uri(uri) for uri in children_uris
    ]
    return children_agents
Пример #3
0
def suggest_relevant_relations(groundings):
    def make_nice_list(lst):
        if len(lst) == 1:
            return lst[0]
        pre = ', '.join(lst[:-1])
        full = '%s, or %s' % (pre, lst[-1])
        return full

    prefix1 = 'By the way, I recognized'
    prefix2 = 'I also recognized'
    msg_parts = []
    for entity_txt, (dbn, dbi) in groundings.items():
        if dbn == 'FPLX':
            ag = Agent(name=entity_txt, db_refs={dbn: dbi})
            children = expander.get_children(ag)
            print(children)
            if not children:
                continue
            children_names = [ch[1] for ch in children]
            children_str = make_nice_list(children_names)
            prefix = prefix1 if not msg_parts else prefix2
            msg = ('%s "%s" as a family or complex, '
                   'you might be interested in asking about some of its '
                   'specific members like %s.') % (prefix, entity_txt,
                                                   children_str)
            msg_parts.append(msg)
        if dbn == 'HGNC':
            name = hgnc_client.get_hgnc_name(dbi)
            uri = expander.entities.get_uri(dbn, name)
            print(uri)
            parent_uris = expander.entities.get_parents(uri)
            parents = [
                expand_families._agent_from_uri(uri) for uri in parent_uris
            ]
            print(parents)
            if not parents:
                continue
            parent_names = [p.name for p in parents]
            parents_str = make_nice_list(parent_names)
            prefix = prefix1 if not msg_parts else prefix2
            msg = ('%s "%s" as a protein that is part of a family or complex, '
                   'you might be interested in asking about some of those too '
                   'like %s.') % (prefix, entity_txt, parents_str)
            msg_parts.append(msg)

    full_msg = ' '.join(msg_parts)
    return full_msg
Пример #4
0
def get_binding_site_name(agent):
    """Return a binding site name from a given agent."""
    # Try to construct a binding site name based on parent
    grounding = agent.get_grounding()
    if grounding != (None, None):
        uri = hierarchies['entity'].get_uri(grounding[0], grounding[1])
        # Get highest level parents in hierarchy
        parents = hierarchies['entity'].get_parents(uri, 'top')
        if parents:
            # Choose the first parent if there are more than one
            parent_uri = sorted(parents)[0]
            parent_agent = _agent_from_uri(parent_uri)
            binding_site = _n(parent_agent.name).lower()
            return binding_site
    # Fall back to Agent's own name if one from parent can't be constructed
    binding_site = _n(agent.name).lower()
    return binding_site
Пример #5
0
def get_binding_site_name(agent):
    """Return a binding site name from a given agent."""
    # Try to construct a binding site name based on parent
    grounding = agent.get_grounding()
    if grounding != (None, None):
        uri = hierarchies['entity'].get_uri(grounding[0], grounding[1])
        # Get highest level parents in hierarchy
        parents = hierarchies['entity'].get_parents(uri, 'top')
        if parents:
            # Choose the first parent if there are more than one
            parent_uri = sorted(parents)[0]
            parent_agent = _agent_from_uri(parent_uri)
            binding_site = _n(parent_agent.name).lower()
            return binding_site
    # Fall back to Agent's own name if one from parent can't be constructed
    binding_site = _n(agent.name).lower()
    return binding_site