python-neo
python-neo copied to clipboard
Improvements to do for NWBIO
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 (indef 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_annotationsvia “control” attribute (indef write_signal). - [ ] Handle annotations (using
add_unit_column()) ; handle Neo Units ; hanle spike waveforms if any (see SpikeEventSeries indef _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.controlorcontrol_descriptioninself.annotations(indef loadofclass AnalogSignalProxy). - [ ] Add
ImplementErroriftime_sliceindef loadinclass EventProxyand inclass EpochProxy.
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