@@ -374,8 +374,7 @@ def _get_analogsignal_chunk(self, block_index, seg_index, i_start, i_stop, strea
374374 if channel_indexes is None :
375375 channel_indexes = [i for i in range (bin_dict ["num_channels" ])]
376376 elif isinstance (channel_indexes , slice ):
377- channel_indexes_all = [i for i in range (bin_dict ["num_channels" ])]
378- channel_indexes = channel_indexes_all [channel_indexes ]
377+ channel_indexes = self .get_active_channels ()
379378
380379 num_samples = i_stop - i_start
381380
@@ -558,6 +557,20 @@ def get_active_tetrode(self):
558557 tetrode_id = int (key .strip ("collectMask_" ))
559558 active_tetrodes .append (tetrode_id )
560559 return active_tetrodes
560+
561+ def get_active_channels (self ):
562+ """
563+ Returns the ID numbers of the active channels as a list.
564+ E.g.: [20,21,22,23] for tetrode 6 active.
565+ """
566+ active_tetrodes = self .get_active_tetrode ()
567+ active_channels = []
568+
569+ for tetrode in active_tetrodes :
570+ chan = self ._get_channel_from_tetrode (tetrode )
571+ active_channels .append (chan )
572+
573+ return np .concatenate (active_channels )
561574
562575 def _get_channel_from_tetrode (self , tetrode ):
563576 """
@@ -629,12 +642,13 @@ def _get_signal_chan_header(self):
629642 gain_list = self ._get_channel_gain ()
630643 offset = 0 # What is the offset?
631644
645+ first_channel = (active_tetrode_set [0 ] - 1 )* elec_per_tetrode
632646 sig_channels = []
633647 for itetr in range (num_active_tetrode ):
634648
635649 for ielec in range (elec_per_tetrode ):
636- cntr = (itetr * elec_per_tetrode ) + ielec
637- ch_name = f" { itetr + 1 } { letters [ielec ]} "
650+ cntr = (itetr * elec_per_tetrode ) + ielec + first_channel
651+ ch_name = "{}{}" . format ( itetr + active_tetrode_set [ 0 ], letters [ielec ])
638652 chan_id = str (cntr )
639653 gain = gain_list [cntr ]
640654 stream_id = "0"
0 commit comments