Skip to content

Commit 32f35de

Browse files
committed
1 parent 6164a87 commit 32f35de

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

neo/io/nwbio.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -564,12 +564,22 @@ def _write_signal(self, nwbfile, signal, electrodes):
564564
if hasattr(signal, 'proxy_for') and signal.proxy_for in [AnalogSignal,
565565
IrregularlySampledSignal]:
566566
signal = signal.load()
567+
if issubclass(timeseries_class, pynwb.icephys.PatchClampSeries):
568+
if signal.shape[1] != 1:
569+
raise ValueError(
570+
"To store patch clamp data in NWB, please ensure that each AnalogSignal"
571+
f"contains only one channel. The current signal has {signal.shape[1]} channels."
572+
)
573+
# see https://github.com/NeurodataWithoutBorders/pynwb/issues/1300
574+
data = signal.ravel() # convert to 1D
575+
else:
576+
data = signal
567577
if isinstance(signal, AnalogSignal):
568578
sampling_rate = signal.sampling_rate.rescale("Hz")
569579
tS = timeseries_class(
570580
name=signal.name,
571581
starting_time=time_in_seconds(signal.t_start),
572-
data=signal,
582+
data=data,
573583
unit=units.dimensionality.string,
574584
rate=float(sampling_rate),
575585
comments=json.dumps(hierarchy),
@@ -578,7 +588,7 @@ def _write_signal(self, nwbfile, signal, electrodes):
578588
elif isinstance(signal, IrregularlySampledSignal):
579589
tS = timeseries_class(
580590
name=signal.name,
581-
data=signal,
591+
data=data,
582592
unit=units.dimensionality.string,
583593
timestamps=signal.times.rescale('second').magnitude,
584594
comments=json.dumps(hierarchy),

0 commit comments

Comments
 (0)