SignatureRun

M13Rec001, run 202e66c5

Status done, stage done; requested by project lead; worker worker; started 2026-10-27 23:02 UTC, finished 2026-10-27 23:08 UTC, 337 s; signature 6ed9c8e5

Stages

StageStartedSeconds
[no stage log; run predates stage timing]

Log

TimeAgentActionDetail
23:02:30runsrun started{"checked_by": "openai:gpt-5.5", "protocol_params_version": 3, "recording_id": "55cb4aa3-6502-45a6-a14c-85cb676fe8c3", "run_id": "202e66c5-944f-4d65-bbb1-a060487247e1"}
23:08:07runssignature written{"criteria": "provisional", "holds": {"persistent_rotors": true, "persistent_rotors_fraction_superseded": false, "singularities": true}, "run_id": "202e66c5-944f-4d65-bbb1-a060487247e1", "signature_id": "6ed9c8e5-4bef-4549-b04f-f5014db32b5b"}

Entries from the audit log for this run; new rows and stage changes arrive by realtime while the run is open (connecting).

Pipeline check

Proceed: True; parameters v3.

FieldProtocolRecordingSeverityDetail
no mismatches
AnomalySeverityEffect on the Fixed Pipeline
Pre-deposit processing / raw-data labelwarnThe deposited movie should not be treated as raw camera counts: depositor documentation and measurements indicate masking, temporal smoothing, spatial smoothing, and normalization. The fixed pipeline may still be run, but its Gaussian phase smoothing is added on top of prior filtering of unknown effective total, and any interpretation requiring independent pixel noise or raw photon-count amplitudes would be misleading.
Event interpretation at frame 3170warnThe segment boundary at frame 3170 is based on a provisional termination/baseline-step interpretation, not a directly measured light onset. The fixed segment definitions can be analysed as defined, but results should be described relative to the provisional boundary and not as an illumination-on transition.
Baseline and illumination artifactwarnBlue-light crosstalk, re-normalization by stimulation-light signal, a large slow baseline range, and a baseline step can affect absolute baseline and amplitude. The fixed phase/rotor pipeline can proceed, but baseline- or amplitude-dependent interpretations need caution.
Baseline-window ruleinfoThe coded rule reports ok: the 901-frame baseline is at least 2 times the slowest segment cycle from the MAP-channel DAQ log, so this rule does not hold the run.

The protocol is the intended mouse whole-heart optical-mapping protocol for this public reference recording, and the recording facts do not conflict with the protocol: the frame rate is 1000 Hz from the publication, the pixel size is 133 µm from the publication, and the 64 × 55 deposited movie is consistent with a cropped version of the 64 × 64 camera acquisition. The fixed version-3 parameters are therefore applicable as provisional pipeline settings, and the coded baseline-window rule passes for the slowest segment. The main limitations are not protocol mismatches but interpretation caveats: the deposited data are already masked, smoothed, and normalized; frame 3170 is a provisional termination/baseline-step boundary rather than light onset; and illumination/crosstalk/normalization affect baseline and amplitude.

Inspector

This is an ex vivo optogenetic mouse whole-heart optical mapping recording associated with spiral-wave termination experiments. Use 1000 Hz: the linked paper states 64 × 64 camera acquisition at 1 kHz, and the deposit’s 64 × 55 frame size is consistent with a cropped version; this agrees with the frame rate already on record. The deposited movie is not truly raw camera output: depositor documentation and measurements indicate masking, temporal/spatial smoothing, and normalization. Polarity is robustly inverted, so depolarization appears as a downward deflection. Illumination was already on before frame 0 and turned off at frame 4977; the frame-3170 image step should be treated as a fluorescence baseline/rhythm-change event with provisional interpretation as spiral termination, not as light onset.

MeasurementValueMethod, Caveat
SNR, median (p10–p90)32.5 (26.9–44.9)assumes white noise; on temporally smoothed deposits noise is underestimated and SNR inflated
Mask coverage66.2%, 2332 of 3520 pxdepositor NaN mask (frame 0)
Polarityblocks 18, inverted True, blocks agreeing 18, median dvdt skew -4.419912338256836sign of median per-pixel skew of dV/dt, baseline-corrected (121 frames)
Drift / bleachingbaseline change -1.61, vs beat amplitude -1.12, slow range 3.33, trend, Spearman -0.489running median (927 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 processingnegative values, nan mask all frames, temporal smoothing, spatial smoothingdeposit checks
Dominant cycle by block, frames0–1000: 66.7, 1000–2000: 66.7, 2000–3000: 52.6, 3000–4000: 83.3, 4000–5000: 100.0, 5000–6000: 142.9, 6000–7000: 100.0, 7000–8000: 142.9, 8000–9000: 83.3
ConcernSeverityDetail
Pre-deposit processing / raw-data labelwarnThe README labels M13Rec001 as raw experimental data, but the notebook documents masking, spatial smoothing, temporal smoothing, and normalization with Python Analyser; prior_processing measurements support processed data. Analyses requiring raw photon counts or independent pixel noise would be misleading if this is treated as raw camera data.
Event interpretation at frame 3170warnThe image event at frame 3170 is a baseline_step only. The DAQ shows illumination began before frame 0 and ended at frame 4977, so treating frame 3170 as light onset would be wrong. The stored spiral-termination label is a provisional interpretation from timing relative to the paper, not a direct measurement.
Baseline and illumination artifactwarnThe publication reports blue stimulation light crosstalk causing an increase in fluorescence baseline and re-normalization by division to the recorded stimulation light signal; the recording also has a large slow baseline range and a baseline step. Analyses using absolute baseline or amplitude should account for illumination/crosstalk/normalization effects.
Provisional tool thresholdsinfoEvent detection, processing flags, SNR, rhythm, and reference-rate thresholds are provisional and not yet reviewed by a domain scientist; conclusions depending on them should be checked for critical analyses.
EventFrameSourceMethod
illumination on0 ± 11acquisition logmidpoint threshold on DAQ channel 'led_trigger', mapped to frames via camera triggers
illumination off4977 ± 11acquisition logmidpoint threshold on DAQ channel 'led_trigger', mapped to frames via camera triggers
baseline step3170 ± 17imageconsensus upward step in running-median baseline of tissue-mean raw signal

Inspector report 2026-10-27 20:27 UTC, model openai:gpt-5.5, provisional. Per-pixel SNR is high by the provisional metric: median = 32.506531024253725, p10 = 26.87502130582481, p90 = 44.884363625066875 over 3000 frames. Because the deposit is documented and measured as temporally smoothed, the tool caveat applies: white-noise assumptions can underestimate noise and inflate SNR. The depositor NaN mask in frame 0 contains 2332 tissue pixels out of 3520 total pixels, coverage = 0.6625, with 1188 NaN pixels. Acquisition log detects illumination already on at the first deposited frame: led_trigger transition occurred before_first_frame, 23.0 frames before frame 0, reported as illumination_on at frame 0 with uncertainty 11 frames; photodiode agrees. Acquisition log detects illumination_off at frame 4977 with uncertainty 11 frames; photodiode agrees. Image analysis detects a baseline_step at frame 3170 with uncertainty 17 frames: this measurement only shows the tissue-mean fluorescence baseline changed, not illumination onset. A stored project-lead interpretation, citing Hussaini et al. 2023 Fig 2C, labels the frame-3170 step as “spiral termination under illumination”; the source caveat says the paper does not name M13Rec001 and the termination assignment is inferred from timing, so it should be treated as provisional interpretation, not a direct measurement. The stored image-based “illumination_on” at frame 3170 is contradicted by the DAQ led_trigger and photodiode, which show light already on from before frame 0 until frame 4977. The tissue-mean slow baseline changes substantially: baseline_start = 1.439404845237732, baseline_end = -0.17559432983398438, baseline_change = -1.6149991750717163, which is -1.1213198412261043 times the beat amplitude; slow_baseline_range = 3.3284222781658173 and monotonic_trend_spearman = -0.4894475048599732. The tool cautions that steps from events, rhythm change, depositor normalization, or drift removal affect the baseline, so bleaching cannot be separated here.

Range checks

MetricSegmentValue at Run SettingCited RangeStatus
persistent rotor tracksall13 countnone citedunstable not reportable
dominant freq (Hz)light off2.375 Hznone citedno cited range
persistent rotorslight off0 countnone citedno cited range
singularity frames fractionlight off0.01214 fraction of framesnone citedunstable not reportable
persistent rotor count maxlight off0 countnone citedno cited range
dominant freq (Hz)illuminated arrhythmia19.1 Hz18.75–20, checked 14.0625–25, 10.1371/journal.pcbi.1011660unstable not reportable
persistent rotorsilluminated arrhythmia13 countnone citedunstable not reportable
dominant freq (Hz)illuminated after termination2.214 Hznone citedno cited range
singularity frames fractionilluminated arrhythmia0.479 fraction of framesnone citedno cited range
persistent rotorsilluminated after termination0 countnone citedno cited range
persistent rotor count maxilluminated arrhythmia2 countnone citedunstable not reportable
singularity frames fractionilluminated after termination0.01494 fraction of framesnone citedunstable not reportable
persistent rotor count maxilluminated after termination0 countnone citedno cited range

Compare with run 6d6015e6

A: this run, code b1be824 (uncommitted changes), None workers. B: run 6d6015e6, 2026-10-27 22:21 UTC, code 13d8ceb, None workers. 154 stored values differ.

FileABSameHow
frames/voltage[none][none][not comparable]recorded sha256
frames/phase[none][none][not comparable]recorded sha256
frames/maps[none][none][not comparable]recorded sha256
maps/activation.pngf0433d3a9771f0433d3a9771yessha256 of the stored file
maps/dominant_frequency.png9004a90ee80c9004a90ee80cyessha256 of the stored file
movie.mp465195176519517yessize in bytes only; frames not compared
Stored ValueAB
criteria_status.ruleslength 20length 19
criteria_status.rules[1].descriptionA run proceeds only if the protocol's baseline window is >= 2x the slowest segment's cycle, the cycle from the MAP channel when a DAQ log exists, else from per-pixel dominant frequency on linearly detrended pixels; otherwise the run is held by codeDefault baseline window (frames) and spatial Gaussian sigma/truncate for phase
criteria_status.rules[1].expertoptical mapping analystoptical mapping analyst (cardiac electrophysiology)
criteria_status.rules[1].locationworker/voltage/baseline_rule.py (FACTOR, evaluate)worker/voltage/preprocess.py (Params)
criteria_status.rules[1].values.baseline_frames[absent]901
criteria_status.rules[1].values.factor2.0[absent]
criteria_status.rules[1].values.lowpass[absent]None
criteria_status.rules[1].values.okTrue[absent]
criteria_status.rules[1].values.required_min_frames830[absent]
criteria_status.rules[1].values.slowest_cycle_frames415[absent]
criteria_status.rules[1].values.sourceMAP channel (DAQ log)[absent]
criteria_status.rules[1].values.spatial_sigma[absent]1.0
criteria_status.rules[1].values.spatial_truncate[absent]4.0
criteria_status.rules[2].descriptionDefault baseline window (frames) and spatial Gaussian sigma/truncate for phaseTissue = not NaN in frame 0 and nonzero temporal std
criteria_status.rules[2].expertoptical mapping analyst (cardiac electrophysiology)optical mapping analyst
criteria_status.rules[2].locationworker/voltage/preprocess.py (Params)worker/voltage/io.py (tissue_mask)
criteria_status.rules[2].values.baseline_frames901[absent]
criteria_status.rules[2].values.lowpassNone[absent]
criteria_status.rules[2].values.rule[absent]not NaN in frame 0 and nonzero std
criteria_status.rules[2].values.spatial_sigma1.0[absent]
criteria_status.rules[2].values.spatial_truncate4.0[absent]
criteria_status.rules[2].values.tissue_pixels[absent]2332
criteria_status.rules[3].descriptionTissue = not NaN in frame 0 and nonzero temporal stdDye polarity from sign of median per-pixel skew of dV/dt
criteria_status.rules[3].expertoptical mapping analystoptical mapping analyst / voltage dye chemist
criteria_status.rules[3].locationworker/voltage/io.py (tissue_mask)worker/voltage/preprocess.py (polarity)
criteria_status.rules[3].values.method[absent]median skew of dV/dt
criteria_status.rules[3].values.result[absent]-1
criteria_status.rules[3].values.rulenot NaN in frame 0 and nonzero std[absent]
criteria_status.rules[3].values.tissue_pixels2332[absent]
criteria_status.rules[4].descriptionDye polarity from sign of median per-pixel skew of dV/dtPhase singularity = |winding| > threshold turns, >= erode px from tissue edge
criteria_status.rules[4].expertoptical mapping analyst / voltage dye chemistcomputational cardiac electrophysiologist (phase mapping)
criteria_status.rules[4].locationworker/voltage/preprocess.py (polarity)worker/voltage/preprocess.py (Params.rotor_threshold, rotor_erode_px)
criteria_status.rules[4].values.methodmedian skew of dV/dt[absent]
criteria_status.rules[4].values.result-1[absent]
criteria_status.rules[4].values.rotor_erode_px[absent]3
criteria_status.rules[4].values.rotor_threshold[absent]0.9
criteria_status.rules[5].descriptionPhase singularity = |winding| > threshold turns, >= erode px from tissue edgeTrack linking distance/gap and minimum lifetime for a persistent rotor
criteria_status.rules[5].locationworker/voltage/preprocess.py (Params.rotor_threshold, rotor_erode_px)worker/voltage/rotors.py (TrackParams)
criteria_status.rules[5].values.link_px[absent]4.0
criteria_status.rules[5].values.max_gap[absent]5
criteria_status.rules[5].values.min_cycles[absent]1.0
criteria_status.rules[5].values.min_frames[absent]52
criteria_status.rules[5].values.rotor_erode_px3[absent]
criteria_status.rules[5].values.rotor_threshold0.9[absent]
criteria_status.rules[6].descriptionTrack linking distance/gap and minimum lifetime for a persistent rotorOpposite-charge singularities within pair distance are a pair; tracks paired most of their life are excluded from rotors
criteria_status.rules[6].locationworker/voltage/rotors.py (TrackParams)worker/voltage/rotors.py (TrackParams.pair_dist_px, paired_frac)
criteria_status.rules[6].values.link_px4.0[absent]
criteria_status.rules[6].values.max_gap5[absent]
criteria_status.rules[6].values.min_cycles1.0[absent]
criteria_status.rules[6].values.min_frames52[absent]
criteria_status.rules[6].values.pair_dist_px[absent]3.0
criteria_status.rules[6].values.paired_frac[absent]0.5
criteria_status.rules[7].descriptionOpposite-charge singularities within pair distance are a pair; tracks paired most of their life are excluded from rotorsFilter levels tested: spatial sigma and baseline window values
criteria_status.rules[7].expertcomputational cardiac electrophysiologist (phase mapping)optical mapping analyst
criteria_status.rules[7].locationworker/voltage/rotors.py (TrackParams.pair_dist_px, paired_frac)worker/voltage/sensitivity.py (SIGMAS, BASELINE_MULTIPLES, baseline_levels)
criteria_status.rules[7].values.baselines[absent]{'run': 901, '3x_cycle': 1356, '6x_cycle': 2712, '1.5x_cycle': 678}
criteria_status.rules[7].values.pair_dist_px3.0[absent]
criteria_status.rules[7].values.paired_frac0.5[absent]
criteria_status.rules[7].values.sigmas[absent]{'light': 0.5, 'default': 1.0, 'heavier': 2.0}
criteria_status.rules[7].values.trackers[absent]{'loose': [6.0, 10], 'strict': [2.0, 1], 'default': [4.0, 5]}
criteria_status.rules[8].descriptionFilter levels tested: spatial sigma and baseline window valuesFrames analysed: whole recording minus one filter pad at each end (unless the plan narrows it)
criteria_status.rules[8].expertoptical mapping analystcardiac electrophysiologist familiar with the dataset
criteria_status.rules[8].locationworker/voltage/sensitivity.py (SIGMAS, BASELINE_MULTIPLES, baseline_levels)worker/voltage/runs.py (default_window)
criteria_status.rules[8].values.baselines{'run': 901, '3x_cycle': 1356, '6x_cycle': 2712, '1.5x_cycle': 678}[absent]
criteria_status.rules[8].values.f0[absent]500
criteria_status.rules[8].values.f1[absent]8767
criteria_status.rules[8].values.sigmas{'light': 0.5, 'default': 1.0, 'heavier': 2.0}[absent]
criteria_status.rules[8].values.trackers{'loose': [6.0, 10], 'strict': [2.0, 1], 'default': [4.0, 5]}[absent]
criteria_status.rules[9].descriptionFrames analysed: whole recording minus one filter pad at each end (unless the plan narrows it)Thresholds for flagging depositor processing (normalization, masking, temporal/spatial smoothing)
criteria_status.rules[9].expertcardiac electrophysiologist familiar with the datasetimaging scientist (camera acquisition and noise)
criteria_status.rules[9].locationworker/voltage/runs.py (default_window)worker/voltage/inspect.py (prior_processing)
criteria_status.rules[9].values.f0500[absent]
criteria_status.rules[9].values.f18767[absent]
criteria_status.rules[9].values.flags[absent]['negative_values', 'non_integer', 'nan_mask_all_frames', 'temporal_smoothing', 'spatial_smoothing']
criteria_status.rules[9].values.thresholds[absent]{'int_frac': 0.5, 'neg_frac': 0.01, 'dv_autocorr': 0.5, 'neighbour_corr': 0.8}
criteria_status.rules[10].descriptionThresholds for flagging depositor processing (normalization, masking, temporal/spatial smoothing)Baseline step = consensus upward step in tissue-mean raw baseline (cause not inferred; first misread as light onset, contradicted by the DAQ)
criteria_status.rules[10].expertimaging scientist (camera acquisition and noise)optical mapping experimentalist
criteria_status.rules[10].locationworker/voltage/inspect.py (prior_processing)worker/voltage/events.py (detect_baseline_step)
criteria_status.rules[10].values.flags['negative_values', 'non_integer', 'nan_mask_all_frames', 'temporal_smoothing', 'spatial_smoothing'][absent]
criteria_status.rules[10].values.thresholds{'int_frac': 0.5, 'neg_frac': 0.01, 'dv_autocorr': 0.5, 'neighbour_corr': 0.8}[absent]
criteria_status.rules[11].descriptionBaseline step = consensus upward step in tissue-mean raw baseline (cause not inferred; first misread as light onset, contradicted by the DAQ)DAQ channel names from depositor notebook; frames = first N triggers of closest burst; midpoint thresholds
criteria_status.rules[11].expertoptical mapping experimentalistexperimentalist who recorded the data (or the depositor)
criteria_status.rules[11].locationworker/voltage/events.py (detect_baseline_step)worker/voltage/daq.py
criteria_status.rules[11].values.events[absent]['illumination_on@0', 'arrhythmia_termination@3153', 'illumination_off@4977']
criteria_status.rules[12].descriptionDAQ channel names from depositor notebook; frames = first N triggers of closest burst; midpoint thresholdsMouse segments bounded by DAQ light events and the baseline step, interpreted as spiral termination under illumination (project lead, from Hussaini et al. 2023)
criteria_status.rules[12].expertexperimentalist who recorded the data (or the depositor)cardiac electrophysiologist (ideally the depositing authors)
criteria_status.rules[12].locationworker/voltage/daq.pyworker/voltage/annotations.py (MOUSE_SEGMENTS)
criteria_status.rules[12].values.events['illumination_on@0', 'arrhythmia_termination@3153', 'illumination_off@4977'][absent]
criteria_status.rules[12].values.illuminated_after_termination[absent][3170, 4977]
criteria_status.rules[12].values.illuminated_arrhythmia[absent][0, 3170]
criteria_status.rules[12].values.light_off[absent][4977, 9267]
criteria_status.rules[13].descriptionMouse segments bounded by DAQ light events and the baseline step, interpreted as spiral termination under illumination (project lead, from Hussaini et al. 2023)Singularity before/after finding holds if frac(before) >= min_frac and >= min_ratio x frac(after) at every setting (also kept, superseded, for persistent rotors)
criteria_status.rules[13].expertcardiac electrophysiologist (ideally the depositing authors)cardiac electrophysiologist + biostatistician
criteria_status.rules[13].locationworker/voltage/annotations.py (MOUSE_SEGMENTS)worker/voltage/sensitivity.py (MIN_FRAC, MIN_RATIO)
criteria_status.rules[13].values.illuminated_after_termination[3170, 4977][absent]
criteria_status.rules[13].values.illuminated_arrhythmia[0, 3170][absent]
criteria_status.rules[13].values.light_off[4977, 9267][absent]
criteria_status.rules[13].values.min_frac[absent]0.1
criteria_status.rules[13].values.min_ratio[absent]2.0
criteria_status.rules[14].descriptionSingularity before/after finding holds if frac(before) >= min_frac and >= min_ratio x frac(after) at every setting (also kept, superseded, for persistent rotors)Persistent-rotor finding holds if every 'present' segment has >= 1 persistent rotor and every 'absent' segment has none, at every setting
criteria_status.rules[14].expertcardiac electrophysiologist + biostatisticiancardiac electrophysiologist
criteria_status.rules[14].locationworker/voltage/sensitivity.py (MIN_FRAC, MIN_RATIO)worker/voltage/sensitivity.py (MIN_ROTORS_PRESENT, MAX_ROTORS_ABSENT)
criteria_status.rules[14].values.expect[absent]{'light_off': 'absent', 'illuminated_arrhythmia': 'present', 'illuminated_after_termination': 'absent'}
criteria_status.rules[14].values.max_absent[absent]0
criteria_status.rules[14].values.min_frac0.1[absent]
criteria_status.rules[14].values.min_lifetime_frames[absent]52
criteria_status.rules[14].values.min_present[absent]1
criteria_status.rules[14].values.min_ratio2.0[absent]
criteria_status.rules[14].values.spanning_rotor[absent]counts in every segment it overlaps
criteria_status.rules[15].descriptionPersistent-rotor finding holds if every 'present' segment has >= 1 persistent rotor and every 'absent' segment has none, at every settingThe pipeline agent's hold/proceed decision from protocol mismatches and inspector anomalies; it chooses no parameter
criteria_status.rules[15].expertcardiac electrophysiologistoptical mapping analyst
criteria_status.rules[15].locationworker/voltage/sensitivity.py (MIN_ROTORS_PRESENT, MAX_ROTORS_ABSENT)worker/agents/pipeline.py (INSTRUCTIONS, validator)
criteria_status.rules[15].values.anomalies[absent]['Pre-deposit processing / raw-data label', 'Event interpretation at frame 3170', 'Baseline and illumination artifact']
criteria_status.rules[15].values.expect{'light_off': 'absent', 'illuminated_arrhythmia': 'present', 'illuminated_after_termination': 'absent'}[absent]
criteria_status.rules[15].values.max_absent0[absent]
criteria_status.rules[15].values.min_lifetime_frames52[absent]
criteria_status.rules[15].values.min_present1[absent]
criteria_status.rules[15].values.mismatches[absent][]
criteria_status.rules[15].values.model[absent]openai:gpt-5.5
criteria_status.rules[15].values.proceed[absent]True
criteria_status.rules[15].values.spanning_rotorcounts in every segment it overlaps[absent]
criteria_status.rules[16].descriptionThe pipeline agent's hold/proceed decision from protocol mismatches and inspector anomalies; it chooses no parameterCited physiological ranges (single-study values widened by a 25% tolerance), applied to segments by their expected rhythm; used by the critic and for frame-rate sanity checks
criteria_status.rules[16].expertoptical mapping analystcardiac electrophysiologist per species
criteria_status.rules[16].locationworker/agents/pipeline.py (INSTRUCTIONS, validator)worker/voltage/physiology.py (RANGES, TOLERANCE_FRAC)
criteria_status.rules[16].values.anomalies['Pre-deposit processing / raw-data label', 'Event interpretation at frame 3170', 'Baseline and illumination artifact', 'Baseline-window rule'][absent]
criteria_status.rules[16].values.mismatches[][absent]
criteria_status.rules[16].values.modelopenai:gpt-5.5[absent]
criteria_status.rules[16].values.proceedTrue[absent]
criteria_status.rules[16].values.ranges[absent]['mouse_spiral_rotation_hz']
criteria_status.rules[16].values.segment_rhythm_rule[absent]expected persistent rotors 'present' -> spiral arrhythmia
criteria_status.rules[16].values.tolerance_frac[absent]0.25
criteria_status.rules[17].descriptionCited physiological ranges (single-study values widened by a 25% tolerance), applied to segments by their expected rhythm; used by the critic and for frame-rate sanity checksA metric is reportable only if its spread across all sensitivity settings is <= 25% of its median (zero spread when all values are 0); otherwise 'unstable, not reportable'
criteria_status.rules[17].expertcardiac electrophysiologist per speciesbiostatistician + optical mapping analyst
criteria_status.rules[17].locationworker/voltage/physiology.py (RANGES, TOLERANCE_FRAC)worker/agents/critic.py (STABLE_FRAC, stability)
criteria_status.rules[17].values.ranges['mouse_spiral_rotation_hz'][absent]
criteria_status.rules[17].values.segment_rhythm_ruleexpected persistent rotors 'present' -> spiral arrhythmia[absent]
criteria_status.rules[17].values.stable_frac[absent]0.25
criteria_status.rules[17].values.tolerance_frac0.25[absent]
criteria_status.rules[17].values.unstable[absent]['light_off.singularity_frames_frac', 'illuminated_arrhythmia.persistent_rotors', 'illuminated_arrhythmia.persistent_rotor_count_max', 'illuminated_arrhythmia.dominant_freq_hz', 'illuminated_after_termination.singularity_frames_frac', 'persistent_rotor_tracks']
criteria_status.rules[18].descriptionA metric is reportable only if its spread across all sensitivity settings is <= 25% of its median (zero spread when all values are 0); otherwise 'unstable, not reportable'The persistent-rotor rule is run at two lifetimes, one measured cycle of the fastest segment and the paper's cited rotation period; both verdicts stored, disagreement flagged
criteria_status.rules[18].expertbiostatistician + optical mapping analystcomputational cardiac electrophysiologist (phase mapping)
criteria_status.rules[18].locationworker/agents/critic.py (STABLE_FRAC, stability)worker/agents/critic.py (persistence_variants)
criteria_status.rules[18].values.measured_cycle[absent]52
criteria_status.rules[18].values.paper_rotation[absent]50
criteria_status.rules[18].values.stable_frac0.25[absent]
criteria_status.rules[18].values.unstable['light_off.singularity_frames_frac', 'illuminated_arrhythmia.persistent_rotors', 'illuminated_arrhythmia.persistent_rotor_count_max', 'illuminated_arrhythmia.dominant_freq_hz', 'illuminated_after_termination.singularity_frames_frac', 'persistent_rotor_tracks'][absent]
pipeline.baseline_rule{'ok': True, 'ratio': 2.171, 'cycles': {'light_off': {'cycle_frames': 411, 'n_activations': 10, 'polarity_used': -1, 'median_interval_ms': 410.9}, 'illuminated_arrhythmia': {'cycle_frames': 52, 'n_activations': 53, 'polarity_used': -1, 'median_interval_ms': 52.25}, 'illuminated_after_termination': {'cycle_frames': 415, 'n_activations': 4, 'polarity_used': -1, 'median_interval_ms': 415.0}}, 'factor': 2.0, 'reason': None, 'source': 'MAP channel (DAQ log)', 'status': 'provisional', 'daq_file': '0111210010.txt', 'baseline_frames': 901, 'slowest_segment': 'illuminated_after_termination', 'required_min_frames': 830, 'slowest_cycle_frames': 415}None
pipeline.check.anomalieslength 4length 3
pipeline.check.anomalies[0].effect_on_analysisThe deposited movie should not be treated as raw camera counts: depositor documentation and measurements indicate masking, temporal smoothing, spatial smoothing, and normalization. The fixed pipeline may still be run, but its Gaussian phase smoothing is added on top of prior filtering of unknown effective total, and any interpretation requiring independent pixel noise or raw photon-count amplitudes would be misleading.The deposited movie should not be treated as raw camera counts: documentation and measurements indicate masking, temporal smoothing, spatial smoothing, and normalization before deposit. The fixed pipeline can still be run, but the protocol spatial_sigma = 1.0 Gaussian for phase is applied on top of prior spatial smoothing, so the total filtering is unknown; noise- or amplitude-dependent interpretations, including SNR and fine spatial structure, should be treated cautiously.
pipeline.check.anomalies[1].effect_on_analysisThe segment boundary at frame 3170 is based on a provisional termination/baseline-step interpretation, not a directly measured light onset. The fixed segment definitions can be analysed as defined, but results should be described relative to the provisional boundary and not as an illumination-on transition.The segment boundary at frame 3170 is usable only as a provisional fluorescence baseline/rhythm-change or inferred termination boundary. DAQ and photodiode evidence indicate illumination was already on before frame 0 and turned off at frame 4977, so analyses must not interpret frame 3170 as light onset.
pipeline.check.anomalies[2].effect_on_analysisBlue-light crosstalk, re-normalization by stimulation-light signal, a large slow baseline range, and a baseline step can affect absolute baseline and amplitude. The fixed phase/rotor pipeline can proceed, but baseline- or amplitude-dependent interpretations need caution.Blue-light crosstalk, re-normalization to the stimulation-light signal, a large slow baseline range, and a baseline step can bias absolute fluorescence baseline and amplitude measures. The fixed high-pass baseline window and phase analysis may proceed, but baseline/amplitude results and event-related changes need caveats.
pipeline.check.methods_textUsing the provisional parameter set version 3, with provisional segment definitions and provisional criteria, the recording was checked under the Mouse whole heart optical mapping (Luther lab) protocol with baseline_frames = 901, spatial_sigma = 1.0, spatial_truncate = 4.0, pad_frames = 500, rotor_threshold = 0.9, rotor_erode_px = 3, link_px = 4.0, max_gap = 5, min_cycles = 1.0, pair_dist_px = 3.0, paired_frac = 0.5, and render_step = 4. The recording has 9267 frames in npy format with image size 64 × 55, frame rate 1000 Hz from the publication, and pixel size 133 µm from the publication. The analysed window is frames 500–8767; the provisional segments are illuminated_arrhythmia, frames 0–3170; illuminated_after_termination, frames 3170–4977; and light_off, frames 4977–9267.For this run, the provisional parameter set and criteria are protocol f65d786f-f194-4be2-88b8-10d3dd25d674 version 3 with baseline_frames = 901, spatial_sigma = 1.0, spatial_truncate = 4.0, pad_frames = 500, rotor_threshold = 0.9, rotor_erode_px = 3, link_px = 4.0, max_gap = 5, min_cycles = 1.0, pair_dist_px = 3.0, paired_frac = 0.5, and render_step = 4. The frame rate is 1000 Hz from the publication, and the pixel size is 133 µm from the publication. The analysed window is frames 500 to 8767. The provisional segment definitions are illuminated_arrhythmia, frames 0 to 3170; illuminated_after_termination, frames 3170 to 4977; and light_off, frames 4977 to 9267.
pipeline.check.rationaleThe protocol is the intended mouse whole-heart optical-mapping protocol for this public reference recording, and the recording facts do not conflict with the protocol: the frame rate is 1000 Hz from the publication, the pixel size is 133 µm from the publication, and the 64 × 55 deposited movie is consistent with a cropped version of the 64 × 64 camera acquisition. The fixed version-3 parameters are therefore applicable as provisional pipeline settings, and the coded baseline-window rule passes for the slowest segment. The main limitations are not protocol mismatches but interpretation caveats: the deposited data are already masked, smoothed, and normalized; frame 3170 is a provisional termination/baseline-step boundary rather than light onset; and illumination/crosstalk/normalization affect baseline and amplitude.The recording fits the mouse whole-heart Luther-lab protocol as available: the species and tissue agree, the publication-supported frame rate is 1000 Hz, and the 64 × 55 deposited image is consistent with a cropped version of the 64 × 64 camera acquisition described in the paper rather than a protocol conflict. The protocol has no fixed indicator, frame-rate, pixel-size, or image-size value that is contradicted by the recording facts. With the fixed version 3 baseline_frames = 901, the baseline window spans more than the caveated minimum cycle coverage in each segment at the measured dominant rhythms, so the frame-based temporal parameters are not made inappropriate by this recording. The main limitations are not blocking mismatches but warnings: prior smoothing/normalization, provisional event interpretation at frame 3170, and illumination-related baseline artifacts affect interpretation of filtered, amplitude, and event-aligned outputs.
methods_textUsing the provisional parameter set version 3, with provisional segment definitions and provisional criteria, the recording was checked under the Mouse whole heart optical mapping (Luther lab) protocol with baseline_frames = 901, spatial_sigma = 1.0, spatial_truncate = 4.0, pad_frames = 500, rotor_threshold = 0.9, rotor_erode_px = 3, link_px = 4.0, max_gap = 5, min_cycles = 1.0, pair_dist_px = 3.0, paired_frac = 0.5, and render_step = 4. The recording has 9267 frames in npy format with image size 64 × 55, frame rate 1000 Hz from the publication, and pixel size 133 µm from the publication. The analysed window is frames 500–8767; the provisional segments are illuminated_arrhythmia, frames 0–3170; illuminated_after_termination, frames 3170–4977; and light_off, frames 4977–9267.For this run, the provisional parameter set and criteria are protocol f65d786f-f194-4be2-88b8-10d3dd25d674 version 3 with baseline_frames = 901, spatial_sigma = 1.0, spatial_truncate = 4.0, pad_frames = 500, rotor_threshold = 0.9, rotor_erode_px = 3, link_px = 4.0, max_gap = 5, min_cycles = 1.0, pair_dist_px = 3.0, paired_frac = 0.5, and render_step = 4. The frame rate is 1000 Hz from the publication, and the pixel size is 133 µm from the publication. The analysed window is frames 500 to 8767. The provisional segment definitions are illuminated_arrhythmia, frames 0 to 3170; illuminated_after_termination, frames 3170 to 4977; and light_off, frames 4977 to 9267.
Statusdone
Stagedone
Heartbeat23:09:22
Log2 entries