some convenience

This commit is contained in:
Jan Grewe 2019-09-17 14:02:35 +02:00
parent 71e9f2b82b
commit 67d78a8581

View File

@ -65,6 +65,7 @@ class Dataset(dj.Manual):
@property @property
def cells(self, restrictions:dict=None): def cells(self, restrictions:dict=None):
cs = (Cell & (CellDatasetMap & self) & restrictions).fetch() cs = (Cell & (CellDatasetMap & self) & restrictions).fetch()
return cs return cs
@ -112,11 +113,29 @@ class Subject(dj.Manual):
def subjects(species=None): def subjects(species=None):
subjs = [] subjs = []
if species: if species:
subjs = (Subject & "species like '\%%s\%'"%species).fetch() subjs = (Subject & "species like '%{0:s}%'".format(species)).fetch()
else: else:
subjs = (Subject & True).fetch() subjs = (Subject & True).fetch()
return subjs return subjs
@staticmethod
def unique_species():
all_species = (Subject &True).fetch("species")
return np.unique(all_species)
@property
def cells(self):
cs = Cell & self
return cs
@property
def properties(self):
return (SubjectProperties & self).fetch1()
#@property
#def datasets(self):
# retrun
@schema @schema
class SubjectDatasetMap(dj.Manual): class SubjectDatasetMap(dj.Manual):
definition = """ definition = """
@ -174,6 +193,25 @@ class Cell(dj.Manual):
return d return d
return tup return tup
@property
def subject(self):
return Subject & self
@staticmethod
def celltypes():
return np.unique(Cell.fetch("cell_type"))
@staticmethod
def cells(celltype=None, species=None, quality="good"):
cs = Cell * CellDatasetMap * Dataset * Subject
if celltype:
cs = cs & "cell_type like '{0:s}'".format(celltype)
if species:
cs = cs & "species like '%{0:s}%'".format(species)
if quality:
cs = cs & "quality like '{0:s}'".format(quality)
return cs
@schema @schema
class CellDatasetMap(dj.Manual): class CellDatasetMap(dj.Manual):