def test_jitter_spikes_empty_train(self): st = neo.SpikeTrain([] * pq.ms, t_stop=500 * pq.ms) binsize = 75 * pq.ms surrog = surr.jitter_spikes(st, binsize=binsize, n=1)[0] self.assertEqual(len(surrog), 0)
def test_jitter_spikes_same_bins(self): spiketrain = neo.SpikeTrain( [90, 150, 180, 350] * pq.ms, t_stop=500 * pq.ms) bin_size = 100 * pq.ms surrogate_train = surr.jitter_spikes( spiketrain, bin_size=bin_size, n_surrogates=1)[0] bin_ids_orig = np.array( (spiketrain.view( pq.Quantity) / bin_size).rescale( pq.dimensionless).magnitude, dtype=int) bin_ids_surr = np.array( (surrogate_train.view( pq.Quantity) / bin_size).rescale( pq.dimensionless).magnitude, dtype=int) self.assertTrue(np.all(bin_ids_orig == bin_ids_surr)) # Bug encountered when the original and surrogate trains have # different number of spikes self.assertEqual(len(spiketrain), len(surrogate_train))
def test_jitter_spikes_empty_train(self): spiketrain = neo.SpikeTrain([] * pq.ms, t_stop=500 * pq.ms) bin_size = 75 * pq.ms surrogate_train = surr.jitter_spikes( spiketrain, bin_size=bin_size, n_surrogates=1)[0] self.assertEqual(len(surrogate_train), 0)
def test_jitter_spikes_unequal_binsize(self): st = neo.SpikeTrain([90, 150, 180, 480] * pq.ms, t_stop=500 * pq.ms) binsize = 75 * pq.ms surrog = surr.jitter_spikes(st, binsize=binsize, n=1)[0] bin_ids_orig = np.array((st.view(pq.Quantity) / binsize).rescale( pq.dimensionless).magnitude, dtype=int) bin_ids_surr = np.array((surrog.view(pq.Quantity) / binsize).rescale( pq.dimensionless).magnitude, dtype=int) self.assertTrue(np.all(bin_ids_orig == bin_ids_surr))
def test_jitter_spikes_same_bins(self): st = neo.SpikeTrain([90, 150, 180, 350] * pq.ms, t_stop=500 * pq.ms) binsize = 100 * pq.ms surrog = surr.jitter_spikes(st, binsize=binsize, n=1)[0] bin_ids_orig = np.array((st.view(pq.Quantity) / binsize).rescale( pq.dimensionless).magnitude, dtype=int) bin_ids_surr = np.array((surrog.view(pq.Quantity) / binsize).rescale( pq.dimensionless).magnitude, dtype=int) self.assertTrue(np.all(bin_ids_orig == bin_ids_surr)) # Bug encountered when the original and surrogate trains have # different number of spikes self.assertEqual(len(st), len(surrog))
def test_jitter_spikes_output_format(self): st = neo.SpikeTrain([90, 150, 180, 350] * pq.ms, t_stop=500 * pq.ms) nr_surr = 2 binsize = 100 * pq.ms surrs = surr.jitter_spikes(st, binsize=binsize, n=nr_surr) self.assertIsInstance(surrs, list) self.assertEqual(len(surrs), nr_surr) for surrog in surrs: self.assertIsInstance(surrs[0], neo.SpikeTrain) self.assertEqual(surrog.units, st.units) self.assertEqual(surrog.t_start, st.t_start) self.assertEqual(surrog.t_stop, st.t_stop) self.assertEqual(len(surrog), len(st))
def test_jitter_spikes_output_format(self): spiketrain = neo.SpikeTrain( [90, 150, 180, 350] * pq.ms, t_stop=500 * pq.ms) n_surrogates = 2 bin_size = 100 * pq.ms surrogate_trains = surr.jitter_spikes( spiketrain, bin_size=bin_size, n_surrogates=n_surrogates) self.assertIsInstance(surrogate_trains, list) self.assertEqual(len(surrogate_trains), n_surrogates) self.assertIsInstance(surrogate_trains[0], neo.SpikeTrain) for surrogate_train in surrogate_trains: self.assertEqual(surrogate_train.units, spiketrain.units) self.assertEqual(surrogate_train.t_start, spiketrain.t_start) self.assertEqual(surrogate_train.t_stop, spiketrain.t_stop) self.assertEqual(len(surrogate_train), len(spiketrain))