Source code for owmeta.commands.biology

import six

from owmeta_core.command_util import GeneratorWithData
from ..cell import Cell


[docs]class CellCmd(object): ''' Commands for dealing with biological cells ''' def __init__(self, parent, *args, **kwargs): self._parent = parent
[docs] def show(self, cell_name_or_id, context=None): ''' Show information about the cell Parameters ---------- cell_name_or_id : str Cell name or Cell URI context : str Context to search in. Optional, defaults to the default context. ''' if not context: ctx = self._parent._default_ctx else: ctx = Context(context) def helper(): for cell in ctx.stored(Cell).query(name=cell_name_or_id).load(): yield cell break else: # no break uri = self._parent._den3(cell_name_or_id) for x in ctx.stored(Cell)(ident=uri).load(): yield cell def fmt_text(cell): try: sio = six.StringIO() nm = self._parent._conf('rdf.namespace_manager') print('%s(%s)' % (cell.__class__.__name__, nm.normalizeUri(cell.identifier)), file=sio) print(' Lineage name: %s' % cell.lineageName(), file=sio) print(' Name: %s' % cell.name(), file=sio) print(' WormBase ID: %s' % cell.wormbaseID(), end='', file=sio) return sio.getvalue() except AttributeError: res = str(cell) L.error('Failed while creating formatting string representation for %s', res) return res return GeneratorWithData(helper(), text_format=fmt_text)