add quality to find_repros
This commit is contained in:
parent
34d71d537e
commit
0453253bf3
@ -1,6 +1,6 @@
|
||||
from .database.database import Cells, Datasets, CellDatasetMap, Subjects, SubjectProperties, SubjectDatasetMap, Stimuli, Repros
|
||||
import numpy as np
|
||||
|
||||
from IPython import embed
|
||||
|
||||
def _safe_get_val(dictionary:dict, key, default=None):
|
||||
return dictionary[key] if key in dictionary.keys() else default
|
||||
@ -58,7 +58,7 @@ class Cell:
|
||||
return [RePro(tuple=r) for r in repros]
|
||||
|
||||
@staticmethod
|
||||
def celltypes():
|
||||
def unique_cell_types():
|
||||
return np.unique(Cells.fetch("cell_type"))
|
||||
|
||||
@staticmethod
|
||||
@ -198,31 +198,34 @@ class RePro:
|
||||
return [Stimulus(tuple=s) for s in stims]
|
||||
|
||||
@staticmethod
|
||||
def find_repros(repro_name=None, cell_id=None, cell_type=None, species=None, settings=None):
|
||||
def find_repros(name=None, cell_id=None, cell_type=None, species=None, settings=None, quality=None):
|
||||
"""
|
||||
Cell type and species are ignored, if cell_id is provided
|
||||
Cell type, quality, and species are ignored, if cell_id is provided
|
||||
:param repro_name:
|
||||
:param cell_id:
|
||||
:param cell_type:
|
||||
:param species:
|
||||
:param settings:
|
||||
:param quality:
|
||||
:return:
|
||||
"""
|
||||
repros = Repros & True
|
||||
if repro_name:
|
||||
repros = repros & "repro_name like '%{0:s}%'".format(repro_name)
|
||||
if name:
|
||||
repros = repros & "repro_name like '%{0:s}%'".format(name)
|
||||
if settings:
|
||||
repros = repros & "settings like '%{0:s}%'".format(settings)
|
||||
if cell_id:
|
||||
repros = repros & "cell_id = '{0:s}'".format(cell_id)
|
||||
if not cell_id and (cell_type or species):
|
||||
cells = Cells * Subjects
|
||||
if not cell_id and (cell_type or species or quality):
|
||||
cells = (Cells * CellDatasetMap * Datasets) * Subjects
|
||||
if cell_type:
|
||||
cells = cells & "cell_type like '%{0:s}%'".format(cell_type)
|
||||
if species:
|
||||
cells = cells & "species like '%{0:s}%'".format(species)
|
||||
repros = repros * cells
|
||||
repros.proj("repro_id", "repro_name", "settings", "run", "cell_id", "start", "duration").fetch(as_dict=True)
|
||||
if quality:
|
||||
cells = cells & "quality like '{0:s}'".format(quality)
|
||||
p = cells.proj("quality", "experimenter")
|
||||
repros = repros & p
|
||||
return [RePro(tuple=r) for r in repros]
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user