コード例 #1
0
 def test_iadd_list_of_spiketrains(self):
     """Adding a list of SpikeTrains to a SpikeTrainList in place
     should return the original SpikeTrainList"""
     extended_stl = deepcopy(self.stl_from_array)
     extended_stl += [
         SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
         SpikeTrain([22.2, 33.3], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
         SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms), ]
     self.assertIsInstance(extended_stl, SpikeTrainList)
     self.assertEqual(len(extended_stl), 7)
コード例 #2
0
    def test_time_slice_none_both(self):
        st = SpikeTrain([0.1,0.5,1.2,3.3,6.4,7] * pq.ms, t_stop=10.0,
            t_start=0.1)

        # time_slice spike train, keep sliced spike times
        st2 = st.time_slice(None,None)
        assert_arrays_equal(st, st2)

        # but keep everything else pristine
        self.assertEqual(st.name, st2.name)
        self.assertEqual(st.description, st2.description)
        self.assertEqual(st.annotations, st2.annotations)
        self.assertEqual(st.file_origin, st2.file_origin)
        self.assertEqual(st.dtype, st2.dtype)
        self.assertEqual(st.t_start, st2.t_start)
        self.assertEqual(st.t_stop, st2.t_stop)
コード例 #3
0
    def test_time_slice_empty(self):
        st = SpikeTrain([] * pq.ms, t_stop=10.0)

        # time_slice spike train, keep sliced spike times
        t_start = 0.01* pq.ms
        t_stop = 70.0 * pq.ms
        st2 = st.time_slice(t_start,t_stop)
        assert_arrays_equal(st, st2)

        # but keep everything else pristine
        self.assertEqual(st.name, st2.name)
        self.assertEqual(st.description, st2.description)
        self.assertEqual(st.annotations, st2.annotations)
        self.assertEqual(st.file_origin, st2.file_origin)
        self.assertEqual(st.dtype, st2.dtype)
        self.assertEqual(t_start, st2.t_start)
        self.assertEqual(st.t_stop, st2.t_stop)
コード例 #4
0
    def test_time_slice_differnt_units(self):
        st = SpikeTrain([0.1,0.5,1.2,3.3,6.4,7] * pq.ms, t_stop=10.0)

        # time_slice spike train, keep sliced spike times
        t_start = 0.00012* pq.s
        t_stop = 0.0035 * pq.s
        st2 = st.time_slice(t_start,t_stop)
        assert_arrays_equal(st2, SpikeTrain([0.5,1.2,3.3] * pq.ms, t_stop=3.3))

        # but keep everything else pristine
        self.assertEqual(st.name, st2.name)
        self.assertEqual(st.description, st2.description)
        self.assertEqual(st.annotations, st2.annotations)
        self.assertEqual(st.file_origin, st2.file_origin)
        self.assertEqual(st.dtype, st2.dtype)
        self.assertEqual(t_start, st2.t_start)
        self.assertEqual(t_stop, st2.t_stop)
コード例 #5
0
    def setUp(self):
        spike_time_array = np.array([0.5, 0.6, 0.7, 1.1, 11.2, 23.6, 88.5, 99.2])
        channel_id_array = np.array([0, 0, 1, 2, 1, 0, 2, 0])
        all_channel_ids = (0, 1, 2, 3)
        self.stl_from_array = SpikeTrainList.from_spike_time_array(
            spike_time_array,
            channel_id_array,
            all_channel_ids=all_channel_ids,
            units='ms',
            t_start=0 * pq.ms,
            t_stop=100.0 * pq.ms,
            identifier=["A", "B", "C", "D"]  # annotation
        )

        self.stl_from_obj_list = SpikeTrainList(items=(
            SpikeTrain([0.5, 0.6, 23.6, 99.2], units="ms",
                       t_start=0 * pq.ms, t_stop=100.0 * pq.ms, channel_id=101),
            SpikeTrain([0.0007, 0.0112], units="s", t_start=0 * pq.ms, t_stop=100.0 * pq.ms,
                       channel_id=102),
            SpikeTrain([1100, 88500], units="us", t_start=0 * pq.ms, t_stop=100.0 * pq.ms,
                       channel_id=103),
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms,
                       channel_id=104),
        ))

        self.stl_from_obj_list_incl_proxy = SpikeTrainList(items=(
            SpikeTrain([0.5, 0.6, 23.6, 99.2], units="ms",
                       t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([0.0007, 0.0112], units="s", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrainProxy(rawio=MockRawIO(), spike_channel_index=0),
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
        ))
コード例 #6
0
    def test_time_slice_typical(self):
        st = SpikeTrain([0.1,0.5,1.2,3.3,6.4,7] * pq.ms, t_stop=10.0)

        # time_slice spike train, keep sliced spike times
        # this is the typical time slice falling somewhere in the middle of spikes
        t_start = 0.12* pq.ms
        t_stop = 3.5 * pq.ms
        st2 = st.time_slice(t_start,t_stop)
        assert_arrays_equal(st2, SpikeTrain([0.5,1.2,3.3] * pq.ms, t_stop=3.3))

        # but keep everything else pristine
        self.assertEqual(st.name, st2.name)
        self.assertEqual(st.description, st2.description)
        self.assertEqual(st.annotations, st2.annotations)
        self.assertEqual(st.file_origin, st2.file_origin)
        self.assertEqual(st.dtype, st2.dtype)
        self.assertEqual(t_start, st2.t_start)
        self.assertEqual(t_stop, st2.t_stop)
コード例 #7
0
ファイル: test_group.py プロジェクト: gilad4591/malDetect
 def setUp(self):
     test_data = np.random.rand(100, 8) * pq.mV
     channel_names = np.array(["a", "b", "c", "d", "e", "f", "g", "h"])
     self.test_signal = AnalogSignal(test_data,
                                     sampling_period=0.1 * pq.ms,
                                     name="test signal",
                                     description="this is a test signal",
                                     array_annotations={"channel_names": channel_names},
                                     attUQoLtUaE=42)
     self.test_view = ChannelView(self.test_signal, [1, 2, 5, 7],
                           name="view of test signal",
                           description="this is a view of a test signal",
                           array_annotations={"something": np.array(["A", "B", "C", "D"])},
                           sLaTfat="fish")
     self.test_spiketrains = [SpikeTrain(np.arange(100.0), units="ms", t_stop=200),
                              SpikeTrain(np.arange(0.5, 100.5), units="ms", t_stop=200)]
     self.test_segment = Segment()
     self.test_segment.analogsignals.append(self.test_signal)
     self.test_segment.spiketrains.extend(self.test_spiketrains)
コード例 #8
0
ファイル: test_unit.py プロジェクト: psilentp/flight-muscles
    def setup_spiketrains(self):
        trainname11 = 'spiketrain 1 1'
        trainname12 = 'spiketrain 1 2'
        trainname21 = 'spiketrain 2 1'
        trainname22 = 'spiketrain 2 2'

        traindata11 = np.arange(0, 10) * pq.ms
        traindata12 = np.arange(10, 20) * pq.ms
        traindata21 = np.arange(20, 30) * pq.s
        traindata22 = np.arange(30, 40) * pq.s

        self.trainnames1 = [trainname11, trainname12]
        self.trainnames2 = [trainname21, trainname22]
        self.trainnames = [trainname11, trainname12, trainname21, trainname22]

        train11 = SpikeTrain(traindata11, t_stop=100 * pq.s, name=trainname11)
        train12 = SpikeTrain(traindata12, t_stop=100 * pq.s, name=trainname12)
        train21 = SpikeTrain(traindata21, t_stop=100 * pq.s, name=trainname21)
        train22 = SpikeTrain(traindata22, t_stop=100 * pq.s, name=trainname22)

        self.train1 = [train11, train12]
        self.train2 = [train21, train22]
        self.train = [train11, train12, train21, train22]
コード例 #9
0
    def test_sort(self):
        wf = numpy.array([[0., 1.], [2., 3.], [4., 5.]])
        st = SpikeTrain([3,4,5]*pq.s, waveforms=wf, name='n', t_stop=10.0)
        st.sort()
        assert_arrays_equal(st, [3,4,5]*pq.s)
        assert_arrays_equal(st.waveforms, wf)
        self.assertEqual(st.name, 'n')
        self.assertEqual(st.t_stop, 10.0 * pq.s)

        st = SpikeTrain([3,5,4]*pq.s, waveforms=wf, name='n', t_stop=10.0)
        st.sort()
        assert_arrays_equal(st, [3,4,5]*pq.s)
        assert_arrays_equal(st.waveforms, wf[[0,2,1]])
        self.assertEqual(st.name, 'n')
        self.assertEqual(st.t_start, 0.0 * pq.s)
        self.assertEqual(st.t_stop, 10.0 * pq.s)
コード例 #10
0
    def test_add_list_of_spiketrains(self):
        """Adding a list of SpikeTrains to a SpikeTrainList should return a new SpikeTrainList"""
        extended_stl = self.stl_from_array + [
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([22.2, 33.3], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms), ]
        self.assertIsInstance(extended_stl, SpikeTrainList)
        self.assertEqual(len(extended_stl), 7)
        self.assertNotEqual(id(extended_stl), id(self.stl_from_array))

        extended_stl = self.stl_from_obj_list_incl_proxy + [
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([22.2, 33.3], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms)]
        self.assertIsInstance(extended_stl, SpikeTrainList)
        self.assertEqual(len(extended_stl), 7)
コード例 #11
0
    def test_radd_list_of_spiketrains(self):
        """ """
        extended_stl = [
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([22.2, 33.3], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms)
        ] + self.stl_from_array
        self.assertIsInstance(extended_stl, SpikeTrainList)
        self.assertEqual(len(extended_stl), 7)

        extended_stl = [
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([22.2, 33.3], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms),
            SpikeTrain([], units="ms", t_start=0 * pq.ms, t_stop=100.0 * pq.ms)
        ] + self.stl_from_obj_list_incl_proxy
        self.assertIsInstance(extended_stl, SpikeTrainList)
        self.assertEqual(len(extended_stl), 7)
コード例 #12
0
 def test_append(self):
     """Appending a SpikeTrain to a SpikeTrainList should make the STL longer"""
     for stl in (self.stl_from_obj_list, self.stl_from_array):
         stl.append(SpikeTrain([22.2, 33.3], units="ms",
                               t_start=0 * pq.ms, t_stop=100.0 * pq.ms))
     self.assertEqual(len(stl), 5)
コード例 #13
0
 def test__rescale_same_units(self):
     data = [3,4,5] * pq.ms
     st = SpikeTrain(data, t_start=0.5, t_stop=10.0)
     newst = st.rescale(pq.ms)
     assert_arrays_equal(st, newst)
     self.assertEqual(newst.units, 1 * pq.ms)