예제 #1
0
 def testGetAlignedSpikes(self):
     data = sp.zeros((1000, 2))
     spike_start = sp.arange(50, 1000, 50)
     wf = sp.array([sp.sin(sp.linspace(0, 2 * sp.pi, 20))] * 2).T * 5
     for ev in spike_start:
         data[ev:ev + 20] += wf
     spikes, st = get_aligned_spikes(data, spike_start, align_at=5, tf=30, mc=True, kind='max')
     eval_max = sp.array([spike[:, 0].argmax() for spike in spikes])
     assert_equal(eval_max, sp.ones(spike_start.size) * 5)
예제 #2
0
 def testGetAlignedSpikes(self):
     data = sp.zeros((1000, 2))
     spike_start = sp.arange(50, 1000, 50)
     wf = sp.array([sp.sin(sp.linspace(0, 2 * sp.pi, 20))] * 2).T * 5
     for ev in spike_start:
         data[ev:ev + 20] += wf
     spikes, st = get_aligned_spikes(data,
                                     spike_start,
                                     align_at=5,
                                     tf=30,
                                     mc=True,
                                     kind='max')
     eval_max = sp.array([spike[:, 0].argmax() for spike in spikes])
     assert_equal(eval_max, sp.ones(spike_start.size) * 5)
예제 #3
0
        finally:
            del trial_data
    print "done."

    print "retrieving multiunit spike set @tf=%d" % tf
    spks_info = []
    spks = []
    for id_trl in trial_ids:
        trial_st = None
        try:
            trial_st = db.get_unit_data(id_mu, id_trl)["spiketrain"]
            if trial_st.size == 0:
                print "\tno spiketrain for %s" % db.get_fname_for_id(id_trl)
                continue
            trial_spks, trial_st = get_aligned_spikes(
                data[id_trl], trial_st, tf, align_at=align_at, mc=False, kind="min"
            )
            end = data[id_trl].shape[0]
            nep = epochs_from_spiketrain(trial_st, tf, end=end)
            nep = invert_epochs(nep, end=end)
            nep = merge_epochs(nep)
            ndet.update(data[id_trl], epochs=nep)
            spks.append(trial_spks)
            spks_info.append(sp.vstack([[id_trl] * trial_st.size, trial_st]).T)
            print "\tprocessed %s" % db.get_fname_for_id(id_trl)
        except Exception, e:
            raise RuntimeError("error processing %s\n%s" % (db.get_fname_for_id(id_trl), e))
        finally:
            del trial_st
    spks_info = sp.vstack(spks_info)
    spks = sp.vstack(spks)