@@ -597,7 +597,13 @@ def _spike_count(self, block_index, seg_index, unit_index):
597597 data = self ._spike_memmap [chan_uid ]
598598 ts = data ['timestamp' ]
599599
600- ts0 , ts1 = self ._timestamp_limits [seg_index ]
600+ ts0 = self .segment_t_start (block_index , seg_index )
601+ ts1 = self .segment_t_stop (block_index , seg_index )
602+
603+ # rescale to integer sampling of time
604+ ts0 = int ((ts0 + self .global_t_start ) * 1e6 )
605+ ts1 = int ((ts1 + self .global_t_start ) * 1e6 )
606+
601607
602608 # only count spikes inside the timestamp limits, inclusive, and for the specified unit
603609 keep = (ts >= ts0 ) & (ts <= ts1 ) & (unit_id == data ['unit_id' ])
@@ -612,11 +618,15 @@ def _get_spike_timestamps(self, block_index, seg_index, unit_index, t_start, t_s
612618 data = self ._spike_memmap [chan_uid ]
613619 ts = data ['timestamp' ]
614620
615- ts0 , ts1 = self ._timestamp_limits [seg_index ]
616- if t_start is not None :
617- ts0 = int ((t_start + self .global_t_start ) * 1e6 )
618- if t_start is not None :
619- ts1 = int ((t_stop + self .global_t_start ) * 1e6 )
621+ ts0 , ts1 = t_start , t_stop
622+ if ts0 is None :
623+ ts0 = self .segment_t_start (block_index , seg_index )
624+ if ts1 is None :
625+ ts1 = self .segment_t_stop (block_index , seg_index )
626+
627+ # rescale to integer sampling of time
628+ ts0 = int ((ts0 + self .global_t_start ) * 1e6 )
629+ ts1 = int ((ts1 + self .global_t_start ) * 1e6 )
620630
621631 keep = (ts >= ts0 ) & (ts <= ts1 ) & (unit_id == data ['unit_id' ])
622632 timestamps = ts [keep ]
@@ -628,17 +638,20 @@ def _rescale_spike_timestamp(self, spike_timestamps, dtype):
628638 spike_times -= self .global_t_start
629639 return spike_times
630640
631- def _get_spike_raw_waveforms (self , block_index , seg_index , unit_index ,
632- t_start , t_stop ):
641+ def _get_spike_raw_waveforms (self , block_index , seg_index , unit_index , t_start , t_stop ):
633642 chan_uid , unit_id = self .internal_unit_ids [unit_index ]
634643 data = self ._spike_memmap [chan_uid ]
635644 ts = data ['timestamp' ]
636645
637- ts0 , ts1 = self ._timestamp_limits [seg_index ]
638- if t_start is not None :
639- ts0 = int ((t_start + self .global_t_start ) * 1e6 )
640- if t_start is not None :
641- ts1 = int ((t_stop + self .global_t_start ) * 1e6 )
646+ ts0 , ts1 = t_start , t_stop
647+ if ts0 is None :
648+ ts0 = self .segment_t_start (block_index , seg_index )
649+ if ts1 is None :
650+ ts1 = self .segment_t_stop (block_index , seg_index )
651+
652+ # rescale to integer sampling of time
653+ ts0 = int ((ts0 + self .global_t_start ) * 1e6 )
654+ ts1 = int ((ts1 + self .global_t_start ) * 1e6 )
642655
643656 keep = (ts >= ts0 ) & (ts <= ts1 ) & (unit_id == data ['unit_id' ])
644657
@@ -656,7 +669,14 @@ def _event_count(self, block_index, seg_index, event_channel_index):
656669 event_id , ttl_input = self .internal_event_ids [event_channel_index ]
657670 chan_id = self .header ['event_channels' ][event_channel_index ]['id' ]
658671 data = self ._nev_memmap [chan_id ]
659- ts0 , ts1 = self ._timestamp_limits [seg_index ]
672+
673+ ts0 = self .segment_t_start (block_index , seg_index )
674+ ts1 = self .segment_t_stop (block_index , seg_index )
675+
676+ # rescale to integer sampling of time
677+ ts0 = int ((ts0 + self .global_t_start ) * 1e6 )
678+ ts1 = int ((ts1 + self .global_t_start ) * 1e6 )
679+
660680 ts = data ['timestamp' ]
661681 keep = (ts >= ts0 ) & (ts <= ts1 ) & (data ['event_id' ] == event_id ) & \
662682 (data ['ttl_input' ] == ttl_input )
@@ -667,12 +687,16 @@ def _get_event_timestamps(self, block_index, seg_index, event_channel_index, t_s
667687 event_id , ttl_input = self .internal_event_ids [event_channel_index ]
668688 chan_id = self .header ['event_channels' ][event_channel_index ]['id' ]
669689 data = self ._nev_memmap [chan_id ]
670- ts0 , ts1 = self ._timestamp_limits [seg_index ]
671690
672- if t_start is not None :
673- ts0 = int ((t_start + self .global_t_start ) * 1e6 )
674- if t_start is not None :
675- ts1 = int ((t_stop + self .global_t_start ) * 1e6 )
691+ ts0 , ts1 = t_start , t_stop
692+ if ts0 is None :
693+ ts0 = self .segment_t_start (block_index , seg_index )
694+ if ts1 is None :
695+ ts1 = self .segment_t_stop (block_index , seg_index )
696+
697+ # rescale to integer sampling of time
698+ ts0 = int ((ts0 + self .global_t_start ) * 1e6 )
699+ ts1 = int ((ts1 + self .global_t_start ) * 1e6 )
676700
677701 ts = data ['timestamp' ]
678702 keep = (ts >= ts0 ) & (ts <= ts1 ) & (data ['event_id' ] == event_id ) & \
0 commit comments