Skip to content

twopy 0.2.0

Choose a tag to compare

@gumadeiras gumadeiras released this 19 May 22:09
d30bb69

Features

  • Added a napari Custom tab for built-in and local Python workflows.
  • Added a native Direction selectivity workflow with recording epoch dropdowns, metric window controls, optional response rectification, an absolute-DSI plot threshold, and a direct ROI DSI table preview.
  • Added versioned workflow metadata for custom outputs, including workflow id, version, source path, source hash, twopy version, parameters, and recording path.
  • Added a stable twopy.custom API for workflow parameters, recording metadata, ROI selection, response metrics, tables, plots, output paths, and response plot data.
  • Added a reference custom workflow example that shows every supported parameter and result type.
  • Added all/visible epoch selection to the native Response kernels Custom-tab workflow.
  • Added native random-noise response kernel fitting with a stimulus-mode dropdown for olfactory antenna activation or visual contrast, automatic default stimulus-column selection, metadata-driven hemisphere mapping for olfaction, one kernel per unique epoch name, modality-specific CSV outputs, and a packaged napari Custom-tab workflow.
  • Added database search favorites in the napari Load-tab search window, with Save favorite, Use, and Remove actions backed by a machine-local YAML file.
  • Added a thin epoch-span marker to napari response plots and exported response figures.

Changes

  • Show converted recording hemisphere in the napari Metadata tab.
  • Added a Load-tab Reconvert selected action that confirms and rebuilds the selected recording's converted HDF5 files in place.
  • Routed napari manual, CSV-list, and database recording loads through one shared Load-tab workflow with consistent load-failure wording.
  • Unified napari response preview, live update, and Save Analysis handling around one ROI analysis request so plotted previews and saved outputs use the same ROI masks and Plot-tab settings.
  • Let custom line plots set their y-axis label, and label native response-kernel plots as Weight.
  • Made the native Response kernels baseline epoch use the recording epoch dropdown and gray/interleave default instead of a numeric spinbox.
  • Moved manual Group Matching ROI match-table mutation rules into GUI-independent analysis helpers while keeping the napari view focused on rendering and interaction wiring.
  • Added Group Matching FOV select-all controls, shared italic placeholder styling, and ROI preview plot-size, smoothing, and mean-plus-SEM response rows.
  • Added a shared finite_mean_and_sem API so response plots, CSV exports, custom workflows, and group-matching previews use the same sample-SEM convention.
  • Made native response-kernel workflows plot mean +/- SEM summary traces with filled SEM bands using the shared SEM helper.
  • Made custom ROI-labeled line plots, including native response-kernel traces, use the current napari ROI colors automatically.
  • Routed native response timing through one audited recording-timing boundary that prefers classified photodiode boundary evidence and keeps interpolation as the non-boundary-flash fallback.
  • Replaced the single configured data root with ordered data_paths, using the first available recording path for database loads and matching output/cache mirroring to the selected root.
  • Split napari response-map display scaling coverage into a pure helper test module and reused shared converted-HDF5 fixture writers across more analysis tests.

Fixes

  • Widened the napari Plot-tab normalization checkbox so Normalize to epoch peak is no longer cropped.
  • Used interpolated timing for older flash-train recordings whose photodiode_flash pulses are not one-per-epoch-boundary, while still rejecting incomplete boundary-flash evidence, restoring response plots and response-watershed ROI generation for older recordings.
  • Restored saved-analysis reload for source recordings routed through the stable external analysis cache.
  • Allowed source recording conversion to load older chosenparams.mat stimulus epoch parameters when stimParams.mat is absent.
  • Deleted local cached PDF and PNG export figures after they successfully sync to the configured analysis output destination.
  • Prevented database search favorites from changing the dialog state or overwriting a corrupt favorites file when local YAML persistence fails.
  • Kept custom workflow ROI visibility filters, including the Direction selectivity threshold, from removing nonpassing ROIs from the ROIs tab.
  • Kept custom workflow epoch-window defaults from being overwritten by recording duration caps.
  • Made DSI threshold and epoch-window controls show three decimals, and showed synced custom table outputs at their publish paths instead of cache paths.
  • Matched custom workflow epoch dropdown defaults from numeric selectors, full labels, and epoch names, including unnamed Epoch N labels.
  • Made response-kernel CSV columns encode lag seconds, kept per-epoch filenames collision-proof, and reported fitted sample counts after kernel-window filtering.
  • Made response-kernel fitting skip irregular stimulus-clock segments and report fitted/skipped segment counts instead of failing the whole workflow.
  • Kept pooled response-kernel epoch groups from using lag samples across stimulus-segment boundaries, and kept invalid database hemisphere metadata from being hidden as missing metadata.
  • Kept malformed config.yml errors visible during explicit-output conversion and old converted-file hemisphere lookup, while still allowing missing config when explicit conversion output is provided.
  • Kept Epochs-tab visibility toggles from rebuilding cached response heatmap images.
  • Persisted database fly.eye metadata as converted recording hemisphere/eye run fields during conversion, with database lookup for older converted files that predate the field.
  • Made the Export-tab Save ROIs + analysis button show the same save and sync status message as the Metadata tab.