| 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 | 52 | [absent] |
| metrics.paired_singularity_frac | 0.037037037037037035 | [absent] |
| metrics.persistent_rotor_count_max | 1 | [absent] |
| metrics.persistent_rotor_frames_frac | 0.043333333333333335 | [absent] |
| metrics.persistent_rotor_lifetimes | [78] | [absent] |
| metrics.persistent_rotor_tracks | 1 | [absent] |
| metrics.rotor_count_max | [absent] | 4 |
| metrics.rotor_count_mean | [absent] | 0.27 |
| metrics.rotor_frames_frac | [absent] | 0.18333333333333332 |
| metrics.segments | {'after_light': {'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}, 'before_light': {'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}} | [absent] |
| metrics.singularity_count_max | 4 | [absent] |
| metrics.singularity_count_mean | 0.27 | [absent] |
| metrics.singularity_frames_frac | 0.18333333333333332 | [absent] |
| metrics.tracks | 119 | [absent] |
| filter_params.tracking | {'link_px': 4.0, 'max_gap': 5, 'min_cycles': 1.0, 'min_frames': 52, 'paired_frac': 0.5, 'pair_dist_px': 3.0} | [absent] |
| filter_params.window.illumination_on | {'frame': 3170, 'detected': True, 'event_id': '42ba71e2-c2c4-4833-abc2-467506ec90a1', 'uncertainty_frames': 17} | [absent] |
| filter_params.window.light_on_frame | [absent] | 3200 |
| filter_params.window.segment_cycles_frames | {'after_light': 141, 'before_light': 52} | [absent] |
| filter_params.window.segments.after_light[0] | 3170 | 3200 |
| filter_params.window.segments.before_light[1] | 3170 | 3200 |
| sensitivity.criterion | [absent] | at every level: frac(before_light) >= 0.1 and >= 2.0 x frac(after_light) |
| sensitivity.finding | [absent] | rotor-frame fraction higher in 'before_light' than 'after_light' |
| sensitivity.findings | {'singularities': {'finding': "singularities more frequent in 'before_light' than 'after_light'", 'criterion': 'frac(before_light) >= 0.1 and >= 2.0 x frac(after_light), at every level', 'holds_across_filters': True, 'label_across_filters': 'holds (provisional)'}, 'persistent_rotors': {'finding': "persistent rotors more frequent in 'before_light' than 'after_light'", 'criterion': 'frac(before_light) >= 0.1 and >= 2.0 x frac(after_light), at every level', 'holds_across_filters': False, 'label_across_filters': 'does not hold (provisional)', 'holds_across_trackers': False, 'label_across_trackers': 'does not hold (provisional)'}} | [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 | 52 | [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 | {'after_light': [3170, 4300], 'before_light': [2500, 3170]} | [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 | [2500, 4300] | [absent] |
| sensitivity.grid | [{'sigma': 'light', 'baseline': 'light', 'findings': {'singularities': {'after': 0.0584070796460177, 'holds': True, 'label': 'holds (provisional)', 'ratio': 6.439620081411126, 'before': 0.3761194029850746}, 'persistent_rotors': {'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.08059701492537313}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 0.5, 'baseline_frames': 241, 'persistent_rotor_tracks': 1}, {'sigma': 'default', 'baseline': 'light', 'findings': {'singularities': {'after': 0.05663716814159292, 'holds': True, 'label': 'holds (provisional)', 'ratio': 6.53544776119403, 'before': 0.3701492537313433}, 'persistent_rotors': {'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.08059701492537313}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 1.0, 'baseline_frames': 241, 'persistent_rotor_tracks': 1}, {'sigma': 'heavier', 'baseline': 'light', 'findings': {'singularities': {'after': 0.05398230088495575, 'holds': True, 'label': 'holds (provisional)', 'ratio': 6.58037680450208, 'before': 0.35522388059701493}, 'persistent_rotors': {'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.08059701492537313}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 2.0, 'baseline_frames': 241, 'persistent_rotor_tracks': 1}, {'sigma': 'light', 'baseline': 'default', 'findings': {'singularities': {'after': 0.05929203539823009, 'holds': True, 'label': 'holds (provisional)', 'ratio': 6.746268656716419, 'before': 0.4}, 'persistent_rotors': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11641791044776119}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 0.5, 'baseline_frames': 121, 'persistent_rotor_tracks': 1}, {'sigma': 'default', 'baseline': 'default', 'findings': {'singularities': {'after': 0.05663716814159292, 'holds': True, 'label': 'holds (provisional)', 'ratio': 7.009794776119403, 'before': 0.3970149253731343}, 'persistent_rotors': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11641791044776119}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 1.0, 'baseline_frames': 121, 'persistent_rotor_tracks': 1}, {'sigma': 'heavier', 'baseline': 'default', 'findings': {'singularities': {'after': 0.049557522123893805, 'holds': True, 'label': 'holds (provisional)', 'ratio': 7.529317697228145, 'before': 0.373134328358209}, 'persistent_rotors': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11492537313432835}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 2.0, 'baseline_frames': 121, 'persistent_rotor_tracks': 1}, {'sigma': 'light', 'baseline': 'heavier', 'findings': {'singularities': {'after': 0.05398230088495575, 'holds': True, 'label': 'holds (provisional)', 'ratio': 7.382187423538047, 'before': 0.39850746268656717}, 'persistent_rotors': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.20597014925373133}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 0.5, 'baseline_frames': 81, 'persistent_rotor_tracks': 1}, {'sigma': 'default', 'baseline': 'heavier', 'findings': {'singularities': {'after': 0.05398230088495575, 'holds': True, 'label': 'holds (provisional)', 'ratio': 7.354538781502324, 'before': 0.3970149253731343}, 'persistent_rotors': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.20597014925373133}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 1.0, 'baseline_frames': 81, 'persistent_rotor_tracks': 1}, {'sigma': 'heavier', 'baseline': 'heavier', 'findings': {'singularities': {'after': 0.04601769911504425, 'holds': True, 'label': 'holds (provisional)', 'ratio': 8.36796785304248, 'before': 0.3850746268656716}, 'persistent_rotors': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.21044776119402986}}, 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'spatial_sigma': 2.0, 'baseline_frames': 81, 'persistent_rotor_tracks': 1}] | [absent] |
| sensitivity.holds | {'singularities': True, 'persistent_rotors': False} | True |
| sensitivity.levels | [absent] | {'light': {'holds': True, 'ratio': 6.285714285714286, 'segments': {'after_light': {'rotor_count_max': 4, 'rotor_count_mean': 0.10727272727272727, 'rotor_frames_frac': 0.060909090909090906}, 'before_light': {'rotor_count_max': 4, 'rotor_count_mean': 0.5471428571428572, 'rotor_frames_frac': 0.38285714285714284}}, 'spatial_sigma': 0.5}, 'default': {'holds': True, 'ratio': 6.53125, 'segments': {'after_light': {'rotor_count_max': 4, 'rotor_count_mean': 0.09727272727272727, 'rotor_frames_frac': 0.05818181818181818}, 'before_light': {'rotor_count_max': 4, 'rotor_count_mean': 0.5414285714285715, 'rotor_frames_frac': 0.38}}, 'spatial_sigma': 1.0}, 'heavier': {'holds': True, 'ratio': 7.01530612244898, 'segments': {'after_light': {'rotor_count_max': 4, 'rotor_count_mean': 0.07363636363636364, 'rotor_frames_frac': 0.05090909090909091}, 'before_light': {'rotor_count_max': 4, 'rotor_count_mean': 0.5014285714285714, 'rotor_frames_frac': 0.35714285714285715}}, 'spatial_sigma': 2.0}} |
| sensitivity.status | provisional | [absent] |
| sensitivity.trackers | [{'finding': {'after': 0.0, 'holds': False, 'label': 'does not hold (provisional)', 'ratio': None, 'before': 0.0}, 'link_px': 2.0, 'max_gap': 1, 'tracker': 'strict', 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'persistent_rotor_tracks': 0}, {'finding': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.11641791044776119}, 'link_px': 4.0, 'max_gap': 5, 'tracker': 'default', 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'persistent_rotor_tracks': 1}, {'finding': {'after': 0.0, 'holds': True, 'label': 'holds (provisional)', 'ratio': None, 'before': 0.20298507462686566}, 'link_px': 6.0, 'max_gap': 10, 'tracker': 'loose', 'segments': {'after_light': {'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}, 'before_light': {'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}}, 'persistent_rotor_tracks': 1}] | [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] | [2500, 4300] |
| 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 11 | length 0 |
| criteria_status.superseded_by_run | [absent] | d524f527-48e8-4b73-be5c-3015b38033de |
| rotor_count | 1 | 4 |
| 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': 52, 'paired_frac': 0.5, 'pair_dist_px': 3.0} | [absent] |
| pipeline.params.window | {'f0': 2500, 'f1': 4300, 'segments': {'after_light': [3170, 4300], 'before_light': [2500, 3170]}, 'illumination_on': {'frame': 3170, 'detected': True, 'event_id': '42ba71e2-c2c4-4833-abc2-467506ec90a1', 'uncertainty_frames': 17}, 'segment_cycles_frames': {'after_light': 141, 'before_light': 52}} | [absent] |
| pipeline.deposit_checks | {'flags': [{'flag': 'negative_values', 'value': 0.3231635934819897, 'suggests': 'baseline-subtracted or normalized; raw fluorescence counts are non-negative', 'threshold': 0.01}, {'flag': 'non_integer', 'value': 0.0, 'suggests': 'not raw camera counts (camera output is integer); weak alone', 'threshold': 0.5}, {'flag': 'nan_mask_all_frames', 'value': 1188, 'suggests': 'tissue masked by depositor; the mask is theirs'}, {'flag': 'temporal_smoothing', 'value': 0.9120054707808141, 'suggests': 'temporally low-pass filtered (white shot noise gives dV lag-1 autocorr near -0.5)', 'threshold': 0.5}, {'flag': 'spatial_smoothing', 'value': 0.9957938301611564, 'suggests': 'spatially filtered or binned (shot noise is independent between pixels)', 'threshold': 0.8}], 'status': 'provisional', 'measures': {'max': 4.49806547164917, 'min': -6.050762176513672, 'frames_used': 2000, 'integer_frac': 0.0, 'negative_frac': 0.3231635934819897, 'frames_with_nan': 9267, 'dv_lag1_autocorr_median': 0.9120054707808141, 'neighbour_dv_corr_median': 0.9957938301611564}, '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 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. | 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. 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. Sensitivity was tested by repeating detection at sigma 0.5, 1.0, 2.0 px. Criterion (at every level: frac(before_light) >= 0.1 and >= 2.0 x frac(after_light)): holds at all levels. |