masked_data_RG_80nM, run 42e2603b
Status done, stage done; requested by project lead; worker [not recorded]; started 2026-10-27 02:33 UTC, finished 2026-10-27 02:35 UTC, 105 s; signature 4b2e688e
Stages
| Stage | Started | Seconds |
|---|---|---|
| [no stage log; run predates stage timing] | ||
Log
| Time | Agent | Action | Detail |
|---|---|---|---|
| 02:33:50 | runs | run started | {"recording_id": "73e4ebe2-6b09-4582-a1d6-ded901b7d124", "run_id": "42e2603b-3db7-4daa-9993-332cca83372b"} |
| 02:35:36 | runs | signature written | {"criteria": "provisional", "holds": null, "run_id": "42e2603b-3db7-4daa-9993-332cca83372b", "signature_id": "4b2e688e-ef51-4de0-849b-43d0dcab224f"} |
Entries from the audit log for this run; new rows and stage changes arrive by realtime while the run is open (connecting).
Pipeline check
[no pipeline check stored for this run]
Inspector
This is a preprocessed ex vivo Langendorff rat whole-heart VF optical-mapping recording under 80 nM rotigaptide, recorded at 1000 Hz according to the deposit; that agrees with the value already on record. The 128 × 80 deposited image size matches both the deposit and the linked paper, and the paper also reports 1000 frames/s. The data have documented preprocessing before deposit, including background subtraction, 3 × 3 spatial binning, 100 Hz low-pass filtering, drift removal, and normalization, so analyses should not treat them as raw camera counts. Measured polarity is consistently non-inverted even though RH237 normally dims on depolarization, so use measured polarity for orientation. No acquisition-log or detected event annotations are available for this recording.
| Measurement | Value | Method, Caveat |
|---|---|---|
| SNR, median (p10–p90) | 18.8 (13.9–25.9) | assumes white noise; on temporally smoothed deposits noise is underestimated and SNR inflated |
| Mask coverage | 50.9%, 5216 of 10240 px | depositor NaN mask (frame 0) |
| Polarity | blocks 7, inverted False, blocks agreeing 7, median dvdt skew 0.08132843673229218 | sign of median per-pixel skew of dV/dt, baseline-corrected (121 frames) |
| Drift / bleaching | baseline change -0.0108, vs beat amplitude -0.0979, slow range 0.162, trend, Spearman -0.356 | running median (381 frames) of the tissue-mean raw signal; steps from events (light, rhythm change) and depositor normalization or drift removal change or erase the baseline; bleaching cannot be separated from them here |
| Prior processing | unit range, non integer, nan mask partial, temporal smoothing, spatial smoothing | deposit checks |
| Dominant cycle by block, frames | 0–1000: 29.4, 1000–2000: 28.6, 2000–3000: 28.6, 3000–3800: 25.0 |
| Concern | Severity | Detail |
|---|---|---|
| preprocessed deposit | warn | The deposit is not raw camera data: it is documented as background-subtracted, spatially binned, low-pass filtered, drift-removed, and the publication says normalized. Analyses requiring raw fluorescence/counts or unfiltered noise statistics would be misleading. |
| polarity transformed relative to dye | warn | RH237 normally dims on depolarization, but measured polarity is non-inverted with 7/7 blocks agreeing. The depositor appears to have flipped or transformed the sign; the pipeline should orient from the measured polarity, so this is not expected to make activation analysis wrong if handled. |
| SNR depends on preprocessing | info | Median SNR is high, but documented temporal filtering and detected temporal smoothing can inflate the SNR estimate by reducing apparent frame-to-frame noise. |
| reference thresholds provisional | info | No frame-rate inference was needed because the deposit states 1 kHz. Any conclusions from automated processing flags and provisional rhythm/reference-rate tools should be treated as not yet domain-scientist reviewed. |
Inspector report 2026-10-27 20:27 UTC, model openai:gpt-5.5, provisional. Median per-pixel SNR over tissue is 18.818067017408147, with p10 = 13.893293967898506 and p90 = 25.936276941781777 over 3000 frames. The SNR tool cautions that temporal smoothing underestimates noise and inflates SNR; that caveat applies because low-pass filtering is documented and temporal smoothing was detected. The tissue mask contains 5216 pixels out of 10240 total pixels, coverage 0.509375. The mask source is a depositor NaN mask in frame 0; frame 0 has 5024 NaN pixels. No stored events were returned, no acquisition log is present, and no detected light transitions or image baseline-step events were returned. Therefore there are no event frames to interpret for this recording. If events are later added, image-only baseline steps should be treated only as fluorescence changes unless a log shows a light transition at the same frame. The tissue-mean slow baseline, measured with a 381-frame running median, changes from 0.4981755316257477 to 0.48741528391838074, a change of -0.010760247707366943, equal to -0.09788043294092134 of the p5–p95 beat amplitude. Slow baseline range is 0.1622154712677002 and Spearman trend is -0.3557674750723145. Because the deposit documents drift removal and normalization, residual bleaching cannot be separated from preprocessing effects here.
Range checks
| Metric | Segment | Value at Run Setting | Cited Range | Status |
|---|---|---|---|---|
| [no critic verdict for this run] | ||||
Compare with run d430f61f
A: this run, code da0b6c7, None workers. B: run d430f61f, 2026-10-27 02:16 UTC, code 9f18ba0, None workers. 59 stored values differ.
| File | A | B | Same | How |
|---|---|---|---|---|
| frames/voltage | [none] | [none] | [not comparable] | recorded sha256 |
| frames/phase | [none] | [none] | [not comparable] | recorded sha256 |
| frames/maps | [none] | [none] | [not comparable] | recorded sha256 |
| movie.mp4 | 6820976 | 7022620 | no | size in bytes only; frames not compared |
| Stored Value | A | B |
|---|---|---|
| metrics.computed_on.rotors | [absent] | phase of spatially filtered signal |
| metrics.computed_on.singularities_and_rotors | phase of spatially filtered signal | [absent] |
| metrics.min_rotor_frames | 29 | [absent] |
| metrics.paired_singularity_frac | 0.32411012714930565 | [absent] |
| metrics.persistent_rotor_count_max | 13 | [absent] |
| metrics.persistent_rotor_frames_frac | 0.9873333333333333 | [absent] |
| metrics.persistent_rotor_lifetimes | [416, 350, 305, 253, 219, 219, 183, 158, 102, 97, 96, 94, 93, 91, 88, 85, 83, 76, 75, 75, 75, 73, 71, 69, 69, 69, 68, 67, 67, 60, 60, 60, 60, 59, 59, 58, 58, 57, 56, 56, 55, 55, 55, 55, 51, 51, 50, 49, 49, 47, 46, 46, 46, 45, 45, 45, 44, 44, 44, 44, 44, 44, 43, 43, 42, 42, 41, 41, 41, 41, 40, 39, 38, 38, 38, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 36, 35, 35, 35, 35, 35, 35, 35, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 33, 33, 33, 33, 33, 33, 33, 32, 32, 32, 32, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 29, 29, 29, 29] | [absent] |
| metrics.persistent_rotor_tracks | 138 | [absent] |
| metrics.rotor_count_max | [absent] | 44 |
| metrics.rotor_count_mean | [absent] | 19.347333333333335 |
| metrics.rotor_frames_frac | [absent] | 1.0 |
| metrics.segments | {'window': {'singularity_count_max': 44, 'singularity_count_mean': 19.347333333333335, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 13, 'persistent_rotor_frames_frac': 0.9873333333333333}} | [absent] |
| metrics.singularity_count_max | 44 | [absent] |
| metrics.singularity_count_mean | 19.347333333333335 | [absent] |
| metrics.singularity_frames_frac | 1.0 | [absent] |
| metrics.tracks | 3709 | [absent] |
| filter_params.tracking | {'link_px': 4.0, 'max_gap': 5, 'min_cycles': 1.0, 'min_frames': 29, 'paired_frac': 0.5, 'pair_dist_px': 3.0} | [absent] |
| filter_params.window.illumination_on | None | [absent] |
| filter_params.window.segment_cycles_frames | {'window': 29} | [absent] |
| sensitivity.finding | [absent] | None |
| sensitivity.findings | None | [absent] |
| sensitivity.fixed.baseline_frames | [absent] | 121 |
| sensitivity.fixed.baseline_method | [absent] | scipy.ndimage.uniform_filter1d, mode=reflect, subtracted per pixel |
| sensitivity.fixed.lowpass | [absent] | None |
| sensitivity.fixed.mask | [absent] | not NaN in frame 0 and nonzero temporal std |
| sensitivity.fixed.min_rotor_frames | 29 | [absent] |
| sensitivity.fixed.pad_frames | [absent] | 200 |
| sensitivity.fixed.phase_method | [absent] | angle of scipy.signal.hilbert along time, on spatially filtered signal |
| sensitivity.fixed.polarity_method | [absent] | sign of median per-pixel skew of dV/dt on baseline-corrected signal |
| sensitivity.fixed.segments | {'window': [200, 1700]} | [absent] |
| sensitivity.fixed.spatial_applies_to | [absent] | phase/activation only; displayed voltage is baseline-corrected only |
| sensitivity.fixed.spatial_method | [absent] | scipy.ndimage.gaussian_filter per frame, mode=reflect; NaN set to 0 before filtering, non-tissue zeroed after |
| sensitivity.fixed.spatial_truncate | [absent] | 4.0 |
| sensitivity.fixed.window | [200, 1700] | [absent] |
| sensitivity.grid | [{'sigma': 'light', 'baseline': 'light', 'segments': {'window': {'singularity_count_max': 74, 'singularity_count_mean': 38.198, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 11, 'persistent_rotor_frames_frac': 0.99}}, 'spatial_sigma': 0.5, 'baseline_frames': 241, 'persistent_rotor_tracks': 149}, {'sigma': 'default', 'baseline': 'light', 'segments': {'window': {'singularity_count_max': 48, 'singularity_count_mean': 21.625333333333334, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 12, 'persistent_rotor_frames_frac': 0.9653333333333334}}, 'spatial_sigma': 1.0, 'baseline_frames': 241, 'persistent_rotor_tracks': 126}, {'sigma': 'heavier', 'baseline': 'light', 'segments': {'window': {'singularity_count_max': 26, 'singularity_count_mean': 11.445333333333334, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 9, 'persistent_rotor_frames_frac': 0.9853333333333333}}, 'spatial_sigma': 2.0, 'baseline_frames': 241, 'persistent_rotor_tracks': 89}, {'sigma': 'light', 'baseline': 'default', 'segments': {'window': {'singularity_count_max': 75, 'singularity_count_mean': 34.906, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 12, 'persistent_rotor_frames_frac': 1.0}}, 'spatial_sigma': 0.5, 'baseline_frames': 121, 'persistent_rotor_tracks': 171}, {'sigma': 'default', 'baseline': 'default', 'segments': {'window': {'singularity_count_max': 44, 'singularity_count_mean': 19.347333333333335, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 13, 'persistent_rotor_frames_frac': 0.9873333333333333}}, 'spatial_sigma': 1.0, 'baseline_frames': 121, 'persistent_rotor_tracks': 138}, {'sigma': 'heavier', 'baseline': 'default', 'segments': {'window': {'singularity_count_max': 24, 'singularity_count_mean': 10.642, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 11, 'persistent_rotor_frames_frac': 0.994}}, 'spatial_sigma': 2.0, 'baseline_frames': 121, 'persistent_rotor_tracks': 99}, {'sigma': 'light', 'baseline': 'heavier', 'segments': {'window': {'singularity_count_max': 58, 'singularity_count_mean': 31.896, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 13, 'persistent_rotor_frames_frac': 1.0}}, 'spatial_sigma': 0.5, 'baseline_frames': 81, 'persistent_rotor_tracks': 177}, {'sigma': 'default', 'baseline': 'heavier', 'segments': {'window': {'singularity_count_max': 40, 'singularity_count_mean': 17.720666666666666, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 12, 'persistent_rotor_frames_frac': 1.0}}, 'spatial_sigma': 1.0, 'baseline_frames': 81, 'persistent_rotor_tracks': 156}, {'sigma': 'heavier', 'baseline': 'heavier', 'segments': {'window': {'singularity_count_max': 22, 'singularity_count_mean': 10.151333333333334, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 10, 'persistent_rotor_frames_frac': 0.998}}, 'spatial_sigma': 2.0, 'baseline_frames': 81, 'persistent_rotor_tracks': 102}] | [absent] |
| sensitivity.levels | [absent] | {'light': {'segments': {'window': {'rotor_count_max': 75, 'rotor_count_mean': 34.906, 'rotor_frames_frac': 1.0}}, 'spatial_sigma': 0.5}, 'default': {'segments': {'window': {'rotor_count_max': 44, 'rotor_count_mean': 19.347333333333335, 'rotor_frames_frac': 1.0}}, 'spatial_sigma': 1.0}, 'heavier': {'segments': {'window': {'rotor_count_max': 24, 'rotor_count_mean': 10.642, 'rotor_frames_frac': 1.0}}, 'spatial_sigma': 2.0}} |
| sensitivity.rotor_frames_frac_range | [absent] | [1.0, 1.0] |
| sensitivity.status | provisional | [absent] |
| sensitivity.trackers | [{'link_px': 2.0, 'max_gap': 1, 'tracker': 'strict', 'segments': {'window': {'singularity_count_max': 44, 'singularity_count_mean': 19.347333333333335, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 7, 'persistent_rotor_frames_frac': 0.9673333333333334}}, 'persistent_rotor_tracks': 108}, {'link_px': 4.0, 'max_gap': 5, 'tracker': 'default', 'segments': {'window': {'singularity_count_max': 44, 'singularity_count_mean': 19.347333333333335, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 13, 'persistent_rotor_frames_frac': 0.9873333333333333}}, 'persistent_rotor_tracks': 138}, {'link_px': 6.0, 'max_gap': 10, 'tracker': 'loose', 'segments': {'window': {'singularity_count_max': 44, 'singularity_count_mean': 19.347333333333335, 'singularity_frames_frac': 1.0, 'persistent_rotor_count_max': 19, 'persistent_rotor_frames_frac': 1.0}}, 'persistent_rotor_tracks': 217}] | [absent] |
| sensitivity.varied | {'spatial_sigma': {'light': 0.5, 'default': 1.0, 'heavier': 2.0}, 'baseline_frames': {'light': 241, 'default': 121, 'heavier': 81}, 'tracker(link_px, max_gap)': {'loose': [6.0, 10], 'strict': [2.0, 1], 'default': [4.0, 5]}} | spatial_sigma |
| sensitivity.window | [absent] | [200, 1700] |
| criteria_status.note | [absent] | Earlier run: light-on hard-coded at frame 3200, raw singularity counts only (no persistence), spatial-sigma-only sensitivity, criterion unreviewed. Superseded; kept for provenance. |
| criteria_status.rules | length 9 | length 0 |
| criteria_status.superseded_by_run | [absent] | 42e2603b-3db7-4daa-9993-332cca83372b |
| rotor_count | 13 | 44 |
| pipeline.params.polarity | 1 | [absent] |
| pipeline.params.render | {'step': 2, 'palettes': {'camera': 'gray'}, 'interpolation': 'nearest'} | [absent] |
| pipeline.params.tracking | {'link_px': 4.0, 'max_gap': 5, 'min_cycles': 1.0, 'min_frames': 29, 'paired_frac': 0.5, 'pair_dist_px': 3.0} | [absent] |
| pipeline.params.window | {'f0': 200, 'f1': 1700, 'segments': {'window': [200, 1700]}, 'illumination_on': None, 'segment_cycles_frames': {'window': 29}} | [absent] |
| pipeline.deposit_checks | {'flags': [{'flag': 'unit_range', 'value': [0.0, 1.0], 'suggests': 'min-max normalized', 'threshold': '[0, 1] spanned'}, {'flag': 'non_integer', 'value': 0.0003442292944785276, 'suggests': 'not raw camera counts (camera output is integer); weak alone', 'threshold': 0.5}, {'flag': 'nan_mask_partial', 'value': [0], 'suggests': 'mask encoded in a few frames only; other frames carry non-tissue values'}, {'flag': 'temporal_smoothing', 'value': 0.959237783400513, 'suggests': 'temporally low-pass filtered (white shot noise gives dV lag-1 autocorr near -0.5)', 'threshold': 0.5}, {'flag': 'spatial_smoothing', 'value': 0.9479694003115444, 'suggests': 'spatially filtered or binned (shot noise is independent between pixels)', 'threshold': 0.8}], 'status': 'provisional', 'measures': {'max': 1.0, 'min': 0.0, 'frames_used': 2000, 'integer_frac': 0.0003442292944785276, 'negative_frac': 0.0, 'frames_with_nan': 1, 'dv_lag1_autocorr_median': 0.959237783400513, 'neighbour_dv_corr_median': 0.9479694003115444}, 'processed_before_deposit': True} | None |
| pipeline.steps | length 11 | length 8 |
| pipeline.steps[1] | deposit_checks | baseline_correct |
| pipeline.steps[2] | detect_events | polarity |
| pipeline.steps[3] | baseline_correct | spatial_filter(phase only) |
| pipeline.steps[4] | polarity | hilbert_phase |
| pipeline.steps[5] | spatial_filter(phase only) | phase_singularities |
| pipeline.steps[6] | hilbert_phase | sensitivity |
| pipeline.steps[7] | phase_singularities | render |
| methods_text | Recording Rat heart, ventricular fibrillation (RG 80 nM) (doi:10.5281/zenodo.18319102; 128x80 px, 3800 frames, frame rate not stated) was analysed over frames 200-1700. Deposit shows signs of prior processing (provisional): unit range, non integer, nan mask partial, temporal smoothing, spatial smoothing. Each pixel was baseline-corrected by subtracting a 121-frame centered moving average; NaN pixels were set to zero. Dye polarity (upright) was taken from the sign of the median per-pixel skew of dV/dt. For phase only, each frame was spatially filtered with a Gaussian (sigma 1.0 px, truncated at 4.0 sigma); no temporal low-pass was applied. Phase was the angle of the Hilbert transform, computed with 200 frames of padding on each side. Phase singularities were plaquettes with |winding| > 0.9 turns at least 3 px inside the tissue edge; they were tracked across frames (same charge, <= 4.0 px per frame, gaps <= 5 frames), and a persistent rotor was a track lasting >= 29 frames (one cycle of the fastest segment) that was within 3.0 px of an opposite-charge singularity in no more than 50% of its frames. Sensitivity: baseline 241, 121, 81 frames x sigma 0.5, 1.0, 2.0 px, and tracker variants. All thresholds and criteria are provisional pending review by a domain scientist. | Recording Rat heart, ventricular fibrillation (RG 80 nM) (doi:10.5281/zenodo.18319102; 128x80 px, 3800 frames, frame rate not stated) was analysed over frames 200-1700. Each pixel was baseline-corrected by subtracting a 121-frame centered moving average; NaN pixels were set to zero. Dye polarity (upright) was taken from the sign of the median per-pixel skew of dV/dt. For phase only, each frame was spatially filtered with a Gaussian (sigma 1.0 px, truncated at 4.0 sigma); no temporal low-pass was applied. Phase was the angle of the Hilbert transform, computed with 200 frames of padding on each side. Phase singularities were plaquettes with |winding| > 0.9 turns at least 3 px inside the tissue edge. Sensitivity was tested by repeating detection at sigma 0.5, 1.0, 2.0 px. |