{
 "exported_at": "2026-10-28T23:57:55.302627+00:00",
 "exported_by": {
  "app": "quantetta-a web",
  "code": {
   "git_commit": "",
   "dirty": false
  }
 },
 "recording_short": "M13Rec001",
 "header": {
  "short": "M13Rec001",
  "label": "Mouse heart, spiral wave and optogenetic termination",
  "facts": "64 \u00d7 55 px, 9,267 frames, 1 kHz, 133 \u00b5m/px, deposit checks: negative values, nan mask all frames, temporal smoothing, spatial smoothing",
  "run_short": "339921d8",
  "run_when": "2026-10-28 18:40 UTC",
  "params_version": 3,
  "commit": "008c2dc",
  "dirty": true,
  "workers": 9,
  "sig_short": "9b40a32d",
  "run_status": "done",
  "protocol_name": "Mouse whole heart optical mapping (Luther lab)"
 },
 "parameters": "% Mouse whole heart optical mapping (Luther lab), v3, read-only\n% set by developer (not a domain scientist); provisional, REVIEW_NEEDED 16\nbaseline_frames  = 901;     % >= 2 x slowest cycle (415, MAP): ok\npad_frames       = 500;     % each side, outside the window\nspatial_sigma    = 1.0;     % px, Gaussian, phase only\nspatial_truncate = 4.0;     % kernel radius, sigma\nlowpass          = [];      % none\npolarity         = -1;      % measured, skew of dV/dt\nrotor_threshold  = 0.9;     % turns, |winding| per plaquette\nrotor_erode_px   = 3;       % px from tissue edge ignored\nlink_px          = 4.0;     % tracking, max step per frame\nmax_gap          = 5;       % frames a track may vanish\nmin_cycles       = 1.0;     % own rotations, min_frames = 52\npair_dist_px     = 3.0;     % opposite-charge pairing\npaired_frac      = 0.5;     % max paired fraction of a track\nrender_step      = 4;       % movie only",
 "segments": [
  {
   "name": "illuminated_arrhythmia",
   "label": "Illumination with arrhythmia",
   "short": "illuminated arrhythmia",
   "defined": "0\u20133,170",
   "analysed": "500\u20133,170",
   "analysed_range": [
    500,
    3170
   ],
   "start": 0,
   "end": 3170,
   "cycle": "52 (n = 53)",
   "expected": "present",
   "bounded": "LED on before frame 0 (DAQ) \u2192 termination step (image, \u00b117 frames)",
   "defined_by": "project lead (not a domain scientist), following the paper's design",
   "citation": {
    "ref": "10.1371/journal.pcbi.1011660",
    "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
   },
   "provisional": true
  },
  {
   "name": "illuminated_after_termination",
   "label": "Illumination after termination",
   "short": "after termination",
   "defined": "3,170\u20134,977",
   "analysed": "3,170\u20134,977",
   "analysed_range": [
    3170,
    4977
   ],
   "start": 3170,
   "end": 4977,
   "cycle": "415 (n = 4)",
   "expected": "absent",
   "bounded": "termination step (image, \u00b117 frames) \u2192 illumination off (DAQ, \u00b111 frames)",
   "defined_by": "project lead (not a domain scientist), following the paper's design",
   "citation": {
    "ref": "10.1371/journal.pcbi.1011660",
    "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
   },
   "provisional": true
  },
  {
   "name": "light_off",
   "label": "Light off",
   "short": "light off",
   "defined": "4,977\u20139,267",
   "analysed": "4,977\u20138,767",
   "analysed_range": [
    4977,
    8767
   ],
   "start": 4977,
   "end": 9267,
   "cycle": "411 (n = 10)",
   "expected": "absent",
   "bounded": "illumination off (DAQ, \u00b111 frames) \u2192 recording end",
   "defined_by": "project lead (not a domain scientist), following the paper's design",
   "citation": {
    "ref": "10.1371/journal.pcbi.1011660",
    "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
   },
   "provisional": true
  }
 ],
 "metrics": {
  "maps": {
   "activation": "runs/339921d8-9255-4d78-9789-6816dd8b409c/activation_map.png",
   "dominant_frequency": "runs/339921d8-9255-4d78-9789-6816dd8b409c/dominant_frequency_map.png"
  },
  "frames": 8267,
  "tracks": 337,
  "cv_cm_s": 58.4803184721884,
  "apd50_ms": 16.0,
  "apd90_ms": 75.0,
  "segments": {
   "light_off": {
    "beats": {
     "note": null,
     "beats": 9,
     "per_beat": [
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.08715344145297,
         96.13366212483399
        ],
        "plane_fit": {
         "speed_cm_s": 89.04940504247473,
         "direction_deg": 0.3167798091364441,
         "speed_px_per_frame": 6.695443988155994
        },
        "median_cm_s": 58.07181159481885,
        "pixels_used": 1194,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.0892596572521027,
         7.228094896604059
        ],
        "median_px_per_frame": 4.36630162367059
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          19.0
         ],
         "median": 18.0
        },
        "apd90": {
         "iqr": [
          69.0,
          84.0
         ],
         "median": 82.0
        }
       },
       "window": [
        5110,
        5522
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          19.0
         ],
         "median": 18.0,
         "defined_frac": 0.9982847341337907
        },
        "apd90": {
         "iqr": [
          69.0,
          84.0
         ],
         "median": 82.0,
         "defined_frac": 0.9982847341337907
        }
       },
       "upstroke_frame": 5194,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 4.0,
       "activation_spread_frames": 4.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.50316857778542,
         99.69204754023677
        ],
        "plane_fit": {
         "speed_cm_s": 124.78003603838606,
         "direction_deg": 0.6424059689917385,
         "speed_px_per_frame": 9.381957596871132
        },
        "median_cm_s": 60.78030506707532,
        "pixels_used": 1141,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.1205389908109336,
         7.495642672198253
        ],
        "median_px_per_frame": 4.569947749404159
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          14.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          71.0,
          75.0
         ],
         "median": 74.0
        }
       },
       "window": [
        5522,
        5930
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          14.0
         ],
         "median": 13.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          71.0,
          75.0
         ],
         "median": 74.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 5606,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         38.551422977044496,
         94.24345936735787
        ],
        "plane_fit": {
         "speed_cm_s": 371.30593649764273,
         "direction_deg": 98.83162075774828,
         "speed_px_per_frame": 27.917739586288924
        },
        "median_cm_s": 51.24059731948325,
        "pixels_used": 960,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         2.898603231356729,
         7.085974388523148
        ],
        "median_px_per_frame": 3.8526764901867105
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          19.0
         ],
         "median": 17.0
        },
        "apd90": {
         "iqr": [
          69.0,
          86.0
         ],
         "median": 84.0
        }
       },
       "window": [
        5930,
        6339
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          19.0
         ],
         "median": 17.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          69.0,
          86.0
         ],
         "median": 84.0,
         "defined_frac": 0.9944253859348199
        }
       },
       "upstroke_frame": 6014,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.50178716584498,
         94.13526274502924
        ],
        "plane_fit": {
         "speed_cm_s": 128.85731902625966,
         "direction_deg": -0.8812285500875476,
         "speed_px_per_frame": 9.68852022753832
        },
        "median_cm_s": 60.2329510778377,
        "pixels_used": 1319,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.120435125251502,
         7.0778393041375365
        ],
        "median_px_per_frame": 4.528793314123135
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          15.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          73.0,
          76.0
         ],
         "median": 75.0
        }
       },
       "window": [
        6339,
        6749
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          15.0
         ],
         "median": 14.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          73.0,
          76.0
         ],
         "median": 75.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 6423,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.50300134565827,
         96.60620812601472
        ],
        "plane_fit": {
         "speed_cm_s": 488.34460108611455,
         "direction_deg": 72.7582257180045,
         "speed_px_per_frame": 36.71763917940711
        },
        "median_cm_s": 60.02749879331829,
        "pixels_used": 1288,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.1205264169667872,
         7.263624671128926
        ],
        "median_px_per_frame": 4.513345773933706
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          18.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          70.0,
          85.0
         ],
         "median": 84.0
        }
       },
       "window": [
        6749,
        7161
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          18.0
         ],
         "median": 16.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          70.0,
          85.0
         ],
         "median": 84.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 6833,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.01590639908431,
         95.89186040789127
        ],
        "plane_fit": {
         "speed_cm_s": 546.8403576316728,
         "direction_deg": 82.97692041827592,
         "speed_px_per_frame": 41.11581636328366
        },
        "median_cm_s": 57.988256968155454,
        "pixels_used": 1236,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.083902736773256,
         7.209914316382802
        ],
        "median_px_per_frame": 4.360019320913944
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          14.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          71.0,
          75.0
         ],
         "median": 73.0
        }
       },
       "window": [
        7161,
        7575
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          14.0
         ],
         "median": 13.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          71.0,
          75.0
         ],
         "median": 73.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 7245,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.50308034990866,
         99.02122594786023
        ],
        "plane_fit": {
         "speed_cm_s": 169.01534769335612,
         "direction_deg": 3.001365539620418,
         "speed_px_per_frame": 12.707920879199708
        },
        "median_cm_s": 60.0978660399806,
        "pixels_used": 1171,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.120532357135989,
         7.445204958485731
        ],
        "median_px_per_frame": 4.518636544359444
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          15.0,
          17.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          64.0,
          79.0
         ],
         "median": 78.0
        }
       },
       "window": [
        7575,
        7999
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          15.0,
          17.0
         ],
         "median": 16.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          64.0,
          79.0
         ],
         "median": 78.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 7659,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.4760779949811,
         96.64027636902014
        ],
        "plane_fit": {
         "speed_cm_s": 586.1640562810162,
         "direction_deg": 71.98097140010034,
         "speed_px_per_frame": 44.07248543466287
        },
        "median_cm_s": 60.72350142469936,
        "pixels_used": 1129,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.1185021048857964,
         7.266186193159409
        ],
        "median_px_per_frame": 4.565676798849576
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          15.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          61.0,
          76.0
         ],
         "median": 75.0
        }
       },
       "window": [
        7999,
        8409
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          15.0
         ],
         "median": 14.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          61.0,
          76.0
         ],
         "median": 75.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 8083,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         1.9503020536812004,
         70.00044502465012
        ],
        "plane_fit": {
         "speed_cm_s": 64.82767931999743,
         "direction_deg": -46.008153266088854,
         "speed_px_per_frame": 4.874261603007326
        },
        "median_cm_s": 37.60030590649831,
        "pixels_used": 1574,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.14663925215648121,
         5.2631913552368506
        ],
        "median_px_per_frame": 2.8270906696615272
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          17.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          48.0,
          69.0
         ],
         "median": 50.0
        }
       },
       "window": [
        8409,
        8767
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          17.0
         ],
         "median": 16.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          48.0,
          69.0
         ],
         "median": 50.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 8493,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 53.0,
       "activation_spread_frames": 53.0
      }
     ],
     "cv_cm_s_median": 60.02749879331829,
     "apd50_ms_median": 16.0,
     "apd90_ms_median": 75.0,
     "representative_beat": 0,
     "cv_px_per_frame_median": 4.513345773933706,
     "global_amplitude_ratio": 0.9533803451583941
    },
    "frames": [
     4977,
     8767
    ],
    "dominant_freq": 2.37467018469657,
    "persistent_rotors": 0,
    "singularity_count_max": 3,
    "singularity_count_mean": 0.017678100263852244,
    "singularity_frames_frac": 0.012137203166226913,
    "persistent_rotor_count_max": 0,
    "persistent_rotor_durations": [],
    "persistent_rotor_frames_frac": 0.0
   },
   "illuminated_arrhythmia": {
    "beats": {
     "note": null,
     "beats": 57,
     "per_beat": [
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         5.4820082411114655,
         68.93417963128407
        ],
        "plane_fit": {
         "speed_cm_s": 31.551777547754305,
         "direction_deg": -145.17891684096293,
         "speed_px_per_frame": 2.3723141013349105
        },
        "median_cm_s": 37.52747373315314,
        "pixels_used": 1839,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.41218107076026056,
         5.183021024908576
        ],
        "median_px_per_frame": 2.8216145664024914
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          7.0,
          9.0
         ],
         "median": 8.0
        },
        "apd90": {
         "iqr": [
          9.0,
          11.0
         ],
         "median": 10.0
        }
       },
       "window": [
        500,
        530
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          7.0,
          9.0
         ],
         "median": 8.0,
         "defined_frac": 0.2748713550600343
        },
        "apd90": {
         "iqr": [
          9.0,
          11.0
         ],
         "median": 10.0,
         "defined_frac": 0.2748713550600343
        }
       },
       "upstroke_frame": 508,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 21.0,
       "activation_spread_frames": 21.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         12.480806515733333,
         52.88366516561534
        ],
        "plane_fit": {
         "speed_cm_s": 37.93729448497475,
         "direction_deg": -109.51613028917228,
         "speed_px_per_frame": 2.852428156765019
        },
        "median_cm_s": 30.353843103493723,
        "pixels_used": 2212,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.9384065049423558,
         3.9762154259861155
        ],
        "median_px_per_frame": 2.282243842367949
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          14.0,
          20.0
         ],
         "median": 18.0
        },
        "apd90": {
         "iqr": [
          22.0,
          42.0
         ],
         "median": 33.0
        }
       },
       "window": [
        530,
        600
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          14.0,
          20.0
         ],
         "median": 18.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          22.0,
          42.0
         ],
         "median": 33.0,
         "defined_frac": 0.9309605488850772
        }
       },
       "upstroke_frame": 540,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 43.0,
       "activation_spread_frames": 43.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         14.947448444970252,
         52.76265318739915
        ],
        "plane_fit": {
         "speed_cm_s": 43.18276709129825,
         "direction_deg": -67.18012348289328,
         "speed_px_per_frame": 3.246824593330696
        },
        "median_cm_s": 33.599651298568965,
        "pixels_used": 2087,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.1238683041331017,
         3.967116781007455
        ],
        "median_px_per_frame": 2.5262895713209748
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          23.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          25.0,
          42.0
         ],
         "median": 31.0
        }
       },
       "window": [
        600,
        658
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          23.0
         ],
         "median": 16.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          25.0,
          42.0
         ],
         "median": 31.0,
         "defined_frac": 0.9991423670668954
        }
       },
       "upstroke_frame": 610,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 21.0,
       "activation_spread_frames": 21.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         13.151061426627763,
         53.65665785840608
        ],
        "plane_fit": {
         "speed_cm_s": 63.997675295443074,
         "direction_deg": 64.87834833140954,
         "speed_px_per_frame": 4.81185528537166
        },
        "median_cm_s": 31.1489144636017,
        "pixels_used": 2177,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.9888016110246437,
         4.034335177323765
        ],
        "median_px_per_frame": 2.342023643879827
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          14.0,
          18.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          21.0,
          28.0
         ],
         "median": 24.0
        }
       },
       "window": [
        658,
        697
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          14.0,
          18.0
         ],
         "median": 16.0,
         "defined_frac": 0.9112349914236707
        },
        "apd90": {
         "iqr": [
          21.0,
          28.0
         ],
         "median": 24.0,
         "defined_frac": 0.7444253859348199
        }
       },
       "upstroke_frame": 668,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 35.0,
       "activation_spread_frames": 35.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         5.838421806633017,
         44.783701951242975
        ],
        "plane_fit": {
         "speed_cm_s": 22.876883165811922,
         "direction_deg": 65.44126423921816,
         "speed_px_per_frame": 1.7200664034445052
        },
        "median_cm_s": 16.324107461343843,
        "pixels_used": 2080,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.43897908320548995,
         3.3671956354318024
        ],
        "median_px_per_frame": 1.2273765008529205
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          14.0,
          17.0
         ],
         "median": 15.0
        },
        "apd90": {
         "iqr": [
          18.0,
          22.0
         ],
         "median": 20.0
        }
       },
       "window": [
        697,
        734
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          14.0,
          17.0
         ],
         "median": 15.0,
         "defined_frac": 0.4562607204116638
        },
        "apd90": {
         "iqr": [
          18.0,
          22.0
         ],
         "median": 20.0,
         "defined_frac": 0.34777015437392794
        }
       },
       "upstroke_frame": 707,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 32.0,
       "activation_spread_frames": 32.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         14.509882709756182,
         51.657647536493066
        ],
        "plane_fit": {
         "speed_cm_s": 34.45768434952523,
         "direction_deg": -39.70391770474568,
         "speed_px_per_frame": 2.590803334550769
        },
        "median_cm_s": 32.59555430642761,
        "pixels_used": 2154,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.0909686247936978,
         3.8840336493603806
        ],
        "median_px_per_frame": 2.450793556874256
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          16.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          21.0,
          31.0
         ],
         "median": 29.0
        }
       },
       "window": [
        734,
        778
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          16.0
         ],
         "median": 14.0,
         "defined_frac": 0.9974271012006861
        },
        "apd90": {
         "iqr": [
          21.0,
          31.0
         ],
         "median": 29.0,
         "defined_frac": 0.8576329331046312
        }
       },
       "upstroke_frame": 744,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 31.0,
       "activation_spread_frames": 31.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         9.387053482544795,
         52.170285947893284
        ],
        "plane_fit": {
         "speed_cm_s": 19.463675755499025,
         "direction_deg": 35.57628322703065,
         "speed_px_per_frame": 1.4634342673307539
        },
        "median_cm_s": 26.21187120950813,
        "pixels_used": 2100,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.70579349492818,
         3.922577890819044
        ],
        "median_px_per_frame": 1.9708173841735435
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          16.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          17.0,
          26.0
         ],
         "median": 24.0
        }
       },
       "window": [
        778,
        818
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          16.0
         ],
         "median": 13.0,
         "defined_frac": 0.5587478559176673
        },
        "apd90": {
         "iqr": [
          17.0,
          26.0
         ],
         "median": 24.0,
         "defined_frac": 0.3936535162950257
        }
       },
       "upstroke_frame": 788,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 33.0,
       "activation_spread_frames": 33.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         6.943292275205059,
         58.323555697907494
        ],
        "plane_fit": {
         "speed_cm_s": 20.60962504355388,
         "direction_deg": -31.784396658405228,
         "speed_px_per_frame": 1.549595867936382
        },
        "median_cm_s": 27.91763564843523,
        "pixels_used": 1873,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.5220520507672977,
         4.385229751722368
        ],
        "median_px_per_frame": 2.099070349506408
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          18.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          16.0,
          27.0
         ],
         "median": 19.0
        }
       },
       "window": [
        818,
        858
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          18.0
         ],
         "median": 12.0,
         "defined_frac": 0.7945969125214408
        },
        "apd90": {
         "iqr": [
          16.0,
          27.0
         ],
         "median": 19.0,
         "defined_frac": 0.5231560891938251
        }
       },
       "upstroke_frame": 828,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 30.0,
       "activation_spread_frames": 30.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         3.2148310338261763,
         41.99548455194566
        ],
        "plane_fit": {
         "speed_cm_s": 79.9239423924967,
         "direction_deg": -149.59006672139432,
         "speed_px_per_frame": 6.009318976879451
        },
        "median_cm_s": 15.548315032314118,
        "pixels_used": 2227,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.2417166190846749,
         3.1575552294695983
        ],
        "median_px_per_frame": 1.1690462430311366
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          23.0
         ],
         "median": 15.0
        },
        "apd90": {
         "iqr": [
          16.0,
          31.0
         ],
         "median": 24.0
        }
       },
       "window": [
        858,
        918
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          23.0
         ],
         "median": 15.0,
         "defined_frac": 0.9948542024013722
        },
        "apd90": {
         "iqr": [
          16.0,
          31.0
         ],
         "median": 24.0,
         "defined_frac": 0.8597770154373928
        }
       },
       "upstroke_frame": 868,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 44.0,
       "activation_spread_frames": 44.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         13.730110796831811,
         54.888219926297666
        ],
        "plane_fit": {
         "speed_cm_s": 32.7866001787065,
         "direction_deg": 176.06119829321855,
         "speed_px_per_frame": 2.4651579081734214
        },
        "median_cm_s": 32.41047082213071,
        "pixels_used": 2176,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.032339157656527,
         4.126933829044937
        ],
        "median_px_per_frame": 2.436877505423362
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          15.0,
          26.0
         ],
         "median": 25.0
        }
       },
       "window": [
        918,
        957
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 13.0,
         "defined_frac": 0.8953687821612349
        },
        "apd90": {
         "iqr": [
          15.0,
          26.0
         ],
         "median": 25.0,
         "defined_frac": 0.44939965694682676
        }
       },
       "upstroke_frame": 928,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 21.0,
       "activation_spread_frames": 21.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         14.49521066153972,
         60.24260231892381
        ],
        "plane_fit": {
         "speed_cm_s": 85.61190809800475,
         "direction_deg": 113.87729254855522,
         "speed_px_per_frame": 6.436985571278552
        },
        "median_cm_s": 33.58760295329438,
        "pixels_used": 1883,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.089865463273663,
         4.529518971347654
        ],
        "median_px_per_frame": 2.5253836806988255
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          8.0,
          12.0
         ],
         "median": 10.0
        },
        "apd90": {
         "iqr": [
          9.0,
          12.0
         ],
         "median": 11.0
        }
       },
       "window": [
        957,
        997
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          8.0,
          12.0
         ],
         "median": 10.0,
         "defined_frac": 0.5686106346483705
        },
        "apd90": {
         "iqr": [
          9.0,
          12.0
         ],
         "median": 11.0,
         "defined_frac": 0.18396226415094338
        }
       },
       "upstroke_frame": 967,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 22.0,
       "activation_spread_frames": 22.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         16.350044696996935,
         58.29088846643539
        ],
        "plane_fit": {
         "speed_cm_s": 24.601786119207276,
         "direction_deg": 175.01683747686363,
         "speed_px_per_frame": 1.8497583548276146
        },
        "median_cm_s": 35.74982415239791,
        "pixels_used": 1977,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.229326668947138,
         4.382773568904916
        ],
        "median_px_per_frame": 2.6879567031878127
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          27.0
         ],
         "median": 15.0
        },
        "apd90": {
         "iqr": [
          29.0,
          48.0
         ],
         "median": 36.0
        }
       },
       "window": [
        997,
        1059
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          27.0
         ],
         "median": 15.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          29.0,
          48.0
         ],
         "median": 36.0,
         "defined_frac": 0.9262435677530018
        }
       },
       "upstroke_frame": 1007,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 24.0,
       "activation_spread_frames": 24.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         26.16819555322939,
         58.3903707677745
        ],
        "plane_fit": {
         "speed_cm_s": 129.4528710476077,
         "direction_deg": -5.345745307854463,
         "speed_px_per_frame": 9.733298575008098
        },
        "median_cm_s": 38.91853810734502,
        "pixels_used": 1803,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.9675335002428112,
         4.3902534411860525
        ],
        "median_px_per_frame": 2.9262058727327083
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          21.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          25.0,
          32.0
         ],
         "median": 29.0
        }
       },
       "window": [
        1059,
        1118
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          21.0
         ],
         "median": 16.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          25.0,
          32.0
         ],
         "median": 29.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 1069,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 9.0,
       "activation_spread_frames": 9.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         6.6536304979519585,
         49.08958006725495
        ],
        "plane_fit": {
         "speed_cm_s": 28.209627624844487,
         "direction_deg": -163.71585475692234,
         "speed_px_per_frame": 2.121024633446954
        },
        "median_cm_s": 26.539599100696407,
        "pixels_used": 2089,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.5002729697708239,
         3.690945869718417
        ],
        "median_px_per_frame": 1.9954585789997297
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          22.0
         ],
         "median": 15.0
        },
        "apd90": {
         "iqr": [
          19.0,
          34.0
         ],
         "median": 29.0
        }
       },
       "window": [
        1118,
        1178
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          22.0
         ],
         "median": 15.0,
         "defined_frac": 0.9116638078902229
        },
        "apd90": {
         "iqr": [
          19.0,
          34.0
         ],
         "median": 29.0,
         "defined_frac": 0.597770154373928
        }
       },
       "upstroke_frame": 1128,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 40.44999999999999,
       "activation_spread_frames": 40.44999999999999
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         11.111467536435248,
         59.475607296267036
        ],
        "plane_fit": {
         "speed_cm_s": 36.7058685632374,
         "direction_deg": -17.072577581964595,
         "speed_px_per_frame": 2.7598397415967972
        },
        "median_cm_s": 26.480592998591383,
        "pixels_used": 1834,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.8354486869500186,
         4.471850172651656
        ],
        "median_px_per_frame": 1.991022029969277
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          24.0,
          29.0
         ],
         "median": 27.0
        }
       },
       "window": [
        1178,
        1221
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 13.0,
         "defined_frac": 0.9644082332761578
        },
        "apd90": {
         "iqr": [
          24.0,
          29.0
         ],
         "median": 27.0,
         "defined_frac": 0.7757289879931389
        }
       },
       "upstroke_frame": 1188,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 21.0,
       "activation_spread_frames": 21.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         14.27419640317709,
         49.85431477155083
        ],
        "plane_fit": {
         "speed_cm_s": 28.866855160226468,
         "direction_deg": 22.598197231332414,
         "speed_px_per_frame": 2.170440237611013
        },
        "median_cm_s": 27.59463561823313,
        "pixels_used": 2099,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.073247849862939,
         3.7484447196654758
        ],
        "median_px_per_frame": 2.0747846329498594
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          15.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          22.0,
          25.0
         ],
         "median": 24.0
        }
       },
       "window": [
        1221,
        1258
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          15.0
         ],
         "median": 12.0,
         "defined_frac": 0.7971698113207547
        },
        "apd90": {
         "iqr": [
          22.0,
          25.0
         ],
         "median": 24.0,
         "defined_frac": 0.4073756432246998
        }
       },
       "upstroke_frame": 1231,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 20.0,
       "activation_spread_frames": 20.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         13.25169988879557,
         72.65321929277708
        ],
        "plane_fit": {
         "speed_cm_s": 28.399088529866038,
         "direction_deg": 16.360832233825192,
         "speed_px_per_frame": 2.1352698142756417
        },
        "median_cm_s": 38.211009256236544,
        "pixels_used": 1830,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.9963684126913962,
         5.462648067126096
        ],
        "median_px_per_frame": 2.873008214754627
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          9.0,
          14.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          14.0,
          23.0
         ],
         "median": 21.0
        }
       },
       "window": [
        1258,
        1298
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          9.0,
          14.0
         ],
         "median": 12.0,
         "defined_frac": 0.6427958833619211
        },
        "apd90": {
         "iqr": [
          14.0,
          23.0
         ],
         "median": 21.0,
         "defined_frac": 0.33876500857632935
        }
       },
       "upstroke_frame": 1268,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 22.0,
       "activation_spread_frames": 22.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         21.004988930827754,
         56.95035820109727
        ],
        "plane_fit": {
         "speed_cm_s": 23.769275505439985,
         "direction_deg": -31.70868960711639,
         "speed_px_per_frame": 1.787163571837593
        },
        "median_cm_s": 38.20971682583408,
        "pixels_used": 2158,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.5793224760020868,
         4.2819818196313735
        ],
        "median_px_per_frame": 2.8729110395363966
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          13.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          23.0,
          28.0
         ],
         "median": 26.0
        }
       },
       "window": [
        1298,
        1338
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          13.0
         ],
         "median": 12.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          23.0,
          28.0
         ],
         "median": 26.0,
         "defined_frac": 0.6149228130360206
        }
       },
       "upstroke_frame": 1308,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 23.0,
       "activation_spread_frames": 23.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         18.69416527086961,
         77.1390008874275
        ],
        "plane_fit": {
         "speed_cm_s": 25.63142410159077,
         "direction_deg": 31.610102107475303,
         "speed_px_per_frame": 1.927174744480509
        },
        "median_cm_s": 43.12941688609229,
        "pixels_used": 1917,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.4055763361556097,
         5.799924878753947
        ],
        "median_px_per_frame": 3.242813299706187
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          13.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          15.0,
          17.0
         ],
         "median": 16.0
        }
       },
       "window": [
        1338,
        1370
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          13.0
         ],
         "median": 12.0,
         "defined_frac": 0.3160377358490566
        },
        "apd90": {
         "iqr": [
          15.0,
          17.0
         ],
         "median": 16.0,
         "defined_frac": 0.23413379073756432
        }
       },
       "upstroke_frame": 1348,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 24.0,
       "activation_spread_frames": 24.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         11.557489688476199,
         50.99394037350194
        ],
        "plane_fit": {
         "speed_cm_s": 27.06873006530425,
         "direction_deg": -54.55866907999798,
         "speed_px_per_frame": 2.035242862052951
        },
        "median_cm_s": 30.205998103295858,
        "pixels_used": 2007,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.8689841871034736,
         3.8341308551505215
        ],
        "median_px_per_frame": 2.271127676939538
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          17.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          18.0,
          31.0
         ],
         "median": 24.0
        }
       },
       "window": [
        1370,
        1418
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          17.0
         ],
         "median": 14.0,
         "defined_frac": 0.9785591766723842
        },
        "apd90": {
         "iqr": [
          18.0,
          31.0
         ],
         "median": 24.0,
         "defined_frac": 0.823327615780446
        }
       },
       "upstroke_frame": 1380,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 34.0,
       "activation_spread_frames": 34.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         12.990464193885034,
         56.13496773736983
        ],
        "plane_fit": {
         "speed_cm_s": 22.80895987538685,
         "direction_deg": -6.344119613634855,
         "speed_px_per_frame": 1.7149593891268309
        },
        "median_cm_s": 32.61511371432053,
        "pixels_used": 2088,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.9767266311191753,
         4.220674265967656
        ],
        "median_px_per_frame": 2.452264189046656
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          18.0,
          28.0
         ],
         "median": 23.0
        }
       },
       "window": [
        1418,
        1458
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 14.0,
         "defined_frac": 0.9210977701543739
        },
        "apd90": {
         "iqr": [
          18.0,
          28.0
         ],
         "median": 23.0,
         "defined_frac": 0.39451114922813035
        }
       },
       "upstroke_frame": 1428,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 24.44999999999999,
       "activation_spread_frames": 24.44999999999999
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         8.181738053070509,
         47.53033825101527
        ],
        "plane_fit": {
         "speed_cm_s": 53.87325756204845,
         "direction_deg": -3.0873874213272896,
         "speed_px_per_frame": 4.050620869326951
        },
        "median_cm_s": 23.531285159786837,
        "pixels_used": 2074,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.6151682746669556,
         3.573709642933479
        ],
        "median_px_per_frame": 1.769269560886228
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          18.0
         ],
         "median": 15.0
        },
        "apd90": {
         "iqr": [
          19.0,
          27.0
         ],
         "median": 25.0
        }
       },
       "window": [
        1458,
        1497
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          18.0
         ],
         "median": 15.0,
         "defined_frac": 0.7692967409948542
        },
        "apd90": {
         "iqr": [
          19.0,
          27.0
         ],
         "median": 25.0,
         "defined_frac": 0.5548885077186964
        }
       },
       "upstroke_frame": 1468,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 27.0,
       "activation_spread_frames": 27.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         20.448454248912576,
         59.23030337264203
        ],
        "plane_fit": {
         "speed_cm_s": 31.523710500172513,
         "direction_deg": -41.64426674424293,
         "speed_px_per_frame": 2.370203797005452
        },
        "median_cm_s": 37.10586477604484,
        "pixels_used": 2096,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.5374777630761334,
         4.453406268619701
        ],
        "median_px_per_frame": 2.7899146448154015
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          16.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          25.0,
          28.0
         ],
         "median": 27.0
        }
       },
       "window": [
        1497,
        1537
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          16.0
         ],
         "median": 14.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          25.0,
          28.0
         ],
         "median": 27.0,
         "defined_frac": 0.8040308747855918
        }
       },
       "upstroke_frame": 1507,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 23.0,
       "activation_spread_frames": 23.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         9.141060148001992,
         60.50703642682083
        ],
        "plane_fit": {
         "speed_cm_s": 21.692986448290696,
         "direction_deg": 20.201151924781815,
         "speed_px_per_frame": 1.6310516126534358
        },
        "median_cm_s": 32.85908826429576,
        "pixels_used": 1798,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.6872977554888715,
         4.54940123509931
        ],
        "median_px_per_frame": 2.470608140172613
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          17.0,
          27.0
         ],
         "median": 18.0
        }
       },
       "window": [
        1537,
        1577
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 13.0,
         "defined_frac": 0.5909090909090909
        },
        "apd90": {
         "iqr": [
          17.0,
          27.0
         ],
         "median": 18.0,
         "defined_frac": 0.4095197255574614
        }
       },
       "upstroke_frame": 1547,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 31.0,
       "activation_spread_frames": 31.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         12.399735929469543,
         50.855718497283036
        ],
        "plane_fit": {
         "speed_cm_s": 78.05801028935986,
         "direction_deg": -93.5336167391272,
         "speed_px_per_frame": 5.869023330027058
        },
        "median_cm_s": 28.297349655494592,
        "pixels_used": 2023,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.9323109721405671,
         3.8237382328784237
        ],
        "median_px_per_frame": 2.1276202748492175
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          21.0
         ],
         "median": 15.0
        },
        "apd90": {
         "iqr": [
          28.0,
          32.0
         ],
         "median": 30.0
        }
       },
       "window": [
        1577,
        1621
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          21.0
         ],
         "median": 15.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          28.0,
          32.0
         ],
         "median": 30.0,
         "defined_frac": 0.9301029159519726
        }
       },
       "upstroke_frame": 1587,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 30.0,
       "activation_spread_frames": 30.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         13.974096075900144,
         54.478780408065035
        ],
        "plane_fit": {
         "speed_cm_s": 33.77913502263733,
         "direction_deg": 2.875582425884314,
         "speed_px_per_frame": 2.5397845881682195
        },
        "median_cm_s": 33.21210171342794,
        "pixels_used": 2122,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.0506839154812138,
         4.096148902862033
        ],
        "median_px_per_frame": 2.497150504769018
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          22.0,
          27.0
         ],
         "median": 23.0
        }
       },
       "window": [
        1621,
        1658
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 14.0,
         "defined_frac": 0.9935677530017153
        },
        "apd90": {
         "iqr": [
          22.0,
          27.0
         ],
         "median": 23.0,
         "defined_frac": 0.5090051457975986
        }
       },
       "upstroke_frame": 1631,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 19.0,
       "activation_spread_frames": 19.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         9.256171405763624,
         55.12346154224743
        ],
        "plane_fit": {
         "speed_cm_s": 21.367490381907675,
         "direction_deg": 24.57243998283525,
         "speed_px_per_frame": 1.6065782242035846
        },
        "median_cm_s": 27.771034819216094,
        "pixels_used": 1705,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.6959527372754604,
         4.1446211685900325
        ],
        "median_px_per_frame": 2.0880477307681273
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          14.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          17.0,
          25.0
         ],
         "median": 18.0
        }
       },
       "window": [
        1658,
        1698
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          14.0
         ],
         "median": 12.0,
         "defined_frac": 0.3932246998284734
        },
        "apd90": {
         "iqr": [
          17.0,
          25.0
         ],
         "median": 18.0,
         "defined_frac": 0.25943396226415094
        }
       },
       "upstroke_frame": 1668,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 31.44999999999999,
       "activation_spread_frames": 31.44999999999999
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         9.837344074010153,
         51.307799568590944
        ],
        "plane_fit": {
         "speed_cm_s": 22.577790707818078,
         "direction_deg": -57.36036629392734,
         "speed_px_per_frame": 1.6975782487081263
        },
        "median_cm_s": 28.4086666765603,
        "pixels_used": 2073,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.7396499303767031,
         3.8577292908714993
        ],
        "median_px_per_frame": 2.1359899756812255
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          19.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          14.0,
          23.0
         ],
         "median": 17.0
        }
       },
       "window": [
        1698,
        1738
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          19.0
         ],
         "median": 12.0,
         "defined_frac": 0.7933104631217839
        },
        "apd90": {
         "iqr": [
          14.0,
          23.0
         ],
         "median": 17.0,
         "defined_frac": 0.5789022298456261
        }
       },
       "upstroke_frame": 1708,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 30.0,
       "activation_spread_frames": 30.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         15.931539048276832,
         58.74854060213665
        ],
        "plane_fit": {
         "speed_cm_s": 29.55931674242149,
         "direction_deg": 17.355361286530098,
         "speed_px_per_frame": 2.2225050182271797
        },
        "median_cm_s": 36.058811203161596,
        "pixels_used": 2070,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.1978600788178069,
         4.417183503920048
        ],
        "median_px_per_frame": 2.711188812267789
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          14.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          15.0,
          25.0
         ],
         "median": 17.0
        }
       },
       "window": [
        1738,
        1778
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          14.0
         ],
         "median": 12.0,
         "defined_frac": 0.7482847341337907
        },
        "apd90": {
         "iqr": [
          15.0,
          25.0
         ],
         "median": 17.0,
         "defined_frac": 0.39708404802744424
        }
       },
       "upstroke_frame": 1748,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 22.0,
       "activation_spread_frames": 22.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         3.109521078631402,
         44.74406945225127
        ],
        "plane_fit": {
         "speed_cm_s": 19.918783545562665,
         "direction_deg": 32.61387018196132,
         "speed_px_per_frame": 1.4976528981626063
        },
        "median_cm_s": 13.409773753873083,
        "pixels_used": 1873,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.2337985773407069,
         3.3642157482895687
        ],
        "median_px_per_frame": 1.008253665704743
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          18.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          24.0,
          30.0
         ],
         "median": 28.0
        }
       },
       "window": [
        1778,
        1829
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          18.0
         ],
         "median": 13.0,
         "defined_frac": 0.6925385934819898
        },
        "apd90": {
         "iqr": [
          24.0,
          30.0
         ],
         "median": 28.0,
         "defined_frac": 0.6882504288164666
        }
       },
       "upstroke_frame": 1788,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 43.0,
       "activation_spread_frames": 43.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         9.533533818942093,
         48.403499134236554
        ],
        "plane_fit": {
         "speed_cm_s": 74.4691323289029,
         "direction_deg": -109.45801663497569,
         "speed_px_per_frame": 5.599182881872399
        },
        "median_cm_s": 19.86491480746764,
        "pixels_used": 984,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.7168070540557965,
         3.639360837160643
        ],
        "median_px_per_frame": 1.4936026171028298
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          9.0,
          18.0
         ],
         "median": 17.0
        },
        "apd90": {
         "iqr": [
          18.0,
          35.0
         ],
         "median": 25.0
        }
       },
       "window": [
        1829,
        1897
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          9.0,
          18.0
         ],
         "median": 17.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          18.0,
          35.0
         ],
         "median": 25.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 1839,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 36.0,
       "activation_spread_frames": 36.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         8.99134426437924,
         50.05919576853919
        ],
        "plane_fit": {
         "speed_cm_s": 12.5995871797371,
         "direction_deg": -121.0733808907082,
         "speed_px_per_frame": 0.9473373819351202
        },
        "median_cm_s": 33.300796090548516,
        "pixels_used": 2074,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.6760409221337774,
         3.763849305905202
        ],
        "median_px_per_frame": 2.5038192549284597
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          15.0,
          36.0
         ],
         "median": 28.0
        }
       },
       "window": [
        1897,
        1958
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 13.0,
         "defined_frac": 0.7461406518010292
        },
        "apd90": {
         "iqr": [
          15.0,
          36.0
         ],
         "median": 28.0,
         "defined_frac": 0.7358490566037735
        }
       },
       "upstroke_frame": 1907,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 52.0,
       "activation_spread_frames": 52.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         9.904337620009063,
         45.96507536042668
        ],
        "plane_fit": {
         "speed_cm_s": 18.64212575739596,
         "direction_deg": -142.98307824140323,
         "speed_px_per_frame": 1.401663590781651
        },
        "median_cm_s": 29.15656592442795,
        "pixels_used": 2170,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.7446870390984257,
         3.45602070379148
        ],
        "median_px_per_frame": 2.192223001836688
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          19.0,
          30.0
         ],
         "median": 27.0
        }
       },
       "window": [
        1958,
        2018
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          16.0
         ],
         "median": 13.0,
         "defined_frac": 0.8117495711835334
        },
        "apd90": {
         "iqr": [
          19.0,
          30.0
         ],
         "median": 27.0,
         "defined_frac": 0.5947684391080618
        }
       },
       "upstroke_frame": 1968,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 42.0,
       "activation_spread_frames": 42.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         9.600049975068217,
         47.66724435740336
        ],
        "plane_fit": {
         "speed_cm_s": 19.43475448103452,
         "direction_deg": -52.0586560793748,
         "speed_px_per_frame": 1.4612597354161292
        },
        "median_cm_s": 22.466626155573998,
        "pixels_used": 2052,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.7218082688021215,
         3.5840033351431098
        ],
        "median_px_per_frame": 1.689220011697293
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.25,
          15.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          23.0,
          27.0
         ],
         "median": 24.0
        }
       },
       "window": [
        2018,
        2058
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.25,
          15.0
         ],
         "median": 13.0,
         "defined_frac": 0.7555746140651801
        },
        "apd90": {
         "iqr": [
          23.0,
          27.0
         ],
         "median": 24.0,
         "defined_frac": 0.6213550600343053
        }
       },
       "upstroke_frame": 2028,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 36.0,
       "activation_spread_frames": 36.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         5.574036111825662,
         49.193449654914545
        ],
        "plane_fit": {
         "speed_cm_s": 32.800379589012415,
         "direction_deg": 6.166838741425971,
         "speed_px_per_frame": 2.466193954061084
        },
        "median_cm_s": 21.762632801863095,
        "pixels_used": 2074,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.419100459535764,
         3.6987556131514694
        ],
        "median_px_per_frame": 1.63628818059121
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          15.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          16.0,
          25.0
         ],
         "median": 19.0
        }
       },
       "window": [
        2058,
        2098
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          15.0
         ],
         "median": 12.0,
         "defined_frac": 0.9082332761578045
        },
        "apd90": {
         "iqr": [
          16.0,
          25.0
         ],
         "median": 19.0,
         "defined_frac": 0.6174957118353345
        }
       },
       "upstroke_frame": 2068,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 29.0,
       "activation_spread_frames": 29.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         10.72518469332509,
         54.11891729643434
        ],
        "plane_fit": {
         "speed_cm_s": 24.484970451620537,
         "direction_deg": -15.115894076314941,
         "speed_px_per_frame": 1.840975221926356
        },
        "median_cm_s": 30.831806790312303,
        "pixels_used": 2075,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.8064048641597812,
         4.0690915260476945
        ],
        "median_px_per_frame": 2.3181809616776166
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          9.0,
          16.0
         ],
         "median": 12.0
        },
        "apd90": {
         "iqr": [
          23.0,
          26.0
         ],
         "median": 25.0
        }
       },
       "window": [
        2098,
        2138
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          9.0,
          16.0
         ],
         "median": 12.0,
         "defined_frac": 0.8512006861063465
        },
        "apd90": {
         "iqr": [
          23.0,
          26.0
         ],
         "median": 25.0,
         "defined_frac": 0.5278730703259005
        }
       },
       "upstroke_frame": 2108,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 27.0,
       "activation_spread_frames": 27.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         7.558927996079439,
         61.34098082581205
        ],
        "plane_fit": {
         "speed_cm_s": 28.54888332273539,
         "direction_deg": -27.392586649921256,
         "speed_px_per_frame": 2.146532580656796
        },
        "median_cm_s": 27.877288565317365,
        "pixels_used": 2036,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.5683404508330405,
         4.612103821489628
        ],
        "median_px_per_frame": 2.096036734234388
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          16.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          14.0,
          28.0
         ],
         "median": 21.0
        }
       },
       "window": [
        2138,
        2178
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          16.0
         ],
         "median": 13.0,
         "defined_frac": 0.8670668953687821
        },
        "apd90": {
         "iqr": [
          14.0,
          28.0
         ],
         "median": 21.0,
         "defined_frac": 0.6119210977701544
        }
       },
       "upstroke_frame": 2148,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 27.0,
       "activation_spread_frames": 27.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         13.639303998818903,
         45.88209390442601
        ],
        "plane_fit": {
         "speed_cm_s": 25.025528208652204,
         "direction_deg": -42.69038618941702,
         "speed_px_per_frame": 1.8816186623046771
        },
        "median_cm_s": 31.34221149939391,
        "pixels_used": 2201,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.025511578858564,
         3.449781496573384
        ],
        "median_px_per_frame": 2.356557255593527
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          17.0,
          26.0
         ],
         "median": 20.0
        },
        "apd90": {
         "iqr": [
          40.0,
          54.0
         ],
         "median": 50.0
        }
       },
       "window": [
        2178,
        2246
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          17.0,
          26.0
         ],
         "median": 20.0,
         "defined_frac": 0.9734133790737565
        },
        "apd90": {
         "iqr": [
          40.0,
          54.0
         ],
         "median": 50.0,
         "defined_frac": 0.9352487135506004
        }
       },
       "upstroke_frame": 2188,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 24.0,
       "activation_spread_frames": 24.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         18.63770226965725,
         58.61315136590909
        ],
        "plane_fit": {
         "speed_cm_s": 64.07410239605973,
         "direction_deg": 120.13355556928472,
         "speed_px_per_frame": 4.8176016839142655
        },
        "median_cm_s": 35.90102781879297,
        "pixels_used": 2103,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.4013309977185902,
         4.407003862098428
        ],
        "median_px_per_frame": 2.6993253999092457
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          16.0,
          20.0
         ],
         "median": 18.0
        }
       },
       "window": [
        2246,
        2277
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 13.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          16.0,
          20.0
         ],
         "median": 18.0,
         "defined_frac": 0.9391080617495712
        }
       },
       "upstroke_frame": 2256,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 15.0,
       "activation_spread_frames": 15.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         7.945472313080341,
         51.14869024043746
        ],
        "plane_fit": {
         "speed_cm_s": 25.744276441958107,
         "direction_deg": 69.87534586469567,
         "speed_px_per_frame": 1.935659882853993
        },
        "median_cm_s": 27.702575650394245,
        "pixels_used": 2092,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.5974039333143113,
         3.845766183491538
        ],
        "median_px_per_frame": 2.0829004248416725
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          19.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          21.0,
          30.0
         ],
         "median": 26.0
        }
       },
       "window": [
        2277,
        2337
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          19.0
         ],
         "median": 16.0,
         "defined_frac": 0.9468267581475128
        },
        "apd90": {
         "iqr": [
          21.0,
          30.0
         ],
         "median": 26.0,
         "defined_frac": 0.3932246998284734
        }
       },
       "upstroke_frame": 2287,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 37.0,
       "activation_spread_frames": 37.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         6.607704137522121,
         42.66210677432985
        ],
        "plane_fit": {
         "speed_cm_s": 34.70601051527269,
         "direction_deg": 24.05848414923431,
         "speed_px_per_frame": 2.609474474832533
        },
        "median_cm_s": 23.09300608775762,
        "pixels_used": 2179,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.4968198599640692,
         3.2076772010774324
        ],
        "median_px_per_frame": 1.7363162471998208
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          17.0
         ],
         "median": 15.0
        },
        "apd90": {
         "iqr": [
          18.0,
          32.0
         ],
         "median": 26.0
        }
       },
       "window": [
        2337,
        2395
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          17.0
         ],
         "median": 15.0,
         "defined_frac": 0.8644939965694682
        },
        "apd90": {
         "iqr": [
          18.0,
          32.0
         ],
         "median": 26.0,
         "defined_frac": 0.5844768439108061
        }
       },
       "upstroke_frame": 2347,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 35.0,
       "activation_spread_frames": 35.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         7.113042387483592,
         46.61857506560046
        ],
        "plane_fit": {
         "speed_cm_s": 47.21983629862977,
         "direction_deg": 70.96108375122768,
         "speed_px_per_frame": 3.550363631475922
        },
        "median_cm_s": 23.674629407323437,
        "pixels_used": 2131,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.5348152171040295,
         3.5051560199699594
        ],
        "median_px_per_frame": 1.780047323858905
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          18.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          15.0,
          35.0
         ],
         "median": 30.0
        }
       },
       "window": [
        2395,
        2444
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          18.0
         ],
         "median": 13.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          15.0,
          35.0
         ],
         "median": 30.0,
         "defined_frac": 0.8992281303602059
        }
       },
       "upstroke_frame": 2405,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 35.0,
       "activation_spread_frames": 35.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         4.3943183947616475,
         46.80055430360203
        ],
        "plane_fit": {
         "speed_cm_s": 20.90659383377222,
         "direction_deg": 69.1776546231286,
         "speed_px_per_frame": 1.5719243484039265
        },
        "median_cm_s": 20.639001380426798,
        "pixels_used": 2056,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.330399879305387,
         3.5188386694437614
        ],
        "median_px_per_frame": 1.551804615069684
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          21.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          17.0,
          28.0
         ],
         "median": 25.0
        }
       },
       "window": [
        2444,
        2497
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          21.0
         ],
         "median": 13.0,
         "defined_frac": 0.7225557461406518
        },
        "apd90": {
         "iqr": [
          17.0,
          28.0
         ],
         "median": 25.0,
         "defined_frac": 0.6475128644939966
        }
       },
       "upstroke_frame": 2454,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 43.0,
       "activation_spread_frames": 43.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         14.646207260162823,
         63.99270666243145
        ],
        "plane_fit": {
         "speed_cm_s": 42.2266457186714,
         "direction_deg": -143.39018532522348,
         "speed_px_per_frame": 3.174935768321158
        },
        "median_cm_s": 38.30206280814142,
        "pixels_used": 2028,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.1012185909896859,
         4.811481703942214
        ],
        "median_px_per_frame": 2.8798543464767983
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          16.0,
          26.0
         ],
         "median": 21.0
        }
       },
       "window": [
        2497,
        2538
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 14.0,
         "defined_frac": 0.7877358490566038
        },
        "apd90": {
         "iqr": [
          16.0,
          26.0
         ],
         "median": 21.0,
         "defined_frac": 0.6239279588336192
        }
       },
       "upstroke_frame": 2507,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 35.0,
       "activation_spread_frames": 35.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         11.974361662560222,
         56.43899074139499
        ],
        "plane_fit": {
         "speed_cm_s": 121.78616895588502,
         "direction_deg": -116.7786890023508,
         "speed_px_per_frame": 9.156854808713158
        },
        "median_cm_s": 33.268908842115096,
        "pixels_used": 1866,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.9003279445534002,
         4.243533138450751
        ],
        "median_px_per_frame": 2.5014217174522626
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 13.0
        },
        "apd90": {
         "iqr": [
          18.0,
          27.0
         ],
         "median": 21.0
        }
       },
       "window": [
        2538,
        2577
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          15.0
         ],
         "median": 13.0,
         "defined_frac": 0.8855060034305318
        },
        "apd90": {
         "iqr": [
          18.0,
          27.0
         ],
         "median": 21.0,
         "defined_frac": 0.7079759862778731
        }
       },
       "upstroke_frame": 2548,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 29.0,
       "activation_spread_frames": 29.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         7.32565312886155,
         60.31278122930278
        ],
        "plane_fit": {
         "speed_cm_s": 148.52423263713334,
         "direction_deg": -82.2898919603705,
         "speed_px_per_frame": 11.167235536626565
        },
        "median_cm_s": 31.661737778698942,
        "pixels_used": 1987,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.5508009871324473,
         4.5347955811505845
        ],
        "median_px_per_frame": 2.3805817878721007
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          14.0
         ],
         "median": 11.0
        },
        "apd90": {
         "iqr": [
          13.0,
          16.0
         ],
         "median": 15.0
        }
       },
       "window": [
        2577,
        2615
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          14.0
         ],
         "median": 11.0,
         "defined_frac": 0.5879073756432247
        },
        "apd90": {
         "iqr": [
          13.0,
          16.0
         ],
         "median": 15.0,
         "defined_frac": 0.4236706689536878
        }
       },
       "upstroke_frame": 2587,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 28.0,
       "activation_spread_frames": 28.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         3.937791808839823,
         42.28684697630044
        ],
        "plane_fit": {
         "speed_cm_s": 62.0823294659356,
         "direction_deg": 85.375332203883,
         "speed_px_per_frame": 4.6678443207470375
        },
        "median_cm_s": 20.706642933436328,
        "pixels_used": 2146,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.29607457209321975,
         3.1794621786692057
        ],
        "median_px_per_frame": 1.5568904461230322
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          16.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          17.0,
          32.0
         ],
         "median": 30.0
        }
       },
       "window": [
        2615,
        2676
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          16.0
         ],
         "median": 14.0,
         "defined_frac": 0.864065180102916
        },
        "apd90": {
         "iqr": [
          17.0,
          32.0
         ],
         "median": 30.0,
         "defined_frac": 0.8464837049742711
        }
       },
       "upstroke_frame": 2625,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 55.44999999999999,
       "activation_spread_frames": 55.44999999999999
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         10.022939117408756,
         53.55799619938811
        ],
        "plane_fit": {
         "speed_cm_s": 78.66694054198005,
         "direction_deg": -153.49498610506117,
         "speed_px_per_frame": 5.914807559547373
        },
        "median_cm_s": 28.195671256305864,
        "pixels_used": 2074,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.7536044449179515,
         4.02691700747279
        ],
        "median_px_per_frame": 2.1199752824290123
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          20.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          17.0,
          31.0
         ],
         "median": 28.0
        }
       },
       "window": [
        2676,
        2718
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          20.0
         ],
         "median": 16.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          17.0,
          31.0
         ],
         "median": 28.0,
         "defined_frac": 0.942967409948542
        }
       },
       "upstroke_frame": 2686,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 23.0,
       "activation_spread_frames": 23.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         14.586257593899616,
         49.639453144365554
        ],
        "plane_fit": {
         "speed_cm_s": 38.3118258218704,
         "direction_deg": 11.799036246801137,
         "speed_px_per_frame": 2.8805884076594284
        },
        "median_cm_s": 33.19802802011278,
        "pixels_used": 2080,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.0967110972856853,
         3.732289710102673
        ],
        "median_px_per_frame": 2.4960923323393067
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          17.0,
          24.0
         ],
         "median": 19.0
        },
        "apd90": {
         "iqr": [
          29.0,
          33.0
         ],
         "median": 32.0
        }
       },
       "window": [
        2718,
        2774
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          17.0,
          24.0
         ],
         "median": 19.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          29.0,
          33.0
         ],
         "median": 32.0,
         "defined_frac": 0.9343910806174958
        }
       },
       "upstroke_frame": 2728,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 16.0,
       "activation_spread_frames": 16.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         18.184609121526524,
         61.351816441164026
        ],
        "plane_fit": {
         "speed_cm_s": 50.13247601543139,
         "direction_deg": 25.065316629771203,
         "speed_px_per_frame": 3.769359098904616
        },
        "median_cm_s": 38.216053717792015,
        "pixels_used": 2175,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.3672638437237987,
         4.612918529410829
        ],
        "median_px_per_frame": 2.8733874975783467
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          16.0,
          26.0
         ],
         "median": 18.0
        },
        "apd90": {
         "iqr": [
          31.0,
          35.0
         ],
         "median": 33.0
        }
       },
       "window": [
        2774,
        2821
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          16.0,
          26.0
         ],
         "median": 18.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          31.0,
          35.0
         ],
         "median": 33.0,
         "defined_frac": 0.8400514579759862
        }
       },
       "upstroke_frame": 2784,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 18.0,
       "activation_spread_frames": 18.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         16.132136947187902,
         55.35096602010081
        ],
        "plane_fit": {
         "speed_cm_s": 30.154008554572844,
         "direction_deg": 1.4953906378257875,
         "speed_px_per_frame": 2.267218688313748
        },
        "median_cm_s": 36.63120768065836,
        "pixels_used": 2177,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.212942627608113,
         4.1617267684286325
        ],
        "median_px_per_frame": 2.754226141402884
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          14.0,
          22.0
         ],
         "median": 18.0
        },
        "apd90": {
         "iqr": [
          24.0,
          30.0
         ],
         "median": 28.0
        }
       },
       "window": [
        2821,
        2870
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          14.0,
          22.0
         ],
         "median": 18.0,
         "defined_frac": 0.9781303602058319
        },
        "apd90": {
         "iqr": [
          24.0,
          30.0
         ],
         "median": 28.0,
         "defined_frac": 0.8456260720411664
        }
       },
       "upstroke_frame": 2831,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 17.0,
       "activation_spread_frames": 17.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         18.362888796285834,
         62.19701477113892
        ],
        "plane_fit": {
         "speed_cm_s": 30.092675579612173,
         "direction_deg": 14.65597552477287,
         "speed_px_per_frame": 2.2626071864370054
        },
        "median_cm_s": 38.83312449692511,
        "pixels_used": 2051,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         1.380668330547807,
         4.676467276025482
        ],
        "median_px_per_frame": 2.919783796761286
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          17.0,
          20.0
         ],
         "median": 18.0
        },
        "apd90": {
         "iqr": [
          30.0,
          35.0
         ],
         "median": 33.0
        }
       },
       "window": [
        2870,
        2918
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          17.0,
          20.0
         ],
         "median": 18.0,
         "defined_frac": 0.9939965694682675
        },
        "apd90": {
         "iqr": [
          30.0,
          35.0
         ],
         "median": 33.0,
         "defined_frac": 0.5900514579759862
        }
       },
       "upstroke_frame": 2880,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 23.0,
       "activation_spread_frames": 23.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         7.116164977224632,
         56.01523040010311
        ],
        "plane_fit": {
         "speed_cm_s": 79.25737773450471,
         "direction_deg": 72.69327792743688,
         "speed_px_per_frame": 5.959201333421407
        },
        "median_cm_s": 33.635336951311345,
        "pixels_used": 1274,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.5350499982875663,
         4.211671458654369
        ],
        "median_px_per_frame": 2.528972703106116
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          12.0,
          24.0
         ],
         "median": 18.0
        },
        "apd90": {
         "iqr": [
          26.0,
          38.0
         ],
         "median": 34.0
        }
       },
       "window": [
        2918,
        2977
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          12.0,
          24.0
         ],
         "median": 18.0,
         "defined_frac": 0.9262435677530018
        },
        "apd90": {
         "iqr": [
          26.0,
          38.0
         ],
         "median": 34.0,
         "defined_frac": 0.8246140651801029
        }
       },
       "upstroke_frame": 2928,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 13.0,
       "activation_spread_frames": 13.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         12.103054297213808,
         66.71176008444756
        ],
        "plane_fit": {
         "speed_cm_s": 33.99165895597474,
         "direction_deg": 43.549718040183514,
         "speed_px_per_frame": 2.5557638312762965
        },
        "median_cm_s": 39.02956521899992,
        "pixels_used": 2029,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.9100040824972787,
         5.015921810860719
        ],
        "median_px_per_frame": 2.9345537758646554
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          14.0,
          19.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          27.0,
          34.0
         ],
         "median": 32.0
        }
       },
       "window": [
        2977,
        3036
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          14.0,
          19.0
         ],
         "median": 16.0,
         "defined_frac": 0.9888507718696398
        },
        "apd90": {
         "iqr": [
          27.0,
          34.0
         ],
         "median": 32.0,
         "defined_frac": 0.9777015437392796
        }
       },
       "upstroke_frame": 2987,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 26.0,
       "activation_spread_frames": 26.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         7.251559661622151,
         58.13878520231738
        ],
        "plane_fit": {
         "speed_cm_s": 24.656496167161425,
         "direction_deg": 98.69606553316021,
         "speed_px_per_frame": 1.8538718922677766
        },
        "median_cm_s": 33.55518560902665,
        "pixels_used": 1997,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.5452300497460264,
         4.371337233256946
        ],
        "median_px_per_frame": 2.522946286392981
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          17.0
         ],
         "median": 14.0
        },
        "apd90": {
         "iqr": [
          18.0,
          24.0
         ],
         "median": 20.0
        }
       },
       "window": [
        3036,
        3070
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          17.0
         ],
         "median": 14.0,
         "defined_frac": 0.7135506003430532
        },
        "apd90": {
         "iqr": [
          18.0,
          24.0
         ],
         "median": 20.0,
         "defined_frac": 0.6170668953687821
        }
       },
       "upstroke_frame": 3046,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 32.0,
       "activation_spread_frames": 32.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         8.9136619246537,
         52.588243215856316
        ],
        "plane_fit": {
         "speed_cm_s": 18.54005765313541,
         "direction_deg": 58.65687579397922,
         "speed_px_per_frame": 1.3939892972282264
        },
        "median_cm_s": 27.498339895492528,
        "pixels_used": 2147,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.6702001447108046,
         3.9540032493125046
        ],
        "median_px_per_frame": 2.0675443530445508
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          18.0,
          25.0
         ],
         "median": 20.0
        },
        "apd90": {
         "iqr": [
          33.0,
          40.0
         ],
         "median": 38.0
        }
       },
       "window": [
        3070,
        3124
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          18.0,
          25.0
         ],
         "median": 20.0,
         "defined_frac": 0.7718696397941681
        },
        "apd90": {
         "iqr": [
          33.0,
          40.0
         ],
         "median": 38.0,
         "defined_frac": 0.5493138936535163
        }
       },
       "upstroke_frame": 3080,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 46.0,
       "activation_spread_frames": 46.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         12.75786004377792,
         62.06695682271045
        ],
        "plane_fit": {
         "speed_cm_s": 31.06137406391537,
         "direction_deg": 38.010504968368004,
         "speed_px_per_frame": 2.335441658941005
        },
        "median_cm_s": 38.35321477115909,
        "pixels_used": 2183,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         0.9592375972765353,
         4.66668848291056
        ],
        "median_px_per_frame": 2.883700358733766
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          13.0,
          18.0
         ],
         "median": 17.0
        },
        "apd90": {
         "iqr": [
          22.0,
          27.0
         ],
         "median": 25.0
        }
       },
       "window": [
        3124,
        3170
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          13.0,
          18.0
         ],
         "median": 17.0,
         "defined_frac": 0.8966552315608919
        },
        "apd90": {
         "iqr": [
          22.0,
          27.0
         ],
         "median": 25.0,
         "defined_frac": 0.869639794168096
        }
       },
       "upstroke_frame": 3134,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 43.0,
       "activation_spread_frames": 43.0
      }
     ],
     "cv_cm_s_median": 31.34221149939391,
     "apd50_ms_median": 14.0,
     "apd90_ms_median": 25.0,
     "representative_beat": 0,
     "cv_px_per_frame_median": 2.356557255593527,
     "global_amplitude_ratio": 0.720892542534685
    },
    "frames": [
     500,
     3170
    ],
    "dominant_freq": 19.10112359550562,
    "persistent_rotors": 13,
    "singularity_count_max": 5,
    "singularity_count_mean": 0.7292134831460674,
    "singularity_frames_frac": 0.47902621722846445,
    "persistent_rotor_count_max": 2,
    "persistent_rotor_durations": [
     {
      "end": 830,
      "core": [
       20.88,
       25.9
      ],
      "start": 791,
      "charge": -1,
      "rotations": 1.121,
      "lifetime_cycles": 0.77,
      "lifetime_frames": 40,
      "frames_in_segment": 40,
      "rotation_period_frames": 35.69
     },
     {
      "end": 911,
      "core": [
       17.38,
       40.23
      ],
      "start": 878,
      "charge": -1,
      "rotations": 1.757,
      "lifetime_cycles": 0.65,
      "lifetime_frames": 34,
      "frames_in_segment": 34,
      "rotation_period_frames": 19.35
     },
     {
      "end": 969,
      "core": [
       21.31,
       19.04
      ],
      "start": 913,
      "charge": -1,
      "rotations": 2.302,
      "lifetime_cycles": 1.1,
      "lifetime_frames": 57,
      "frames_in_segment": 57,
      "rotation_period_frames": 24.76
     },
     {
      "end": 1213,
      "core": [
       22.77,
       25.89
      ],
      "start": 1108,
      "charge": -1,
      "rotations": 2.825,
      "lifetime_cycles": 2.04,
      "lifetime_frames": 106,
      "frames_in_segment": 106,
      "rotation_period_frames": 37.52
     },
     {
      "end": 1211,
      "core": [
       44.91,
       26.55
      ],
      "start": 1175,
      "charge": 1,
      "rotations": 1.108,
      "lifetime_cycles": 0.71,
      "lifetime_frames": 37,
      "frames_in_segment": 37,
      "rotation_period_frames": 33.4
     },
     {
      "end": 1408,
      "core": [
       20.56,
       15.61
      ],
      "start": 1352,
      "charge": -1,
      "rotations": 1.478,
      "lifetime_cycles": 1.1,
      "lifetime_frames": 57,
      "frames_in_segment": 57,
      "rotation_period_frames": 38.57
     },
     {
      "end": 1479,
      "core": [
       18.82,
       32.77
      ],
      "start": 1439,
      "charge": -1,
      "rotations": 1.624,
      "lifetime_cycles": 0.79,
      "lifetime_frames": 41,
      "frames_in_segment": 41,
      "rotation_period_frames": 25.25
     },
     {
      "end": 1584,
      "core": [
       37.44,
       16.59
      ],
      "start": 1551,
      "charge": 1,
      "rotations": 1.202,
      "lifetime_cycles": 0.65,
      "lifetime_frames": 34,
      "frames_in_segment": 34,
      "rotation_period_frames": 28.28
     },
     {
      "end": 1729,
      "core": [
       18.61,
       17.98
      ],
      "start": 1668,
      "charge": -1,
      "rotations": 2.349,
      "lifetime_cycles": 1.19,
      "lifetime_frames": 62,
      "frames_in_segment": 62,
      "rotation_period_frames": 26.4
     },
     {
      "end": 1796,
      "core": [
       21.17,
       36.31
      ],
      "start": 1776,
      "charge": 1,
      "rotations": 1.025,
      "lifetime_cycles": 0.4,
      "lifetime_frames": 21,
      "frames_in_segment": 21,
      "rotation_period_frames": 20.49
     },
     {
      "end": 2067,
      "core": [
       20.55,
       18.61
      ],
      "start": 2031,
      "charge": -1,
      "rotations": 1.175,
      "lifetime_cycles": 0.71,
      "lifetime_frames": 37,
      "frames_in_segment": 37,
      "rotation_period_frames": 31.49
     },
     {
      "end": 2441,
      "core": [
       34.03,
       35.97
      ],
      "start": 2410,
      "charge": 1,
      "rotations": 1.27,
      "lifetime_cycles": 0.62,
      "lifetime_frames": 32,
      "frames_in_segment": 32,
      "rotation_period_frames": 25.2
     },
     {
      "end": 2586,
      "core": [
       21.8,
       18.89
      ],
      "start": 2564,
      "charge": -1,
      "rotations": 1.134,
      "lifetime_cycles": 0.44,
      "lifetime_frames": 23,
      "frames_in_segment": 23,
      "rotation_period_frames": 20.28
     }
    ],
    "persistent_rotor_frames_frac": 0.20374531835205992
   },
   "illuminated_after_termination": {
    "beats": {
     "note": null,
     "beats": 4,
     "per_beat": [
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         40.876486993502716,
         93.26082014967216
        ],
        "plane_fit": {
         "speed_cm_s": 47.80460392655754,
         "direction_deg": -7.083013118090024,
         "speed_px_per_frame": 3.5943311222975596
        },
        "median_cm_s": 55.282984275372314,
        "pixels_used": 1181,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.0734200746994524,
         7.012091740576853
        ],
        "median_px_per_frame": 4.15661535905055
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          15.0,
          18.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          60.0,
          76.0
         ],
         "median": 74.0
        }
       },
       "window": [
        3472,
        3892
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          15.0,
          18.0
         ],
         "median": 16.0,
         "defined_frac": 0.9952830188679245
        },
        "apd90": {
         "iqr": [
          60.0,
          76.0
         ],
         "median": 74.0,
         "defined_frac": 0.9952830188679245
        }
       },
       "upstroke_frame": 3562,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.503168949458576,
         95.81628759372254
        ],
        "plane_fit": {
         "speed_cm_s": 139.99407062019256,
         "direction_deg": -2.3373412864351857,
         "speed_px_per_frame": 10.525869971443049
        },
        "median_cm_s": 59.23221458326595,
        "pixels_used": 1196,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.1205390187562836,
         7.20423214990395
        ],
        "median_px_per_frame": 4.4535499686666125
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          14.0,
          17.0
         ],
         "median": 16.0
        },
        "apd90": {
         "iqr": [
          75.0,
          80.0
         ],
         "median": 79.0
        }
       },
       "window": [
        3892,
        4285
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          14.0,
          17.0
         ],
         "median": 16.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          75.0,
          80.0
         ],
         "median": 79.0,
         "defined_frac": 0.9944253859348199
        }
       },
       "upstroke_frame": 3982,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         41.48722755640152,
         99.29363065621156
        ],
        "plane_fit": {
         "speed_cm_s": 500.79360314147436,
         "direction_deg": 117.2173986849212,
         "speed_px_per_frame": 37.653654371539425
        },
        "median_cm_s": 60.73610253753531,
        "pixels_used": 1061,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.1193404177745503,
         7.465686515504628
        ],
        "median_px_per_frame": 4.566624250942504
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          11.0,
          19.0
         ],
         "median": 18.0
        },
        "apd90": {
         "iqr": [
          67.0,
          84.0
         ],
         "median": 82.0
        }
       },
       "window": [
        4285,
        4699
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          11.0,
          19.0
         ],
         "median": 18.0,
         "defined_frac": 1.0
        },
        "apd90": {
         "iqr": [
          67.0,
          84.0
         ],
         "median": 82.0,
         "defined_frac": 1.0
        }
       },
       "upstroke_frame": 4375,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      },
      {
       "cv": {
        "fps": 1000,
        "method": "1/|grad T| on a 1 px Gaussian-smoothed max-dV/dt activation map; finite differences",
        "iqr_cm_s": [
         40.76512899857292,
         94.8222170429903
        ],
        "plane_fit": {
         "speed_cm_s": 38.202861056688974,
         "direction_deg": -9.159416312167936,
         "speed_px_per_frame": 2.8723955681721036
        },
        "median_cm_s": 57.728422361110844,
        "pixels_used": 1046,
        "pixels_total": 2332,
        "pixel_size_um": 133,
        "iqr_px_per_frame": [
         3.0650472931257835,
         7.129490003232354
        ],
        "median_px_per_frame": 4.340482884294048
       },
       "apd_ms": {
        "apd50": {
         "iqr": [
          10.0,
          12.0
         ],
         "median": 11.0
        },
        "apd90": {
         "iqr": [
          47.0,
          53.0
         ],
         "median": 52.0
        }
       },
       "window": [
        4699,
        4977
       ],
       "apd_frames": {
        "apd50": {
         "iqr": [
          10.0,
          12.0
         ],
         "median": 11.0,
         "defined_frac": 0.9897084048027445
        },
        "apd90": {
         "iqr": [
          47.0,
          53.0
         ],
         "median": 52.0,
         "defined_frac": 0.9897084048027445
        }
       },
       "upstroke_frame": 4789,
       "activation_coverage": 0.6625,
       "activation_spread_ms": 3.0,
       "activation_spread_frames": 3.0
      }
     ],
     "cv_cm_s_median": 58.4803184721884,
     "apd50_ms_median": 16.0,
     "apd90_ms_median": 76.5,
     "representative_beat": 0,
     "cv_px_per_frame_median": 4.397016426480331,
     "global_amplitude_ratio": 0.9531830969646711
    },
    "frames": [
     3170,
     4977
    ],
    "dominant_freq": 2.2136137244050915,
    "persistent_rotors": 0,
    "singularity_count_max": 3,
    "singularity_count_mean": 0.01770890979524073,
    "singularity_frames_frac": 0.014941892639734366,
    "persistent_rotor_count_max": 0,
    "persistent_rotor_durations": [],
    "persistent_rotor_frames_frac": 0.0
   }
  },
  "computed_on": {
   "amplitude_p99": "baseline-corrected",
   "dominant_freq": "baseline-corrected, median of per-pixel spectral peaks",
   "activation_apd_cv": "baseline-corrected display signal, per global beat",
   "singularities_and_rotors": "phase of spatially filtered signal"
  },
  "amplitude_p99": 2.9326555728912354,
  "dominant_freq": 2.4192572880125804,
  "mask_coverage": 0.6625,
  "pixel_size_um": 133.0,
  "tissue_pixels": 2332,
  "min_rotor_frames": 52,
  "persistence_rule": "own_rotation",
  "dominant_freq_iqr": [
   2.4192572880125804,
   2.4192572880125804
  ],
  "persistent_rotors": 13,
  "dominant_freq_unit": "Hz",
  "singularity_count_max": 5,
  "singularity_count_mean": 0.24749002056368694,
  "paired_singularity_frac": 0.03519061583577713,
  "persistent_rotor_tracks": 13,
  "singularity_frames_frac": 0.1635417926696504,
  "dominant_freq_tissue_mean": 2.4192572880125804,
  "persistent_rotor_count_max": 2,
  "persistent_rotor_durations": [
   {
    "end": 830,
    "core": [
     20.88,
     25.9
    ],
    "start": 791,
    "charge": -1,
    "rotations": 1.121,
    "lifetime_cycles": 0.77,
    "lifetime_frames": 40,
    "frames_in_segment": 40,
    "rotation_period_frames": 35.69
   },
   {
    "end": 911,
    "core": [
     17.38,
     40.23
    ],
    "start": 878,
    "charge": -1,
    "rotations": 1.757,
    "lifetime_cycles": 0.65,
    "lifetime_frames": 34,
    "frames_in_segment": 34,
    "rotation_period_frames": 19.35
   },
   {
    "end": 969,
    "core": [
     21.31,
     19.04
    ],
    "start": 913,
    "charge": -1,
    "rotations": 2.302,
    "lifetime_cycles": 1.1,
    "lifetime_frames": 57,
    "frames_in_segment": 57,
    "rotation_period_frames": 24.76
   },
   {
    "end": 1213,
    "core": [
     22.77,
     25.89
    ],
    "start": 1108,
    "charge": -1,
    "rotations": 2.825,
    "lifetime_cycles": 2.04,
    "lifetime_frames": 106,
    "frames_in_segment": 106,
    "rotation_period_frames": 37.52
   },
   {
    "end": 1211,
    "core": [
     44.91,
     26.55
    ],
    "start": 1175,
    "charge": 1,
    "rotations": 1.108,
    "lifetime_cycles": 0.71,
    "lifetime_frames": 37,
    "frames_in_segment": 37,
    "rotation_period_frames": 33.4
   },
   {
    "end": 1408,
    "core": [
     20.56,
     15.61
    ],
    "start": 1352,
    "charge": -1,
    "rotations": 1.478,
    "lifetime_cycles": 1.1,
    "lifetime_frames": 57,
    "frames_in_segment": 57,
    "rotation_period_frames": 38.57
   },
   {
    "end": 1479,
    "core": [
     18.82,
     32.77
    ],
    "start": 1439,
    "charge": -1,
    "rotations": 1.624,
    "lifetime_cycles": 0.79,
    "lifetime_frames": 41,
    "frames_in_segment": 41,
    "rotation_period_frames": 25.25
   },
   {
    "end": 1584,
    "core": [
     37.44,
     16.59
    ],
    "start": 1551,
    "charge": 1,
    "rotations": 1.202,
    "lifetime_cycles": 0.65,
    "lifetime_frames": 34,
    "frames_in_segment": 34,
    "rotation_period_frames": 28.28
   },
   {
    "end": 1729,
    "core": [
     18.61,
     17.98
    ],
    "start": 1668,
    "charge": -1,
    "rotations": 2.349,
    "lifetime_cycles": 1.19,
    "lifetime_frames": 62,
    "frames_in_segment": 62,
    "rotation_period_frames": 26.4
   },
   {
    "end": 1796,
    "core": [
     21.17,
     36.31
    ],
    "start": 1776,
    "charge": 1,
    "rotations": 1.025,
    "lifetime_cycles": 0.4,
    "lifetime_frames": 21,
    "frames_in_segment": 21,
    "rotation_period_frames": 20.49
   },
   {
    "end": 2067,
    "core": [
     20.55,
     18.61
    ],
    "start": 2031,
    "charge": -1,
    "rotations": 1.175,
    "lifetime_cycles": 0.71,
    "lifetime_frames": 37,
    "frames_in_segment": 37,
    "rotation_period_frames": 31.49
   },
   {
    "end": 2441,
    "core": [
     34.03,
     35.97
    ],
    "start": 2410,
    "charge": 1,
    "rotations": 1.27,
    "lifetime_cycles": 0.62,
    "lifetime_frames": 32,
    "frames_in_segment": 32,
    "rotation_period_frames": 25.2
   },
   {
    "end": 2586,
    "core": [
     21.8,
     18.89
    ],
    "start": 2564,
    "charge": -1,
    "rotations": 1.134,
    "lifetime_cycles": 0.44,
    "lifetime_frames": 23,
    "frames_in_segment": 23,
    "rotation_period_frames": 20.28
   }
  ],
  "persistent_rotor_lifetimes": [
   106,
   62,
   57,
   57,
   41,
   40,
   37,
   37,
   34,
   34,
   32,
   23,
   21
  ],
  "persistent_rotor_frames_frac": 0.06580379823394218
 },
 "reportable": {
  "persistent_rotor_tracks": {
   "unit": "count",
   "status": "unstable, not reportable",
   "settings": "sensitivity grid + trackers",
   "range_across_settings": [
    4.0,
    15.0
   ]
  },
  "light_off.dominant_freq_hz": {
   "unit": "Hz",
   "value": 2.375,
   "checked": "no_cited_range"
  },
  "light_off.persistent_rotors": {
   "unit": "count",
   "value": 0,
   "checked": "no_cited_range"
  },
  "light_off.singularity_frames_frac": {
   "unit": "fraction of frames",
   "status": "unstable, not reportable",
   "settings": "sensitivity grid + trackers",
   "range_across_settings": [
    0.0029023746701846965,
    0.02955145118733509
   ]
  },
  "light_off.persistent_rotor_count_max": {
   "unit": "count",
   "value": 0,
   "checked": "no_cited_range"
  },
  "illuminated_arrhythmia.dominant_freq_hz": {
   "unit": "Hz",
   "status": "unstable, not reportable",
   "settings": "sensitivity grid + trackers",
   "range_across_settings": [
    15.356,
    19.85
   ]
  },
  "illuminated_arrhythmia.persistent_rotors": {
   "unit": "count",
   "status": "unstable, not reportable",
   "settings": "sensitivity grid + trackers",
   "range_across_settings": [
    4.0,
    15.0
   ]
  },
  "illuminated_after_termination.dominant_freq_hz": {
   "unit": "Hz",
   "value": 2.214,
   "checked": "no_cited_range"
  },
  "illuminated_arrhythmia.singularity_frames_frac": {
   "unit": "fraction of frames",
   "value": 0.47902621722846445,
   "checked": "no_cited_range"
  },
  "illuminated_after_termination.persistent_rotors": {
   "unit": "count",
   "value": 0,
   "checked": "no_cited_range"
  },
  "illuminated_arrhythmia.persistent_rotor_count_max": {
   "unit": "count",
   "status": "unstable, not reportable",
   "settings": "sensitivity grid + trackers",
   "range_across_settings": [
    1.0,
    2.0
   ]
  },
  "illuminated_after_termination.singularity_frames_frac": {
   "unit": "fraction of frames",
   "status": "unstable, not reportable",
   "settings": "sensitivity grid + trackers",
   "range_across_settings": [
    0.0005534034311012728,
    0.014941892639734366
   ]
  },
  "illuminated_after_termination.persistent_rotor_count_max": {
   "unit": "count",
   "value": 0,
   "checked": "no_cited_range"
  }
 },
 "physiology_ok": null,
 "sensitivity": {
  "grid": [
   {
    "sigma": "light",
    "baseline": "6x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.02928759894459103,
       "illuminated_after_termination": 0.007194244604316547
      },
      "present": {
       "illuminated_arrhythmia": 0.40898876404494383
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 5
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        36,
        24,
        34,
        60,
        46
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": false,
      "label": "does not hold (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.0749063670411985
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 8,
      "singularity_count_mean": 0.06807387862796833,
      "singularity_frames_frac": 0.02928759894459103,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 5,
      "singularity_count_max": 7,
      "singularity_count_mean": 0.697752808988764,
      "singularity_frames_frac": 0.40898876404494383,
      "persistent_rotor_count_max": 1,
      "persistent_rotor_durations": [
       {
        "end": 1168,
        "core": [
         23.53,
         29.81
        ],
        "start": 1133,
        "charge": -1,
        "rotations": 1.693,
        "lifetime_cycles": 0.69,
        "lifetime_frames": 36,
        "frames_in_segment": 36,
        "rotation_period_frames": 21.26
       },
       {
        "end": 1218,
        "core": [
         26.38,
         19.38
        ],
        "start": 1195,
        "charge": -1,
        "rotations": 1.097,
        "lifetime_cycles": 0.46,
        "lifetime_frames": 24,
        "frames_in_segment": 24,
        "rotation_period_frames": 21.88
       },
       {
        "end": 1486,
        "core": [
         21.47,
         32.67
        ],
        "start": 1453,
        "charge": -1,
        "rotations": 1.337,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 25.43
       },
       {
        "end": 1727,
        "core": [
         18.92,
         18.36
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.092,
        "lifetime_cycles": 1.15,
        "lifetime_frames": 60,
        "frames_in_segment": 60,
        "rotation_period_frames": 28.68
       },
       {
        "end": 2022,
        "core": [
         18.77,
         32.25
        ],
        "start": 1977,
        "charge": -1,
        "rotations": 1.441,
        "lifetime_cycles": 0.88,
        "lifetime_frames": 46,
        "frames_in_segment": 46,
        "rotation_period_frames": 31.92
       }
      ],
      "persistent_rotor_frames_frac": 0.0749063670411985
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 6,
      "singularity_count_mean": 0.014941892639734366,
      "singularity_frames_frac": 0.007194244604316547,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 0.5,
    "is_run_setting": false,
    "baseline_frames": 2712,
    "persistent_rotor_tracks": 5
   },
   {
    "sigma": "default",
    "baseline": "6x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.02955145118733509,
       "illuminated_after_termination": 0.007194244604316547
      },
      "present": {
       "illuminated_arrhythmia": 0.40299625468164796
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 5
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        36,
        23,
        35,
        60,
        46
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": false,
      "label": "does not hold (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.0749063670411985
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 6,
      "singularity_count_mean": 0.06437994722955145,
      "singularity_frames_frac": 0.02955145118733509,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 5,
      "singularity_count_max": 6,
      "singularity_count_mean": 0.6823970037453183,
      "singularity_frames_frac": 0.40299625468164796,
      "persistent_rotor_count_max": 1,
      "persistent_rotor_durations": [
       {
        "end": 1168,
        "core": [
         23.5,
         29.75
        ],
        "start": 1133,
        "charge": -1,
        "rotations": 1.695,
        "lifetime_cycles": 0.69,
        "lifetime_frames": 36,
        "frames_in_segment": 36,
        "rotation_period_frames": 21.24
       },
       {
        "end": 1217,
        "core": [
         26.5,
         19.28
        ],
        "start": 1195,
        "charge": -1,
        "rotations": 1.033,
        "lifetime_cycles": 0.44,
        "lifetime_frames": 23,
        "frames_in_segment": 23,
        "rotation_period_frames": 22.27
       },
       {
        "end": 1486,
        "core": [
         21.17,
         32.47
        ],
        "start": 1452,
        "charge": -1,
        "rotations": 1.381,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 25.34
       },
       {
        "end": 1727,
        "core": [
         18.96,
         18.29
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.106,
        "lifetime_cycles": 1.15,
        "lifetime_frames": 60,
        "frames_in_segment": 60,
        "rotation_period_frames": 28.5
       },
       {
        "end": 2022,
        "core": [
         18.77,
         32.3
        ],
        "start": 1977,
        "charge": -1,
        "rotations": 1.443,
        "lifetime_cycles": 0.88,
        "lifetime_frames": 46,
        "frames_in_segment": 46,
        "rotation_period_frames": 31.88
       }
      ],
      "persistent_rotor_frames_frac": 0.0749063670411985
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 6,
      "singularity_count_mean": 0.01549529607083564,
      "singularity_frames_frac": 0.007194244604316547,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 1.0,
    "is_run_setting": false,
    "baseline_frames": 2712,
    "persistent_rotor_tracks": 5
   },
   {
    "sigma": "heavier",
    "baseline": "6x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.02691292875989446,
       "illuminated_after_termination": 0.007194244604316547
      },
      "present": {
       "illuminated_arrhythmia": 0.3816479400749064
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 4
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        44,
        27,
        60,
        26
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": false,
      "label": "does not hold (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.058801498127340826
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 6,
      "singularity_count_mean": 0.050659630606860157,
      "singularity_frames_frac": 0.02691292875989446,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 4,
      "singularity_count_max": 6,
      "singularity_count_mean": 0.6411985018726591,
      "singularity_frames_frac": 0.3816479400749064,
      "persistent_rotor_count_max": 1,
      "persistent_rotor_durations": [
       {
        "end": 1176,
        "core": [
         23.07,
         30.45
        ],
        "start": 1133,
        "charge": -1,
        "rotations": 1.829,
        "lifetime_cycles": 0.85,
        "lifetime_frames": 44,
        "frames_in_segment": 44,
        "rotation_period_frames": 24.05
       },
       {
        "end": 1479,
        "core": [
         21.31,
         32.72
        ],
        "start": 1453,
        "charge": -1,
        "rotations": 1.042,
        "lifetime_cycles": 0.52,
        "lifetime_frames": 27,
        "frames_in_segment": 27,
        "rotation_period_frames": 25.92
       },
       {
        "end": 1727,
        "core": [
         19.04,
         18.03
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.106,
        "lifetime_cycles": 1.15,
        "lifetime_frames": 60,
        "frames_in_segment": 60,
        "rotation_period_frames": 28.48
       },
       {
        "end": 2007,
        "core": [
         19.23,
         33.12
        ],
        "start": 1982,
        "charge": -1,
        "rotations": 1.292,
        "lifetime_cycles": 0.5,
        "lifetime_frames": 26,
        "frames_in_segment": 26,
        "rotation_period_frames": 20.12
       }
      ],
      "persistent_rotor_frames_frac": 0.058801498127340826
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.01162147205312673,
      "singularity_frames_frac": 0.007194244604316547,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 2.0,
    "is_run_setting": false,
    "baseline_frames": 2712,
    "persistent_rotor_tracks": 4
   },
   {
    "sigma": "light",
    "baseline": "3x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.008707124010554089,
       "illuminated_after_termination": 0.00387382401770891
      },
      "present": {
       "illuminated_arrhythmia": 0.4797752808988764
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 12
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        33,
        38,
        33,
        57,
        104,
        39,
        58,
        41,
        35,
        62,
        37,
        38
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.20074906367041198
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 4,
      "singularity_count_mean": 0.012928759894459104,
      "singularity_frames_frac": 0.008707124010554089,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 12,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7209737827715356,
      "singularity_frames_frac": 0.4797752808988764,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 741,
        "core": [
         41.23,
         20.47
        ],
        "start": 709,
        "charge": 1,
        "rotations": 1.008,
        "lifetime_cycles": 0.63,
        "lifetime_frames": 33,
        "frames_in_segment": 33,
        "rotation_period_frames": 32.74
       },
       {
        "end": 829,
        "core": [
         20.68,
         25.87
        ],
        "start": 792,
        "charge": -1,
        "rotations": 1.027,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 36.99
       },
       {
        "end": 911,
        "core": [
         17.59,
         39.8
        ],
        "start": 879,
        "charge": -1,
        "rotations": 1.352,
        "lifetime_cycles": 0.63,
        "lifetime_frames": 33,
        "frames_in_segment": 33,
        "rotation_period_frames": 24.4
       },
       {
        "end": 969,
        "core": [
         21.2,
         18.94
        ],
        "start": 913,
        "charge": -1,
        "rotations": 2.274,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 25.07
       },
       {
        "end": 1213,
        "core": [
         23.01,
         25.81
        ],
        "start": 1110,
        "charge": -1,
        "rotations": 2.728,
        "lifetime_cycles": 2.0,
        "lifetime_frames": 104,
        "frames_in_segment": 104,
        "rotation_period_frames": 38.13
       },
       {
        "end": 1212,
        "core": [
         44.58,
         26.47
        ],
        "start": 1174,
        "charge": 1,
        "rotations": 1.119,
        "lifetime_cycles": 0.75,
        "lifetime_frames": 39,
        "frames_in_segment": 39,
        "rotation_period_frames": 34.85
       },
       {
        "end": 1409,
        "core": [
         20.48,
         15.98
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.431,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 40.54
       },
       {
        "end": 1479,
        "core": [
         18.82,
         32.99
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.62,
        "lifetime_cycles": 0.79,
        "lifetime_frames": 41,
        "frames_in_segment": 41,
        "rotation_period_frames": 25.31
       },
       {
        "end": 1584,
        "core": [
         37.9,
         15.99
        ],
        "start": 1550,
        "charge": 1,
        "rotations": 1.268,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 27.6
       },
       {
        "end": 1729,
        "core": [
         18.66,
         18.23
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.338,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.52
       },
       {
        "end": 2067,
        "core": [
         20.69,
         18.61
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.153,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 32.1
       },
       {
        "end": 2448,
        "core": [
         36.21,
         34.61
        ],
        "start": 2411,
        "charge": 1,
        "rotations": 1.559,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 24.37
       }
      ],
      "persistent_rotor_frames_frac": 0.20074906367041198
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.004980630879911455,
      "singularity_frames_frac": 0.00387382401770891,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 0.5,
    "is_run_setting": false,
    "baseline_frames": 1356,
    "persistent_rotor_tracks": 12
   },
   {
    "sigma": "default",
    "baseline": "3x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.008179419525065963,
       "illuminated_after_termination": 0.003320420586607637
      },
      "present": {
       "illuminated_arrhythmia": 0.4756554307116105
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 11
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        38,
        33,
        57,
        104,
        40,
        58,
        40,
        35,
        62,
        37,
        38
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.18801498127340824
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 4,
      "singularity_count_mean": 0.011609498680738786,
      "singularity_frames_frac": 0.008179419525065963,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 11,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7086142322097378,
      "singularity_frames_frac": 0.4756554307116105,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 829,
        "core": [
         20.71,
         25.82
        ],
        "start": 792,
        "charge": -1,
        "rotations": 1.028,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 36.95
       },
       {
        "end": 911,
        "core": [
         17.53,
         39.86
        ],
        "start": 879,
        "charge": -1,
        "rotations": 1.327,
        "lifetime_cycles": 0.63,
        "lifetime_frames": 33,
        "frames_in_segment": 33,
        "rotation_period_frames": 24.86
       },
       {
        "end": 969,
        "core": [
         21.25,
         18.83
        ],
        "start": 913,
        "charge": -1,
        "rotations": 2.263,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 25.19
       },
       {
        "end": 1213,
        "core": [
         23.07,
         25.73
        ],
        "start": 1110,
        "charge": -1,
        "rotations": 2.719,
        "lifetime_cycles": 2.0,
        "lifetime_frames": 104,
        "frames_in_segment": 104,
        "rotation_period_frames": 38.25
       },
       {
        "end": 1213,
        "core": [
         44.33,
         26.38
        ],
        "start": 1174,
        "charge": 1,
        "rotations": 1.206,
        "lifetime_cycles": 0.77,
        "lifetime_frames": 40,
        "frames_in_segment": 40,
        "rotation_period_frames": 33.16
       },
       {
        "end": 1409,
        "core": [
         20.59,
         15.93
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.439,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 40.3
       },
       {
        "end": 1479,
        "core": [
         18.93,
         32.88
        ],
        "start": 1440,
        "charge": -1,
        "rotations": 1.614,
        "lifetime_cycles": 0.77,
        "lifetime_frames": 40,
        "frames_in_segment": 40,
        "rotation_period_frames": 24.79
       },
       {
        "end": 1584,
        "core": [
         37.84,
         15.99
        ],
        "start": 1550,
        "charge": 1,
        "rotations": 1.268,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 27.59
       },
       {
        "end": 1729,
        "core": [
         18.66,
         18.11
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.338,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.52
       },
       {
        "end": 2067,
        "core": [
         20.72,
         18.61
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.151,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 32.15
       },
       {
        "end": 2448,
        "core": [
         36.29,
         34.63
        ],
        "start": 2411,
        "charge": 1,
        "rotations": 1.56,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 24.36
       }
      ],
      "persistent_rotor_frames_frac": 0.18801498127340824
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.004427227448810182,
      "singularity_frames_frac": 0.003320420586607637,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 1.0,
    "is_run_setting": false,
    "baseline_frames": 1356,
    "persistent_rotor_tracks": 11
   },
   {
    "sigma": "heavier",
    "baseline": "3x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.00712401055408971,
       "illuminated_after_termination": 0.00387382401770891
      },
      "present": {
       "illuminated_arrhythmia": 0.45767790262172287
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 12
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        31,
        33,
        37,
        104,
        38,
        40,
        35,
        62,
        27,
        35,
        39,
        39
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.1805243445692884
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 4,
      "singularity_count_mean": 0.00949868073878628,
      "singularity_frames_frac": 0.00712401055408971,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 12,
      "singularity_count_max": 4,
      "singularity_count_mean": 0.6674157303370787,
      "singularity_frames_frac": 0.45767790262172287,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 740,
        "core": [
         41.08,
         20.63
        ],
        "start": 710,
        "charge": 1,
        "rotations": 1.015,
        "lifetime_cycles": 0.6,
        "lifetime_frames": 31,
        "frames_in_segment": 31,
        "rotation_period_frames": 30.55
       },
       {
        "end": 911,
        "core": [
         17.17,
         40.26
        ],
        "start": 879,
        "charge": -1,
        "rotations": 1.769,
        "lifetime_cycles": 0.63,
        "lifetime_frames": 33,
        "frames_in_segment": 33,
        "rotation_period_frames": 18.65
       },
       {
        "end": 969,
        "core": [
         23.47,
         18.18
        ],
        "start": 933,
        "charge": -1,
        "rotations": 1.035,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 35.74
       },
       {
        "end": 1212,
        "core": [
         23.12,
         25.59
        ],
        "start": 1109,
        "charge": -1,
        "rotations": 2.758,
        "lifetime_cycles": 2.0,
        "lifetime_frames": 104,
        "frames_in_segment": 104,
        "rotation_period_frames": 37.71
       },
       {
        "end": 1212,
        "core": [
         44.42,
         26.26
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.192,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 31.88
       },
       {
        "end": 1479,
        "core": [
         19.07,
         32.83
        ],
        "start": 1440,
        "charge": -1,
        "rotations": 1.594,
        "lifetime_cycles": 0.77,
        "lifetime_frames": 40,
        "frames_in_segment": 40,
        "rotation_period_frames": 25.09
       },
       {
        "end": 1584,
        "core": [
         37.67,
         16.1
        ],
        "start": 1550,
        "charge": 1,
        "rotations": 1.262,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 27.73
       },
       {
        "end": 1729,
        "core": [
         18.82,
         17.87
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.336,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.54
       },
       {
        "end": 1795,
        "core": [
         18.76,
         34.87
        ],
        "start": 1769,
        "charge": 1,
        "rotations": 1.27,
        "lifetime_cycles": 0.52,
        "lifetime_frames": 27,
        "frames_in_segment": 27,
        "rotation_period_frames": 21.26
       },
       {
        "end": 2066,
        "core": [
         20.41,
         18.44
        ],
        "start": 2032,
        "charge": -1,
        "rotations": 1.098,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 31.86
       },
       {
        "end": 2408,
        "core": [
         35.82,
         40.74
        ],
        "start": 2370,
        "charge": 1,
        "rotations": 1.131,
        "lifetime_cycles": 0.75,
        "lifetime_frames": 39,
        "frames_in_segment": 39,
        "rotation_period_frames": 34.49
       },
       {
        "end": 2449,
        "core": [
         35.93,
         34.8
        ],
        "start": 2411,
        "charge": 1,
        "rotations": 1.55,
        "lifetime_cycles": 0.75,
        "lifetime_frames": 39,
        "frames_in_segment": 39,
        "rotation_period_frames": 25.16
       }
      ],
      "persistent_rotor_frames_frac": 0.1805243445692884
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 1,
      "singularity_count_mean": 0.00387382401770891,
      "singularity_frames_frac": 0.00387382401770891,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 2.0,
    "is_run_setting": false,
    "baseline_frames": 1356,
    "persistent_rotor_tracks": 12
   },
   {
    "sigma": "light",
    "baseline": "1.5x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0036939313984168864,
       "illuminated_after_termination": 0.002767017155506364
      },
      "present": {
       "illuminated_arrhythmia": 0.48801498127340825
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 13
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        31,
        39,
        35,
        57,
        36,
        104,
        38,
        58,
        41,
        34,
        62,
        37,
        31
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.21161048689138576
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 2,
      "singularity_count_mean": 0.00395778364116095,
      "singularity_frames_frac": 0.0036939313984168864,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 13,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7546816479400749,
      "singularity_frames_frac": 0.48801498127340825,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 742,
        "core": [
         40.4,
         20.79
        ],
        "start": 712,
        "charge": 1,
        "rotations": 1.031,
        "lifetime_cycles": 0.6,
        "lifetime_frames": 31,
        "frames_in_segment": 31,
        "rotation_period_frames": 30.06
       },
       {
        "end": 830,
        "core": [
         20.96,
         25.81
        ],
        "start": 792,
        "charge": -1,
        "rotations": 1.098,
        "lifetime_cycles": 0.75,
        "lifetime_frames": 39,
        "frames_in_segment": 39,
        "rotation_period_frames": 35.53
       },
       {
        "end": 911,
        "core": [
         17.44,
         39.61
        ],
        "start": 877,
        "charge": -1,
        "rotations": 1.626,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 21.52
       },
       {
        "end": 969,
        "core": [
         21.13,
         19.01
        ],
        "start": 913,
        "charge": -1,
        "rotations": 2.317,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 24.6
       },
       {
        "end": 1030,
        "core": [
         22.21,
         45.5
        ],
        "start": 995,
        "charge": -1,
        "rotations": 1.109,
        "lifetime_cycles": 0.69,
        "lifetime_frames": 36,
        "frames_in_segment": 36,
        "rotation_period_frames": 32.47
       },
       {
        "end": 1213,
        "core": [
         23.08,
         25.89
        ],
        "start": 1110,
        "charge": -1,
        "rotations": 2.737,
        "lifetime_cycles": 2.0,
        "lifetime_frames": 104,
        "frames_in_segment": 104,
        "rotation_period_frames": 38.0
       },
       {
        "end": 1212,
        "core": [
         44.55,
         26.82
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.093,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 34.77
       },
       {
        "end": 1409,
        "core": [
         21.09,
         15.71
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.51,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 38.41
       },
       {
        "end": 1479,
        "core": [
         18.77,
         33.16
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.672,
        "lifetime_cycles": 0.79,
        "lifetime_frames": 41,
        "frames_in_segment": 41,
        "rotation_period_frames": 24.52
       },
       {
        "end": 1584,
        "core": [
         37.74,
         16.41
        ],
        "start": 1551,
        "charge": 1,
        "rotations": 1.243,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 27.35
       },
       {
        "end": 1729,
        "core": [
         18.55,
         18.13
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.343,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.46
       },
       {
        "end": 2067,
        "core": [
         20.61,
         18.58
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.182,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 31.29
       },
       {
        "end": 2441,
        "core": [
         34.18,
         35.79
        ],
        "start": 2411,
        "charge": 1,
        "rotations": 1.189,
        "lifetime_cycles": 0.6,
        "lifetime_frames": 31,
        "frames_in_segment": 31,
        "rotation_period_frames": 26.07
       }
      ],
      "persistent_rotor_frames_frac": 0.21161048689138576
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 1,
      "singularity_count_mean": 0.002767017155506364,
      "singularity_frames_frac": 0.002767017155506364,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 0.5,
    "is_run_setting": false,
    "baseline_frames": 678,
    "persistent_rotor_tracks": 13
   },
   {
    "sigma": "default",
    "baseline": "1.5x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0036939313984168864,
       "illuminated_after_termination": 0.002213613724405091
      },
      "present": {
       "illuminated_arrhythmia": 0.4846441947565543
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 13
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        39,
        35,
        57,
        37,
        104,
        37,
        58,
        41,
        35,
        62,
        30,
        37,
        38
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.21460674157303372
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 2,
      "singularity_count_mean": 0.00395778364116095,
      "singularity_frames_frac": 0.0036939313984168864,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 13,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7441947565543071,
      "singularity_frames_frac": 0.4846441947565543,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 830,
        "core": [
         20.99,
         25.78
        ],
        "start": 792,
        "charge": -1,
        "rotations": 1.099,
        "lifetime_cycles": 0.75,
        "lifetime_frames": 39,
        "frames_in_segment": 39,
        "rotation_period_frames": 35.5
       },
       {
        "end": 911,
        "core": [
         17.33,
         39.76
        ],
        "start": 877,
        "charge": -1,
        "rotations": 1.827,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 19.16
       },
       {
        "end": 969,
        "core": [
         21.2,
         18.92
        ],
        "start": 913,
        "charge": -1,
        "rotations": 2.309,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 24.69
       },
       {
        "end": 1030,
        "core": [
         22.12,
         45.69
        ],
        "start": 994,
        "charge": -1,
        "rotations": 1.129,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 32.78
       },
       {
        "end": 1213,
        "core": [
         23.1,
         25.81
        ],
        "start": 1110,
        "charge": -1,
        "rotations": 2.716,
        "lifetime_cycles": 2.0,
        "lifetime_frames": 104,
        "frames_in_segment": 104,
        "rotation_period_frames": 38.29
       },
       {
        "end": 1211,
        "core": [
         44.77,
         26.85
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.008,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 36.71
       },
       {
        "end": 1409,
        "core": [
         20.86,
         15.66
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.493,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 38.84
       },
       {
        "end": 1479,
        "core": [
         18.79,
         33.13
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.662,
        "lifetime_cycles": 0.79,
        "lifetime_frames": 41,
        "frames_in_segment": 41,
        "rotation_period_frames": 24.67
       },
       {
        "end": 1584,
        "core": [
         37.7,
         16.24
        ],
        "start": 1550,
        "charge": 1,
        "rotations": 1.228,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 28.51
       },
       {
        "end": 1729,
        "core": [
         18.69,
         18.08
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.338,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.52
       },
       {
        "end": 1797,
        "core": [
         18.77,
         35.5
        ],
        "start": 1768,
        "charge": 1,
        "rotations": 1.37,
        "lifetime_cycles": 0.58,
        "lifetime_frames": 30,
        "frames_in_segment": 30,
        "rotation_period_frames": 21.9
       },
       {
        "end": 2067,
        "core": [
         20.61,
         18.58
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.206,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 30.69
       },
       {
        "end": 2448,
        "core": [
         34.95,
         35.53
        ],
        "start": 2411,
        "charge": 1,
        "rotations": 1.358,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 27.97
       }
      ],
      "persistent_rotor_frames_frac": 0.21460674157303372
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 1,
      "singularity_count_mean": 0.002213613724405091,
      "singularity_frames_frac": 0.002213613724405091,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 1.0,
    "is_run_setting": false,
    "baseline_frames": 678,
    "persistent_rotor_tracks": 13
   },
   {
    "sigma": "heavier",
    "baseline": "1.5x_cycle",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0029023746701846965,
       "illuminated_after_termination": 0.0005534034311012728
      },
      "present": {
       "illuminated_arrhythmia": 0.4681647940074906
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 15
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        39,
        58,
        35,
        103,
        37,
        57,
        41,
        34,
        62,
        29,
        37,
        57,
        38,
        21,
        23
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.23745318352059924
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 2,
      "singularity_count_mean": 0.0031662269129287598,
      "singularity_frames_frac": 0.0029023746701846965,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 15,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7018726591760299,
      "singularity_frames_frac": 0.4681647940074906,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 830,
        "core": [
         20.99,
         25.58
        ],
        "start": 792,
        "charge": -1,
        "rotations": 1.096,
        "lifetime_cycles": 0.75,
        "lifetime_frames": 39,
        "frames_in_segment": 39,
        "rotation_period_frames": 35.59
       },
       {
        "end": 969,
        "core": [
         21.38,
         18.84
        ],
        "start": 912,
        "charge": -1,
        "rotations": 2.327,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 24.92
       },
       {
        "end": 1029,
        "core": [
         21.87,
         45.73
        ],
        "start": 995,
        "charge": -1,
        "rotations": 1.157,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 30.24
       },
       {
        "end": 1212,
        "core": [
         23.24,
         25.57
        ],
        "start": 1110,
        "charge": -1,
        "rotations": 2.695,
        "lifetime_cycles": 1.98,
        "lifetime_frames": 103,
        "frames_in_segment": 103,
        "rotation_period_frames": 38.22
       },
       {
        "end": 1211,
        "core": [
         44.82,
         26.74
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.083,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 34.16
       },
       {
        "end": 1408,
        "core": [
         20.93,
         15.42
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.748,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 32.62
       },
       {
        "end": 1479,
        "core": [
         18.84,
         33.13
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.852,
        "lifetime_cycles": 0.79,
        "lifetime_frames": 41,
        "frames_in_segment": 41,
        "rotation_period_frames": 22.13
       },
       {
        "end": 1584,
        "core": [
         37.53,
         16.5
        ],
        "start": 1551,
        "charge": 1,
        "rotations": 1.246,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 27.29
       },
       {
        "end": 1729,
        "core": [
         18.76,
         17.76
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.344,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.45
       },
       {
        "end": 1796,
        "core": [
         18.64,
         35.05
        ],
        "start": 1768,
        "charge": 1,
        "rotations": 1.351,
        "lifetime_cycles": 0.56,
        "lifetime_frames": 29,
        "frames_in_segment": 29,
        "rotation_period_frames": 21.46
       },
       {
        "end": 2067,
        "core": [
         20.74,
         18.42
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.223,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 30.25
       },
       {
        "end": 2407,
        "core": [
         31.31,
         37.89
        ],
        "start": 2351,
        "charge": 1,
        "rotations": 1.51,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 37.74
       },
       {
        "end": 2448,
        "core": [
         34.86,
         35.62
        ],
        "start": 2411,
        "charge": 1,
        "rotations": 1.356,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 28.02
       },
       {
        "end": 2509,
        "core": [
         34.26,
         33.64
        ],
        "start": 2489,
        "charge": 1,
        "rotations": 1.036,
        "lifetime_cycles": 0.4,
        "lifetime_frames": 21,
        "frames_in_segment": 21,
        "rotation_period_frames": 20.26
       },
       {
        "end": 2587,
        "core": [
         10.17,
         29.17
        ],
        "start": 2565,
        "charge": 1,
        "rotations": 1.445,
        "lifetime_cycles": 0.44,
        "lifetime_frames": 23,
        "frames_in_segment": 23,
        "rotation_period_frames": 15.92
       }
      ],
      "persistent_rotor_frames_frac": 0.23745318352059924
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 1,
      "singularity_count_mean": 0.0005534034311012728,
      "singularity_frames_frac": 0.0005534034311012728,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 2.0,
    "is_run_setting": false,
    "baseline_frames": 678,
    "persistent_rotor_tracks": 15
   },
   {
    "sigma": "light",
    "baseline": "run",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.013192612137203167,
       "illuminated_after_termination": 0.014941892639734366
      },
      "present": {
       "illuminated_arrhythmia": 0.4842696629213483
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 12
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        40,
        34,
        57,
        36,
        104,
        38,
        57,
        41,
        35,
        62,
        37,
        32
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.20037453183520598
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.021108179419525065,
      "singularity_frames_frac": 0.013192612137203167,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 12,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7411985018726591,
      "singularity_frames_frac": 0.4842696629213483,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 830,
        "core": [
         20.85,
         26.0
        ],
        "start": 791,
        "charge": -1,
        "rotations": 1.116,
        "lifetime_cycles": 0.77,
        "lifetime_frames": 40,
        "frames_in_segment": 40,
        "rotation_period_frames": 35.85
       },
       {
        "end": 911,
        "core": [
         17.32,
         40.26
        ],
        "start": 878,
        "charge": -1,
        "rotations": 1.779,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 19.11
       },
       {
        "end": 969,
        "core": [
         21.31,
         19.1
        ],
        "start": 913,
        "charge": -1,
        "rotations": 2.299,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 24.79
       },
       {
        "end": 1030,
        "core": [
         21.68,
         45.98
        ],
        "start": 995,
        "charge": -1,
        "rotations": 1.051,
        "lifetime_cycles": 0.69,
        "lifetime_frames": 36,
        "frames_in_segment": 36,
        "rotation_period_frames": 34.24
       },
       {
        "end": 1213,
        "core": [
         22.94,
         25.72
        ],
        "start": 1110,
        "charge": -1,
        "rotations": 2.742,
        "lifetime_cycles": 2.0,
        "lifetime_frames": 104,
        "frames_in_segment": 104,
        "rotation_period_frames": 37.93
       },
       {
        "end": 1212,
        "core": [
         44.74,
         26.55
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.105,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 34.4
       },
       {
        "end": 1408,
        "core": [
         20.52,
         15.67
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.459,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 39.06
       },
       {
        "end": 1479,
        "core": [
         18.82,
         32.77
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.629,
        "lifetime_cycles": 0.79,
        "lifetime_frames": 41,
        "frames_in_segment": 41,
        "rotation_period_frames": 25.17
       },
       {
        "end": 1584,
        "core": [
         37.53,
         16.53
        ],
        "start": 1550,
        "charge": 1,
        "rotations": 1.172,
        "lifetime_cycles": 0.67,
        "lifetime_frames": 35,
        "frames_in_segment": 35,
        "rotation_period_frames": 29.87
       },
       {
        "end": 1729,
        "core": [
         18.61,
         18.02
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.351,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.37
       },
       {
        "end": 2067,
        "core": [
         20.53,
         18.69
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.153,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 32.09
       },
       {
        "end": 2441,
        "core": [
         34.03,
         35.88
        ],
        "start": 2410,
        "charge": 1,
        "rotations": 1.27,
        "lifetime_cycles": 0.62,
        "lifetime_frames": 32,
        "frames_in_segment": 32,
        "rotation_period_frames": 25.2
       }
      ],
      "persistent_rotor_frames_frac": 0.20037453183520598
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.018262313226342003,
      "singularity_frames_frac": 0.014941892639734366,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 0.5,
    "is_run_setting": false,
    "baseline_frames": 901,
    "persistent_rotor_tracks": 12
   },
   {
    "sigma": "default",
    "baseline": "run",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.012137203166226913,
       "illuminated_after_termination": 0.014941892639734366
      },
      "present": {
       "illuminated_arrhythmia": 0.47902621722846445
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 13
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        40,
        34,
        57,
        106,
        37,
        57,
        41,
        34,
        62,
        21,
        37,
        32,
        23
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.20374531835205992
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.017678100263852244,
      "singularity_frames_frac": 0.012137203166226913,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 13,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7292134831460674,
      "singularity_frames_frac": 0.47902621722846445,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 830,
        "core": [
         20.88,
         25.9
        ],
        "start": 791,
        "charge": -1,
        "rotations": 1.121,
        "lifetime_cycles": 0.77,
        "lifetime_frames": 40,
        "frames_in_segment": 40,
        "rotation_period_frames": 35.69
       },
       {
        "end": 911,
        "core": [
         17.38,
         40.23
        ],
        "start": 878,
        "charge": -1,
        "rotations": 1.757,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 19.35
       },
       {
        "end": 969,
        "core": [
         21.31,
         19.04
        ],
        "start": 913,
        "charge": -1,
        "rotations": 2.302,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 24.76
       },
       {
        "end": 1213,
        "core": [
         22.77,
         25.89
        ],
        "start": 1108,
        "charge": -1,
        "rotations": 2.825,
        "lifetime_cycles": 2.04,
        "lifetime_frames": 106,
        "frames_in_segment": 106,
        "rotation_period_frames": 37.52
       },
       {
        "end": 1211,
        "core": [
         44.91,
         26.55
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.108,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 33.4
       },
       {
        "end": 1408,
        "core": [
         20.56,
         15.61
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.478,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 38.57
       },
       {
        "end": 1479,
        "core": [
         18.82,
         32.77
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.624,
        "lifetime_cycles": 0.79,
        "lifetime_frames": 41,
        "frames_in_segment": 41,
        "rotation_period_frames": 25.25
       },
       {
        "end": 1584,
        "core": [
         37.44,
         16.59
        ],
        "start": 1551,
        "charge": 1,
        "rotations": 1.202,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 28.28
       },
       {
        "end": 1729,
        "core": [
         18.61,
         17.98
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.349,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.4
       },
       {
        "end": 1796,
        "core": [
         21.17,
         36.31
        ],
        "start": 1776,
        "charge": 1,
        "rotations": 1.025,
        "lifetime_cycles": 0.4,
        "lifetime_frames": 21,
        "frames_in_segment": 21,
        "rotation_period_frames": 20.49
       },
       {
        "end": 2067,
        "core": [
         20.55,
         18.61
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.175,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 31.49
       },
       {
        "end": 2441,
        "core": [
         34.03,
         35.97
        ],
        "start": 2410,
        "charge": 1,
        "rotations": 1.27,
        "lifetime_cycles": 0.62,
        "lifetime_frames": 32,
        "frames_in_segment": 32,
        "rotation_period_frames": 25.2
       },
       {
        "end": 2586,
        "core": [
         21.8,
         18.89
        ],
        "start": 2564,
        "charge": -1,
        "rotations": 1.134,
        "lifetime_cycles": 0.44,
        "lifetime_frames": 23,
        "frames_in_segment": 23,
        "rotation_period_frames": 20.28
       }
      ],
      "persistent_rotor_frames_frac": 0.20374531835205992
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.01770890979524073,
      "singularity_frames_frac": 0.014941892639734366,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 1.0,
    "is_run_setting": true,
    "baseline_frames": 901,
    "persistent_rotor_tracks": 13
   },
   {
    "sigma": "heavier",
    "baseline": "run",
    "findings": {
     "singularities": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.008443271767810026,
       "illuminated_after_termination": 0.01162147205312673
      },
      "present": {
       "illuminated_arrhythmia": 0.4606741573033708
      }
     },
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 12
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        40,
        34,
        58,
        104,
        38,
        41,
        34,
        62,
        36,
        57,
        31,
        22
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.1943820224719101
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.010817941952506595,
      "singularity_frames_frac": 0.008443271767810026,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 12,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.6827715355805244,
      "singularity_frames_frac": 0.4606741573033708,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 830,
        "core": [
         20.88,
         25.82
        ],
        "start": 791,
        "charge": -1,
        "rotations": 1.128,
        "lifetime_cycles": 0.77,
        "lifetime_frames": 40,
        "frames_in_segment": 40,
        "rotation_period_frames": 35.46
       },
       {
        "end": 911,
        "core": [
         17.53,
         40.09
        ],
        "start": 878,
        "charge": -1,
        "rotations": 1.789,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 19.0
       },
       {
        "end": 969,
        "core": [
         21.5,
         19.0
        ],
        "start": 912,
        "charge": -1,
        "rotations": 2.317,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 25.04
       },
       {
        "end": 1212,
        "core": [
         23.0,
         25.48
        ],
        "start": 1109,
        "charge": -1,
        "rotations": 2.734,
        "lifetime_cycles": 2.0,
        "lifetime_frames": 104,
        "frames_in_segment": 104,
        "rotation_period_frames": 38.04
       },
       {
        "end": 1212,
        "core": [
         44.74,
         26.39
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.254,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 30.3
       },
       {
        "end": 1479,
        "core": [
         18.96,
         32.6
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.642,
        "lifetime_cycles": 0.79,
        "lifetime_frames": 41,
        "frames_in_segment": 41,
        "rotation_period_frames": 24.97
       },
       {
        "end": 1584,
        "core": [
         37.21,
         16.68
        ],
        "start": 1551,
        "charge": 1,
        "rotations": 1.239,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 27.43
       },
       {
        "end": 1729,
        "core": [
         18.66,
         17.66
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.349,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.39
       },
       {
        "end": 2067,
        "core": [
         20.61,
         18.31
        ],
        "start": 2032,
        "charge": -1,
        "rotations": 1.18,
        "lifetime_cycles": 0.69,
        "lifetime_frames": 36,
        "frames_in_segment": 36,
        "rotation_period_frames": 30.5
       },
       {
        "end": 2408,
        "core": [
         31.5,
         37.65
        ],
        "start": 2352,
        "charge": 1,
        "rotations": 1.086,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 52.51
       },
       {
        "end": 2441,
        "core": [
         34.11,
         35.5
        ],
        "start": 2411,
        "charge": 1,
        "rotations": 1.251,
        "lifetime_cycles": 0.6,
        "lifetime_frames": 31,
        "frames_in_segment": 31,
        "rotation_period_frames": 24.78
       },
       {
        "end": 2586,
        "core": [
         21.95,
         18.18
        ],
        "start": 2565,
        "charge": -1,
        "rotations": 1.118,
        "lifetime_cycles": 0.42,
        "lifetime_frames": 22,
        "frames_in_segment": 22,
        "rotation_period_frames": 19.67
       }
      ],
      "persistent_rotor_frames_frac": 0.1943820224719101
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 1,
      "singularity_count_mean": 0.01162147205312673,
      "singularity_frames_frac": 0.01162147205312673,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "spatial_sigma": 2.0,
    "is_run_setting": false,
    "baseline_frames": 901,
    "persistent_rotor_tracks": 12
   }
  ],
  "fixed": {
   "expect": {
    "light_off": "absent",
    "illuminated_arrhythmia": "present",
    "illuminated_after_termination": "absent"
   },
   "window": [
    500,
    8767
   ],
   "polarity": -1,
   "segments": {
    "light_off": [
     4977,
     8767
    ],
    "illuminated_arrhythmia": [
     500,
     3170
    ],
    "illuminated_after_termination": [
     3170,
     4977
    ]
   },
   "rotor_erode_px": 3,
   "rotor_threshold": 0.9,
   "min_rotor_frames": 52
  },
  "holds": {
   "singularities": true,
   "persistent_rotors": true,
   "persistent_rotors_fraction_superseded": false
  },
  "status": "provisional",
  "varied": {
   "spatial_sigma": {
    "light": 0.5,
    "default": 1.0,
    "heavier": 2.0
   },
   "baseline_frames": {
    "run": 901,
    "3x_cycle": 1356,
    "6x_cycle": 2712,
    "1.5x_cycle": 678
   },
   "baseline_scaling": {
    "multiples": {
     "3x_cycle": 3.0,
     "6x_cycle": 6.0,
     "1.5x_cycle": 1.5
    },
    "reference_segment": "illuminated_after_termination",
    "segment_cycles_frames": {
     "light_off": 421,
     "illuminated_arrhythmia": 52,
     "illuminated_after_termination": 452
    },
    "reference_cycle_frames": 452,
    "window_over_cycle_per_segment": {
     "run": {
      "light_off": 2.14,
      "illuminated_arrhythmia": 17.33,
      "illuminated_after_termination": 1.99
     },
     "3x_cycle": {
      "light_off": 3.22,
      "illuminated_arrhythmia": 26.08,
      "illuminated_after_termination": 3.0
     },
     "6x_cycle": {
      "light_off": 6.44,
      "illuminated_arrhythmia": 52.15,
      "illuminated_after_termination": 6.0
     },
     "1.5x_cycle": {
      "light_off": 1.61,
      "illuminated_arrhythmia": 13.04,
      "illuminated_after_termination": 1.5
     }
    }
   },
   "tracker(link_px, max_gap)": {
    "loose": [
     6.0,
     10
    ],
    "strict": [
     2.0,
     1
    ],
    "default": [
     4.0,
     5
    ]
   }
  },
  "findings": {
   "singularities": {
    "finding": "singularities present in the segments where the design expects them and absent where it does not",
    "criterion": "each 'present' segment: frac >= 0.1 and >= 2.0 x max frac over 'absent' segments, at every setting",
    "superseded": false,
    "holds_across_filters": true,
    "label_across_filters": "holds (provisional)",
    "holds_across_trackers": null,
    "label_across_trackers": null
   },
   "persistent_rotors": {
    "finding": "persistent rotors present in the segments where the design expects them and absent where it does not",
    "criterion": "each 'present' segment: count >= 1; each 'absent' segment: count <= 0, at every setting",
    "superseded": false,
    "holds_across_filters": true,
    "label_across_filters": "holds (provisional)",
    "holds_across_trackers": true,
    "label_across_trackers": "holds (provisional)"
   },
   "persistent_rotors_fraction_superseded": {
    "finding": "persistent rotors present in the segments where the design expects them and absent where it does not",
    "criterion": "each 'present' segment: frac >= 0.1 and >= 2.0 x max frac over 'absent' segments (superseded: fraction rule applied to persistent rotors), 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)"
   }
  },
  "trackers": [
   {
    "link_px": 2.0,
    "max_gap": 1,
    "tracker": "strict",
    "findings": {
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 5
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        47,
        31,
        37,
        38,
        57
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": false,
      "label": "does not hold (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.07865168539325842
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.017678100263852244,
      "singularity_frames_frac": 0.012137203166226913,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 5,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7292134831460674,
      "singularity_frames_frac": 0.47902621722846445,
      "persistent_rotor_count_max": 1,
      "persistent_rotor_durations": [
       {
        "end": 739,
        "core": [
         23.29,
         25.16
        ],
        "start": 693,
        "charge": -1,
        "rotations": 1.37,
        "lifetime_cycles": 0.9,
        "lifetime_frames": 47,
        "frames_in_segment": 47,
        "rotation_period_frames": 34.3
       },
       {
        "end": 908,
        "core": [
         16.8,
         40.33
        ],
        "start": 878,
        "charge": -1,
        "rotations": 1.462,
        "lifetime_cycles": 0.6,
        "lifetime_frames": 31,
        "frames_in_segment": 31,
        "rotation_period_frames": 21.2
       },
       {
        "end": 969,
        "core": [
         22.85,
         19.12
        ],
        "start": 933,
        "charge": -1,
        "rotations": 1.124,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 32.93
       },
       {
        "end": 1148,
        "core": [
         22.18,
         31.68
        ],
        "start": 1111,
        "charge": -1,
        "rotations": 1.122,
        "lifetime_cycles": 0.73,
        "lifetime_frames": 38,
        "frames_in_segment": 38,
        "rotation_period_frames": 33.88
       },
       {
        "end": 1727,
        "core": [
         18.9,
         17.64
        ],
        "start": 1671,
        "charge": -1,
        "rotations": 2.115,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 26.95
       }
      ],
      "persistent_rotor_frames_frac": 0.07865168539325842
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.01770890979524073,
      "singularity_frames_frac": 0.014941892639734366,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "is_run_setting": false,
    "persistent_rotor_tracks": 5
   },
   {
    "link_px": 4.0,
    "max_gap": 5,
    "tracker": "default",
    "findings": {
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 13
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        40,
        34,
        57,
        106,
        37,
        57,
        41,
        34,
        62,
        21,
        37,
        32,
        23
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.20374531835205992
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.017678100263852244,
      "singularity_frames_frac": 0.012137203166226913,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 13,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7292134831460674,
      "singularity_frames_frac": 0.47902621722846445,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 830,
        "core": [
         20.88,
         25.9
        ],
        "start": 791,
        "charge": -1,
        "rotations": 1.121,
        "lifetime_cycles": 0.77,
        "lifetime_frames": 40,
        "frames_in_segment": 40,
        "rotation_period_frames": 35.69
       },
       {
        "end": 911,
        "core": [
         17.38,
         40.23
        ],
        "start": 878,
        "charge": -1,
        "rotations": 1.757,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 19.35
       },
       {
        "end": 969,
        "core": [
         21.31,
         19.04
        ],
        "start": 913,
        "charge": -1,
        "rotations": 2.302,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 24.76
       },
       {
        "end": 1213,
        "core": [
         22.77,
         25.89
        ],
        "start": 1108,
        "charge": -1,
        "rotations": 2.825,
        "lifetime_cycles": 2.04,
        "lifetime_frames": 106,
        "frames_in_segment": 106,
        "rotation_period_frames": 37.52
       },
       {
        "end": 1211,
        "core": [
         44.91,
         26.55
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.108,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 33.4
       },
       {
        "end": 1408,
        "core": [
         20.56,
         15.61
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.478,
        "lifetime_cycles": 1.1,
        "lifetime_frames": 57,
        "frames_in_segment": 57,
        "rotation_period_frames": 38.57
       },
       {
        "end": 1479,
        "core": [
         18.82,
         32.77
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.624,
        "lifetime_cycles": 0.79,
        "lifetime_frames": 41,
        "frames_in_segment": 41,
        "rotation_period_frames": 25.25
       },
       {
        "end": 1584,
        "core": [
         37.44,
         16.59
        ],
        "start": 1551,
        "charge": 1,
        "rotations": 1.202,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 28.28
       },
       {
        "end": 1729,
        "core": [
         18.61,
         17.98
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.349,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.4
       },
       {
        "end": 1796,
        "core": [
         21.17,
         36.31
        ],
        "start": 1776,
        "charge": 1,
        "rotations": 1.025,
        "lifetime_cycles": 0.4,
        "lifetime_frames": 21,
        "frames_in_segment": 21,
        "rotation_period_frames": 20.49
       },
       {
        "end": 2067,
        "core": [
         20.55,
         18.61
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.175,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 31.49
       },
       {
        "end": 2441,
        "core": [
         34.03,
         35.97
        ],
        "start": 2410,
        "charge": 1,
        "rotations": 1.27,
        "lifetime_cycles": 0.62,
        "lifetime_frames": 32,
        "frames_in_segment": 32,
        "rotation_period_frames": 25.2
       },
       {
        "end": 2586,
        "core": [
         21.8,
         18.89
        ],
        "start": 2564,
        "charge": -1,
        "rotations": 1.134,
        "lifetime_cycles": 0.44,
        "lifetime_frames": 23,
        "frames_in_segment": 23,
        "rotation_period_frames": 20.28
       }
      ],
      "persistent_rotor_frames_frac": 0.20374531835205992
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.01770890979524073,
      "singularity_frames_frac": 0.014941892639734366,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "is_run_setting": true,
    "persistent_rotor_tracks": 13
   },
   {
    "link_px": 6.0,
    "max_gap": 10,
    "tracker": "loose",
    "findings": {
     "persistent_rotors": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0,
       "illuminated_after_termination": 0
      },
      "present": {
       "illuminated_arrhythmia": 15
      },
      "lifetimes_frames": {
       "light_off": [],
       "illuminated_arrhythmia": [
        40,
        34,
        58,
        36,
        106,
        39,
        58,
        42,
        58,
        59,
        62,
        37,
        25,
        39,
        23
       ],
       "illuminated_after_termination": []
      }
     },
     "persistent_rotors_fraction_superseded": {
      "holds": true,
      "label": "holds (provisional)",
      "absent": {
       "light_off": 0.0,
       "illuminated_after_termination": 0.0
      },
      "present": {
       "illuminated_arrhythmia": 0.23183520599250937
      }
     }
    },
    "segments": {
     "light_off": {
      "beats": null,
      "frames": [
       4977,
       8767
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.017678100263852244,
      "singularity_frames_frac": 0.012137203166226913,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     },
     "illuminated_arrhythmia": {
      "beats": null,
      "frames": [
       500,
       3170
      ],
      "dominant_freq": null,
      "persistent_rotors": 15,
      "singularity_count_max": 5,
      "singularity_count_mean": 0.7292134831460674,
      "singularity_frames_frac": 0.47902621722846445,
      "persistent_rotor_count_max": 2,
      "persistent_rotor_durations": [
       {
        "end": 830,
        "core": [
         20.88,
         25.9
        ],
        "start": 791,
        "charge": -1,
        "rotations": 1.121,
        "lifetime_cycles": 0.77,
        "lifetime_frames": 40,
        "frames_in_segment": 40,
        "rotation_period_frames": 35.69
       },
       {
        "end": 911,
        "core": [
         17.38,
         40.23
        ],
        "start": 878,
        "charge": -1,
        "rotations": 1.757,
        "lifetime_cycles": 0.65,
        "lifetime_frames": 34,
        "frames_in_segment": 34,
        "rotation_period_frames": 19.35
       },
       {
        "end": 969,
        "core": [
         21.33,
         19.22
        ],
        "start": 912,
        "charge": -1,
        "rotations": 2.313,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 25.08
       },
       {
        "end": 1030,
        "core": [
         21.68,
         45.65
        ],
        "start": 995,
        "charge": -1,
        "rotations": 1.102,
        "lifetime_cycles": 0.69,
        "lifetime_frames": 36,
        "frames_in_segment": 36,
        "rotation_period_frames": 32.67
       },
       {
        "end": 1213,
        "core": [
         22.77,
         25.89
        ],
        "start": 1108,
        "charge": -1,
        "rotations": 2.825,
        "lifetime_cycles": 2.04,
        "lifetime_frames": 106,
        "frames_in_segment": 106,
        "rotation_period_frames": 37.52
       },
       {
        "end": 1213,
        "core": [
         44.42,
         26.45
        ],
        "start": 1175,
        "charge": 1,
        "rotations": 1.277,
        "lifetime_cycles": 0.75,
        "lifetime_frames": 39,
        "frames_in_segment": 39,
        "rotation_period_frames": 30.54
       },
       {
        "end": 1409,
        "core": [
         20.54,
         15.72
        ],
        "start": 1352,
        "charge": -1,
        "rotations": 1.461,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 39.69
       },
       {
        "end": 1480,
        "core": [
         19.12,
         32.64
        ],
        "start": 1439,
        "charge": -1,
        "rotations": 1.622,
        "lifetime_cycles": 0.81,
        "lifetime_frames": 42,
        "frames_in_segment": 42,
        "rotation_period_frames": 25.9
       },
       {
        "end": 1607,
        "core": [
         37.94,
         17.19
        ],
        "start": 1550,
        "charge": 1,
        "rotations": 1.77,
        "lifetime_cycles": 1.12,
        "lifetime_frames": 58,
        "frames_in_segment": 58,
        "rotation_period_frames": 32.76
       },
       {
        "end": 1608,
        "core": [
         25.23,
         27.4
        ],
        "start": 1550,
        "charge": -1,
        "rotations": 1.365,
        "lifetime_cycles": 1.13,
        "lifetime_frames": 59,
        "frames_in_segment": 59,
        "rotation_period_frames": 43.21
       },
       {
        "end": 1729,
        "core": [
         18.61,
         17.98
        ],
        "start": 1668,
        "charge": -1,
        "rotations": 2.349,
        "lifetime_cycles": 1.19,
        "lifetime_frames": 62,
        "frames_in_segment": 62,
        "rotation_period_frames": 26.4
       },
       {
        "end": 2067,
        "core": [
         20.55,
         18.61
        ],
        "start": 2031,
        "charge": -1,
        "rotations": 1.175,
        "lifetime_cycles": 0.71,
        "lifetime_frames": 37,
        "frames_in_segment": 37,
        "rotation_period_frames": 31.49
       },
       {
        "end": 2230,
        "core": [
         10.88,
         11.88
        ],
        "start": 2206,
        "charge": 1,
        "rotations": 1.476,
        "lifetime_cycles": 0.48,
        "lifetime_frames": 25,
        "frames_in_segment": 25,
        "rotation_period_frames": 16.94
       },
       {
        "end": 2448,
        "core": [
         34.85,
         35.71
        ],
        "start": 2410,
        "charge": 1,
        "rotations": 1.449,
        "lifetime_cycles": 0.75,
        "lifetime_frames": 39,
        "frames_in_segment": 39,
        "rotation_period_frames": 26.92
       },
       {
        "end": 2586,
        "core": [
         21.8,
         18.89
        ],
        "start": 2564,
        "charge": -1,
        "rotations": 1.134,
        "lifetime_cycles": 0.44,
        "lifetime_frames": 23,
        "frames_in_segment": 23,
        "rotation_period_frames": 20.28
       }
      ],
      "persistent_rotor_frames_frac": 0.23183520599250937
     },
     "illuminated_after_termination": {
      "beats": null,
      "frames": [
       3170,
       4977
      ],
      "dominant_freq": null,
      "persistent_rotors": 0,
      "singularity_count_max": 3,
      "singularity_count_mean": 0.01770890979524073,
      "singularity_frames_frac": 0.014941892639734366,
      "persistent_rotor_count_max": 0,
      "persistent_rotor_durations": [],
      "persistent_rotor_frames_frac": 0.0
     }
    },
    "is_run_setting": false,
    "persistent_rotor_tracks": 15
   }
  ]
 },
 "critic": {
  "code": {
   "dirty": true,
   "git_commit": "008c2dc076bcebf9e7fa01a05e8b7c4b5a713b37"
  },
  "agent": "critic",
  "model": "openai:gpt-5.5",
  "checks": {
   "checks": {
    "persistent_rotor_tracks": {
     "unit": "count",
     "range": null,
     "metric": "persistent_rotor_tracks",
     "stable": false,
     "status": "unstable_not_reportable",
     "segment": null,
     "spread_frac": 0.917,
     "value_at_run_setting": 13,
     "range_across_settings": [
      4.0,
      15.0
     ]
    },
    "light_off.dominant_freq_hz": {
     "unit": "Hz",
     "range": null,
     "metric": "dominant_freq_hz",
     "stable": true,
     "status": "no_cited_range",
     "segment": "light_off",
     "spread_frac": 0.0,
     "value_at_run_setting": 2.375,
     "range_across_settings": [
      2.375,
      2.375
     ]
    },
    "light_off.persistent_rotors": {
     "unit": "count",
     "range": null,
     "metric": "persistent_rotors",
     "stable": true,
     "status": "no_cited_range",
     "segment": "light_off",
     "spread_frac": 0.0,
     "value_at_run_setting": 0,
     "range_across_settings": [
      0.0,
      0.0
     ]
    },
    "light_off.singularity_frames_frac": {
     "unit": "fraction of frames",
     "range": null,
     "metric": "singularity_frames_frac",
     "stable": false,
     "status": "unstable_not_reportable",
     "segment": "light_off",
     "spread_frac": 3.108,
     "value_at_run_setting": 0.012137203166226913,
     "range_across_settings": [
      0.0029023746701846965,
      0.02955145118733509
     ]
    },
    "light_off.persistent_rotor_count_max": {
     "unit": "count",
     "range": null,
     "metric": "persistent_rotor_count_max",
     "stable": true,
     "status": "no_cited_range",
     "segment": "light_off",
     "spread_frac": 0.0,
     "value_at_run_setting": 0,
     "range_across_settings": [
      0.0,
      0.0
     ]
    },
    "illuminated_arrhythmia.dominant_freq_hz": {
     "unit": "Hz",
     "range": {
      "id": "mouse_spiral_rotation_hz",
      "ref": "10.1371/journal.pcbi.1011660",
      "cited_low": 18.75,
      "cited_high": 20.0,
      "checked_low": 14.0625,
      "checked_high": 25.0
     },
     "metric": "dominant_freq_hz",
     "stable": false,
     "status": "unstable_not_reportable",
     "segment": "illuminated_arrhythmia",
     "spread_frac": 0.261,
     "value_at_run_setting": 19.101,
     "range_across_settings": [
      15.356,
      19.85
     ]
    },
    "illuminated_arrhythmia.persistent_rotors": {
     "unit": "count",
     "range": null,
     "metric": "persistent_rotors",
     "stable": false,
     "status": "unstable_not_reportable",
     "segment": "illuminated_arrhythmia",
     "spread_frac": 0.917,
     "value_at_run_setting": 13,
     "range_across_settings": [
      4.0,
      15.0
     ]
    },
    "illuminated_after_termination.dominant_freq_hz": {
     "unit": "Hz",
     "range": null,
     "metric": "dominant_freq_hz",
     "stable": true,
     "status": "no_cited_range",
     "segment": "illuminated_after_termination",
     "spread_frac": 0.0,
     "value_at_run_setting": 2.214,
     "range_across_settings": [
      2.214,
      2.214
     ]
    },
    "illuminated_arrhythmia.singularity_frames_frac": {
     "unit": "fraction of frames",
     "range": null,
     "metric": "singularity_frames_frac",
     "stable": true,
     "status": "no_cited_range",
     "segment": "illuminated_arrhythmia",
     "spread_frac": 0.225,
     "value_at_run_setting": 0.47902621722846445,
     "range_across_settings": [
      0.3816479400749064,
      0.48801498127340825
     ]
    },
    "illuminated_after_termination.persistent_rotors": {
     "unit": "count",
     "range": null,
     "metric": "persistent_rotors",
     "stable": true,
     "status": "no_cited_range",
     "segment": "illuminated_after_termination",
     "spread_frac": 0.0,
     "value_at_run_setting": 0,
     "range_across_settings": [
      0.0,
      0.0
     ]
    },
    "illuminated_arrhythmia.persistent_rotor_count_max": {
     "unit": "count",
     "range": null,
     "metric": "persistent_rotor_count_max",
     "stable": false,
     "status": "unstable_not_reportable",
     "segment": "illuminated_arrhythmia",
     "spread_frac": 0.5,
     "value_at_run_setting": 2,
     "range_across_settings": [
      1.0,
      2.0
     ]
    },
    "illuminated_after_termination.singularity_frames_frac": {
     "unit": "fraction of frames",
     "range": null,
     "metric": "singularity_frames_frac",
     "stable": false,
     "status": "unstable_not_reportable",
     "segment": "illuminated_after_termination",
     "spread_frac": 2.6,
     "value_at_run_setting": 0.014941892639734366,
     "range_across_settings": [
      0.0005534034311012728,
      0.014941892639734366
     ]
    },
    "illuminated_after_termination.persistent_rotor_count_max": {
     "unit": "count",
     "range": null,
     "metric": "persistent_rotor_count_max",
     "stable": true,
     "status": "no_cited_range",
     "segment": "illuminated_after_termination",
     "spread_frac": 0.0,
     "value_at_run_setting": 0,
     "range_across_settings": [
      0.0,
      0.0
     ]
    }
   },
   "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"
   ],
   "physiology_ok": null,
   "ranged_checks": [
    "illuminated_arrhythmia.dominant_freq_hz"
   ]
  },
  "ranges": [
   {
    "id": "mouse_spiral_rotation_hz",
    "low": 18.75,
    "high": 20.0,
    "unit": "Hz",
    "scope": "one optical mapping recording in the same study (spiral wave before and during illumination); not a population range",
    "metric": "dominant_freq_hz",
    "source": {
     "ref": "10.1371/journal.pcbi.1011660",
     "quotes": [
      "rotational frequency of \u2248 20 Hz before illumination",
      "the frequency of the arrhythmia decreases to \u2248 18\\.75 Hz"
     ],
     "passages": [
      " is shown in Fig 3B. It shows that the arrhythmia consists of a single spiral wave with a stationary core dynamic and a rotational frequency of \u2248 20 Hz before illumination. During a single global optical pulse with a PL of 5000 ms and an LI of 3.21 \u03bcW/mm2, the frequency of the arrhythmia de",
      "ncy of \u2248 20 Hz before illumination. During a single global optical pulse with a PL of 5000 ms and an LI of 3.21 \u03bcW/mm2, the frequency of the arrhythmia decreases to \u2248 18.75 Hz. It is important to note that the frequency reverses its original value of \u2248 20 Hz when the light is turned off. Fig 3C"
     ]
    },
    "status": "provisional",
    "tissue": "whole_heart",
    "species": "mouse",
    "applies_to": {
     "segment_expected_persistent_rotors": "present"
    },
    "checked_low": 14.0625,
    "checked_high": 25.0,
    "tolerance_frac": 0.25
   }
  ],
  "run_id": "339921d8-9255-4d78-9789-6816dd8b409c",
  "status": "provisional",
  "verdict": {
   "send_back": false,
   "critic_notes": "Verdict: report only sensitivity-stable qualitative/algorithmic findings and do not report unstable metrics as single values; physiology_ok is null because the only cited range check, illuminated_arrhythmia.dominant_freq_hz, is unstable rather than physiology-validated. Stable observations include 0 persistent rotors and 0 maximum persistent-rotor count in light_off and illuminated_after_termination, dominant frequencies of 2.375 Hz in light_off and 2.214 Hz in illuminated_after_termination, and illuminated_arrhythmia singularity_frames_frac over 0.3816479400749064\u20130.48801498127340825, all without cited physiological ranges; unstable, not reportable as single values, are light_off.singularity_frames_frac over 0.0029023746701846965\u20130.02955145118733509, illuminated_arrhythmia.persistent_rotors over 4.0\u201315.0, illuminated_arrhythmia.persistent_rotor_count_max over 1.0\u20132.0, illuminated_arrhythmia.dominant_freq_hz over 15.356\u201319.85 Hz, illuminated_after_termination.singularity_frames_frac over 0.0005534034311012728\u20130.014941892639734366, and persistent_rotor_tracks over 4.0\u201315.0. The persistent-rotor rule holds using both the 52-frame measured-cycle threshold and the 50-frame cited 20 Hz rotation-period threshold, which agree; the relevant same-study context reports approximately 20 Hz before illumination and approximately 18.75 Hz during illumination (DOI 10.1371/journal.pcbi.1011660). Review required: pre-deposit processing/raw-data label, frame-3170 event interpretation, baseline/illumination artifact, provisional tool thresholds, and tracker sensitivity; the ranges, the stability threshold and the criteria are provisional.",
   "review_items": [
    {
     "topic": "unstable:light_off.singularity_frames_frac",
     "detail": "This metric varies over 0.0029023746701846965\u20130.02955145118733509 across the filter grid and should not be reported as a single value.",
     "severity": "warn",
     "reviewer_type": "domain scientist / analysis lead"
    },
    {
     "topic": "unstable:illuminated_arrhythmia.persistent_rotors",
     "detail": "This metric varies over 4.0\u201315.0 across filter and tracker settings and should not be reported as a single count.",
     "severity": "warn",
     "reviewer_type": "domain scientist / analysis lead"
    },
    {
     "topic": "unstable:illuminated_arrhythmia.persistent_rotor_count_max",
     "detail": "This metric varies over 1.0\u20132.0 across filter and tracker settings and should not be reported as a single maximum concurrent count.",
     "severity": "warn",
     "reviewer_type": "domain scientist / analysis lead"
    },
    {
     "topic": "unstable:illuminated_arrhythmia.dominant_freq_hz",
     "detail": "This metric varies over 15.356\u201319.85 Hz across baseline-window settings; frequency interpretation should be reviewed against the same-study cited rotation context.",
     "severity": "warn",
     "reviewer_type": "domain scientist / electrophysiology reviewer"
    },
    {
     "topic": "unstable:illuminated_after_termination.singularity_frames_frac",
     "detail": "This metric varies over 0.0005534034311012728\u20130.014941892639734366 across the filter grid and should not be reported as a single value.",
     "severity": "warn",
     "reviewer_type": "domain scientist / analysis lead"
    },
    {
     "topic": "unstable:persistent_rotor_tracks",
     "detail": "This metric varies over 4.0\u201315.0 across filter and tracker settings and should not be reported as a single total track count.",
     "severity": "warn",
     "reviewer_type": "domain scientist / analysis lead"
    },
    {
     "topic": "Pre-deposit processing / raw-data label",
     "detail": "The recording is labeled as raw experimental data, but documentation and measurements indicate masking, spatial smoothing, temporal smoothing, and normalization; do not treat it as raw camera photon counts for analyses that require raw data or independent pixel noise.",
     "severity": "warn",
     "reviewer_type": "data provenance reviewer"
    },
    {
     "topic": "Event interpretation at frame 3170",
     "detail": "Frame 3170 is a baseline_step only; illumination began before frame 0 and ended at frame 4977, so the stored spiral-termination interpretation is provisional and should not be treated as direct light onset evidence.",
     "severity": "warn",
     "reviewer_type": "domain scientist"
    },
    {
     "topic": "Baseline and illumination artifact",
     "detail": "The publication reports stimulation-light crosstalk and re-normalization; the recording also has a large slow baseline range and a baseline step, so absolute baseline or amplitude analyses need artifact review.",
     "severity": "warn",
     "reviewer_type": "optical mapping reviewer"
    },
    {
     "topic": "Provisional tool thresholds",
     "detail": "Event detection, processing flags, SNR, rhythm, reference-rate thresholds, stability threshold, and criteria are provisional and should be checked for critical uses.",
     "severity": "info",
     "reviewer_type": "domain scientist / methods reviewer"
    },
    {
     "topic": "tracker sensitivity of rotor counts",
     "detail": "The persistent-rotor rule agrees across strict, default, and loose trackers, but the illuminated-arrhythmia counts differ across trackers, so report the qualitative rule result rather than a single count.",
     "severity": "warn",
     "reviewer_type": "analysis lead"
    }
   ],
   "tracker_note": "Strict, default, and loose tracking gave illuminated-arrhythmia persistent-rotor counts of 5, 13, and 15, respectively, with 0 in light_off and 0 in illuminated_after_termination for all three; the count is sensitivity-dependent, but the provisional persistent-rotor rule holds for all tracker variants.",
   "physiology_ok": null,
   "metric_judgments": [
    {
     "note": "Unstable across the filter grid, so this fraction should not be reported as a single value; refer only to its range across settings, 0.0029023746701846965\u20130.02955145118733509 fraction of frames, and review sensitivity before using it.",
     "metric": "light_off.singularity_frames_frac",
     "status": "unstable_not_reportable"
    },
    {
     "note": "Stable at 0 across filter and tracker settings, but no cited physiological range was available, so it may be reported only as an algorithmic observation, not as a physiology-validated metric.",
     "metric": "light_off.persistent_rotors",
     "status": "no_cited_range"
    },
    {
     "note": "Stable at 0 across filter and tracker settings, but no cited physiological range was available, so it may be reported only as an algorithmic observation, not as a physiology-validated metric.",
     "metric": "light_off.persistent_rotor_count_max",
     "status": "no_cited_range"
    },
    {
     "note": "Stable at 2.375 Hz across baseline-window settings, but no cited range was available for this segment, so it is not physiology-validated by the cited literature.",
     "metric": "light_off.dominant_freq_hz",
     "status": "no_cited_range"
    },
    {
     "note": "Stable over 0.3816479400749064\u20130.48801498127340825 fraction of frames across the filter grid, but no cited physiological range was available; report only as an algorithmic singularity-detection observation.",
     "metric": "illuminated_arrhythmia.singularity_frames_frac",
     "status": "no_cited_range"
    },
    {
     "note": "Unstable across filter and tracker settings, so this count should not be reported as a single value; refer only to its range across settings, 4.0\u201315.0, and review tracking/sensitivity.",
     "metric": "illuminated_arrhythmia.persistent_rotors",
     "status": "unstable_not_reportable"
    },
    {
     "note": "Unstable across filter and tracker settings, so this maximum concurrent count should not be reported as a single value; refer only to its range across settings, 1.0\u20132.0, and review tracking/sensitivity.",
     "metric": "illuminated_arrhythmia.persistent_rotor_count_max",
     "status": "unstable_not_reportable"
    },
    {
     "note": "Unstable across baseline-window settings, so it is not reportable as a single frequency; refer only to its range across settings, 15.356\u201319.85 Hz. The relevant context is the same-study mouse spiral rotation frequency of approximately 20 Hz before illumination and approximately 18.75 Hz during illumination (DOI 10.1371/journal.pcbi.1011660), but this run's frequency estimate is sensitivity-dependent.",
     "metric": "illuminated_arrhythmia.dominant_freq_hz",
     "status": "unstable_not_reportable"
    },
    {
     "note": "Unstable across the filter grid, so this fraction should not be reported as a single value; refer only to its range across settings, 0.0005534034311012728\u20130.014941892639734366 fraction of frames, and review sensitivity before using it.",
     "metric": "illuminated_after_termination.singularity_frames_frac",
     "status": "unstable_not_reportable"
    },
    {
     "note": "Stable at 0 across filter and tracker settings, but no cited physiological range was available, so it may be reported only as an algorithmic observation, not as a physiology-validated metric.",
     "metric": "illuminated_after_termination.persistent_rotors",
     "status": "no_cited_range"
    },
    {
     "note": "Stable at 0 across filter and tracker settings, but no cited physiological range was available, so it may be reported only as an algorithmic observation, not as a physiology-validated metric.",
     "metric": "illuminated_after_termination.persistent_rotor_count_max",
     "status": "no_cited_range"
    },
    {
     "note": "Stable at 2.214 Hz across baseline-window settings, but no cited range was available for this segment, so it is not physiology-validated by the cited literature.",
     "metric": "illuminated_after_termination.dominant_freq_hz",
     "status": "no_cited_range"
    },
    {
     "note": "Unstable across filter and tracker settings, so the total track count should not be reported as a single value; refer only to its range across settings, 4.0\u201315.0, and review tracking/sensitivity.",
     "metric": "persistent_rotor_tracks",
     "status": "unstable_not_reportable"
    }
   ],
   "send_back_reason": null,
   "persistence_threshold_note": "The persistent-rotor rule holds with the measured-cycle threshold of 52 frames and also with the cited paper rotation-period threshold of 50 frames; the two variants agree. The cited context is a 1000 frames/s recording with approximately 20 Hz rotation, corresponding to a 50-frame rotation, in DOI 10.1371/journal.pcbi.1011660."
  },
  "passages": {
   "mouse_spiral_rotation_period": {
    "ref": "10.1371/journal.pcbi.1011660",
    "note": "At 1000 frames/s, 20 Hz is a 50-frame rotation; the illuminated value of 18.75 Hz would be 53 frames.",
    "quotes": [
     "rotational frequency of \u2248 20 Hz before illumination"
    ],
    "status": "provisional",
    "passages": [
     " is shown in Fig 3B. It shows that the arrhythmia consists of a single spiral wave with a stationary core dynamic and a rotational frequency of \u2248 20 Hz before illumination. During a single global optical pulse with a PL of 5000 ms and an LI of 3.21 \u03bcW/mm2, the frequency of the arrhythmia de"
    ],
    "applies_to": {
     "species": "mouse"
    },
    "rotation_hz": 20.0
   }
  },
  "trackers": {
   "note": "disagreement is reported as a review item, not folded into the pass/fail",
   "agree": true,
   "trackers": [
    {
     "link_px": 2.0,
     "max_gap": 1,
     "tracker": "strict",
     "is_run_setting": false,
     "persistent_rotor_rule": "holds (provisional)",
     "persistent_rotors_by_segment": {
      "light_off": 0,
      "illuminated_arrhythmia": 5,
      "illuminated_after_termination": 0
     }
    },
    {
     "link_px": 4.0,
     "max_gap": 5,
     "tracker": "default",
     "is_run_setting": true,
     "persistent_rotor_rule": "holds (provisional)",
     "persistent_rotors_by_segment": {
      "light_off": 0,
      "illuminated_arrhythmia": 13,
      "illuminated_after_termination": 0
     }
    },
    {
     "link_px": 6.0,
     "max_gap": 10,
     "tracker": "loose",
     "is_run_setting": false,
     "persistent_rotor_rule": "holds (provisional)",
     "persistent_rotors_by_segment": {
      "light_off": 0,
      "illuminated_arrhythmia": 15,
      "illuminated_after_termination": 0
     }
    }
   ]
  },
  "stability": {
   "persistent_rotor_tracks": {
    "max": 15.0,
    "min": 4.0,
    "median": 12.0,
    "stable": false,
    "settings": 15,
    "spread_frac": 0.917,
    "values_grid": [
     5,
     5,
     4,
     12,
     11,
     12,
     13,
     13,
     15,
     12,
     13,
     12
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     5,
     13,
     15
    ]
   },
   "light_off.dominant_freq_hz": {
    "max": 2.375,
    "min": 2.375,
    "median": 2.375,
    "stable": true,
    "settings": 4,
    "spread_frac": 0.0,
    "varied_over": "baseline windows",
    "values_by_baseline": {
     "678": 2.375,
     "901": 2.375,
     "1356": 2.375,
     "2712": 2.375
    }
   },
   "light_off.persistent_rotors": {
    "max": 0.0,
    "min": 0.0,
    "median": 0.0,
    "stable": true,
    "settings": 15,
    "spread_frac": 0.0,
    "values_grid": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     0,
     0,
     0
    ]
   },
   "light_off.singularity_frames_frac": {
    "max": 0.02955145118733509,
    "min": 0.0029023746701846965,
    "median": 0.008575197889182058,
    "stable": false,
    "settings": 12,
    "spread_frac": 3.108,
    "values_grid": [
     0.02928759894459103,
     0.02955145118733509,
     0.02691292875989446,
     0.008707124010554089,
     0.008179419525065963,
     0.00712401055408971,
     0.0036939313984168864,
     0.0036939313984168864,
     0.0029023746701846965,
     0.013192612137203167,
     0.012137203166226913,
     0.008443271767810026
    ],
    "varied_over": "filter grid"
   },
   "light_off.persistent_rotor_present": {
    "stable": true,
    "values_grid": [
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     false,
     false,
     false
    ],
    "stable_across_filters": true,
    "stable_across_trackers": true
   },
   "light_off.persistent_rotor_count_max": {
    "max": 0.0,
    "min": 0.0,
    "median": 0.0,
    "stable": true,
    "settings": 15,
    "spread_frac": 0.0,
    "values_grid": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     0,
     0,
     0
    ]
   },
   "illuminated_arrhythmia.dominant_freq_hz": {
    "max": 19.85,
    "min": 15.356,
    "median": 17.2285,
    "stable": false,
    "settings": 4,
    "spread_frac": 0.261,
    "varied_over": "baseline windows",
    "values_by_baseline": {
     "678": 19.85,
     "901": 19.101,
     "1356": 15.356,
     "2712": 15.356
    }
   },
   "illuminated_arrhythmia.persistent_rotors": {
    "max": 15.0,
    "min": 4.0,
    "median": 12.0,
    "stable": false,
    "settings": 15,
    "spread_frac": 0.917,
    "values_grid": [
     5,
     5,
     4,
     12,
     11,
     12,
     13,
     13,
     15,
     12,
     13,
     12
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     5,
     13,
     15
    ]
   },
   "illuminated_after_termination.dominant_freq_hz": {
    "max": 2.214,
    "min": 2.214,
    "median": 2.214,
    "stable": true,
    "settings": 4,
    "spread_frac": 0.0,
    "varied_over": "baseline windows",
    "values_by_baseline": {
     "678": 2.214,
     "901": 2.214,
     "1356": 2.214,
     "2712": 2.214
    }
   },
   "illuminated_arrhythmia.singularity_frames_frac": {
    "max": 0.48801498127340825,
    "min": 0.3816479400749064,
    "median": 0.47191011235955055,
    "stable": true,
    "settings": 12,
    "spread_frac": 0.225,
    "values_grid": [
     0.40898876404494383,
     0.40299625468164796,
     0.3816479400749064,
     0.4797752808988764,
     0.4756554307116105,
     0.45767790262172287,
     0.48801498127340825,
     0.4846441947565543,
     0.4681647940074906,
     0.4842696629213483,
     0.47902621722846445,
     0.4606741573033708
    ],
    "varied_over": "filter grid"
   },
   "illuminated_after_termination.persistent_rotors": {
    "max": 0.0,
    "min": 0.0,
    "median": 0.0,
    "stable": true,
    "settings": 15,
    "spread_frac": 0.0,
    "values_grid": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     0,
     0,
     0
    ]
   },
   "illuminated_arrhythmia.persistent_rotor_present": {
    "stable": true,
    "values_grid": [
     true,
     true,
     true,
     true,
     true,
     true,
     true,
     true,
     true,
     true,
     true,
     true
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     true,
     true,
     true
    ],
    "stable_across_filters": true,
    "stable_across_trackers": true
   },
   "illuminated_arrhythmia.persistent_rotor_count_max": {
    "max": 2.0,
    "min": 1.0,
    "median": 2.0,
    "stable": false,
    "settings": 15,
    "spread_frac": 0.5,
    "values_grid": [
     1,
     1,
     1,
     2,
     2,
     2,
     2,
     2,
     2,
     2,
     2,
     2
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     1,
     2,
     2
    ]
   },
   "illuminated_after_termination.singularity_frames_frac": {
    "max": 0.014941892639734366,
    "min": 0.0005534034311012728,
    "median": 0.005534034311012729,
    "stable": false,
    "settings": 12,
    "spread_frac": 2.6,
    "values_grid": [
     0.007194244604316547,
     0.007194244604316547,
     0.007194244604316547,
     0.00387382401770891,
     0.003320420586607637,
     0.00387382401770891,
     0.002767017155506364,
     0.002213613724405091,
     0.0005534034311012728,
     0.014941892639734366,
     0.014941892639734366,
     0.01162147205312673
    ],
    "varied_over": "filter grid"
   },
   "illuminated_after_termination.persistent_rotor_present": {
    "stable": true,
    "values_grid": [
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false,
     false
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     false,
     false,
     false
    ],
    "stable_across_filters": true,
    "stable_across_trackers": true
   },
   "illuminated_after_termination.persistent_rotor_count_max": {
    "max": 0.0,
    "min": 0.0,
    "median": 0.0,
    "stable": true,
    "settings": 15,
    "spread_frac": 0.0,
    "values_grid": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ],
    "varied_over": "filter grid + trackers",
    "values_trackers": [
     0,
     0,
     0
    ]
   }
  },
  "reviewed_at": "2026-10-28T18:48:25.668743+00:00",
  "recording_id": "55cb4aa3-6502-45a6-a14c-85cb676fe8c3",
  "signature_id": "9b40a32d-d6e2-4d0d-9976-9137ed881bea",
  "prompt_version": "critic-v1",
  "criteria_status": {
   "note": null,
   "rules": [
    {
     "id": "physiology_reference_rates",
     "expert": "cardiac electrophysiologist per species",
     "status": "provisional",
     "values": {
      "ranges": [
       "mouse_spiral_rotation_hz"
      ],
      "tolerance_frac": 0.25,
      "segment_rhythm_rule": "expected persistent rotors 'present' -> spiral arrhythmia"
     },
     "decision": null,
     "location": "worker/voltage/physiology.py (RANGES, TOLERANCE_FRAC)",
     "reviewed": false,
     "reviewer": null,
     "description": "Cited 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",
     "reviewed_at": null
    },
    {
     "id": "stability_rule",
     "expert": "biostatistician + optical mapping analyst",
     "status": "provisional",
     "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"
      ],
      "stable_frac": 0.25
     },
     "decision": null,
     "location": "worker/agents/critic.py (STABLE_FRAC, stability)",
     "reviewed": false,
     "reviewer": null,
     "description": "A 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'",
     "reviewed_at": null
    },
    {
     "id": "persistence_threshold_variants",
     "expert": "computational cardiac electrophysiologist (phase mapping)",
     "status": "provisional",
     "values": {
      "measured_cycle": 52,
      "paper_rotation": 50
     },
     "decision": null,
     "location": "worker/agents/critic.py (persistence_variants)",
     "reviewed": false,
     "reviewer": null,
     "description": "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",
     "reviewed_at": null
    },
    {
     "id": "persistent_rotor_criterion",
     "expert": "cardiac electrophysiologist",
     "status": "provisional",
     "values": {
      "max_absent": 0,
      "min_present": 1
     },
     "decision": null,
     "location": "worker/voltage/sensitivity.py (MIN_ROTORS_PRESENT, MAX_ROTORS_ABSENT)",
     "reviewed": false,
     "reviewer": null,
     "description": "Persistent-rotor finding holds if every 'present' segment has >= 1 persistent rotor and every 'absent' segment has none, at every setting",
     "reviewed_at": null
    },
    {
     "id": "sensitivity_grid",
     "expert": "optical mapping analyst",
     "status": "provisional",
     "values": {
      "spatial_sigma": {
       "light": 0.5,
       "default": 1.0,
       "heavier": 2.0
      },
      "baseline_frames": {
       "run": 901,
       "3x_cycle": 1356,
       "6x_cycle": 2712,
       "1.5x_cycle": 678
      },
      "baseline_scaling": {
       "multiples": {
        "3x_cycle": 3.0,
        "6x_cycle": 6.0,
        "1.5x_cycle": 1.5
       },
       "reference_segment": "illuminated_after_termination",
       "segment_cycles_frames": {
        "light_off": 421,
        "illuminated_arrhythmia": 52,
        "illuminated_after_termination": 452
       },
       "reference_cycle_frames": 452,
       "window_over_cycle_per_segment": {
        "run": {
         "light_off": 2.14,
         "illuminated_arrhythmia": 17.33,
         "illuminated_after_termination": 1.99
        },
        "3x_cycle": {
         "light_off": 3.22,
         "illuminated_arrhythmia": 26.08,
         "illuminated_after_termination": 3.0
        },
        "6x_cycle": {
         "light_off": 6.44,
         "illuminated_arrhythmia": 52.15,
         "illuminated_after_termination": 6.0
        },
        "1.5x_cycle": {
         "light_off": 1.61,
         "illuminated_arrhythmia": 13.04,
         "illuminated_after_termination": 1.5
        }
       }
      },
      "tracker(link_px, max_gap)": {
       "loose": [
        6.0,
        10
       ],
       "strict": [
        2.0,
        1
       ],
       "default": [
        4.0,
        5
       ]
      }
     },
     "decision": null,
     "location": "worker/voltage/sensitivity.py (SIGMAS, BASELINE_MULTIPLES, baseline_levels)",
     "reviewed": false,
     "reviewer": null,
     "description": "Filter levels tested: spatial sigma and baseline window values",
     "reviewed_at": null
    }
   ],
   "status": "provisional",
   "all_reviewed": false,
   "superseded_by_run": null
  },
  "persistence_variants": {
   "agree": true,
   "measured_cycle": {
    "basis": "one dominant cycle of the fastest segment at the run setting",
    "applicable": true,
    "min_frames": 52,
    "segment_counts_grid": {
     "light_off": [
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
     ],
     "illuminated_arrhythmia": [
      5,
      5,
      4,
      12,
      11,
      12,
      13,
      13,
      15,
      12,
      13,
      12
     ],
     "illuminated_after_termination": [
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
     ]
    },
    "holds_across_filters": true,
    "label_across_filters": "holds (provisional)",
    "holds_across_trackers": true,
    "label_across_trackers": "holds (provisional)",
    "segment_lifetimes_run": {
     "light_off": [],
     "illuminated_arrhythmia": [
      40,
      34,
      57,
      106,
      37,
      57,
      41,
      34,
      62,
      21,
      37,
      32,
      23
     ],
     "illuminated_after_termination": []
    }
   },
   "paper_rotation": {
    "ref": "10.1371/journal.pcbi.1011660",
    "basis": "1000 frames/s / 20 Hz, cited",
    "passage": " is shown in Fig 3B. It shows that the arrhythmia consists of a single spiral wave with a stationary core dynamic and a rotational frequency of \u2248 20 Hz before illumination. During a single global optical pulse with a PL of 5000 ms and an LI of 3.21 \u03bcW/mm2, the frequency of the arrhythmia de",
    "applicable": true,
    "min_frames": 50,
    "rotation_hz": 20.0,
    "segment_counts_grid": {
     "light_off": [
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
     ],
     "illuminated_arrhythmia": [
      5,
      5,
      4,
      12,
      11,
      12,
      13,
      13,
      15,
      12,
      13,
      12
     ],
     "illuminated_after_termination": [
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
     ]
    },
    "holds_across_filters": true,
    "label_across_filters": "holds (provisional)",
    "holds_across_trackers": true,
    "label_across_trackers": "holds (provisional)",
    "segment_lifetimes_run": {
     "light_off": [],
     "illuminated_arrhythmia": [
      40,
      34,
      57,
      106,
      37,
      57,
      41,
      34,
      62,
      21,
      37,
      32,
      23
     ],
     "illuminated_after_termination": []
    }
   }
  },
  "required_review_topics": [
   "unstable:light_off.singularity_frames_frac",
   "unstable:illuminated_arrhythmia.persistent_rotors",
   "unstable:illuminated_arrhythmia.persistent_rotor_count_max",
   "unstable:illuminated_arrhythmia.dominant_freq_hz",
   "unstable:illuminated_after_termination.singularity_frames_frac",
   "unstable:persistent_rotor_tracks"
  ]
 },
 "criteria": [
  {
   "criterion": "Singularities present where the design expects them, absent elsewhere",
   "rule": "each 'present' segment: frac >= 0.1 and >= 2.0 x max frac over 'absent' segments, at every setting",
   "result": "holds at 12 filter settings",
   "superseded": false,
   "provisional": true
  },
  {
   "criterion": "Persistent rotors present where the design expects them, absent elsewhere",
   "rule": "each 'present' segment: count >= 1; each 'absent' segment: count <= 0, at every setting",
   "result": "holds at 12 filter settings and 3 trackers",
   "superseded": false,
   "provisional": true
  },
  {
   "criterion": "Persistence threshold, paper context",
   "rule": "lifetime \u2265 52 frames (measured cycle) and \u2265 50 frames (cited 20 Hz)",
   "result": "agree",
   "provisional": true
  }
 ],
 "report": {
  "methods": "For recording 55cb4aa3-6502-45a6-a14c-85cb676fe8c3 under protocol f65d786f-f194-4be2-88b8-10d3dd25d674, the provisional parameter set version 3 is used 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, with DAQ consistency noted, and the pixel size is 133 \u00b5m from the publication. The recording has 9267 frames in a 64 by 55 npy movie; the analysed window is frames 500 to 8767. The provisional segment definitions are illuminated_arrhythmia from frames 0 to 3170, illuminated_after_termination from frames 3170 to 4977, and light_off from frames 4977 to 9267; the parameter set, the segment definitions and the criteria are provisional.",
  "rules": [
   {
    "id": "protocol_parameter_set",
    "description": "Each protocol's fixed, versioned analysis parameters (version 1 = developer defaults); no run or agent may deviate",
    "expert": "optical mapping analyst",
    "status": "provisional",
    "location": "worker/voltage/protocol_params.py (developer_defaults, set_params)",
    "values": {
     "set_by": "developer (not a domain scientist)",
     "protocol": "Mouse whole heart optical mapping (Luther lab)",
     "protocol_id": "f65d786f-f194-4be2-88b8-10d3dd25d674",
     "params_version": 3
    }
   },
   {
    "id": "baseline_window_rule",
    "description": "A 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 code",
    "expert": "optical mapping analyst",
    "status": "provisional",
    "location": "worker/voltage/baseline_rule.py (FACTOR, evaluate)",
    "values": {
     "ok": true,
     "factor": 2.0,
     "source": "MAP channel (DAQ log)",
     "required_min_frames": 830,
     "slowest_cycle_frames": 415
    }
   },
   {
    "id": "filter_defaults",
    "description": "Default baseline window (frames) and spatial Gaussian sigma/truncate for phase",
    "expert": "optical mapping analyst (cardiac electrophysiology)",
    "status": "provisional",
    "location": "worker/voltage/preprocess.py (Params)",
    "values": {
     "lowpass": null,
     "spatial_sigma": 1.0,
     "baseline_frames": 901,
     "spatial_truncate": 4.0
    }
   },
   {
    "id": "tissue_mask",
    "description": "Tissue = not NaN in frame 0 and nonzero temporal std",
    "expert": "optical mapping analyst",
    "status": "provisional",
    "location": "worker/voltage/io.py (tissue_mask)",
    "values": {
     "rule": "not NaN in frame 0 and nonzero std",
     "tissue_pixels": 2332
    }
   },
   {
    "id": "polarity",
    "description": "Dye polarity from sign of median per-pixel skew of dV/dt",
    "expert": "optical mapping analyst / voltage dye chemist",
    "status": "provisional",
    "location": "worker/voltage/preprocess.py (polarity)",
    "values": {
     "method": "median skew of dV/dt",
     "result": -1
    }
   },
   {
    "id": "singularity_detection",
    "description": "Phase singularity = |winding| > threshold turns, >= erode px from tissue edge",
    "expert": "computational cardiac electrophysiologist (phase mapping)",
    "status": "provisional",
    "location": "worker/voltage/preprocess.py (Params.rotor_threshold, rotor_erode_px)",
    "values": {
     "rotor_erode_px": 3,
     "rotor_threshold": 0.9
    }
   },
   {
    "id": "rotor_persistence",
    "description": "Track linking distance/gap and minimum lifetime for a persistent rotor",
    "expert": "computational cardiac electrophysiologist (phase mapping)",
    "status": "provisional",
    "location": "worker/voltage/rotors.py (TrackParams)",
    "values": {
     "link_px": 4.0,
     "max_gap": 5,
     "min_cycles": 1.0,
     "min_frames": 52
    }
   },
   {
    "id": "chirality_pairing",
    "description": "Opposite-charge singularities within pair distance are a pair; tracks paired most of their life are excluded from rotors",
    "expert": "computational cardiac electrophysiologist (phase mapping)",
    "status": "provisional",
    "location": "worker/voltage/rotors.py (TrackParams.pair_dist_px, paired_frac)",
    "values": {
     "paired_frac": 0.5,
     "pair_dist_px": 3.0
    }
   },
   {
    "id": "sensitivity_grid",
    "description": "Filter levels tested: spatial sigma and baseline window values",
    "expert": "optical mapping analyst",
    "status": "provisional",
    "location": "worker/voltage/sensitivity.py (SIGMAS, BASELINE_MULTIPLES, baseline_levels)",
    "values": {
     "sigmas": {
      "light": 0.5,
      "default": 1.0,
      "heavier": 2.0
     },
     "trackers": {
      "loose": [
       6.0,
       10
      ],
      "strict": [
       2.0,
       1
      ],
      "default": [
       4.0,
       5
      ]
     },
     "baselines": {
      "run": 901,
      "3x_cycle": 1356,
      "6x_cycle": 2712,
      "1.5x_cycle": 678
     }
    }
   },
   {
    "id": "analysis_window",
    "description": "Frames analysed: whole recording minus one filter pad at each end (unless the plan narrows it)",
    "expert": "cardiac electrophysiologist familiar with the dataset",
    "status": "provisional",
    "location": "worker/voltage/runs.py (default_window)",
    "values": {
     "f0": 500,
     "f1": 8767
    }
   },
   {
    "id": "prior_processing_flags",
    "description": "Thresholds for flagging depositor processing (normalization, masking, temporal/spatial smoothing)",
    "expert": "imaging scientist (camera acquisition and noise)",
    "status": "provisional",
    "location": "worker/voltage/inspect.py (prior_processing)",
    "values": {
     "flags": [
      "negative_values",
      "non_integer",
      "nan_mask_all_frames",
      "temporal_smoothing",
      "spatial_smoothing"
     ],
     "thresholds": {
      "int_frac": 0.5,
      "neg_frac": 0.01,
      "dv_autocorr": 0.5,
      "neighbour_corr": 0.8
     }
    }
   },
   {
    "id": "baseline_step_detection",
    "description": "Baseline step = consensus upward step in tissue-mean raw baseline (cause not inferred; first misread as light onset, contradicted by the DAQ)",
    "expert": "optical mapping experimentalist",
    "status": "provisional",
    "location": "worker/voltage/events.py (detect_baseline_step)",
    "values": {
     "frames": [
      3170
     ]
    }
   },
   {
    "id": "daq_interpretation",
    "description": "DAQ channel names from depositor notebook; frames = first N triggers of closest burst; midpoint thresholds",
    "expert": "experimentalist who recorded the data (or the depositor)",
    "status": "provisional",
    "location": "worker/voltage/daq.py",
    "values": {
     "events": [
      "illumination_on@0",
      "arrhythmia_termination@3153",
      "illumination_off@4977"
     ]
    }
   },
   {
    "id": "segment_definitions",
    "description": "Mouse segments bounded by DAQ light events and the baseline step, interpreted as spiral termination under illumination (project lead, from Hussaini et al. 2023)",
    "expert": "cardiac electrophysiologist (ideally the depositing authors)",
    "status": "provisional",
    "location": "worker/voltage/annotations.py (MOUSE_SEGMENTS)",
    "values": {
     "light_off": [
      4977,
      9267
     ],
     "illuminated_arrhythmia": [
      0,
      3170
     ],
     "illuminated_after_termination": [
      3170,
      4977
     ]
    }
   },
   {
    "id": "rotor_finding_criterion",
    "description": "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)",
    "expert": "cardiac electrophysiologist + biostatistician",
    "status": "provisional",
    "location": "worker/voltage/sensitivity.py (MIN_FRAC, MIN_RATIO)",
    "values": {
     "min_frac": 0.1,
     "min_ratio": 2.0
    }
   },
   {
    "id": "persistent_rotor_criterion",
    "description": "Persistent-rotor finding holds if every 'present' segment has >= 1 persistent rotor and every 'absent' segment has none, at every setting",
    "expert": "cardiac electrophysiologist",
    "status": "provisional",
    "location": "worker/voltage/sensitivity.py (MIN_ROTORS_PRESENT, MAX_ROTORS_ABSENT)",
    "values": {
     "expect": {
      "light_off": "absent",
      "illuminated_arrhythmia": "present",
      "illuminated_after_termination": "absent"
     },
     "max_absent": 0,
     "min_present": 1,
     "spanning_rotor": "counts in every segment it overlaps",
     "min_lifetime_frames": 52
    }
   },
   {
    "id": "pipeline_check",
    "description": "The pipeline agent's hold/proceed decision from protocol mismatches and inspector anomalies; it chooses no parameter",
    "expert": "optical mapping analyst",
    "status": "provisional",
    "location": "worker/agents/pipeline.py (INSTRUCTIONS, validator)",
    "values": {
     "model": "openai:gpt-5.5",
     "proceed": true,
     "anomalies": [
      "Pre-deposit processing / raw-data label",
      "Event interpretation at frame 3170",
      "Baseline and illumination artifact",
      "Baseline-window rule"
     ],
     "mismatches": []
    }
   },
   {
    "id": "physiology_reference_rates",
    "description": "Cited 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",
    "expert": "cardiac electrophysiologist per species",
    "status": "provisional",
    "location": "worker/voltage/physiology.py (RANGES, TOLERANCE_FRAC)",
    "values": {
     "ranges": [
      "mouse_spiral_rotation_hz"
     ],
     "tolerance_frac": 0.25,
     "segment_rhythm_rule": "expected persistent rotors 'present' -> spiral arrhythmia"
    }
   },
   {
    "id": "stability_rule",
    "description": "A 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'",
    "expert": "biostatistician + optical mapping analyst",
    "status": "provisional",
    "location": "worker/agents/critic.py (STABLE_FRAC, stability)",
    "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"
     ],
     "stable_frac": 0.25
    }
   },
   {
    "id": "persistence_threshold_variants",
    "description": "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",
    "expert": "computational cardiac electrophysiologist (phase mapping)",
    "status": "provisional",
    "location": "worker/agents/critic.py (persistence_variants)",
    "values": {
     "measured_cycle": 52,
     "paper_rotation": 50
    }
   }
  ],
  "review_items": [
   {
    "topic": "unstable:light_off.singularity_frames_frac",
    "detail": "This metric varies over 0.0029023746701846965\u20130.02955145118733509 across the filter grid and should not be reported as a single value.",
    "severity": "warn",
    "reviewer": "domain scientist / analysis lead"
   },
   {
    "topic": "unstable:illuminated_arrhythmia.persistent_rotors",
    "detail": "This metric varies over 4.0\u201315.0 across filter and tracker settings and should not be reported as a single count.",
    "severity": "warn",
    "reviewer": "domain scientist / analysis lead"
   },
   {
    "topic": "unstable:illuminated_arrhythmia.persistent_rotor_count_max",
    "detail": "This metric varies over 1.0\u20132.0 across filter and tracker settings and should not be reported as a single maximum concurrent count.",
    "severity": "warn",
    "reviewer": "domain scientist / analysis lead"
   },
   {
    "topic": "unstable:illuminated_arrhythmia.dominant_freq_hz",
    "detail": "This metric varies over 15.356\u201319.85 Hz across baseline-window settings; frequency interpretation should be reviewed against the same-study cited rotation context.",
    "severity": "warn",
    "reviewer": "domain scientist / electrophysiology reviewer"
   },
   {
    "topic": "unstable:illuminated_after_termination.singularity_frames_frac",
    "detail": "This metric varies over 0.0005534034311012728\u20130.014941892639734366 across the filter grid and should not be reported as a single value.",
    "severity": "warn",
    "reviewer": "domain scientist / analysis lead"
   },
   {
    "topic": "unstable:persistent_rotor_tracks",
    "detail": "This metric varies over 4.0\u201315.0 across filter and tracker settings and should not be reported as a single total track count.",
    "severity": "warn",
    "reviewer": "domain scientist / analysis lead"
   },
   {
    "topic": "Pre-deposit processing / raw-data label",
    "detail": "The recording is labeled as raw experimental data, but documentation and measurements indicate masking, spatial smoothing, temporal smoothing, and normalization; do not treat it as raw camera photon counts for analyses that require raw data or independent pixel noise.",
    "severity": "warn",
    "reviewer": "data provenance reviewer"
   },
   {
    "topic": "Event interpretation at frame 3170",
    "detail": "Frame 3170 is a baseline_step only; illumination began before frame 0 and ended at frame 4977, so the stored spiral-termination interpretation is provisional and should not be treated as direct light onset evidence.",
    "severity": "warn",
    "reviewer": "domain scientist"
   },
   {
    "topic": "Baseline and illumination artifact",
    "detail": "The publication reports stimulation-light crosstalk and re-normalization; the recording also has a large slow baseline range and a baseline step, so absolute baseline or amplitude analyses need artifact review.",
    "severity": "warn",
    "reviewer": "optical mapping reviewer"
   },
   {
    "topic": "Provisional tool thresholds",
    "detail": "Event detection, processing flags, SNR, rhythm, reference-rate thresholds, stability threshold, and criteria are provisional and should be checked for critical uses.",
    "severity": "info",
    "reviewer": "domain scientist / methods reviewer"
   },
   {
    "topic": "tracker sensitivity of rotor counts",
    "detail": "The persistent-rotor rule agrees across strict, default, and loose trackers, but the illuminated-arrhythmia counts differ across trackers, so report the qualitative rule result rather than a single count.",
    "severity": "warn",
    "reviewer": "analysis lead"
   }
  ],
  "reportable": [
   {
    "metric": "persistent rotor tracks",
    "segment": "all",
    "value": "4\u201315",
    "unit": "count",
    "status": "unstable, not reportable"
   },
   {
    "metric": "dominant freq (Hz)",
    "segment": "light off",
    "value": "2.375",
    "unit": "Hz",
    "status": "no cited range"
   },
   {
    "metric": "persistent rotors",
    "segment": "light off",
    "value": "0",
    "unit": "count",
    "status": "no cited range"
   },
   {
    "metric": "singularity frames fraction",
    "segment": "light off",
    "value": "0.0029\u20130.0296",
    "unit": "fraction of frames",
    "status": "unstable, not reportable"
   },
   {
    "metric": "persistent rotor count max",
    "segment": "light off",
    "value": "0",
    "unit": "count",
    "status": "no cited range"
   },
   {
    "metric": "dominant freq (Hz)",
    "segment": "illuminated arrhythmia",
    "value": "15.4\u201319.9",
    "unit": "Hz",
    "status": "unstable, not reportable"
   },
   {
    "metric": "persistent rotors",
    "segment": "illuminated arrhythmia",
    "value": "4\u201315",
    "unit": "count",
    "status": "unstable, not reportable"
   },
   {
    "metric": "dominant freq (Hz)",
    "segment": "illuminated after termination",
    "value": "2.214",
    "unit": "Hz",
    "status": "no cited range"
   },
   {
    "metric": "singularity frames fraction",
    "segment": "illuminated arrhythmia",
    "value": "0.479",
    "unit": "fraction of frames",
    "status": "no cited range"
   },
   {
    "metric": "persistent rotors",
    "segment": "illuminated after termination",
    "value": "0",
    "unit": "count",
    "status": "no cited range"
   },
   {
    "metric": "persistent rotor count max",
    "segment": "illuminated arrhythmia",
    "value": "1\u20132",
    "unit": "count",
    "status": "unstable, not reportable"
   },
   {
    "metric": "singularity frames fraction",
    "segment": "illuminated after termination",
    "value": "0.000553\u20130.0149",
    "unit": "fraction of frames",
    "status": "unstable, not reportable"
   },
   {
    "metric": "persistent rotor count max",
    "segment": "illuminated after termination",
    "value": "0",
    "unit": "count",
    "status": "no cited range"
   }
  ],
  "verdict": {
   "physiology_ok": null,
   "send_back": false,
   "notes": "Verdict: report only sensitivity-stable qualitative/algorithmic findings and do not report unstable metrics as single values; physiology_ok is null because the only cited range check, illuminated_arrhythmia.dominant_freq_hz, is unstable rather than physiology-validated. Stable observations include 0 persistent rotors and 0 maximum persistent-rotor count in light_off and illuminated_after_termination, dominant frequencies of 2.375 Hz in light_off and 2.214 Hz in illuminated_after_termination, and illuminated_arrhythmia singularity_frames_frac over 0.3816479400749064\u20130.48801498127340825, all without cited physiological ranges; unstable, not reportable as single values, are light_off.singularity_frames_frac over 0.0029023746701846965\u20130.02955145118733509, illuminated_arrhythmia.persistent_rotors over 4.0\u201315.0, illuminated_arrhythmia.persistent_rotor_count_max over 1.0\u20132.0, illuminated_arrhythmia.dominant_freq_hz over 15.356\u201319.85 Hz, illuminated_after_termination.singularity_frames_frac over 0.0005534034311012728\u20130.014941892639734366, and persistent_rotor_tracks over 4.0\u201315.0. The persistent-rotor rule holds using both the 52-frame measured-cycle threshold and the 50-frame cited 20 Hz rotation-period threshold, which agree; the relevant same-study context reports approximately 20 Hz before illumination and approximately 18.75 Hz during illumination (DOI 10.1371/journal.pcbi.1011660). Review required: pre-deposit processing/raw-data label, frame-3170 event interpretation, baseline/illumination artifact, provisional tool thresholds, and tracker sensitivity; the ranges, the stability threshold and the criteria are provisional."
  },
  "provenance": {
   "recording": {
    "id": "55cb4aa3-6502-45a6-a14c-85cb676fe8c3",
    "label": "Mouse heart, spiral wave and optogenetic termination (M13Rec001)",
    "source": "public",
    "source_ref": "10.5281/zenodo.10228296",
    "publication_ref": "10.1371/journal.pcbi.1011660",
    "storage_path": "public/M13Rec001_complete.npy",
    "format": "npy",
    "sha256": "3f8f2e1b8f776633089b33ccd4bf3fccb4f13140b71991f1dcd0e0a12bb48cbc",
    "size_bytes": 260958848,
    "license": "CC-BY-4.0",
    "attribution": "Hussaini, Sayedeh; Luther, Stefan; L\u00e4dke, Sarah L.",
    "rights_source": {
     "ref": "10.5281/zenodo.10228296",
     "url": "https://zenodo.org/records/10228296",
     "kind": "deposit_metadata",
     "creators": [
      "Hussaini, Sayedeh",
      "Luther, Stefan",
      "L\u00e4dke, Sarah L."
     ],
     "license_as_stated": "cc-by-4.0"
    },
    "frame_rate_hz": 1000,
    "frame_rate_source": {
     "ref": "10.1371/journal.pcbi.1011660",
     "kind": "publication",
     "note": "Camera frames are 64 x 64 in the paper; the deposit is 64 x 55 (cropped). Consistent with the DAQ: 10 samples per frame and a 5 s light pulse spanning 50,001 samples imply a 10 kHz DAQ.",
     "quote": " 775 \u00b1 70nm bandpass filter (FF01\u2013775/140-25, Semrock) and finally by the camera (EMCCD, Cascade 128+, Photometrics) with a spatial resolution of 64 \u00d7 64 pixels (133 \u03bcm per pixel) at 1 kHz. Optical Mapping recordings were acquired with software MultiRecorder and analysed with software PythonAnalyser (both developed by Research Group Biomedical Physics). Electrical s",
     "section": "Materials and methods: Optical mapping experiments on ventricular arrhythmia and its termination in the intact mouse heart"
    },
    "pixel_size_um": 133,
    "pixel_size_source": {
     "ref": "10.1371/journal.pcbi.1011660",
     "kind": "publication",
     "note": "paper states 64 x 64 px at 133 um; the deposit is 64 x 55 (cropped, not rebinned)",
     "quote": "rst collected by a 775 \u00b1 70nm bandpass filter (FF01\u2013775/140-25, Semrock) and finally by the camera (EMCCD, Cascade 128+, Photometrics) with a spatial resolution of 64 \u00d7 64 pixels (133 \u03bcm per pixel) at 1 kHz. Optical Mapping recordings were acquired with software MultiRecorder and analysed with software PythonAnalyser (both developed by Research Group Biomedical Physics). El"
    },
    "frames": 9267,
    "height": 64,
    "width": 55,
    "inverted": true
   },
   "protocol": {
    "id": "f65d786f-f194-4be2-88b8-10d3dd25d674",
    "name": "Mouse whole heart optical mapping (Luther lab)",
    "species": "mouse",
    "tissue": "whole_heart",
    "params_version": 3,
    "params_set_by": "developer (not a domain scientist)",
    "params_note": "version 3: baseline 901 frames = 2.1 x the 433-frame (2.31 Hz) post-termination cycle resolved under v2; v2's 641 frames was 1.48 cycles, on the 1.5-cycle line, and the pipeline check held one run and passed another on the same inputs. pad 500 >= half the window. Provisional (REVIEW_NEEDED item 16)."
   },
   "run": {
    "id": "339921d8-9255-4d78-9789-6816dd8b409c",
    "status": "done",
    "started_at": "2026-10-28T18:40:41.855071+00:00",
    "finished_at": "2026-10-28T18:48:26.342209+00:00",
    "code": {
     "dirty": true,
     "git_commit": "008c2dc076bcebf9e7fa01a05e8b7c4b5a713b37"
    },
    "workers": 9,
    "steps": [
     "load",
     "deposit_checks",
     "baseline_correct",
     "polarity",
     "spatial_filter(phase only)",
     "hilbert_phase",
     "phase_singularities",
     "track_and_pair",
     "beats_apd_cv",
     "sensitivity",
     "render"
    ],
    "protocol_params": {
     "params": {
      "link_px": 4.0,
      "max_gap": 5,
      "min_cycles": 1.0,
      "pad_frames": 500,
      "paired_frac": 0.5,
      "render_step": 4,
      "pair_dist_px": 3.0,
      "spatial_sigma": 1.0,
      "rotor_erode_px": 3,
      "baseline_frames": 901,
      "rotor_threshold": 0.9,
      "spatial_truncate": 4.0
     },
     "version": 3,
     "protocol_id": "f65d786f-f194-4be2-88b8-10d3dd25d674"
    },
    "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": null,
     "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
    },
    "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
    },
    "pipeline_check": {
     "model": "openai:gpt-5.5",
     "proceed": true,
     "anomalies": [
      {
       "topic": "Pre-deposit processing / raw-data label",
       "severity": "warn",
       "effect_on_analysis": "The deposited movie should not be treated as raw camera counts: documented and measured masking, temporal smoothing, spatial smoothing, and normalization mean that the protocol's Gaussian phase smoothing is added on top of prior filtering of unknown total strength, and analyses depending on raw photon noise or independent pixel noise would be misleading."
      },
      {
       "topic": "Event interpretation at frame 3170",
       "severity": "warn",
       "effect_on_analysis": "The segment boundary at frame 3170 is a provisional fluorescence step/rhythm-change interpretation, not a directly measured light-on event. The fixed segments can be analysed, but labels involving spiral termination should be read as provisional and not as a direct measurement of illumination onset."
      },
      {
       "topic": "Baseline and illumination artifact",
       "severity": "info",
       "effect_on_analysis": "Blue-light crosstalk, re-normalization to the stimulation light signal, and a large slow signal range/step can affect absolute fluorescence level and amplitude measures. The protocol's high-pass handling can be applied, but amplitude or fluorescence-level interpretations remain confounded by illumination/crosstalk/normalization effects."
      },
      {
       "topic": "Baseline-window rule",
       "severity": "info",
       "effect_on_analysis": "The coded rule passed: baseline_frames 901 is at least 2.0 times the slowest segment cycle from the MAP channel, with slowest_segment illuminated_after_termination, slowest_cycle_frames 415, required_min_frames 830, and ratio 2.171. This is reported as code status only and is not a separate reason to hold the run."
      }
     ],
     "rationale": "The recording may be analysed under the fixed Mouse whole heart optical mapping protocol, parameter set version 3, because the available facts match the protocol context: mouse whole heart optical mapping from the Luther-lab public reference recording, with the recording frame rate established as 1000 Hz from the publication and DAQ consistency, and pixel size 133 \u00b5m from the publication. No fact mismatch indicates that the fixed frame-count or pixel-based parameters would be wrong for this recording. However, the deposited data are processed rather than raw, the frame-3170 event and segment labels are provisional, and illumination/crosstalk/normalization effects can confound fluorescence-level and amplitude interpretation, so these warnings must accompany any analysis.",
     "mismatches": [],
     "hold_reason": null,
     "protocol_id": "f65d786f-f194-4be2-88b8-10d3dd25d674",
     "methods_text": "For recording 55cb4aa3-6502-45a6-a14c-85cb676fe8c3 under protocol f65d786f-f194-4be2-88b8-10d3dd25d674, the provisional parameter set version 3 is used 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, with DAQ consistency noted, and the pixel size is 133 \u00b5m from the publication. The recording has 9267 frames in a 64 by 55 npy movie; the analysed window is frames 500 to 8767. The provisional segment definitions are illuminated_arrhythmia from frames 0 to 3170, illuminated_after_termination from frames 3170 to 4977, and light_off from frames 4977 to 9267; the parameter set, the segment definitions and the criteria are provisional.",
     "recording_id": "55cb4aa3-6502-45a6-a14c-85cb676fe8c3",
     "params_version": 3,
     "prompt_version": "pipeline-v2"
    }
   },
   "signature": {
    "id": "9b40a32d-d6e2-4d0d-9976-9137ed881bea",
    "created_at": "2026-10-28T18:47:37.807945+00:00",
    "movie_path": "runs/339921d8-9255-4d78-9789-6816dd8b409c/movie.mp4",
    "frames": {
     "f0": 500,
     "f1": 8767,
     "maps": "runs/339921d8-9255-4d78-9789-6816dd8b409c/frames/maps.npz",
     "dtype": "<f4",
     "phase": "runs/339921d8-9255-4d78-9789-6816dd8b409c/frames/phase.npy",
     "shape": [
      8267,
      64,
      55
     ],
     "sha256": {
      "maps": "9982b72c2c9fd56f09a13d3db6a803e2b3c3eda5456cad070ea92dc38af675df",
      "phase": "7be44c8e09b68bd5a4ac810d79532c50cb8867226eb276ab970483c00839077c",
      "voltage": "5dabf0aed0a41315e6ecaaeeb78f0f5c252d12e6ae28aa55e9dc137ff561f8c3"
     },
     "voltage": "runs/339921d8-9255-4d78-9789-6816dd8b409c/frames/voltage.npy",
     "map_keys": [
      "activation:illuminated_arrhythmia",
      "dominant_frequency:illuminated_arrhythmia",
      "activation:illuminated_after_termination",
      "dominant_frequency:illuminated_after_termination",
      "activation:light_off",
      "dominant_frequency:light_off",
      "dominant_frequency:window"
     ],
     "map_units": {
      "activation:light_off": "ms",
      "dominant_frequency:window": "Hz",
      "dominant_frequency:light_off": "Hz",
      "activation:illuminated_arrhythmia": "ms",
      "activation:illuminated_after_termination": "ms",
      "dominant_frequency:illuminated_arrhythmia": "Hz",
      "dominant_frequency:illuminated_after_termination": "Hz"
     }
    },
    "filter_params": {
     "mask": "not NaN in frame 0 and nonzero temporal std",
     "render": {
      "step": 4,
      "palettes": {
       "phase": "twilight",
       "camera": "gray",
       "voltage": "gray"
      },
      "interpolation": "nearest"
     },
     "window": {
      "f0": 500,
      "f1": 8767,
      "segments": [
       {
        "name": "illuminated_arrhythmia",
        "label": "illumination with arrhythmia",
        "defined": [
         0,
         3170
        ],
        "analysed": [
         500,
         3170
        ],
        "citation": {
         "ref": "10.1371/journal.pcbi.1011660",
         "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
        },
        "defined_by": "project lead (not a domain scientist), following the paper's design",
        "segment_id": "f6ca0bce-f7e9-437d-84b6-1bb1b24f80ba",
        "end_event_id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
        "start_event_id": null,
        "expected_persistent_rotors": "present"
       },
       {
        "name": "illuminated_after_termination",
        "label": "illumination after termination",
        "defined": [
         3170,
         4977
        ],
        "analysed": [
         3170,
         4977
        ],
        "citation": {
         "ref": "10.1371/journal.pcbi.1011660",
         "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
        },
        "defined_by": "project lead (not a domain scientist), following the paper's design",
        "segment_id": "c1444c59-1863-45aa-b6f3-2208392bf55a",
        "end_event_id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
        "start_event_id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
        "expected_persistent_rotors": "absent"
       },
       {
        "name": "light_off",
        "label": "light off",
        "defined": [
         4977,
         9267
        ],
        "analysed": [
         4977,
         8767
        ],
        "citation": {
         "ref": "10.1371/journal.pcbi.1011660",
         "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
        },
        "defined_by": "project lead (not a domain scientist), following the paper's design",
        "segment_id": "4eeedfd6-84c2-40d3-8a4a-8758716d02d9",
        "end_event_id": null,
        "start_event_id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
        "expected_persistent_rotors": "absent"
       }
      ],
      "illumination": "Acquisition log (LED trigger channel, provisional interpretation): illumination on over frames 500-4977 of the analysed frames 500-8767.",
      "frame_rate_hz": 1000.0,
      "frame_rate_source": {
       "ref": "10.1371/journal.pcbi.1011660",
       "kind": "publication",
       "note": "Camera frames are 64 x 64 in the paper; the deposit is 64 x 55 (cropped). Consistent with the DAQ: 10 samples per frame and a 5 s light pulse spanning 50,001 samples imply a 10 kHz DAQ.",
       "quote": " 775 \u00b1 70nm bandpass filter (FF01\u2013775/140-25, Semrock) and finally by the camera (EMCCD, Cascade 128+, Photometrics) with a spatial resolution of 64 \u00d7 64 pixels (133 \u03bcm per pixel) at 1 kHz. Optical Mapping recordings were acquired with software MultiRecorder and analysed with software PythonAnalyser (both developed by Research Group Biomedical Physics). Electrical s",
       "section": "Materials and methods: Optical mapping experiments on ventricular arrhythmia and its termination in the intact mouse heart"
      },
      "segment_cycles_frames": {
       "light_off": 421,
       "illuminated_arrhythmia": 52,
       "illuminated_after_termination": 452
      }
     },
     "lowpass": null,
     "polarity": -1,
     "tracking": {
      "link_px": 4.0,
      "max_gap": 5,
      "min_cycles": 1.0,
      "min_frames": 52,
      "paired_frac": 0.5,
      "pair_dist_px": 3.0
     },
     "pad_frames": 500,
     "phase_method": "angle of scipy.signal.hilbert along time, on spatially filtered signal",
     "spatial_sigma": 1.0,
     "rotor_erode_px": 3,
     "spatial_method": "scipy.ndimage.gaussian_filter per frame, mode=reflect; NaN set to 0 before filtering, non-tissue zeroed after",
     "baseline_frames": 901,
     "baseline_method": "scipy.ndimage.uniform_filter1d, mode=reflect, subtracted per pixel",
     "polarity_method": "sign of median per-pixel skew of dV/dt on baseline-corrected signal",
     "rotor_threshold": 0.9,
     "spatial_truncate": 4.0,
     "spatial_applies_to": "phase/activation only; displayed voltage is baseline-corrected only"
    },
    "criteria_status": {
     "note": null,
     "rules": [
      {
       "id": "protocol_parameter_set",
       "expert": "optical mapping analyst",
       "status": "provisional",
       "values": {
        "set_by": "developer (not a domain scientist)",
        "protocol": "Mouse whole heart optical mapping (Luther lab)",
        "protocol_id": "f65d786f-f194-4be2-88b8-10d3dd25d674",
        "params_version": 3
       },
       "decision": null,
       "location": "worker/voltage/protocol_params.py (developer_defaults, set_params)",
       "reviewed": false,
       "reviewer": null,
       "description": "Each protocol's fixed, versioned analysis parameters (version 1 = developer defaults); no run or agent may deviate",
       "reviewed_at": null
      },
      {
       "id": "baseline_window_rule",
       "expert": "optical mapping analyst",
       "status": "provisional",
       "values": {
        "ok": true,
        "factor": 2.0,
        "source": "MAP channel (DAQ log)",
        "required_min_frames": 830,
        "slowest_cycle_frames": 415
       },
       "decision": null,
       "location": "worker/voltage/baseline_rule.py (FACTOR, evaluate)",
       "reviewed": false,
       "reviewer": null,
       "description": "A 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 code",
       "reviewed_at": null
      },
      {
       "id": "filter_defaults",
       "expert": "optical mapping analyst (cardiac electrophysiology)",
       "status": "provisional",
       "values": {
        "lowpass": null,
        "spatial_sigma": 1.0,
        "baseline_frames": 901,
        "spatial_truncate": 4.0
       },
       "decision": null,
       "location": "worker/voltage/preprocess.py (Params)",
       "reviewed": false,
       "reviewer": null,
       "description": "Default baseline window (frames) and spatial Gaussian sigma/truncate for phase",
       "reviewed_at": null
      },
      {
       "id": "tissue_mask",
       "expert": "optical mapping analyst",
       "status": "provisional",
       "values": {
        "rule": "not NaN in frame 0 and nonzero std",
        "tissue_pixels": 2332
       },
       "decision": null,
       "location": "worker/voltage/io.py (tissue_mask)",
       "reviewed": false,
       "reviewer": null,
       "description": "Tissue = not NaN in frame 0 and nonzero temporal std",
       "reviewed_at": null
      },
      {
       "id": "polarity",
       "expert": "optical mapping analyst / voltage dye chemist",
       "status": "provisional",
       "values": {
        "method": "median skew of dV/dt",
        "result": -1
       },
       "decision": null,
       "location": "worker/voltage/preprocess.py (polarity)",
       "reviewed": false,
       "reviewer": null,
       "description": "Dye polarity from sign of median per-pixel skew of dV/dt",
       "reviewed_at": null
      },
      {
       "id": "singularity_detection",
       "expert": "computational cardiac electrophysiologist (phase mapping)",
       "status": "provisional",
       "values": {
        "rotor_erode_px": 3,
        "rotor_threshold": 0.9
       },
       "decision": null,
       "location": "worker/voltage/preprocess.py (Params.rotor_threshold, rotor_erode_px)",
       "reviewed": false,
       "reviewer": null,
       "description": "Phase singularity = |winding| > threshold turns, >= erode px from tissue edge",
       "reviewed_at": null
      },
      {
       "id": "rotor_persistence",
       "expert": "computational cardiac electrophysiologist (phase mapping)",
       "status": "provisional",
       "values": {
        "link_px": 4.0,
        "max_gap": 5,
        "min_cycles": 1.0,
        "min_frames": 52
       },
       "decision": null,
       "location": "worker/voltage/rotors.py (TrackParams)",
       "reviewed": false,
       "reviewer": null,
       "description": "Track linking distance/gap and minimum lifetime for a persistent rotor",
       "reviewed_at": null
      },
      {
       "id": "chirality_pairing",
       "expert": "computational cardiac electrophysiologist (phase mapping)",
       "status": "provisional",
       "values": {
        "paired_frac": 0.5,
        "pair_dist_px": 3.0
       },
       "decision": null,
       "location": "worker/voltage/rotors.py (TrackParams.pair_dist_px, paired_frac)",
       "reviewed": false,
       "reviewer": null,
       "description": "Opposite-charge singularities within pair distance are a pair; tracks paired most of their life are excluded from rotors",
       "reviewed_at": null
      },
      {
       "id": "sensitivity_grid",
       "expert": "optical mapping analyst",
       "status": "provisional",
       "values": {
        "sigmas": {
         "light": 0.5,
         "default": 1.0,
         "heavier": 2.0
        },
        "trackers": {
         "loose": [
          6.0,
          10
         ],
         "strict": [
          2.0,
          1
         ],
         "default": [
          4.0,
          5
         ]
        },
        "baselines": {
         "run": 901,
         "3x_cycle": 1356,
         "6x_cycle": 2712,
         "1.5x_cycle": 678
        }
       },
       "decision": null,
       "location": "worker/voltage/sensitivity.py (SIGMAS, BASELINE_MULTIPLES, baseline_levels)",
       "reviewed": false,
       "reviewer": null,
       "description": "Filter levels tested: spatial sigma and baseline window values",
       "reviewed_at": null
      },
      {
       "id": "analysis_window",
       "expert": "cardiac electrophysiologist familiar with the dataset",
       "status": "provisional",
       "values": {
        "f0": 500,
        "f1": 8767
       },
       "decision": null,
       "location": "worker/voltage/runs.py (default_window)",
       "reviewed": false,
       "reviewer": null,
       "description": "Frames analysed: whole recording minus one filter pad at each end (unless the plan narrows it)",
       "reviewed_at": null
      },
      {
       "id": "prior_processing_flags",
       "expert": "imaging scientist (camera acquisition and noise)",
       "status": "provisional",
       "values": {
        "flags": [
         "negative_values",
         "non_integer",
         "nan_mask_all_frames",
         "temporal_smoothing",
         "spatial_smoothing"
        ],
        "thresholds": {
         "int_frac": 0.5,
         "neg_frac": 0.01,
         "dv_autocorr": 0.5,
         "neighbour_corr": 0.8
        }
       },
       "decision": null,
       "location": "worker/voltage/inspect.py (prior_processing)",
       "reviewed": false,
       "reviewer": null,
       "description": "Thresholds for flagging depositor processing (normalization, masking, temporal/spatial smoothing)",
       "reviewed_at": null
      },
      {
       "id": "baseline_step_detection",
       "expert": "optical mapping experimentalist",
       "status": "provisional",
       "values": {
        "frames": [
         3170
        ]
       },
       "decision": null,
       "location": "worker/voltage/events.py (detect_baseline_step)",
       "reviewed": false,
       "reviewer": null,
       "description": "Baseline step = consensus upward step in tissue-mean raw baseline (cause not inferred; first misread as light onset, contradicted by the DAQ)",
       "reviewed_at": null
      },
      {
       "id": "daq_interpretation",
       "expert": "experimentalist who recorded the data (or the depositor)",
       "status": "provisional",
       "values": {
        "events": [
         "illumination_on@0",
         "arrhythmia_termination@3153",
         "illumination_off@4977"
        ]
       },
       "decision": null,
       "location": "worker/voltage/daq.py",
       "reviewed": false,
       "reviewer": null,
       "description": "DAQ channel names from depositor notebook; frames = first N triggers of closest burst; midpoint thresholds",
       "reviewed_at": null
      },
      {
       "id": "segment_definitions",
       "expert": "cardiac electrophysiologist (ideally the depositing authors)",
       "status": "provisional",
       "values": {
        "light_off": [
         4977,
         9267
        ],
        "illuminated_arrhythmia": [
         0,
         3170
        ],
        "illuminated_after_termination": [
         3170,
         4977
        ]
       },
       "decision": null,
       "location": "worker/voltage/annotations.py (MOUSE_SEGMENTS)",
       "reviewed": false,
       "reviewer": null,
       "description": "Mouse segments bounded by DAQ light events and the baseline step, interpreted as spiral termination under illumination (project lead, from Hussaini et al. 2023)",
       "reviewed_at": null
      },
      {
       "id": "rotor_finding_criterion",
       "expert": "cardiac electrophysiologist + biostatistician",
       "status": "provisional",
       "values": {
        "min_frac": 0.1,
        "min_ratio": 2.0
       },
       "decision": null,
       "location": "worker/voltage/sensitivity.py (MIN_FRAC, MIN_RATIO)",
       "reviewed": false,
       "reviewer": null,
       "description": "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)",
       "reviewed_at": null
      },
      {
       "id": "persistent_rotor_criterion",
       "expert": "cardiac electrophysiologist",
       "status": "provisional",
       "values": {
        "expect": {
         "light_off": "absent",
         "illuminated_arrhythmia": "present",
         "illuminated_after_termination": "absent"
        },
        "max_absent": 0,
        "min_present": 1,
        "spanning_rotor": "counts in every segment it overlaps",
        "min_lifetime_frames": 52
       },
       "decision": null,
       "location": "worker/voltage/sensitivity.py (MIN_ROTORS_PRESENT, MAX_ROTORS_ABSENT)",
       "reviewed": false,
       "reviewer": null,
       "description": "Persistent-rotor finding holds if every 'present' segment has >= 1 persistent rotor and every 'absent' segment has none, at every setting",
       "reviewed_at": null
      },
      {
       "id": "pipeline_check",
       "expert": "optical mapping analyst",
       "status": "provisional",
       "values": {
        "model": "openai:gpt-5.5",
        "proceed": true,
        "anomalies": [
         "Pre-deposit processing / raw-data label",
         "Event interpretation at frame 3170",
         "Baseline and illumination artifact",
         "Baseline-window rule"
        ],
        "mismatches": []
       },
       "decision": null,
       "location": "worker/agents/pipeline.py (INSTRUCTIONS, validator)",
       "reviewed": false,
       "reviewer": null,
       "description": "The pipeline agent's hold/proceed decision from protocol mismatches and inspector anomalies; it chooses no parameter",
       "reviewed_at": null
      },
      {
       "id": "physiology_reference_rates",
       "expert": "cardiac electrophysiologist per species",
       "status": "provisional",
       "values": {
        "ranges": [
         "mouse_spiral_rotation_hz"
        ],
        "tolerance_frac": 0.25,
        "segment_rhythm_rule": "expected persistent rotors 'present' -> spiral arrhythmia"
       },
       "decision": null,
       "location": "worker/voltage/physiology.py (RANGES, TOLERANCE_FRAC)",
       "reviewed": false,
       "reviewer": null,
       "description": "Cited 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",
       "reviewed_at": null
      },
      {
       "id": "stability_rule",
       "expert": "biostatistician + optical mapping analyst",
       "status": "provisional",
       "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"
        ],
        "stable_frac": 0.25
       },
       "decision": null,
       "location": "worker/agents/critic.py (STABLE_FRAC, stability)",
       "reviewed": false,
       "reviewer": null,
       "description": "A 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'",
       "reviewed_at": null
      },
      {
       "id": "persistence_threshold_variants",
       "expert": "computational cardiac electrophysiologist (phase mapping)",
       "status": "provisional",
       "values": {
        "measured_cycle": 52,
        "paper_rotation": 50
       },
       "decision": null,
       "location": "worker/agents/critic.py (persistence_variants)",
       "reviewed": false,
       "reviewer": null,
       "description": "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",
       "reviewed_at": null
      }
     ],
     "status": "provisional",
     "all_reviewed": false,
     "superseded_by_run": null
    }
   },
   "segments": [
    {
     "id": "f6ca0bce-f7e9-437d-84b6-1bb1b24f80ba",
     "position": 1,
     "name": "illuminated_arrhythmia",
     "label": "illumination with arrhythmia",
     "start_frame": 0,
     "end_frame": 3170,
     "expected_persistent_rotors": "present",
     "definition": "from recording start to spiral termination (interpreted; under illumination)",
     "defined_by": "project lead (not a domain scientist), following the paper's design",
     "citation": {
      "ref": "10.1371/journal.pcbi.1011660",
      "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
     },
     "evidence": {
      "end": {
       "kind": "baseline_step",
       "frame": 3170,
       "label": "spiral termination (interpreted; under illumination)",
       "source": "image",
       "event_id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
       "evidence": {
        "step": 1.7134565711021423,
        "per_window": [
         {
          "z": 7.62002552466645,
          "step": 1.6427573561668396,
          "frame": 3170,
          "window": 101
         },
         {
          "z": 7.940594943178843,
          "step": 1.7134565711021423,
          "frame": 3154,
          "window": 151
         },
         {
          "z": 7.899171431654551,
          "step": 1.732661247253418,
          "frame": 3186,
          "window": 201
         }
        ],
        "pre_window": [
         2870,
         3120
        ],
        "post_window": [
         3220,
         3470
        ],
        "baseline_pre": -0.5335609912872314,
        "baseline_post": 1.2153877019882202,
        "interpretation": "mean fluorescence changed; cause not determined from the image",
        "beat_amplitude_p5_p95": 1.4402662966400377
       },
       "uncertainty_frames": 17
      },
      "start": {
       "illumination": {
        "timing": "before_first_frame",
        "daq_sample": 53144,
        "led_level_after": 0.0784302,
        "led_level_before": -0.000305176,
        "photodiode_after": 0.0177002,
        "photodiode_agrees": true,
        "photodiode_before": 0.015564,
        "frames_before_first_frame": 23.0
       }
      }
     },
     "provisional": true
    },
    {
     "id": "c1444c59-1863-45aa-b6f3-2208392bf55a",
     "position": 2,
     "name": "illuminated_after_termination",
     "label": "illumination after termination",
     "start_frame": 3170,
     "end_frame": 4977,
     "expected_persistent_rotors": "absent",
     "definition": "from spiral termination (interpreted; under illumination) to illumination_off",
     "defined_by": "project lead (not a domain scientist), following the paper's design",
     "citation": {
      "ref": "10.1371/journal.pcbi.1011660",
      "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
     },
     "evidence": {
      "end": {
       "kind": "illumination_off",
       "frame": 4977,
       "label": null,
       "source": "acquisition_log",
       "event_id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
       "evidence": {
        "timing": "during_recording",
        "daq_sample": 103145,
        "led_level_after": -0.000610352,
        "led_level_before": 0.0784302,
        "photodiode_after": 0.015564,
        "photodiode_agrees": true,
        "photodiode_before": 0.0177002
       },
       "uncertainty_frames": 11
      },
      "start": {
       "kind": "baseline_step",
       "frame": 3170,
       "label": "spiral termination (interpreted; under illumination)",
       "source": "image",
       "event_id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
       "evidence": {
        "step": 1.7134565711021423,
        "per_window": [
         {
          "z": 7.62002552466645,
          "step": 1.6427573561668396,
          "frame": 3170,
          "window": 101
         },
         {
          "z": 7.940594943178843,
          "step": 1.7134565711021423,
          "frame": 3154,
          "window": 151
         },
         {
          "z": 7.899171431654551,
          "step": 1.732661247253418,
          "frame": 3186,
          "window": 201
         }
        ],
        "pre_window": [
         2870,
         3120
        ],
        "post_window": [
         3220,
         3470
        ],
        "baseline_pre": -0.5335609912872314,
        "baseline_post": 1.2153877019882202,
        "interpretation": "mean fluorescence changed; cause not determined from the image",
        "beat_amplitude_p5_p95": 1.4402662966400377
       },
       "uncertainty_frames": 17
      }
     },
     "provisional": true
    },
    {
     "id": "4eeedfd6-84c2-40d3-8a4a-8758716d02d9",
     "position": 3,
     "name": "light_off",
     "label": "light off",
     "start_frame": 4977,
     "end_frame": 9267,
     "expected_persistent_rotors": "absent",
     "definition": "from illumination_off to recording end",
     "defined_by": "project lead (not a domain scientist), following the paper's design",
     "citation": {
      "ref": "10.1371/journal.pcbi.1011660",
      "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
     },
     "evidence": {
      "end": {
       "recording_end_frame": 9267
      },
      "start": {
       "kind": "illumination_off",
       "frame": 4977,
       "label": null,
       "source": "acquisition_log",
       "event_id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
       "evidence": {
        "timing": "during_recording",
        "daq_sample": 103145,
        "led_level_after": -0.000610352,
        "led_level_before": 0.0784302,
        "photodiode_after": 0.015564,
        "photodiode_agrees": true,
        "photodiode_before": 0.0177002
       },
       "uncertainty_frames": 11
      }
     },
     "provisional": true
    }
   ],
   "events": [
    {
     "id": "e73142c8-f562-4714-9ace-dce759d293d9",
     "kind": "illumination_on",
     "frame": 0,
     "label": null,
     "source": "acquisition_log",
     "status": "detected",
     "uncertainty_frames": 11,
     "method": "midpoint threshold on DAQ channel 'led_trigger', mapped to frames via camera triggers"
    },
    {
     "id": "bac2afbc-81b8-4d0e-9a26-7bee170f9239",
     "kind": "arrhythmia_termination",
     "frame": 24,
     "label": null,
     "source": "acquisition_log",
     "status": "superseded",
     "uncertainty_frames": 11,
     "method": "last activation on DAQ channel 'ecg' (MAP) followed by an interval > 2x the arrhythmic interval; mapped to frames via camera triggers"
    },
    {
     "id": "d2476777-3e2a-4c5e-a20b-b858a7527678",
     "kind": "arrhythmia_termination",
     "frame": 3153,
     "label": null,
     "source": "acquisition_log",
     "status": "superseded",
     "uncertainty_frames": 11,
     "method": "last activation on DAQ channel 'ecg' (MAP) followed by an interval > 2x the arrhythmic interval; mapped to frames via camera triggers"
    },
    {
     "id": "e39f76de-baaa-42c1-be7a-6852665b65a2",
     "kind": "arrhythmia_termination",
     "frame": 3153,
     "label": null,
     "source": "acquisition_log",
     "status": "detected",
     "uncertainty_frames": 11,
     "method": "last activation on DAQ channel 'ecg' (MAP) followed by an interval > 2x the arrhythmic interval; mapped to frames via camera triggers"
    },
    {
     "id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
     "kind": "baseline_step",
     "frame": 3170,
     "label": "spiral termination (interpreted; under illumination)",
     "source": "image",
     "status": "detected",
     "uncertainty_frames": 17,
     "method": "consensus upward step in running-median baseline of tissue-mean raw signal"
    },
    {
     "id": "42ba71e2-c2c4-4833-abc2-467506ec90a1",
     "kind": "illumination_on",
     "frame": 3170,
     "label": null,
     "source": "image",
     "status": "contradicted",
     "uncertainty_frames": 17,
     "method": "consensus upward step in running-median baseline of tissue-mean raw signal"
    },
    {
     "id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
     "kind": "illumination_off",
     "frame": 4977,
     "label": null,
     "source": "acquisition_log",
     "status": "detected",
     "uncertainty_frames": 11,
     "method": "midpoint threshold on DAQ channel 'led_trigger', mapped to frames via camera triggers"
    }
   ]
  }
 },
 "provenance": {
  "recording": {
   "id": "55cb4aa3-6502-45a6-a14c-85cb676fe8c3",
   "label": "Mouse heart, spiral wave and optogenetic termination (M13Rec001)",
   "source": "public",
   "source_ref": "10.5281/zenodo.10228296",
   "publication_ref": "10.1371/journal.pcbi.1011660",
   "storage_path": "public/M13Rec001_complete.npy",
   "format": "npy",
   "sha256": "3f8f2e1b8f776633089b33ccd4bf3fccb4f13140b71991f1dcd0e0a12bb48cbc",
   "size_bytes": 260958848,
   "license": "CC-BY-4.0",
   "attribution": "Hussaini, Sayedeh; Luther, Stefan; L\u00e4dke, Sarah L.",
   "rights_source": {
    "ref": "10.5281/zenodo.10228296",
    "url": "https://zenodo.org/records/10228296",
    "kind": "deposit_metadata",
    "creators": [
     "Hussaini, Sayedeh",
     "Luther, Stefan",
     "L\u00e4dke, Sarah L."
    ],
    "license_as_stated": "cc-by-4.0"
   },
   "frame_rate_hz": 1000,
   "frame_rate_source": {
    "ref": "10.1371/journal.pcbi.1011660",
    "kind": "publication",
    "note": "Camera frames are 64 x 64 in the paper; the deposit is 64 x 55 (cropped). Consistent with the DAQ: 10 samples per frame and a 5 s light pulse spanning 50,001 samples imply a 10 kHz DAQ.",
    "quote": " 775 \u00b1 70nm bandpass filter (FF01\u2013775/140-25, Semrock) and finally by the camera (EMCCD, Cascade 128+, Photometrics) with a spatial resolution of 64 \u00d7 64 pixels (133 \u03bcm per pixel) at 1 kHz. Optical Mapping recordings were acquired with software MultiRecorder and analysed with software PythonAnalyser (both developed by Research Group Biomedical Physics). Electrical s",
    "section": "Materials and methods: Optical mapping experiments on ventricular arrhythmia and its termination in the intact mouse heart"
   },
   "pixel_size_um": 133,
   "pixel_size_source": {
    "ref": "10.1371/journal.pcbi.1011660",
    "kind": "publication",
    "note": "paper states 64 x 64 px at 133 um; the deposit is 64 x 55 (cropped, not rebinned)",
    "quote": "rst collected by a 775 \u00b1 70nm bandpass filter (FF01\u2013775/140-25, Semrock) and finally by the camera (EMCCD, Cascade 128+, Photometrics) with a spatial resolution of 64 \u00d7 64 pixels (133 \u03bcm per pixel) at 1 kHz. Optical Mapping recordings were acquired with software MultiRecorder and analysed with software PythonAnalyser (both developed by Research Group Biomedical Physics). El"
   },
   "frames": 9267,
   "height": 64,
   "width": 55,
   "inverted": true
  },
  "protocol": {
   "id": "f65d786f-f194-4be2-88b8-10d3dd25d674",
   "name": "Mouse whole heart optical mapping (Luther lab)",
   "species": "mouse",
   "tissue": "whole_heart",
   "params_version": 3,
   "params_set_by": "developer (not a domain scientist)",
   "params_note": "version 3: baseline 901 frames = 2.1 x the 433-frame (2.31 Hz) post-termination cycle resolved under v2; v2's 641 frames was 1.48 cycles, on the 1.5-cycle line, and the pipeline check held one run and passed another on the same inputs. pad 500 >= half the window. Provisional (REVIEW_NEEDED item 16)."
  },
  "run": {
   "id": "339921d8-9255-4d78-9789-6816dd8b409c",
   "status": "done",
   "started_at": "2026-10-28T18:40:41.855071+00:00",
   "finished_at": "2026-10-28T18:48:26.342209+00:00",
   "code": {
    "dirty": true,
    "git_commit": "008c2dc076bcebf9e7fa01a05e8b7c4b5a713b37"
   },
   "workers": 9,
   "steps": [
    "load",
    "deposit_checks",
    "baseline_correct",
    "polarity",
    "spatial_filter(phase only)",
    "hilbert_phase",
    "phase_singularities",
    "track_and_pair",
    "beats_apd_cv",
    "sensitivity",
    "render"
   ],
   "protocol_params": {
    "params": {
     "link_px": 4.0,
     "max_gap": 5,
     "min_cycles": 1.0,
     "pad_frames": 500,
     "paired_frac": 0.5,
     "render_step": 4,
     "pair_dist_px": 3.0,
     "spatial_sigma": 1.0,
     "rotor_erode_px": 3,
     "baseline_frames": 901,
     "rotor_threshold": 0.9,
     "spatial_truncate": 4.0
    },
    "version": 3,
    "protocol_id": "f65d786f-f194-4be2-88b8-10d3dd25d674"
   },
   "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": null,
    "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
   },
   "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
   },
   "pipeline_check": {
    "model": "openai:gpt-5.5",
    "proceed": true,
    "anomalies": [
     {
      "topic": "Pre-deposit processing / raw-data label",
      "severity": "warn",
      "effect_on_analysis": "The deposited movie should not be treated as raw camera counts: documented and measured masking, temporal smoothing, spatial smoothing, and normalization mean that the protocol's Gaussian phase smoothing is added on top of prior filtering of unknown total strength, and analyses depending on raw photon noise or independent pixel noise would be misleading."
     },
     {
      "topic": "Event interpretation at frame 3170",
      "severity": "warn",
      "effect_on_analysis": "The segment boundary at frame 3170 is a provisional fluorescence step/rhythm-change interpretation, not a directly measured light-on event. The fixed segments can be analysed, but labels involving spiral termination should be read as provisional and not as a direct measurement of illumination onset."
     },
     {
      "topic": "Baseline and illumination artifact",
      "severity": "info",
      "effect_on_analysis": "Blue-light crosstalk, re-normalization to the stimulation light signal, and a large slow signal range/step can affect absolute fluorescence level and amplitude measures. The protocol's high-pass handling can be applied, but amplitude or fluorescence-level interpretations remain confounded by illumination/crosstalk/normalization effects."
     },
     {
      "topic": "Baseline-window rule",
      "severity": "info",
      "effect_on_analysis": "The coded rule passed: baseline_frames 901 is at least 2.0 times the slowest segment cycle from the MAP channel, with slowest_segment illuminated_after_termination, slowest_cycle_frames 415, required_min_frames 830, and ratio 2.171. This is reported as code status only and is not a separate reason to hold the run."
     }
    ],
    "rationale": "The recording may be analysed under the fixed Mouse whole heart optical mapping protocol, parameter set version 3, because the available facts match the protocol context: mouse whole heart optical mapping from the Luther-lab public reference recording, with the recording frame rate established as 1000 Hz from the publication and DAQ consistency, and pixel size 133 \u00b5m from the publication. No fact mismatch indicates that the fixed frame-count or pixel-based parameters would be wrong for this recording. However, the deposited data are processed rather than raw, the frame-3170 event and segment labels are provisional, and illumination/crosstalk/normalization effects can confound fluorescence-level and amplitude interpretation, so these warnings must accompany any analysis.",
    "mismatches": [],
    "hold_reason": null,
    "protocol_id": "f65d786f-f194-4be2-88b8-10d3dd25d674",
    "methods_text": "For recording 55cb4aa3-6502-45a6-a14c-85cb676fe8c3 under protocol f65d786f-f194-4be2-88b8-10d3dd25d674, the provisional parameter set version 3 is used 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, with DAQ consistency noted, and the pixel size is 133 \u00b5m from the publication. The recording has 9267 frames in a 64 by 55 npy movie; the analysed window is frames 500 to 8767. The provisional segment definitions are illuminated_arrhythmia from frames 0 to 3170, illuminated_after_termination from frames 3170 to 4977, and light_off from frames 4977 to 9267; the parameter set, the segment definitions and the criteria are provisional.",
    "recording_id": "55cb4aa3-6502-45a6-a14c-85cb676fe8c3",
    "params_version": 3,
    "prompt_version": "pipeline-v2"
   }
  },
  "signature": {
   "id": "9b40a32d-d6e2-4d0d-9976-9137ed881bea",
   "created_at": "2026-10-28T18:47:37.807945+00:00",
   "movie_path": "runs/339921d8-9255-4d78-9789-6816dd8b409c/movie.mp4",
   "frames": {
    "f0": 500,
    "f1": 8767,
    "maps": "runs/339921d8-9255-4d78-9789-6816dd8b409c/frames/maps.npz",
    "dtype": "<f4",
    "phase": "runs/339921d8-9255-4d78-9789-6816dd8b409c/frames/phase.npy",
    "shape": [
     8267,
     64,
     55
    ],
    "sha256": {
     "maps": "9982b72c2c9fd56f09a13d3db6a803e2b3c3eda5456cad070ea92dc38af675df",
     "phase": "7be44c8e09b68bd5a4ac810d79532c50cb8867226eb276ab970483c00839077c",
     "voltage": "5dabf0aed0a41315e6ecaaeeb78f0f5c252d12e6ae28aa55e9dc137ff561f8c3"
    },
    "voltage": "runs/339921d8-9255-4d78-9789-6816dd8b409c/frames/voltage.npy",
    "map_keys": [
     "activation:illuminated_arrhythmia",
     "dominant_frequency:illuminated_arrhythmia",
     "activation:illuminated_after_termination",
     "dominant_frequency:illuminated_after_termination",
     "activation:light_off",
     "dominant_frequency:light_off",
     "dominant_frequency:window"
    ],
    "map_units": {
     "activation:light_off": "ms",
     "dominant_frequency:window": "Hz",
     "dominant_frequency:light_off": "Hz",
     "activation:illuminated_arrhythmia": "ms",
     "activation:illuminated_after_termination": "ms",
     "dominant_frequency:illuminated_arrhythmia": "Hz",
     "dominant_frequency:illuminated_after_termination": "Hz"
    }
   },
   "filter_params": {
    "mask": "not NaN in frame 0 and nonzero temporal std",
    "render": {
     "step": 4,
     "palettes": {
      "phase": "twilight",
      "camera": "gray",
      "voltage": "gray"
     },
     "interpolation": "nearest"
    },
    "window": {
     "f0": 500,
     "f1": 8767,
     "segments": [
      {
       "name": "illuminated_arrhythmia",
       "label": "illumination with arrhythmia",
       "defined": [
        0,
        3170
       ],
       "analysed": [
        500,
        3170
       ],
       "citation": {
        "ref": "10.1371/journal.pcbi.1011660",
        "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
       },
       "defined_by": "project lead (not a domain scientist), following the paper's design",
       "segment_id": "f6ca0bce-f7e9-437d-84b6-1bb1b24f80ba",
       "end_event_id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
       "start_event_id": null,
       "expected_persistent_rotors": "present"
      },
      {
       "name": "illuminated_after_termination",
       "label": "illumination after termination",
       "defined": [
        3170,
        4977
       ],
       "analysed": [
        3170,
        4977
       ],
       "citation": {
        "ref": "10.1371/journal.pcbi.1011660",
        "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
       },
       "defined_by": "project lead (not a domain scientist), following the paper's design",
       "segment_id": "c1444c59-1863-45aa-b6f3-2208392bf55a",
       "end_event_id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
       "start_event_id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
       "expected_persistent_rotors": "absent"
      },
      {
       "name": "light_off",
       "label": "light off",
       "defined": [
        4977,
        9267
       ],
       "analysed": [
        4977,
        8767
       ],
       "citation": {
        "ref": "10.1371/journal.pcbi.1011660",
        "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
       },
       "defined_by": "project lead (not a domain scientist), following the paper's design",
       "segment_id": "4eeedfd6-84c2-40d3-8a4a-8758716d02d9",
       "end_event_id": null,
       "start_event_id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
       "expected_persistent_rotors": "absent"
      }
     ],
     "illumination": "Acquisition log (LED trigger channel, provisional interpretation): illumination on over frames 500-4977 of the analysed frames 500-8767.",
     "frame_rate_hz": 1000.0,
     "frame_rate_source": {
      "ref": "10.1371/journal.pcbi.1011660",
      "kind": "publication",
      "note": "Camera frames are 64 x 64 in the paper; the deposit is 64 x 55 (cropped). Consistent with the DAQ: 10 samples per frame and a 5 s light pulse spanning 50,001 samples imply a 10 kHz DAQ.",
      "quote": " 775 \u00b1 70nm bandpass filter (FF01\u2013775/140-25, Semrock) and finally by the camera (EMCCD, Cascade 128+, Photometrics) with a spatial resolution of 64 \u00d7 64 pixels (133 \u03bcm per pixel) at 1 kHz. Optical Mapping recordings were acquired with software MultiRecorder and analysed with software PythonAnalyser (both developed by Research Group Biomedical Physics). Electrical s",
      "section": "Materials and methods: Optical mapping experiments on ventricular arrhythmia and its termination in the intact mouse heart"
     },
     "segment_cycles_frames": {
      "light_off": 421,
      "illuminated_arrhythmia": 52,
      "illuminated_after_termination": 452
     }
    },
    "lowpass": null,
    "polarity": -1,
    "tracking": {
     "link_px": 4.0,
     "max_gap": 5,
     "min_cycles": 1.0,
     "min_frames": 52,
     "paired_frac": 0.5,
     "pair_dist_px": 3.0
    },
    "pad_frames": 500,
    "phase_method": "angle of scipy.signal.hilbert along time, on spatially filtered signal",
    "spatial_sigma": 1.0,
    "rotor_erode_px": 3,
    "spatial_method": "scipy.ndimage.gaussian_filter per frame, mode=reflect; NaN set to 0 before filtering, non-tissue zeroed after",
    "baseline_frames": 901,
    "baseline_method": "scipy.ndimage.uniform_filter1d, mode=reflect, subtracted per pixel",
    "polarity_method": "sign of median per-pixel skew of dV/dt on baseline-corrected signal",
    "rotor_threshold": 0.9,
    "spatial_truncate": 4.0,
    "spatial_applies_to": "phase/activation only; displayed voltage is baseline-corrected only"
   },
   "criteria_status": {
    "note": null,
    "rules": [
     {
      "id": "protocol_parameter_set",
      "expert": "optical mapping analyst",
      "status": "provisional",
      "values": {
       "set_by": "developer (not a domain scientist)",
       "protocol": "Mouse whole heart optical mapping (Luther lab)",
       "protocol_id": "f65d786f-f194-4be2-88b8-10d3dd25d674",
       "params_version": 3
      },
      "decision": null,
      "location": "worker/voltage/protocol_params.py (developer_defaults, set_params)",
      "reviewed": false,
      "reviewer": null,
      "description": "Each protocol's fixed, versioned analysis parameters (version 1 = developer defaults); no run or agent may deviate",
      "reviewed_at": null
     },
     {
      "id": "baseline_window_rule",
      "expert": "optical mapping analyst",
      "status": "provisional",
      "values": {
       "ok": true,
       "factor": 2.0,
       "source": "MAP channel (DAQ log)",
       "required_min_frames": 830,
       "slowest_cycle_frames": 415
      },
      "decision": null,
      "location": "worker/voltage/baseline_rule.py (FACTOR, evaluate)",
      "reviewed": false,
      "reviewer": null,
      "description": "A 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 code",
      "reviewed_at": null
     },
     {
      "id": "filter_defaults",
      "expert": "optical mapping analyst (cardiac electrophysiology)",
      "status": "provisional",
      "values": {
       "lowpass": null,
       "spatial_sigma": 1.0,
       "baseline_frames": 901,
       "spatial_truncate": 4.0
      },
      "decision": null,
      "location": "worker/voltage/preprocess.py (Params)",
      "reviewed": false,
      "reviewer": null,
      "description": "Default baseline window (frames) and spatial Gaussian sigma/truncate for phase",
      "reviewed_at": null
     },
     {
      "id": "tissue_mask",
      "expert": "optical mapping analyst",
      "status": "provisional",
      "values": {
       "rule": "not NaN in frame 0 and nonzero std",
       "tissue_pixels": 2332
      },
      "decision": null,
      "location": "worker/voltage/io.py (tissue_mask)",
      "reviewed": false,
      "reviewer": null,
      "description": "Tissue = not NaN in frame 0 and nonzero temporal std",
      "reviewed_at": null
     },
     {
      "id": "polarity",
      "expert": "optical mapping analyst / voltage dye chemist",
      "status": "provisional",
      "values": {
       "method": "median skew of dV/dt",
       "result": -1
      },
      "decision": null,
      "location": "worker/voltage/preprocess.py (polarity)",
      "reviewed": false,
      "reviewer": null,
      "description": "Dye polarity from sign of median per-pixel skew of dV/dt",
      "reviewed_at": null
     },
     {
      "id": "singularity_detection",
      "expert": "computational cardiac electrophysiologist (phase mapping)",
      "status": "provisional",
      "values": {
       "rotor_erode_px": 3,
       "rotor_threshold": 0.9
      },
      "decision": null,
      "location": "worker/voltage/preprocess.py (Params.rotor_threshold, rotor_erode_px)",
      "reviewed": false,
      "reviewer": null,
      "description": "Phase singularity = |winding| > threshold turns, >= erode px from tissue edge",
      "reviewed_at": null
     },
     {
      "id": "rotor_persistence",
      "expert": "computational cardiac electrophysiologist (phase mapping)",
      "status": "provisional",
      "values": {
       "link_px": 4.0,
       "max_gap": 5,
       "min_cycles": 1.0,
       "min_frames": 52
      },
      "decision": null,
      "location": "worker/voltage/rotors.py (TrackParams)",
      "reviewed": false,
      "reviewer": null,
      "description": "Track linking distance/gap and minimum lifetime for a persistent rotor",
      "reviewed_at": null
     },
     {
      "id": "chirality_pairing",
      "expert": "computational cardiac electrophysiologist (phase mapping)",
      "status": "provisional",
      "values": {
       "paired_frac": 0.5,
       "pair_dist_px": 3.0
      },
      "decision": null,
      "location": "worker/voltage/rotors.py (TrackParams.pair_dist_px, paired_frac)",
      "reviewed": false,
      "reviewer": null,
      "description": "Opposite-charge singularities within pair distance are a pair; tracks paired most of their life are excluded from rotors",
      "reviewed_at": null
     },
     {
      "id": "sensitivity_grid",
      "expert": "optical mapping analyst",
      "status": "provisional",
      "values": {
       "sigmas": {
        "light": 0.5,
        "default": 1.0,
        "heavier": 2.0
       },
       "trackers": {
        "loose": [
         6.0,
         10
        ],
        "strict": [
         2.0,
         1
        ],
        "default": [
         4.0,
         5
        ]
       },
       "baselines": {
        "run": 901,
        "3x_cycle": 1356,
        "6x_cycle": 2712,
        "1.5x_cycle": 678
       }
      },
      "decision": null,
      "location": "worker/voltage/sensitivity.py (SIGMAS, BASELINE_MULTIPLES, baseline_levels)",
      "reviewed": false,
      "reviewer": null,
      "description": "Filter levels tested: spatial sigma and baseline window values",
      "reviewed_at": null
     },
     {
      "id": "analysis_window",
      "expert": "cardiac electrophysiologist familiar with the dataset",
      "status": "provisional",
      "values": {
       "f0": 500,
       "f1": 8767
      },
      "decision": null,
      "location": "worker/voltage/runs.py (default_window)",
      "reviewed": false,
      "reviewer": null,
      "description": "Frames analysed: whole recording minus one filter pad at each end (unless the plan narrows it)",
      "reviewed_at": null
     },
     {
      "id": "prior_processing_flags",
      "expert": "imaging scientist (camera acquisition and noise)",
      "status": "provisional",
      "values": {
       "flags": [
        "negative_values",
        "non_integer",
        "nan_mask_all_frames",
        "temporal_smoothing",
        "spatial_smoothing"
       ],
       "thresholds": {
        "int_frac": 0.5,
        "neg_frac": 0.01,
        "dv_autocorr": 0.5,
        "neighbour_corr": 0.8
       }
      },
      "decision": null,
      "location": "worker/voltage/inspect.py (prior_processing)",
      "reviewed": false,
      "reviewer": null,
      "description": "Thresholds for flagging depositor processing (normalization, masking, temporal/spatial smoothing)",
      "reviewed_at": null
     },
     {
      "id": "baseline_step_detection",
      "expert": "optical mapping experimentalist",
      "status": "provisional",
      "values": {
       "frames": [
        3170
       ]
      },
      "decision": null,
      "location": "worker/voltage/events.py (detect_baseline_step)",
      "reviewed": false,
      "reviewer": null,
      "description": "Baseline step = consensus upward step in tissue-mean raw baseline (cause not inferred; first misread as light onset, contradicted by the DAQ)",
      "reviewed_at": null
     },
     {
      "id": "daq_interpretation",
      "expert": "experimentalist who recorded the data (or the depositor)",
      "status": "provisional",
      "values": {
       "events": [
        "illumination_on@0",
        "arrhythmia_termination@3153",
        "illumination_off@4977"
       ]
      },
      "decision": null,
      "location": "worker/voltage/daq.py",
      "reviewed": false,
      "reviewer": null,
      "description": "DAQ channel names from depositor notebook; frames = first N triggers of closest burst; midpoint thresholds",
      "reviewed_at": null
     },
     {
      "id": "segment_definitions",
      "expert": "cardiac electrophysiologist (ideally the depositing authors)",
      "status": "provisional",
      "values": {
       "light_off": [
        4977,
        9267
       ],
       "illuminated_arrhythmia": [
        0,
        3170
       ],
       "illuminated_after_termination": [
        3170,
        4977
       ]
      },
      "decision": null,
      "location": "worker/voltage/annotations.py (MOUSE_SEGMENTS)",
      "reviewed": false,
      "reviewer": null,
      "description": "Mouse segments bounded by DAQ light events and the baseline step, interpreted as spiral termination under illumination (project lead, from Hussaini et al. 2023)",
      "reviewed_at": null
     },
     {
      "id": "rotor_finding_criterion",
      "expert": "cardiac electrophysiologist + biostatistician",
      "status": "provisional",
      "values": {
       "min_frac": 0.1,
       "min_ratio": 2.0
      },
      "decision": null,
      "location": "worker/voltage/sensitivity.py (MIN_FRAC, MIN_RATIO)",
      "reviewed": false,
      "reviewer": null,
      "description": "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)",
      "reviewed_at": null
     },
     {
      "id": "persistent_rotor_criterion",
      "expert": "cardiac electrophysiologist",
      "status": "provisional",
      "values": {
       "expect": {
        "light_off": "absent",
        "illuminated_arrhythmia": "present",
        "illuminated_after_termination": "absent"
       },
       "max_absent": 0,
       "min_present": 1,
       "spanning_rotor": "counts in every segment it overlaps",
       "min_lifetime_frames": 52
      },
      "decision": null,
      "location": "worker/voltage/sensitivity.py (MIN_ROTORS_PRESENT, MAX_ROTORS_ABSENT)",
      "reviewed": false,
      "reviewer": null,
      "description": "Persistent-rotor finding holds if every 'present' segment has >= 1 persistent rotor and every 'absent' segment has none, at every setting",
      "reviewed_at": null
     },
     {
      "id": "pipeline_check",
      "expert": "optical mapping analyst",
      "status": "provisional",
      "values": {
       "model": "openai:gpt-5.5",
       "proceed": true,
       "anomalies": [
        "Pre-deposit processing / raw-data label",
        "Event interpretation at frame 3170",
        "Baseline and illumination artifact",
        "Baseline-window rule"
       ],
       "mismatches": []
      },
      "decision": null,
      "location": "worker/agents/pipeline.py (INSTRUCTIONS, validator)",
      "reviewed": false,
      "reviewer": null,
      "description": "The pipeline agent's hold/proceed decision from protocol mismatches and inspector anomalies; it chooses no parameter",
      "reviewed_at": null
     },
     {
      "id": "physiology_reference_rates",
      "expert": "cardiac electrophysiologist per species",
      "status": "provisional",
      "values": {
       "ranges": [
        "mouse_spiral_rotation_hz"
       ],
       "tolerance_frac": 0.25,
       "segment_rhythm_rule": "expected persistent rotors 'present' -> spiral arrhythmia"
      },
      "decision": null,
      "location": "worker/voltage/physiology.py (RANGES, TOLERANCE_FRAC)",
      "reviewed": false,
      "reviewer": null,
      "description": "Cited 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",
      "reviewed_at": null
     },
     {
      "id": "stability_rule",
      "expert": "biostatistician + optical mapping analyst",
      "status": "provisional",
      "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"
       ],
       "stable_frac": 0.25
      },
      "decision": null,
      "location": "worker/agents/critic.py (STABLE_FRAC, stability)",
      "reviewed": false,
      "reviewer": null,
      "description": "A 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'",
      "reviewed_at": null
     },
     {
      "id": "persistence_threshold_variants",
      "expert": "computational cardiac electrophysiologist (phase mapping)",
      "status": "provisional",
      "values": {
       "measured_cycle": 52,
       "paper_rotation": 50
      },
      "decision": null,
      "location": "worker/agents/critic.py (persistence_variants)",
      "reviewed": false,
      "reviewer": null,
      "description": "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",
      "reviewed_at": null
     }
    ],
    "status": "provisional",
    "all_reviewed": false,
    "superseded_by_run": null
   }
  },
  "segments": [
   {
    "id": "f6ca0bce-f7e9-437d-84b6-1bb1b24f80ba",
    "position": 1,
    "name": "illuminated_arrhythmia",
    "label": "illumination with arrhythmia",
    "start_frame": 0,
    "end_frame": 3170,
    "expected_persistent_rotors": "present",
    "definition": "from recording start to spiral termination (interpreted; under illumination)",
    "defined_by": "project lead (not a domain scientist), following the paper's design",
    "citation": {
     "ref": "10.1371/journal.pcbi.1011660",
     "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
    },
    "evidence": {
     "end": {
      "kind": "baseline_step",
      "frame": 3170,
      "label": "spiral termination (interpreted; under illumination)",
      "source": "image",
      "event_id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
      "evidence": {
       "step": 1.7134565711021423,
       "per_window": [
        {
         "z": 7.62002552466645,
         "step": 1.6427573561668396,
         "frame": 3170,
         "window": 101
        },
        {
         "z": 7.940594943178843,
         "step": 1.7134565711021423,
         "frame": 3154,
         "window": 151
        },
        {
         "z": 7.899171431654551,
         "step": 1.732661247253418,
         "frame": 3186,
         "window": 201
        }
       ],
       "pre_window": [
        2870,
        3120
       ],
       "post_window": [
        3220,
        3470
       ],
       "baseline_pre": -0.5335609912872314,
       "baseline_post": 1.2153877019882202,
       "interpretation": "mean fluorescence changed; cause not determined from the image",
       "beat_amplitude_p5_p95": 1.4402662966400377
      },
      "uncertainty_frames": 17
     },
     "start": {
      "illumination": {
       "timing": "before_first_frame",
       "daq_sample": 53144,
       "led_level_after": 0.0784302,
       "led_level_before": -0.000305176,
       "photodiode_after": 0.0177002,
       "photodiode_agrees": true,
       "photodiode_before": 0.015564,
       "frames_before_first_frame": 23.0
      }
     }
    },
    "provisional": true
   },
   {
    "id": "c1444c59-1863-45aa-b6f3-2208392bf55a",
    "position": 2,
    "name": "illuminated_after_termination",
    "label": "illumination after termination",
    "start_frame": 3170,
    "end_frame": 4977,
    "expected_persistent_rotors": "absent",
    "definition": "from spiral termination (interpreted; under illumination) to illumination_off",
    "defined_by": "project lead (not a domain scientist), following the paper's design",
    "citation": {
     "ref": "10.1371/journal.pcbi.1011660",
     "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
    },
    "evidence": {
     "end": {
      "kind": "illumination_off",
      "frame": 4977,
      "label": null,
      "source": "acquisition_log",
      "event_id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
      "evidence": {
       "timing": "during_recording",
       "daq_sample": 103145,
       "led_level_after": -0.000610352,
       "led_level_before": 0.0784302,
       "photodiode_after": 0.015564,
       "photodiode_agrees": true,
       "photodiode_before": 0.0177002
      },
      "uncertainty_frames": 11
     },
     "start": {
      "kind": "baseline_step",
      "frame": 3170,
      "label": "spiral termination (interpreted; under illumination)",
      "source": "image",
      "event_id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
      "evidence": {
       "step": 1.7134565711021423,
       "per_window": [
        {
         "z": 7.62002552466645,
         "step": 1.6427573561668396,
         "frame": 3170,
         "window": 101
        },
        {
         "z": 7.940594943178843,
         "step": 1.7134565711021423,
         "frame": 3154,
         "window": 151
        },
        {
         "z": 7.899171431654551,
         "step": 1.732661247253418,
         "frame": 3186,
         "window": 201
        }
       ],
       "pre_window": [
        2870,
        3120
       ],
       "post_window": [
        3220,
        3470
       ],
       "baseline_pre": -0.5335609912872314,
       "baseline_post": 1.2153877019882202,
       "interpretation": "mean fluorescence changed; cause not determined from the image",
       "beat_amplitude_p5_p95": 1.4402662966400377
      },
      "uncertainty_frames": 17
     }
    },
    "provisional": true
   },
   {
    "id": "4eeedfd6-84c2-40d3-8a4a-8758716d02d9",
    "position": 3,
    "name": "light_off",
    "label": "light off",
    "start_frame": 4977,
    "end_frame": 9267,
    "expected_persistent_rotors": "absent",
    "definition": "from illumination_off to recording end",
    "defined_by": "project lead (not a domain scientist), following the paper's design",
    "citation": {
     "ref": "10.1371/journal.pcbi.1011660",
     "quote": "t stimulus with LI = 3.44 \u03bcW/mm2 and PL = 5 s. Fig 2C shows a monophasic action potential (MAP) signal (in black) before, during, and after illumination. It shows the sinus rhythm returns after 3190 ms of illumination. Fig 2D presents a closer look at the MAP signal of the heart during the last few rotations of arrhythmia and the first few action potentials of sinus rhythm. Fig 2E illustrates a"
    },
    "evidence": {
     "end": {
      "recording_end_frame": 9267
     },
     "start": {
      "kind": "illumination_off",
      "frame": 4977,
      "label": null,
      "source": "acquisition_log",
      "event_id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
      "evidence": {
       "timing": "during_recording",
       "daq_sample": 103145,
       "led_level_after": -0.000610352,
       "led_level_before": 0.0784302,
       "photodiode_after": 0.015564,
       "photodiode_agrees": true,
       "photodiode_before": 0.0177002
      },
      "uncertainty_frames": 11
     }
    },
    "provisional": true
   }
  ],
  "events": [
   {
    "id": "e73142c8-f562-4714-9ace-dce759d293d9",
    "kind": "illumination_on",
    "frame": 0,
    "label": null,
    "source": "acquisition_log",
    "status": "detected",
    "uncertainty_frames": 11,
    "method": "midpoint threshold on DAQ channel 'led_trigger', mapped to frames via camera triggers"
   },
   {
    "id": "bac2afbc-81b8-4d0e-9a26-7bee170f9239",
    "kind": "arrhythmia_termination",
    "frame": 24,
    "label": null,
    "source": "acquisition_log",
    "status": "superseded",
    "uncertainty_frames": 11,
    "method": "last activation on DAQ channel 'ecg' (MAP) followed by an interval > 2x the arrhythmic interval; mapped to frames via camera triggers"
   },
   {
    "id": "d2476777-3e2a-4c5e-a20b-b858a7527678",
    "kind": "arrhythmia_termination",
    "frame": 3153,
    "label": null,
    "source": "acquisition_log",
    "status": "superseded",
    "uncertainty_frames": 11,
    "method": "last activation on DAQ channel 'ecg' (MAP) followed by an interval > 2x the arrhythmic interval; mapped to frames via camera triggers"
   },
   {
    "id": "e39f76de-baaa-42c1-be7a-6852665b65a2",
    "kind": "arrhythmia_termination",
    "frame": 3153,
    "label": null,
    "source": "acquisition_log",
    "status": "detected",
    "uncertainty_frames": 11,
    "method": "last activation on DAQ channel 'ecg' (MAP) followed by an interval > 2x the arrhythmic interval; mapped to frames via camera triggers"
   },
   {
    "id": "46c59a51-1a01-4aed-8021-db9a63720a1d",
    "kind": "baseline_step",
    "frame": 3170,
    "label": "spiral termination (interpreted; under illumination)",
    "source": "image",
    "status": "detected",
    "uncertainty_frames": 17,
    "method": "consensus upward step in running-median baseline of tissue-mean raw signal"
   },
   {
    "id": "42ba71e2-c2c4-4833-abc2-467506ec90a1",
    "kind": "illumination_on",
    "frame": 3170,
    "label": null,
    "source": "image",
    "status": "contradicted",
    "uncertainty_frames": 17,
    "method": "consensus upward step in running-median baseline of tissue-mean raw signal"
   },
   {
    "id": "db2ad5f3-9b96-4ec1-9ccd-9c82c3425609",
    "kind": "illumination_off",
    "frame": 4977,
    "label": null,
    "source": "acquisition_log",
    "status": "detected",
    "uncertainty_frames": 11,
    "method": "midpoint threshold on DAQ channel 'led_trigger', mapped to frames via camera triggers"
   }
  ]
 }
}