Skill Tracer
Skills › Scientific Agent Skills › nwb-conversion › upstream-review.md

upstream-review.md

51 lines · skills/nwb-conversion/references/upstream-review.md at 5f2bc03

Open on GitHub
1# Upstream review: 2026-10-01
2
3This skill targets NeuroConv 0.10.2, PyNWB 4.2.0, NWB Inspector 0.7.2, roiextractors 0.10.0
4and tifffile 2026.9.20. Release metadata was checked against official PyPI records; public current
5documentation and installed release source were checked separately. There are no remote service
6endpoints, authentication or pagination in this local conversion workflow.
7

Upstream review: 2026-10-01

This skill targets NeuroConv 0.10.2, PyNWB 4.2.0, NWB Inspector 0.7.2, roiextractors 0.10.0 and tifffile 2026.9.20. Release metadata was checked against official PyPI records; public current documentation and installed release source were checked separately. There are no remote service endpoints, authentication or pagination in this local conversion workflow.

Raw lines 1 to 7
8## Interfaces used
9
10- [TIFF conversion](https://neuroconv.readthedocs.io/en/stable/conversion_examples_gallery/imaging/tiff.html):
11 `TiffImagingInterface(file_paths=..., sampling_frequency=..., num_channels=1, num_planes=1,
12 metadata_key=...)` uses the multi-page extractor. Use `file_paths`, since singular `file_path` is
13 deprecated in the installed release. The helper deliberately supports only planar single-channel
14 data; it does not infer interleaving from page dimensions. Some published TIFF examples describe
15 `CZT` as the default while the installed 0.10.2 signature has `ZCT`; this distinction has no effect
16 when both channel and plane counts are one. Do not generalize this helper to multi-plane inputs.
17- [Optical metadata](https://neuroconv.readthedocs.io/en/stable/how_to/annotate_ophys_metadata.html):
18 metadata dictionaries use `Devices`, `Ophys.ImagingPlanes`, and `Ophys.MicroscopySeries`, linked by
19 `device_metadata_key` and `imaging_plane_metadata_key`. Runtime round trips verify the resulting
20 device and optical channel, rather than treating a populated dictionary as proof of correct links.
21- [Temporal alignment](https://neuroconv.readthedocs.io/en/stable/user_guide/temporal_alignment.html):
22 `set_aligned_timestamps(aligned_timestamps=...)` assigns explicit common-clock seconds.
23 `add_to_nwbfile(..., always_write_timestamps=True)` preserves irregular frame times. The helper's
24 residual-checked affine fit is its own method, not NeuroConv's piecewise interpolation API.
25- [PyNWB optical physiology](https://pynwb.readthedocs.io/en/stable/pynwb.ophys.html):
26 TwoPhotonSeries data uses time, x, y axes; optical excitation/emission wavelengths are nanometers.
27 [SpatialSeries](https://pynwb.readthedocs.io/en/stable/pynwb.behavior.html) uses time by coordinate;
28 data already converted to meters retains conversion 1 and offset 0. No spatial image calibration
29 is invented from pixel indices.
30- [PyNWB validation](https://pynwb.readthedocs.io/en/stable/validation.html):
31 `validate(path=...)` checks the stored schema and returns errors in PyNWB 4.2.0. The helper reads
32 the written file within the `NWBHDF5IO` context while datasets are accessible.
33- [NWB Inspector](https://github.com/NeurodataWithoutBorders/nwbinspector):
34 installed 0.7.2 `inspect_nwbfile(path, skip_validate=True)` yields InspectorMessage objects after
35 separate schema validation. Messages retain importance, check name, location and explanation.
36 Inspection errors and critical findings are review flags; Inspector does not establish correct
37 subject identity, source calibration or pulse matching. The documentation host was inaccessible
38 during review; the released package source and real inspection were checked instead.

Interfaces used

  • TIFF conversion: TiffImagingInterface(file_paths=..., sampling_frequency=..., num_channels=1, num_planes=1, metadata_key=...) uses the multi-page extractor. Use file_paths, since singular file_path is deprecated in the installed release. The helper deliberately supports only planar single-channel data; it does not infer interleaving from page dimensions. Some published TIFF examples describe CZT as the default while the installed 0.10.2 signature has ZCT; this distinction has no effect when both channel and plane counts are one. Do not generalize this helper to multi-plane inputs.
  • Optical metadata: metadata dictionaries use Devices, Ophys.ImagingPlanes, and Ophys.MicroscopySeries, linked by device_metadata_key and imaging_plane_metadata_key. Runtime round trips verify the resulting device and optical channel, rather than treating a populated dictionary as proof of correct links.
  • Temporal alignment: set_aligned_timestamps(aligned_timestamps=...) assigns explicit common-clock seconds. add_to_nwbfile(..., always_write_timestamps=True) preserves irregular frame times. The helper's residual-checked affine fit is its own method, not NeuroConv's piecewise interpolation API.
  • PyNWB optical physiology: TwoPhotonSeries data uses time, x, y axes; optical excitation/emission wavelengths are nanometers. SpatialSeries uses time by coordinate; data already converted to meters retains conversion 1 and offset 0. No spatial image calibration is invented from pixel indices.
  • PyNWB validation: validate(path=...) checks the stored schema and returns errors in PyNWB 4.2.0. The helper reads the written file within the NWBHDF5IO context while datasets are accessible.
  • NWB Inspector: installed 0.7.2 inspect_nwbfile(path, skip_validate=True) yields InspectorMessage objects after separate schema validation. Messages retain importance, check name, location and explanation. Inspection errors and critical findings are review flags; Inspector does not establish correct subject identity, source calibration or pulse matching. The documentation host was inaccessible during review; the released package source and real inspection were checked instead.
Raw lines 8 to 39
40## Dependency compatibility and verification boundary
42Zarr 3.4.0 and hdmf-zarr 0.14.0 are newer than this skill's compatibility pins. NeuroConv 0.10.2's
43backend configuration imports `zarr.codec_registry`, which is absent in the tested Zarr 3 stack.
44Retain Zarr 2.18.7 and hdmf-zarr 0.11.3 for this release even for HDF5 writes. This is a tested
45compatibility exception, not a recommendation for other Zarr workflows.
47The suite uses tiny synthetic TIFF/CSV inputs with actual library conversion, schema validation,
48Inspector and pixel/time/metadata round trips. It also exercises pulse drift, invalid layouts,
49malformed CSVs and metadata rejection. It does not validate real acquisition hardware, anatomical
50labels, channel identity, missing-pulse correspondence, nonlinear clock drift, cloud archives,
51large-file performance or conversion formats outside the stated scope.

Dependency compatibility and verification boundary

Zarr 3.4.0 and hdmf-zarr 0.14.0 are newer than this skill's compatibility pins. NeuroConv 0.10.2's backend configuration imports zarr.codec_registry, which is absent in the tested Zarr 3 stack. Retain Zarr 2.18.7 and hdmf-zarr 0.11.3 for this release even for HDF5 writes. This is a tested compatibility exception, not a recommendation for other Zarr workflows.

The suite uses tiny synthetic TIFF/CSV inputs with actual library conversion, schema validation, Inspector and pixel/time/metadata round trips. It also exercises pulse drift, invalid layouts, malformed CSVs and metadata rejection. It does not validate real acquisition hardware, anatomical labels, channel identity, missing-pulse correspondence, nonlinear clock drift, cloud archives, large-file performance or conversion formats outside the stated scope.

Raw lines 40 to 51