@@ -224,15 +224,18 @@ def _parse_header(self):
224224 "SYNC channel is not present in the recording. " "Set load_sync_channel to False"
225225 )
226226
227+
228+
227229 # Check if ADC and non-ADC channels are contiguous
228230 is_channel_adc = ["ADC" in ch ["channel_name" ] for ch in info ["channels" ]]
229- first_adc_index = is_channel_adc .index (True ) if any (is_channel_adc ) else len (is_channel_adc )
230- non_adc_channels_after_adc_channels = [not flag for flag in is_channel_adc [first_adc_index :]]
231- if any (non_adc_channels_after_adc_channels ):
232- raise ValueError (
233- "Interleaved ADC and non-ADC channels are not supported. "
234- "ADC channels must be contiguous. Open an issue in python-neo to request this feature."
235- )
231+ if any (is_channel_adc ):
232+ first_adc_index = is_channel_adc .index (True )
233+ non_adc_channels_after_adc_channels = [not is_adc for is_adc in is_channel_adc [first_adc_index :]]
234+ if any (non_adc_channels_after_adc_channels ):
235+ raise ValueError (
236+ "Interleaved ADC and non-ADC channels are not supported. "
237+ "ADC channels must be contiguous. Open an issue in python-neo to request this feature."
238+ )
236239
237240 # Find sync channel and verify it's the last channel
238241 sync_index = next (
@@ -244,10 +247,12 @@ def _parse_header(self):
244247 "SYNC channel must be the last channel in the buffer. Open an issue in python-neo to request this feature."
245248 )
246249
247- num_neural_channels = sum (1 for ch_info in info ["channels" ] if "ADC" not in ch_info ["channel_name" ])
248- num_non_neural_channels = sum (1 for ch_info in info ["channels" ] if "ADC" in ch_info ["channel_name" ])
250+ neural_channels = [ch for ch in info ["channels" ] if "ADC" not in ch ["channel_name" ]]
251+ adc_channels = [ch for ch in info ["channels" ] if "ADC" in ch ["channel_name" ]]
252+ num_neural_channels = len (neural_channels )
253+ num_adc_channels = len (adc_channels )
249254
250- if num_non_neural_channels == 0 :
255+ if num_adc_channels == 0 :
251256 if has_sync_trace and not self .load_sync_channel :
252257 self ._stream_buffer_slice [stream_id ] = slice (None , - 1 )
253258 else :
@@ -460,10 +465,9 @@ def _parse_header(self):
460465
461466 if has_sync_trace :
462467 values = values [:- 1 ]
463-
464- num_neural_channels = sum (
465- 1 for ch_info in info ["channels" ] if "ADC" not in ch_info ["channel_name" ]
466- )
468+
469+ neural_channels = [ch for ch in info ["channels" ] if "ADC" not in ch ["channel_name" ]]
470+ num_neural_channels = len (neural_channels )
467471 if is_neural_stream :
468472 values = values [:num_neural_channels ]
469473 else :
0 commit comments