Source code for owmeta.cell

from __future__ import print_function

from owmeta_core.dataobject import DatatypeProperty, ObjectProperty, This

from .channel import Channel
from .biology import BiologyType
from .cell_common import CELL_RDF_TYPE


[docs]class Cell(BiologyType): """ A biological cell. All cells with the same `name` are considered to be the same object. Parameters ----------- name : str The name of the cell lineageName : str The lineageName of the cell Examples -------- >>> from owmeta_core.quantity import Quantity >>> c = Cell(lineageName="AB plapaaaap", ... divisionVolume=Quantity("600","(um)^3")) """ class_context = BiologyType.class_context rdf_type = CELL_RDF_TYPE divisionVolume = DatatypeProperty() ''' The volume of the cell at division ''' name = DatatypeProperty() ''' The 'adult' name of the cell typically used by biologists when discussing C. elegans ''' wormbaseID = DatatypeProperty() description = DatatypeProperty() ''' A description of the cell ''' channel = ObjectProperty(value_type=Channel, multiple=True, inverse_of=(Channel, 'appearsIn')) lineageName = DatatypeProperty() ''' The lineageName of the cell ''' synonym = DatatypeProperty(multiple=True) daughterOf = ObjectProperty(value_type=This, inverse_of=(This, 'parentOf')) parentOf = ObjectProperty(value_type=This, multiple=True) key_property = {'property': name, 'type': 'direct'} def __init__(self, name=None, lineageName=None, **kwargs): # NOTE: We name the `name` and `lineageName` as positional parameters for # convenience super(Cell, self).__init__(name=name, lineageName=lineageName, **kwargs)
[docs] def blast(self): """ Return the blast name. Example:: >>> c = Cell(name="ADAL", lineageName='AB ') >>> c.blast() 'AB' Note that this isn't a `~dataobject_property.Property`. It returns the blast cell part of a `lineageName` value. """ import re try: ln = self.lineageName() x = re.split("[. ]", ln) return x[0] except Exception: return ""
def __str__(self): if self.name.has_defined_value(): return str(self.name.defined_values[0].idl) else: return super(Cell, self).__str__()