python-neo icon indicating copy to clipboard operation
python-neo copied to clipboard

Improvements to do for NWBIO

Open legouee opened this issue 4 years ago • 1 comments

This issue gives a list of all the improvements to be made for the NWBIO class.

  • [ ] Have a mechanism which writes an AnalogSignal in a chunk mode to avoid a full load in memory otherwise it will be impossible to write big files to nwb.
  • [ ] Handle the general case where len(module_path) isn't 2 (in def get_class).
  • [ ] Move the function def statistics(block) to be a property of Block.
  • [ ] Handle the subclass where timeseries_class.__name__ is neither CurrentClamp nor VoltageClamp (in def get_units_conversion).
  • [ ] For NWB files created with other applications, we put everything in a single segment in a single block. We have now to investigate whether there is a reliable way to create multiple segments, e.g. using Trial information (in def read_timeseries_group).
  • [ ] Allow metadata in NWBFile constructor to be taken from kwargs ; concatenate descriptions of multiple blocks if different ; handle subject ; store additional Neo annotations somewhere in NWB file (in def write_all_blocks).
  • [ ] Check for consistency if the name is already there (in def write_electrodes).
  • [ ] Try to add array_annotations via “control” attribute (in def write_signal).
  • [ ] Handle annotations (using add_unit_column()) ; handle Neo Units ; hanle spike waveforms if any (see SpikeEventSeries in def _write_spiketrain).
  • [ ] Once the Group class is available, we could add electrode metadata to a Group containing all signals that share that electrode. This would reduce the amount of redundancy (repeated metadata in every signal in class AnalogSignalProxy).
  • [ ] Add timeseries.control or control_description in self.annotations (in def load of class AnalogSignalProxy).
  • [ ] Add ImplementError if time_slice in def load in class EventProxy and in class EpochProxy.

legouee avatar Jul 07 '21 13:07 legouee

additional open issues

  • [ ] ensure global time across segments: https://github.com/NeuralEnsemble/python-neo/pull/796#discussion_r537093900
  • [ ] clarify signal unit discussion: https://github.com/NeuralEnsemble/python-neo/pull/796#discussion_r537096034
  • [ ] make loading of first block more efficient https://github.com/NeuralEnsemble/python-neo/pull/796#discussion_r662264527
  • [ ] address open todos in nwbio (e.g. https://github.com/NeuralEnsemble/python-neo/pull/796#discussion_r662384024)
  • [ ] cover cases with zero or more than one observation interval https://github.com/NeuralEnsemble/python-neo/pull/796#discussion_r664022963
  • [ ] improve documentation of time_intervals (https://github.com/NeuralEnsemble/python-neo/pull/796#discussion_r664028738)
  • [ ] fix handling of spiketrain sampling rate https://github.com/NeuralEnsemble/python-neo/pull/796#discussion_r664101913
  • [ ] handle waveforms https://github.com/NeuralEnsemble/python-neo/pull/796#discussion_r664110215

JuliaSprenger avatar Jul 22 '21 10:07 JuliaSprenger