コード例 #1
0
    def test_exdir_extractors(self):
        path1 = self.test_dir + '/raw.exdir'
        se.ExdirRecordingExtractor.write_recording(self.RX, path1)
        RX_exdir = se.ExdirRecordingExtractor(path1)
        self._check_recording_return_types(RX_exdir)
        self._check_recordings_equal(self.RX, RX_exdir)

        path2 = self.test_dir + '/firings.exdir'
        se.ExdirSortingExtractor.write_sorting(self.SX, path2, self.RX)
        SX_exdir = se.ExdirSortingExtractor(path2)
        self._check_sorting_return_types(SX_exdir)
        self._check_sortings_equal(self.SX, SX_exdir)
コード例 #2
0
def load_spiketrains(data_path,
                     channel_group=None,
                     load_waveforms=False,
                     sample_rate=None,
                     remove_group=None,
                     t_start=0 * pq.s):
    '''

   Parameters
   ----------
   data_path
   channel_group
   load_waveforms
   remove_label

   Returns
   -------

   '''
    if sample_rate is None:
        sample_rate = 30000 * pq.Hz
    sorting = se.ExdirSortingExtractor(data_path,
                                       sample_rate=sample_rate.magnitude,
                                       channel_group=channel_group,
                                       load_waveforms=load_waveforms)
    sptr = []
    # build neo pbjects
    for u in sorting.get_unit_ids():
        times = sorting.get_unit_spike_train(u) / sample_rate
        t_stop = np.max(times)
        if load_waveforms and 'waveforms' in sorting.get_unit_spike_feature_names(
                u):
            wf = sorting.get_unit_spike_features(u, 'waveforms')
        else:
            wf = None
        times = times - t_start
        times = times[np.where(times > 0)]
        if wf is not None:
            wf = wf[np.where(times > 0)]
        st = neo.SpikeTrain(times=times, t_stop=t_stop, waveforms=wf)
        for p in sorting.get_unit_property_names(u):
            st.annotations.update({p: sorting.get_unit_property(u, p)})
        sptr.append(st)

    sptr_rm = []
    if remove_group is not None:
        for st in sptr:
            if st.annotations['cluster_group'] != remove_group:
                sptr_rm.append(st)
    else:
        sptr_rm = sptr

    return sptr_rm
コード例 #3
0
ファイル: data_processing.py プロジェクト: sarahthon/CA2_MEC
def load_spiketrains(data_path,
                     channel_group=None,
                     load_waveforms=False,
                     lim=None):
    '''
    Parameters
    ----------
    data_path
    channel_group
    load_waveforms
    remove_label
    Returns
    -------
    '''
    sample_rate = get_sample_rate(data_path)
    sorting = se.ExdirSortingExtractor(data_path,
                                       sampling_frequency=sample_rate,
                                       channel_group=channel_group,
                                       load_waveforms=load_waveforms)
    sptr = []
    # build neo pbjects
    for u in sorting.get_unit_ids():
        times = sorting.get_unit_spike_train(u) / sample_rate
        if lim is None:
            t_stop = get_duration(data_path)
            t_start = 0 * pq.s
        else:
            t_start = pq.Quantity(lim[0], 's')
            t_stop = pq.Quantity(lim[1], 's')
        mask = (times >= t_start) & (times <= t_stop)
        times = times[mask]
        if load_waveforms and 'waveforms' in sorting.get_unit_spike_feature_names(
                u):
            wf = sorting.get_unit_spike_features(u, 'waveforms')
            wf = wf[mask] * pq.uV
        else:
            wf = None
        st = neo.SpikeTrain(times=times,
                            t_stop=t_stop,
                            waveforms=wf,
                            sampling_rate=sample_rate)
        for p in sorting.get_unit_property_names(u):
            st.annotations.update({p: sorting.get_unit_property(u, p)})
        sptr.append(st)

    return sptr
コード例 #4
0
def load_spiketrains(data_path,
                     channel_group=None,
                     load_waveforms=False,
                     t_start=0 * pq.s):
    '''

    Parameters
    ----------
    data_path
    channel_group
    load_waveforms
    remove_label

    Returns
    -------

    '''
    sample_rate = get_sample_rate(data_path)
    sorting = se.ExdirSortingExtractor(data_path,
                                       sample_rate=sample_rate.magnitude,
                                       channel_group=channel_group,
                                       load_waveforms=load_waveforms)
    sptr = []
    # build neo pbjects
    for u in sorting.get_unit_ids():
        times = sorting.get_unit_spike_train(u) / sample_rate
        t_stop = np.max(times)
        if load_waveforms and 'waveforms' in sorting.get_unit_spike_feature_names(
                u):
            wf = sorting.get_unit_spike_features(u, 'waveforms')
        else:
            wf = None
        times = times - t_start
        times = times[np.where(times > 0)]
        wf = wf[np.where(times > 0)]
        st = neo.SpikeTrain(times=times,
                            t_stop=t_stop,
                            waveforms=wf,
                            sampling_rate=sample_rate)
        for p in sorting.get_unit_property_names(u):
            st.annotations.update({p: sorting.get_unit_property(u, p)})
        sptr.append(st)

    return sptr
コード例 #5
0
ファイル: data_processing.py プロジェクト: sarahthon/CA2_MEC
def load_unit_annotations(data_path, channel_group):
    '''
    Parameters
    ----------
    data_path
    channel_group
    Returns
    -------
    '''
    sample_rate = get_sample_rate(data_path)
    sorting = se.ExdirSortingExtractor(data_path,
                                       sampling_frequency=sample_rate,
                                       channel_group=channel_group,
                                       load_waveforms=False)
    units = []
    for u in sorting.get_unit_ids():
        annotations = {}
        for p in sorting.get_unit_property_names(u):
            annotations.update({p: sorting.get_unit_property(u, p)})
        units.append(annotations)
    return units