SignatureRun

M13Rec001, run bdcc4054

Status done, stage done; requested by project lead; worker [not recorded]; started 2026-10-27 20:04 UTC, finished 2026-10-27 20:06 UTC, 126 s; signature 70790eff

Stages

StageStartedSeconds
[no stage log; run predates stage timing]

Log

TimeAgentActionDetail
20:04:21runsrun started{"recording_id": "55cb4aa3-6502-45a6-a14c-85cb676fe8c3", "run_id": "bdcc4054-afd1-471f-be3e-ac5130cfd37c"}
20:06:26runssignature written{"criteria": "provisional", "holds": {"persistent_rotors": false, "persistent_rotors_fraction_superseded": false, "singularities": true}, "run_id": "bdcc4054-afd1-471f-be3e-ac5130cfd37c", "signature_id": "70790eff-685b-44a4-ae69-346f9e0a8fbb"}

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 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
[no critic verdict for this run]

Compare with run d524f527

A: this run, code 701ee65, None workers. B: run d524f527, 2026-10-27 02:31 UTC, code da0b6c7, None workers. 148 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
movie.mp429403612926877nosize in bytes only; frames not compared
Stored ValueAB
metrics.persistent_rotor_durations[{'end': 3126, 'start': 3049, 'charge': -1, 'lifetime_cycles': 1.5, 'lifetime_frames': 78, 'frames_in_segment': 78}][absent]
metrics.persistent_rotors1[absent]
metrics.segments.after_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
metrics.segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
metrics.segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.11641791044776119}
metrics.segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3126, 'start': 3049, 'charge': -1, 'lifetime_cycles': 1.5, 'lifetime_frames': 78, 'frames_in_segment': 78}], 'persistent_rotor_frames_frac': 0.11641791044776119}[absent]
filter_params.window.illuminationAcquisition log (0111210010.txt, LED trigger channel, provisional interpretation): illumination on throughout the analysed frames 2500-4300.[absent]
filter_params.window.illumination_on[absent]{'frame': 3170, 'detected': True, 'event_id': '42ba71e2-c2c4-4833-abc2-467506ec90a1', 'uncertainty_frames': 17}
filter_params.window.segment_cycles_frames.after_light[absent]141
filter_params.window.segment_cycles_frames.after_step141[absent]
filter_params.window.segment_cycles_frames.before_light[absent]52
filter_params.window.segment_cycles_frames.before_step52[absent]
filter_params.window.segments.after_light[absent][3170, 4300]
filter_params.window.segments.after_step[3170, 4300][absent]
filter_params.window.segments.before_light[absent][2500, 3170]
filter_params.window.segments.before_step[2500, 3170][absent]
filter_params.window.split_event{'kind': 'baseline_step', 'cause': 'not established', 'frame': 3170, 'source': 'image', 'event_id': '46c59a51-1a01-4aed-8021-db9a63720a1d', 'uncertainty_frames': 17}[absent]
sensitivity.findings.persistent_rotors.criterioncount(before) >= 1 and count(after) <= 0, with before='before_step', after='after_step', at every settingfrac(before_light) >= 0.1 and >= 2.0 x frac(after_light), at every level
sensitivity.findings.persistent_rotors.findingpersistent rotors in 'before_step' but not (or less in) 'after_step'persistent rotors more frequent in 'before_light' than 'after_light'
sensitivity.findings.persistent_rotors.holds_across_filtersTrueFalse
sensitivity.findings.persistent_rotors.label_across_filtersholds (provisional)does not hold (provisional)
sensitivity.findings.persistent_rotors_fraction_superseded{'finding': "persistent rotors in 'before_step' but not (or less in) 'after_step'", 'criterion': "frac(before) >= 0.1 and >= 2.0 x frac(after) (superseded: fraction rule applied to persistent rotors), with before='before_step', after='after_step', at every setting", 'superseded': True, 'holds_across_filters': False, 'label_across_filters': 'does not hold (provisional)', 'holds_across_trackers': False, 'label_across_trackers': 'does not hold (provisional)'}[absent]
sensitivity.findings.singularities.criterionfrac(before) >= 0.1 and >= 2.0 x frac(after), with before='before_step', after='after_step', at every settingfrac(before_light) >= 0.1 and >= 2.0 x frac(after_light), at every level
sensitivity.findings.singularities.findingsingularities in 'before_step' but not (or less in) 'after_step'singularities more frequent in 'before_light' than 'after_light'
sensitivity.fixed.segments.after_light[absent][3170, 4300]
sensitivity.fixed.segments.after_step[3170, 4300][absent]
sensitivity.fixed.segments.before_light[absent][2500, 3170]
sensitivity.fixed.segments.before_step[2500, 3170][absent]
sensitivity.grid[0].findings.persistent_rotors.before10.08059701492537313
sensitivity.grid[0].findings.persistent_rotors.holdsTrueFalse
sensitivity.grid[0].findings.persistent_rotors.labelholds (provisional)does not hold (provisional)
sensitivity.grid[0].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [54]}[absent]
sensitivity.grid[0].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[0].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.08059701492537313}[absent]
sensitivity.grid[0].segments.after_light[absent]{'singularity_count_max': 12, 'singularity_count_mean': 0.13008849557522123, 'singularity_frames_frac': 0.0584070796460177, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[0].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 12, 'singularity_count_mean': 0.13008849557522123, 'singularity_frames_frac': 0.0584070796460177, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[0].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5402985074626866, 'singularity_frames_frac': 0.3761194029850746, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.08059701492537313}
sensitivity.grid[0].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5402985074626866, 'singularity_frames_frac': 0.3761194029850746, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3046, 'start': 2993, 'charge': -1, 'lifetime_cycles': 1.04, 'lifetime_frames': 54, 'frames_in_segment': 54}], 'persistent_rotor_frames_frac': 0.08059701492537313}[absent]
sensitivity.grid[1].findings.persistent_rotors.before10.08059701492537313
sensitivity.grid[1].findings.persistent_rotors.holdsTrueFalse
sensitivity.grid[1].findings.persistent_rotors.labelholds (provisional)does not hold (provisional)
sensitivity.grid[1].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [54]}[absent]
sensitivity.grid[1].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[1].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.08059701492537313}[absent]
sensitivity.grid[1].segments.after_light[absent]{'singularity_count_max': 8, 'singularity_count_mean': 0.11150442477876106, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[1].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 8, 'singularity_count_mean': 0.11150442477876106, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[1].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5313432835820896, 'singularity_frames_frac': 0.3701492537313433, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.08059701492537313}
sensitivity.grid[1].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5313432835820896, 'singularity_frames_frac': 0.3701492537313433, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3046, 'start': 2993, 'charge': -1, 'lifetime_cycles': 1.04, 'lifetime_frames': 54, 'frames_in_segment': 54}], 'persistent_rotor_frames_frac': 0.08059701492537313}[absent]
sensitivity.grid[2].findings.persistent_rotors.before10.08059701492537313
sensitivity.grid[2].findings.persistent_rotors.holdsTrueFalse
sensitivity.grid[2].findings.persistent_rotors.labelholds (provisional)does not hold (provisional)
sensitivity.grid[2].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [54]}[absent]
sensitivity.grid[2].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[2].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.08059701492537313}[absent]
sensitivity.grid[2].segments.after_light[absent]{'singularity_count_max': 6, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05398230088495575, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[2].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 6, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05398230088495575, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[2].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.48955223880597015, 'singularity_frames_frac': 0.35522388059701493, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.08059701492537313}
sensitivity.grid[2].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.48955223880597015, 'singularity_frames_frac': 0.35522388059701493, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3045, 'start': 2992, 'charge': -1, 'lifetime_cycles': 1.04, 'lifetime_frames': 54, 'frames_in_segment': 54}], 'persistent_rotor_frames_frac': 0.08059701492537313}[absent]
sensitivity.grid[3].findings.persistent_rotors.before10.11641791044776119
sensitivity.grid[3].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [78]}[absent]
sensitivity.grid[3].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[3].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11641791044776119}[absent]
sensitivity.grid[3].segments.after_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.10442477876106195, 'singularity_frames_frac': 0.05929203539823009, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[3].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 4, 'singularity_count_mean': 0.10442477876106195, 'singularity_frames_frac': 0.05929203539823009, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[3].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5716417910447761, 'singularity_frames_frac': 0.4, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.11641791044776119}
sensitivity.grid[3].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5716417910447761, 'singularity_frames_frac': 0.4, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3126, 'start': 3049, 'charge': -1, 'lifetime_cycles': 1.5, 'lifetime_frames': 78, 'frames_in_segment': 78}], 'persistent_rotor_frames_frac': 0.11641791044776119}[absent]
sensitivity.grid[4].findings.persistent_rotors.before10.11641791044776119
sensitivity.grid[4].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [78]}[absent]
sensitivity.grid[4].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[4].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11641791044776119}[absent]
sensitivity.grid[4].segments.after_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[4].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[4].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.11641791044776119}
sensitivity.grid[4].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3126, 'start': 3049, 'charge': -1, 'lifetime_cycles': 1.5, 'lifetime_frames': 78, 'frames_in_segment': 78}], 'persistent_rotor_frames_frac': 0.11641791044776119}[absent]
sensitivity.grid[5].findings.persistent_rotors.before10.11492537313432835
sensitivity.grid[5].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [77]}[absent]
sensitivity.grid[5].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[5].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11492537313432835}[absent]
sensitivity.grid[5].segments.after_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.07168141592920355, 'singularity_frames_frac': 0.049557522123893805, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[5].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 4, 'singularity_count_mean': 0.07168141592920355, 'singularity_frames_frac': 0.049557522123893805, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[5].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5238805970149254, 'singularity_frames_frac': 0.373134328358209, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.11492537313432835}
sensitivity.grid[5].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5238805970149254, 'singularity_frames_frac': 0.373134328358209, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3125, 'start': 3049, 'charge': -1, 'lifetime_cycles': 1.48, 'lifetime_frames': 77, 'frames_in_segment': 77}], 'persistent_rotor_frames_frac': 0.11492537313432835}[absent]
sensitivity.grid[6].findings.persistent_rotors.before10.20597014925373133
sensitivity.grid[6].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [138]}[absent]
sensitivity.grid[6].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[6].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.20597014925373133}[absent]
sensitivity.grid[6].segments.after_light[absent]{'singularity_count_max': 7, 'singularity_count_mean': 0.09911504424778761, 'singularity_frames_frac': 0.05398230088495575, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[6].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 7, 'singularity_count_mean': 0.09911504424778761, 'singularity_frames_frac': 0.05398230088495575, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[6].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5283582089552239, 'singularity_frames_frac': 0.39850746268656717, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.20597014925373133}
sensitivity.grid[6].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5283582089552239, 'singularity_frames_frac': 0.39850746268656717, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3127, 'start': 2990, 'charge': -1, 'lifetime_cycles': 2.65, 'lifetime_frames': 138, 'frames_in_segment': 138}], 'persistent_rotor_frames_frac': 0.20597014925373133}[absent]
sensitivity.grid[7].findings.persistent_rotors.before10.20597014925373133
sensitivity.grid[7].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [138]}[absent]
sensitivity.grid[7].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[7].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.20597014925373133}[absent]
sensitivity.grid[7].segments.after_light[absent]{'singularity_count_max': 6, 'singularity_count_mean': 0.09115044247787611, 'singularity_frames_frac': 0.05398230088495575, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[7].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 6, 'singularity_count_mean': 0.09115044247787611, 'singularity_frames_frac': 0.05398230088495575, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[7].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5268656716417911, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.20597014925373133}
sensitivity.grid[7].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5268656716417911, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3127, 'start': 2990, 'charge': -1, 'lifetime_cycles': 2.65, 'lifetime_frames': 138, 'frames_in_segment': 138}], 'persistent_rotor_frames_frac': 0.20597014925373133}[absent]
sensitivity.grid[8].findings.persistent_rotors.before10.21044776119402986
sensitivity.grid[8].findings.persistent_rotors.lifetimes_frames{'after_step': [], 'before_step': [141]}[absent]
sensitivity.grid[8].findings.persistent_rotors.ratio[absent]None
sensitivity.grid[8].findings.persistent_rotors_fraction_superseded{'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.21044776119402986}[absent]
sensitivity.grid[8].segments.after_light[absent]{'singularity_count_max': 6, 'singularity_count_mean': 0.06991150442477877, 'singularity_frames_frac': 0.04601769911504425, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.grid[8].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 6, 'singularity_count_mean': 0.06991150442477877, 'singularity_frames_frac': 0.04601769911504425, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.grid[8].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.4955223880597015, 'singularity_frames_frac': 0.3850746268656716, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.21044776119402986}
sensitivity.grid[8].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.4955223880597015, 'singularity_frames_frac': 0.3850746268656716, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3130, 'start': 2990, 'charge': -1, 'lifetime_cycles': 2.71, 'lifetime_frames': 141, 'frames_in_segment': 141}], 'persistent_rotor_frames_frac': 0.21044776119402986}[absent]
sensitivity.holds.persistent_rotors_fraction_supersededFalse[absent]
sensitivity.trackers[0].finding[absent]{'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.0}
sensitivity.trackers[0].findings{'persistent_rotors': {'after': 0, 'holds': False, 'label': 'does not hold (provisional)', 'before': 0, 'lifetimes_frames': {'after_step': [], 'before_step': []}}, 'persistent_rotors_fraction_superseded': {'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.0}}[absent]
sensitivity.trackers[0].segments.after_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.trackers[0].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.trackers[0].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.trackers[0].segments.before_step{'persistent_rotors': 0, 'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.trackers[1].finding[absent]{'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11641791044776119}
sensitivity.trackers[1].findings{'persistent_rotors': {'after': 0, 'holds': True, 'label': 'holds (provisional)', 'before': 1, 'lifetimes_frames': {'after_step': [], 'before_step': [78]}}, 'persistent_rotors_fraction_superseded': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11641791044776119}}[absent]
sensitivity.trackers[1].segments.after_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.trackers[1].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.trackers[1].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.11641791044776119}
sensitivity.trackers[1].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3126, 'start': 3049, 'charge': -1, 'lifetime_cycles': 1.5, 'lifetime_frames': 78, 'frames_in_segment': 78}], 'persistent_rotor_frames_frac': 0.11641791044776119}[absent]
sensitivity.trackers[2].finding[absent]{'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.20298507462686566}
sensitivity.trackers[2].findings{'persistent_rotors': {'after': 0, 'holds': True, 'label': 'holds (provisional)', 'before': 1, 'lifetimes_frames': {'after_step': [], 'before_step': [136]}}, 'persistent_rotors_fraction_superseded': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.20298507462686566}}[absent]
sensitivity.trackers[2].segments.after_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_frames_frac': 0.0}
sensitivity.trackers[2].segments.after_step{'persistent_rotors': 0, 'singularity_count_max': 4, 'singularity_count_mean': 0.09469026548672567, 'singularity_frames_frac': 0.05663716814159292, 'persistent_rotor_count_max': 0, 'persistent_rotor_durations': [], 'persistent_rotor_frames_frac': 0.0}[absent]
sensitivity.trackers[2].segments.before_light[absent]{'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_frames_frac': 0.20298507462686566}
sensitivity.trackers[2].segments.before_step{'persistent_rotors': 1, 'singularity_count_max': 4, 'singularity_count_mean': 0.5656716417910448, 'singularity_frames_frac': 0.3970149253731343, 'persistent_rotor_count_max': 1, 'persistent_rotor_durations': [{'end': 3126, 'start': 2991, 'charge': -1, 'lifetime_cycles': 2.62, 'lifetime_frames': 136, 'frames_in_segment': 136}], 'persistent_rotor_frames_frac': 0.20298507462686566}[absent]
criteria_status.ruleslength 13length 11
criteria_status.rules[9].descriptionBaseline step = consensus upward step in tissue-mean raw baseline (cause not inferred; first misread as light onset, contradicted by the DAQ)Illumination onset = consensus upward step in tissue-mean raw baseline
criteria_status.rules[9].expertoptical mapping experimentalistoptogenetics / optical mapping experimentalist
criteria_status.rules[9].locationworker/voltage/events.py (detect_baseline_step)worker/voltage/events.py (detect_illumination_onset)
criteria_status.rules[9].values.event_id46c59a51-1a01-4aed-8021-db9a63720a1d42ba71e2-c2c4-4833-abc2-467506ec90a1
criteria_status.rules[10].descriptionDAQ channel names from depositor notebook; frames = first N triggers of closest burst; midpoint thresholdsBefore/after rotor finding holds if frac(before) >= min_frac and >= min_ratio x frac(after) at every sensitivity level
criteria_status.rules[10].expertexperimentalist who recorded the data (or the depositor)cardiac electrophysiologist + biostatistician
criteria_status.rules[10].locationworker/voltage/daq.pyworker/voltage/sensitivity.py (rotor_sensitivity)
criteria_status.rules[10].values.files['0111210010.txt'][absent]
criteria_status.rules[10].values.min_frac[absent]0.1
criteria_status.rules[10].values.min_ratio[absent]2.0
pipeline.params.window.illuminationAcquisition log (0111210010.txt, LED trigger channel, provisional interpretation): illumination on throughout the analysed frames 2500-4300.[absent]
pipeline.params.window.illumination_on[absent]{'frame': 3170, 'detected': True, 'event_id': '42ba71e2-c2c4-4833-abc2-467506ec90a1', 'uncertainty_frames': 17}
pipeline.params.window.segment_cycles_frames.after_light[absent]141
pipeline.params.window.segment_cycles_frames.after_step141[absent]
pipeline.params.window.segment_cycles_frames.before_light[absent]52
pipeline.params.window.segment_cycles_frames.before_step52[absent]
pipeline.params.window.segments.after_light[absent][3170, 4300]
pipeline.params.window.segments.after_step[3170, 4300][absent]
pipeline.params.window.segments.before_light[absent][2500, 3170]
pipeline.params.window.segments.before_step[2500, 3170][absent]
pipeline.params.window.split_event{'kind': 'baseline_step', 'cause': 'not established', 'frame': 3170, 'source': 'image', 'event_id': '46c59a51-1a01-4aed-8021-db9a63720a1d', 'uncertainty_frames': 17}[absent]
methods_textRecording Mouse heart, spiral wave and optogenetic termination (M13Rec001) (doi:10.5281/zenodo.10228296; 64x55 px, 9267 frames, frame rate not stated) was analysed over frames 2500-4300. Deposit shows signs of prior processing (provisional): negative values, non integer, nan mask all frames, 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 (inverted) 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 >= 52 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. Acquisition log (0111210010.txt, LED trigger channel, provisional interpretation): illumination on throughout the analysed frames 2500-4300. Segments were split at a baseline step detected at frame 3170 (+/- 17, source: image, provisional; cause not established): before_step 2500-3170, after_step 3170-4300. Sensitivity: baseline 241, 121, 81 frames x sigma 0.5, 1.0, 2.0 px, and tracker variants. Finding 'singularities in 'before_step' but not (or less in) 'after_step'': across filters holds (provisional). Finding 'persistent rotors in 'before_step' but not (or less in) 'after_step'': across filters holds (provisional); across trackers does not hold (provisional). Finding 'persistent rotors in 'before_step' but not (or less in) 'after_step'': across filters does not hold (provisional); across trackers does not hold (provisional). All thresholds and criteria are provisional pending review by a domain scientist.Recording Mouse heart, spiral wave and optogenetic termination (M13Rec001) (doi:10.5281/zenodo.10228296; 64x55 px, 9267 frames, frame rate not stated) was analysed over frames 2500-4300. Deposit shows signs of prior processing (provisional): negative values, non integer, nan mask all frames, 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 (inverted) 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 >= 52 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. Illumination onset was detected at frame 3170 (+/- 17) as a step in the tissue-mean raw baseline (provisional detector); segments: before_light 2500-3170, after_light 3170-4300. Sensitivity: baseline 241, 121, 81 frames x sigma 0.5, 1.0, 2.0 px, and tracker variants. Finding 'singularities more frequent in 'before_light' than 'after_light'': across filters holds (provisional). Finding 'persistent rotors more frequent in 'before_light' than 'after_light'': across filters does not hold (provisional); across trackers does not hold (provisional). All thresholds and criteria are provisional pending review by a domain scientist.
Statusdone
Stagedone
Heartbeat–
Log2 entries