Exemplo n.º 1
0
    def __init__(self):
        QtCore.QObject.__init__(self)
        self.params = pt.Parameter(name='Spike detection',
                                   type='group',
                                   children=[
                                       {
                                           'name': 'gaussian sigma',
                                           'type': 'float',
                                           'value': 2.0
                                       },
                                       {
                                           'name': 'deconv const',
                                           'type': 'float',
                                           'value': 0.04,
                                           'step': 0.01
                                       },
                                       {
                                           'name': 'threshold',
                                           'type': 'float',
                                           'value': 0.05,
                                           'step': 0.01
                                       },
                                   ])
        self.sig_plot = None
        self.deconv_plot = None

        self.sig_trace = None
        self.vticks = None
        self.deconv_trace = None
        self.threshold_line = None

        self.params.sigTreeStateChanged.connect(self._parameters_changed)
        self.params.child('threshold').sigValueChanged.connect(
            self._threshold_param_changed)
Exemplo n.º 2
0
 def __init__(self):
     QtCore.QObject.__init__(self)
     self.params = pt.Parameter(name='Triggered Average', type='group', children=[
         {'name': 'on/off', 'type': 'list', 'values': ['any', 'on', 'off']},
         {'name': 'delay', 'type': 'float', 'value': -0.2, 'suffix': 's', 'siPrefix': True, 'step': 50e-3},
         {'name': 'delay range', 'type': 'float', 'value': 1.0, 'limits': [0,None], 'suffix': 's', 'siPrefix': True, 'step': 50e-3},
         {'name': 'blur STA', 'type': 'float', 'value': 1.0, 'limits': [0,None], 'step': 0.5},
     ])
     self.imgview = None
     self.params.sigTreeStateChanged.connect(self.parameters_changed)
Exemplo n.º 3
0
    def __init__(self):
        QtCore.QObject.__init__(self)
        self.params = pt.Parameter(name='Spike detection',
                                   type='group',
                                   children=[
                                       {
                                           'name': 'gaussian sigma',
                                           'type': 'float',
                                           'value': 200e-6,
                                           'bounds': [0, None],
                                           'suffix': 's',
                                           'siPrefix': True,
                                           'dec': True,
                                           'minStep': 10e-6
                                       },
                                       {
                                           'name': 'deconv const',
                                           'type': 'float',
                                           'value': 0.01,
                                           'suffix': 's',
                                           'siPrefix': True,
                                           'dec': True,
                                           'minStep': 1e-4
                                       },
                                       {
                                           'name': 'threshold',
                                           'type': 'float',
                                           'value': 0.05,
                                           'dec': True,
                                           'minStep': 1e-12
                                       },
                                   ])
        self.sig_plot = None
        self.deconv_plot = None

        self.sig_trace = None
        self.vticks = None
        self.deconv_trace = None
        self.threshold_line = None

        self.params.sigTreeStateChanged.connect(self._parameters_changed)
        self.params.child('threshold').sigValueChanged.connect(
            self._threshold_param_changed)
Exemplo n.º 4
0
 def __init__(self):
     QtCore.QObject.__init__(self)
     self.params = pt.Parameter(name='Cell selection',
                                type='group',
                                children=[
                                    {
                                        'name': 'cell id',
                                        'type': 'list',
                                        'value': None,
                                        'values': {
                                            '': None
                                        }
                                    },
                                ])
     self.fluor_img = None
     self.roi_img = None
     self.cell_ids = []
     self.imv = None
     self.roi_img_item = None
     self.params.child('cell id').sigValueChanged.connect(
         self._selection_changed)
Exemplo n.º 5
0
    def __init__(self, boc, expt_id, cell_id):
        self.boc = boc
        self.data_set = boc.get_ophys_experiment_data(
            ophys_experiment_id=expt_id)
        self.lsn_tmp = self.data_set.get_stimulus_template(
            'locally_sparse_noise')

        # setup cell selector
        cells = self.data_set.get_cell_specimen_ids()
        self.cell_selector = CellSelector()

        roi_img = (self.data_set.get_roi_mask_array() *
                   np.array(cells)[:, None, None]).max(axis=0)
        max_img = self.data_set.get_max_projection()
        self.cell_selector.set_images(max_img, roi_img)

        # setup spike detector
        self.spike_detector = SpikeDetector()

        # setup averager
        self.averager = TriggeredAverager()

        # make stimulus frame locations easier to look up
        self.lsn_id = None

        QtGui.QWidget.__init__(self)
        self.hs = pg.QtGui.QSplitter()
        self.hs.setOrientation(pg.QtCore.Qt.Horizontal)

        self.vs1 = pg.QtGui.QSplitter()
        self.vs1.setOrientation(pg.QtCore.Qt.Vertical)

        self.params = pt.Parameter(name='params',
                                   type='group',
                                   children=[
                                       self.cell_selector.params,
                                       self.spike_detector.params,
                                       self.averager.params,
                                   ])

        self.tree = pt.ParameterTree(showHeader=False)
        self.tree.setParameters(self.params, showTop=False)
        self.vs1.addWidget(self.tree)

        self.expt_imv = pg.ImageView()
        self.cell_selector.set_imageview(self.expt_imv)

        self.vs1.addWidget(self.expt_imv)

        self.vs2 = pg.QtGui.QSplitter()
        self.vs2.setOrientation(pg.QtCore.Qt.Vertical)

        self.plt1 = pg.PlotWidget()
        self.plt2 = pg.PlotWidget()
        self.plt2.setXLink(self.plt1)
        self.spike_detector.set_plots(self.plt1, self.plt2)

        self.sta_imv = pg.ImageView()
        self.averager.set_imageview(self.sta_imv)

        self.vs2.addWidget(self.plt1)
        self.vs2.addWidget(self.plt2)
        self.vs2.addWidget(self.sta_imv)

        self.hs.addWidget(self.vs1)
        self.hs.addWidget(self.vs2)

        self.layout = QtGui.QGridLayout()
        self.setLayout(self.layout)
        self.layout.addWidget(self.hs)

        self.resize(1400, 800)
        self.hs.setSizes([600, 600])
        self.show()

        self.cell_selector.cell_selection_changed.connect(self.loadCell)
        self.spike_detector.parameters_changed.connect(self.updateSpikes)
        self.averager.parameters_changed.connect(self.updateOutput)

        self.loadCell()