NeurodataWithoutBorders / pynwb

A Python API for working with Neurodata stored in the NWB Format
https://pynwb.readthedocs.io
Other
178 stars 84 forks source link

[Documentation]: Append a dataset of references #1951

Open mavaylon1 opened 2 months ago

mavaylon1 commented 2 months ago

What would you like changed or added to the documentation and why?

Update or create documentation for appending a dataset of references. I am thinking ecephys.

Do you have any interest in helping write or edit the documentation?

Yes.

Code of Conduct

cboulay commented 2 months ago

I'm wondering if my issue is the covered by this or the linked PR in hdmf. Please advise.

I am iteratively writing to multiple containers (acquisitions and epochs table) in a single NWB file. I would like more than one of the acquisitions to be an ElectricalSeries, however I cannot append to the electrodes table after I've done an io.write(nwbfile) and io = pynwb.NWBHDF5IO(..., mode="a") because the datasets are now h5py.Dataset which cannot (by default) be reshaped.

I tried to get past this by doing nwbfile.electrodes.id.set_data_io(H5DataIO, {"maxshape": (None,)}) for id and all the other fields in the electrodes table before the first write and re-open. However, this has little effect for the group field because after re-opening this field is a dataset of references that cannot be reshaped.

Is this issue addressed by the above changes to hdmf?

stephprince commented 2 months ago

@cboulay I was testing out the linked PR in hdmf for your electrodes table use case, and there is one remaining bug in hdmf that needs to be resolved before appending to the electrodes table will work.

Linking the related issue here, I think we have a working solution and just need to add some further tests before it will be incorporated into hdmf.