Esempio n. 1
0
        seg.events.append(event)

        epoch_times = tstart + np.cumsum(np.array([0,1,2])) * pq.ms
        epoch = Epoch(name="Seg {} :: Epoch".format(idx),
                      times=epoch_times,
                      durations=np.array([0,1,2])*pq.ms,
                      labels=["A+", "B+", "C+"])
        seg.epochs.append(epoch)

        tstart = 10 *pq.s
        st_times = tstart + np.cumsum(np.arange(0,1,0.1)) * pq.s
        tstop = max(event_times[-1], epoch_times[-1], st_times[-1]) + 1 * pq.s
        st = SpikeTrain(name="Seg {} :: SpikeTrain".format(idx),
                        times=st_times, t_start=tstart, t_stop=tstop)
        wf = np.random.random((len(st_times), nchannels, 30)) * pq.mV
        st.waveforms = wf
        st.sampling_rate = sampling_rate

        seg.spiketrains.append(st)

        unit = Unit(name="unit-{}".format(idx))
        print(unit)
        unit.spiketrains.append(st)
        chx.units.append(unit)
# Write the Block to file using the NixIO
# Any existing file will be overwritten
fname = "test_case.nix"
io = NixIO(fname, "ow")
io.write_block(block1)
io.write_block(block2)
io.close()
                  [-2.0, -2.0, -2.0, -2.0],
                  [0.1, 0.1, 0.1, 0.1],
                  [-0.1, -0.1, -0.1, -0.1],
                  [-0.1, -0.1, -0.1, -0.1],
                  [-3.0, -3.0, -3.0, -3.0],
                  [0.1, 0.1, 0.1, 0.1],
                  [0.1, 0.1, 0.1, 0.1]],
                 sampling_rate=1000 * Hz, units='V'))

# extract spike trains from all channels
st_list = []
for signal in seg.analogsignals:
    # use a simple threshhold detector
    spike_mask = np.where(np.min(signal.magnitude, axis=1) < -1.0)[0]

    # create a spike train
    spike_times = signal.times[spike_mask]
    st = SpikeTrain(spike_times, t_start=signal.t_start, t_stop=signal.t_stop)

    # remember the spike waveforms
    wf_list = []
    for spike_idx in np.nonzero(spike_mask)[0]:
        wf_list.append(signal[spike_idx - 1:spike_idx + 2, :])
    st.waveforms = np.array(wf_list)

    st_list.append(st)

unit = Group()
unit.spiketrains = st_list
unit.analogsignals.extend(seg.analogsignals)