Skip to content

Commit

Permalink
Fix/197 198 (NeuralEnsemble#199)
Browse files Browse the repository at this point in the history
* Replaced wrong rescaling with simplified and introduced magnitude instead of base

* Changed t_stop of spiketrain in test to cover the case of different units

* Cumulative fix for various Neo 0.7.x related issues (NeuralEnsemble#203)

* Change signal's `duplicate_with_new_array` to `duplicate_with_new_data`

For compatibility with Neo 0.7.0

* Fixed error by replacing deprecated pandas function

* Quick fix due to event labels being treated as array annotations

* Quick fix due to event labels being treated as array annotations

* Fixed handling of neo 0.7 array_annotations

* Fixed requirements for neo

* Removed left-over print statement

* Added a hot fix to circumtvent Neo problem in generating fake epochs

* Added fixed Neo Version 0.7.x

* Fixed failing test in spike_train_correlation by alternate numpy construct.

* Removes static dependencies on readthedocs envioronment file conflicting with readthedocs.org (NeuralEnsemble#205)

* Removed setuptools from requirements

* Removed all fixed packages from doc environment

* Further simplified new environment.yml for RTD

* Changes for compatibility release 0.6.1 (NeuralEnsemble#204)

* Changes for compatibility release 0.6.1

* Added release notes

* Add rauc and derivative to signal_processing (NeuralEnsemble#194)

* Fix typo in docstring

* Replace some deprecated aliases

* Add rauc and derivative to signal_processing

* Apply suggestions from code review

Co-Authored-By: jpgill86 <jeffrey.p.gill@gmail.com>

* Similar changes based on code review

* Ensure rauc output signal has same time units as input

* Replaced wrong rescaling with simplified and introduced magnitude instead of base

* Changed t_stop of spiketrain in test to cover the case of different units

* Removed print
  • Loading branch information
pietroquaglio authored and mdenker committed Apr 11, 2019
1 parent c23c19a commit 941518a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 17 deletions.
29 changes: 14 additions & 15 deletions elephant/spike_train_surrogates.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,23 +111,22 @@ def dither_spikes(spiketrain, dither, n=1, decimals=None, edges=True):
# Main: generate the surrogates
surr = data.reshape((1, len(data))) + 2 * dither * np.random.random_sample(
(n, len(data))) - dither

# Round the surrogate data to decimal position, if requested
if decimals is not None:
surr = surr.round(decimals)

if edges is False:
# Move all spikes outside [spiketrain.t_start, spiketrain.t_stop] to
# the range's ends
surr = np.minimum(np.maximum(surr.base,
(spiketrain.t_start / spiketrain.units).base),
(spiketrain.t_stop / spiketrain.units).base) * spiketrain.units
surr = np.minimum(np.maximum(surr.simplified.magnitude,
spiketrain.t_start.simplified.magnitude),
spiketrain.t_stop.simplified.magnitude) * pq.s
else:
# Leave out all spikes outside [spiketrain.t_start, spiketrain.t_stop]
tstart, tstop = (spiketrain.t_start / spiketrain.units).base, \
(spiketrain.t_stop / spiketrain.units).base
surr = [np.sort(s[np.all([s >= tstart, s < tstop], axis=0)]) * spiketrain.units
for s in surr.base]
tstart, tstop = spiketrain.t_start.simplified.magnitude, \
spiketrain.t_stop.simplified.magnitude
surr = [np.sort(s[np.all([s >= tstart, s < tstop], axis=0)]) * pq.s
for s in surr.simplified.magnitude]

# Return the surrogates as SpikeTrains
return [neo.SpikeTrain(s,
Expand Down Expand Up @@ -347,15 +346,15 @@ def dither_spike_train(spiketrain, shift, n=1, decimals=None, edges=True):
if edges is False:
# Move all spikes outside [spiketrain.t_start, spiketrain.t_stop] to
# the range's ends
surr = np.minimum(np.maximum(surr.base,
(spiketrain.t_start / spiketrain.units).base),
(spiketrain.t_stop / spiketrain.units).base) * spiketrain.units
surr = np.minimum(np.maximum(surr.simplified.magnitude,
spiketrain.t_start.simplified.magnitude),
spiketrain.t_stop.simplified.magnitude) * pq.s
else:
# Leave out all spikes outside [spiketrain.t_start, spiketrain.t_stop]
tstart, tstop = (spiketrain.t_start / spiketrain.units).base,\
(spiketrain.t_stop / spiketrain.units).base
surr = [s[np.all([s >= tstart, s < tstop], axis=0)] * spiketrain.units
for s in surr.base]
tstart, tstop = spiketrain.t_start.simplified.magnitude, \
spiketrain.t_stop.simplified.magnitude
surr = [np.sort(s[np.all([s >= tstart, s < tstop], axis=0)]) * pq.s
for s in surr.simplified.magnitude]

# Return the surrogates as SpikeTrains
return [neo.SpikeTrain(s, t_start=spiketrain.t_start,
Expand Down
4 changes: 2 additions & 2 deletions elephant/test/test_spike_train_surrogates.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ class SurrogatesTestCase(unittest.TestCase):

def test_dither_spikes_output_format(self):

st = neo.SpikeTrain([90, 150, 180, 350] * pq.ms, t_stop=500 * pq.ms)

st = neo.SpikeTrain([90, 150, 180, 350] * pq.ms, t_stop=5 * pq.s)
st.t_stop = .5 * pq.s
nr_surr = 2
dither = 10 * pq.ms
surrs = surr.dither_spikes(st, dither=dither, n=nr_surr)
Expand Down

0 comments on commit 941518a

Please sign in to comment.