{
 "about": {
  "method": "binding-equilibrium",
  "origin": "Original synthetic binding data from known constants with recorded noise vectors (NumPy default_rng seeds named per case); no published dataset",
  "ruling": "CSO memo of 13 October 2026, binding rulings 1 to 9 (docs/board/memos/2026-10-13-cso-binding.md)",
  "models": {
   "saturation": "specific = Bmax L/(Kd + L), or the sum of two; NS subtracted by the mean at each concentration, or fitted as ns L (+ c)",
   "competition": "y = Bottom + (Top - Bottom)/(1 + (x/IC50)^nH), nH = 1 unless freed; two sites with F on the logit scale",
   "ki": "Cheng-Prusoff IC50/(1 + L/Kd); Munson-Rodbard IC50/(1 + L (y0 + 2)/(2 Kd (y0 + 1)) + y0) - Kd y0/(y0 + 2)"
  },
  "minimum": {
   "oneSite": 6,
   "twoSite": 10,
   "twoSiteDecades": 3,
   "twoSiteRatio": 10,
   "nsFitted": 3
  },
  "munsonRodbard": [
   {
    "receptor": 0.09761904761904762,
    "L": 1.0,
    "kd": 1.0,
    "trueKi": 0.5,
    "ic50": 1.0625145180023225,
    "y0": 0.05,
    "munsonRodbard": 0.4999999999999999,
    "chengPrusoff": 0.5312572590011613,
    "relativeError": 2.220446049250313e-16,
    "passes": true
   },
   {
    "receptor": 0.5307692307692308,
    "L": 1.0,
    "kd": 1.0,
    "trueKi": 0.5,
    "ic50": 1.377257525083613,
    "y0": 0.29999999999999993,
    "munsonRodbard": 0.5000000000000004,
    "chengPrusoff": 0.6886287625418065,
    "relativeError": 8.881784197001252e-16,
    "passes": true
   },
   {
    "receptor": 1.5,
    "L": 1.0,
    "kd": 1.0,
    "trueKi": 0.5,
    "ic50": 2.291666666666666,
    "y0": 1.0,
    "munsonRodbard": 0.49999999999999983,
    "chengPrusoff": 1.145833333333333,
    "relativeError": 3.3306690738754696e-16,
    "passes": true
   },
   {
    "case": "not-resolved",
    "inputs": {
     "ic50": 0.5,
     "L": 1.0,
     "kd": 1.0,
     "y0": 1.0
    },
    "munsonRodbard": {
     "status": "withheld",
     "reason": "not-resolved"
    }
   },
   {
    "case": "hand",
    "inputs": {
     "ic50": 10.0,
     "L": 1.0,
     "kd": 1.0,
     "y0": 1.0
    },
    "expected": 3.3030303030303028,
    "munsonRodbard": {
     "status": "computed",
     "ki": 3.3030303030303028
    }
   }
  ],
  "coverage": {
   "range": [
    93.5,
    96.5
   ],
   "runs": [
    {
     "quantity": "Kd",
     "design": "fitted",
     "seed": 20261023,
     "replicates": 2000,
     "resolved": 2000,
     "contained": 1891,
     "percent": 94.55,
     "passes": true
    },
    {
     "quantity": "Bmax",
     "design": "fitted",
     "seed": 20261023,
     "replicates": 2000,
     "resolved": 2000,
     "contained": 1879,
     "percent": 93.95,
     "passes": true
    },
    {
     "quantity": "Kd",
     "design": "subtracted",
     "seed": 20261024,
     "replicates": 2000,
     "resolved": 2000,
     "contained": 1793,
     "percent": 89.65,
     "passes": false
    },
    {
     "quantity": "Bmax",
     "design": "subtracted",
     "seed": 20261024,
     "replicates": 2000,
     "resolved": 2000,
     "contained": 1802,
     "percent": 90.1,
     "passes": false
    },
    {
     "quantity": "IC50",
     "design": "competition",
     "seed": 20261025,
     "replicates": 2000,
     "resolved": 2000,
     "contained": 1899,
     "percent": 94.95,
     "passes": true
    }
   ],
   "shown": [
    "fitted",
    "competition"
   ],
   "passes": true,
   "subtracted": "the subtracted route's intervals treat the NS mean as exact; they are computed here for the record and not given by the engine ('ns-subtracted')"
  },
  "tolerances": {
   "statuses, refusals, reasons, the parameters at the box, flags and counts": "exact",
   "constants": "within 1e-5 relative; hand values within 1e-9 relative",
   "rss": "within 1e-6 relative, or both at the readings' numeric resolution",
   "correlations": "within 1e-4 absolute",
   "interval bounds": "within 1e-3 in ln; side states exact",
   "aicc, dAicc": "within 1e-6 absolute",
   "F": "within 1e-5 relative",
   "p": "within 1e-4 relative or 1e-10 absolute",
   "Ki": "within 1e-9 relative of the same equation on the fixture's IC50 (hand cases 1e-9 of the true value)"
  },
  "recordedOn": "2026-10-13",
  "script": "pipeline/assay-analyser/oracles/binding.py",
  "scriptSha256": "b93bb8aa14acb1cfb33a32cd9a905821b1c8b619c79e9431cd333e9b417f246f",
  "helper": {
   "script": "pipeline/assay-analyser/oracles/stage_a_oracle.py",
   "sha256": "492d85ca2fa6750db80b1c64214fd4a0b13cd4c588267244f6262c504c73e3e8"
  },
  "environment": {
   "image": "ghcr.io/biotechmat/drybench/oracle-env:11b8a5e4456df7eb@sha256:7e69891ca1d9f24838660e0a9887bdb654ce7771d2f2ac7e7275e9b1eb3b6a09",
   "r": "R version 4.4.3 (2025-02-28)",
   "packages": {
    "jsonlite": "2.0.0",
    "drc": "4.0-0"
   },
   "python": "3.11.15",
   "numpy": "2.0.2",
   "scipy": "1.13.1",
   "recordedOn": "2026-10-13",
   "cpu": "AMD EPYC 7763 64-Core Processor",
   "cpuClass": "x86-64-v3",
   "simd": [
    "SSSE3",
    "SSE41",
    "POPCNT",
    "SSE42",
    "AVX",
    "F16C",
    "FMA3",
    "AVX2"
   ],
   "openblasCore": "Haswell",
   "threads": 1
  },
  "crossCheck": {
   "tool": "R stats::nls (port) and drc::drm LL.4 with b fixed at 1",
   "version": "R version 4.4.3 (2025-02-28)",
   "script": "pipeline/assay-analyser/oracles/r/binding_nls.R",
   "scriptSha256": "c4a97d2166792d6b9edd820a41bb55c8cc94ea926c59616c0ef898e4812c441e",
   "ran": true,
   "tolerances": {
    "parameters": "1e-5 relative"
   },
   "cases": 20,
   "agreeing": 20,
   "result": [
    {
     "case": "saturation-hand-subtracted/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 1000,
      "kd": 2
     },
     "relativeDifferences": {
      "bmax": 0.0,
      "kd": 2.2204460492503126e-16
     },
     "agrees": true
    },
    {
     "case": "saturation-hand-fitted/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 1000,
      "kd": 2,
      "ns": 30
     },
     "relativeDifferences": {
      "bmax": 1.1368683772161603e-16,
      "kd": 2.2204460492503126e-16,
      "ns": 0.0
     },
     "agrees": true
    },
    {
     "case": "saturation-noisy-fitted/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 1004.30730599092,
      "kd": 2.0694724309433,
      "ns": 30.1163077862254
     },
     "relativeDifferences": {
      "bmax": 7.456403163973132e-10,
      "kd": 2.4440626710179124e-09,
      "ns": 2.951886077284336e-11
     },
     "agrees": true
    },
    {
     "case": "saturation-noisy-subtracted/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 1005.76037144328,
      "kd": 2.14434683742136
     },
     "relativeDifferences": {
      "bmax": 3.2780355913166e-15,
      "kd": 1.2425859532614422e-15
     },
     "agrees": true
    },
    {
     "case": "saturation-metamorphic-pM/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 1004.30730524207,
      "kd": 2069.47242588538,
      "ns": 0.0301163077871144
     },
     "relativeDifferences": {
      "bmax": 2.0375865716677765e-15,
      "kd": 2.1974071516894469e-16,
      "ns": 1.1520160361218172e-16
     },
     "agrees": true
    },
    {
     "case": "saturation-metamorphic-counts/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 60258.4383541467,
      "kd": 2.06947243040127,
      "ns": 1806.97846714377
     },
     "relativeDifferences": {
      "bmax": 4.82983483337001e-16,
      "kd": 8.58362166755618e-16,
      "ns": 5.033234863116749e-16
     },
     "agrees": true
    },
    {
     "case": "saturation-metamorphic-row-order/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 1004.30730559656,
      "kd": 2.06947242849614,
      "ns": 30.1163077919273
     },
     "relativeDifferences": {
      "bmax": 1.560623778694323e-10,
      "kd": 6.079307137230662e-10,
      "ns": 8.996227043629655e-11
     },
     "agrees": true
    },
    {
     "case": "saturation-constant-freed/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 1000,
      "kd": 2,
      "ns": 30,
      "constant": 50
     },
     "relativeDifferences": {
      "bmax": 1.13686837721616e-16,
      "kd": 2.2204460492503126e-16,
      "ns": 1.1842378929335005e-16,
      "constant": 0.0
     },
     "agrees": true
    },
    {
     "case": "saturation-depletion-flag/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 0.5,
      "kd": 2
     },
     "relativeDifferences": {
      "bmax": 0.0,
      "kd": 2.2204460492503126e-16
     },
     "agrees": true
    },
    {
     "case": "saturation-extrapolated/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 1000,
      "kd": 20
     },
     "relativeDifferences": {
      "bmax": 1.1368683772161603e-16,
      "kd": 1.7763568394002508e-16
     },
     "agrees": true
    },
    {
     "case": "saturation-two-site-hand/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 934.646483704374,
      "kd": 12.4385130555343
     },
     "relativeDifferences": {
      "bmax": 2.1226826521631645e-09,
      "kd": 2.0012022103614193e-08
     },
     "agrees": true
    },
    {
     "case": "saturation-two-site-hand/twoSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax1": 300.000000000002,
      "kd1": 0.500000000000006,
      "bmax2": 700.000000000002,
      "kd2": 50.0000000000009
     },
     "relativeDifferences": {
      "bmax1": 1.3263464400855133e-15,
      "kd1": 2.442490654175321e-15,
      "bmax2": 1.6240976817373674e-16,
      "kd2": 0.0
     },
     "agrees": true
    },
    {
     "case": "saturation-two-site-on-one-site/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 996.460983505909,
      "kd": 2.0229615702561
     },
     "relativeDifferences": {
      "bmax": 4.563624250359499e-16,
      "kd": 4.3904858735783323e-16
     },
     "agrees": true
    },
    {
     "case": "saturation-two-site-narrow/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "bmax": 449.426922725695,
      "kd": 1.13158163717376
     },
     "relativeDifferences": {
      "bmax": 5.059191248807502e-16,
      "kd": 1.4901162555176367e-08
     },
     "agrees": true
    },
    {
     "case": "competition-hand/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "top": 1000,
      "bottom": 100,
      "ic50": 2
     },
     "relativeDifferences": {
      "top": 0.0,
      "bottom": 1.4210854715202006e-16,
      "ic50": 2.2204460492503126e-16
     },
     "agrees": true
    },
    {
     "case": "competition-noisy/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "top": 996.554212996192,
      "bottom": 102.738255575619,
      "ic50": 2.06291634382241
     },
     "relativeDifferences": {
      "top": 3.4223979861510203e-16,
      "bottom": 3.043061243183478e-15,
      "ic50": 1.0763626241556728e-15
     },
     "agrees": true
    },
    {
     "case": "competition-bottom-ns/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "top": 1000,
      "ic50": 2
     },
     "relativeDifferences": {
      "top": 0.0,
      "ic50": 2.2204460492503126e-16
     },
     "agrees": true
    },
    {
     "case": "competition-hill-free/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "top": 1000,
      "bottom": 100,
      "ic50": 2,
      "hill": 1.5
     },
     "relativeDifferences": {
      "top": 0.0,
      "bottom": 1.4210854715202006e-16,
      "ic50": 2.2204460492503126e-16,
      "hill": 1.480297366166875e-16
     },
     "agrees": true
    },
    {
     "case": "competition-two-site/oneSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "top": 907.413178878585,
      "bottom": 99.8474229578234,
      "ic50": 6.96437788265051
     },
     "relativeDifferences": {
      "top": 5.01146954299758e-16,
      "bottom": 2.846514070013569e-16,
      "ic50": 1.4901160900300992e-08
     },
     "agrees": true
    },
    {
     "case": "competition-two-site/twoSite",
     "converged": true,
     "tool": "nls",
     "parameters": {
      "top": 1000,
      "bottom": 50,
      "ic50High": 0.05,
      "ic50Low": 20,
      "fraction": 0.3
     },
     "relativeDifferences": {
      "top": 0.0,
      "bottom": 2.8421709430404e-16,
      "ic50High": 9.71445146547013e-16,
      "ic50Low": 3.552713678800502e-16,
      "fraction": 0.0
     },
     "agrees": true
    }
   ]
  }
 },
 "oracle": {
  "engine": "scipy.optimize.least_squares",
  "method": "trf with bounds, log constants, three starts per model, lowest RSS; profiles by least_squares refits and brentq; AICc and F by hand, p from scipy.stats.f.sf; the mass balance by brentq"
 },
 "cases": [
  {
   "name": "saturation-hand-subtracted",
   "about": "One site, Kd 2 nM, Bmax 1000 cpm, NS 30 cpm/nM, 8 concentrations, NS subtracted: the hand values exactly",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 50.61904761904762
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 3.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 118.61111111111111
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 7.5
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 215.0
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 15.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 363.3333333333333
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 30.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 560.0
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 60.0
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 786.6666666666666
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 120.0
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1040.0
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 240.0
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1368.888888888889
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 480.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 1000.0,
     "kd": 2.0000000000000004,
     "rss": 1.2820511432266637e-26,
     "df": 6,
     "order": [
      "bmax",
      "kd"
     ],
     "correlation": [
      [
       1.0,
       0.8306655869786923
      ],
      [
       0.8306655869786924,
       1.0
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "extrapolated": false,
     "depletion": null,
     "n": 8,
     "concentrations": 8
    }
   },
   "hand": {
    "kd": 2.0,
    "bmax": 1000.0
   }
  },
  {
   "name": "saturation-hand-fitted",
   "about": "The same rows with NS fitted as a line: Kd, Bmax and the NS slope exactly",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 50.61904761904762
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 3.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 118.61111111111111
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 7.5
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 215.0
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 15.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 363.3333333333333
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 30.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 560.0
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 60.0
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 786.6666666666666
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 120.0
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1040.0
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 240.0
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1368.888888888889
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 480.0
    }
   ],
   "options": {
    "route": "fitted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 999.9999999999999,
     "kd": 2.0000000000000004,
     "rss": 1.5157803428378243e-26,
     "df": 13,
     "order": [
      "bmax",
      "kd",
      "ns"
     ],
     "correlation": [
      [
       1.0000000000000002,
       0.8307769184727913,
       -0.626349531820358
      ],
      [
       0.8307769184727913,
       1.0,
       -0.36311291064606255
      ],
      [
       -0.6263495318203579,
       -0.3631129106460624,
       1.0
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "zero-residual"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "zero-residual"
     },
     "extrapolated": false,
     "depletion": null,
     "n": 16,
     "concentrations": 8,
     "ns": 30.0
    }
   },
   "hand": {
    "kd": 2.0,
    "bmax": 1000.0,
    "ns": 30.0
   }
  },
  {
   "name": "saturation-noisy-fitted",
   "about": "Triplicates with additive noise SD 15 cpm (seed 20261020), NS fitted",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 21.875432840302704
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 1.0603795847296869
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 19.069214006518777
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 25.900800178559596
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 71.47968859349517
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": -3.4155209319905184
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 126.75252016685745
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 2.1416621597458416
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 144.2436842831956
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": -11.527613878135224
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 87.5587827680137
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 5.39163938289329
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 209.6710661526115
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 17.640855956741472
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 220.90272827592705
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 29.28929271176601
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 217.43060299854983
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 9.451700602791416
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 370.4932154902849
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 43.63703931159188
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 331.1954905580183
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 4.526278051344711
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 352.50879954803827
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 32.47967500067237
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 563.9730014376665
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 54.888130515761304
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 560.6538203872415
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 84.955568643618
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 544.7559479622818
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 51.810450696629864
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 778.8660905098911
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 144.96217910515418
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 778.9389001714156
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 139.18808473574805
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 774.4086812874657
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 169.90196743714515
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1054.8277183945033
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 228.02761846956733
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1040.8560464000875
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 267.2042650860797
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1050.0424416602102
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 252.7223492632319
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1373.6423316696664
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 473.88118307871423
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1377.2635085878762
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 471.510765209818
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1346.2900773662639
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 468.63243517317164
    }
   ],
   "options": {
    "route": "fitted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 1004.307305242068,
     "kd": 2.0694724258853796,
     "rss": 13783.693927309672,
     "df": 45,
     "order": [
      "bmax",
      "kd",
      "ns"
     ],
     "correlation": [
      [
       0.9999999999999999,
       0.8329993517857832,
       -0.62502162191959
      ],
      [
       0.8329993517857832,
       0.9999999999999998,
       -0.36157156658411743
      ],
      [
       -0.62502162191959,
       -0.3615715665841174,
       1.0
      ]
     ],
     "kdInterval": {
      "status": "computed",
      "level": 0.95,
      "df": 45,
      "low": {
       "status": "crossing",
       "value": 1.9074859581528316
      },
      "high": {
       "status": "crossing",
       "value": 2.2442977715229273
      }
     },
     "bmaxInterval": {
      "status": "computed",
      "level": 0.95,
      "df": 45,
      "low": {
       "status": "crossing",
       "value": 973.3584184977972
      },
      "high": {
       "status": "crossing",
       "value": 1036.3145946287923
      }
     },
     "extrapolated": false,
     "depletion": null,
     "n": 48,
     "concentrations": 8,
     "ns": 30.116307787114398
    }
   }
  },
  {
   "name": "saturation-noisy-subtracted",
   "about": "The same triplicates, NS subtracted (the NS mean treated as exact)",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 21.875432840302704
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 1.0603795847296869
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 19.069214006518777
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 25.900800178559596
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 71.47968859349517
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": -3.4155209319905184
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 126.75252016685745
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 2.1416621597458416
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 144.2436842831956
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": -11.527613878135224
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 87.5587827680137
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 5.39163938289329
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 209.6710661526115
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 17.640855956741472
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 220.90272827592705
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 29.28929271176601
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 217.43060299854983
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 9.451700602791416
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 370.4932154902849
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 43.63703931159188
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 331.1954905580183
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 4.526278051344711
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 352.50879954803827
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 32.47967500067237
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 563.9730014376665
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 54.888130515761304
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 560.6538203872415
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 84.955568643618
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 544.7559479622818
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 51.810450696629864
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 778.8660905098911
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 144.96217910515418
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 778.9389001714156
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 139.18808473574805
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 774.4086812874657
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 169.90196743714515
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1054.8277183945033
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 228.02761846956733
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1040.8560464000875
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 267.2042650860797
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1050.0424416602102
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 252.7223492632319
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1373.6423316696664
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 473.88118307871423
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1377.2635085878762
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 471.510765209818
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1346.2900773662639
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 468.63243517317164
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 1005.7603714432767,
     "kd": 2.1443468374213572,
     "rss": 9727.553805991723,
     "df": 22,
     "order": [
      "bmax",
      "kd"
     ],
     "correlation": [
      [
       1.0,
       0.8375444816313704
      ],
      [
       0.8375444816313704,
       1.0
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "extrapolated": false,
     "depletion": null,
     "n": 24,
     "concentrations": 8
    }
   }
  },
  {
   "name": "saturation-metamorphic-pM",
   "about": "The noisy rows in pM (every x times 1e3), NS fitted: Kd times 1e3, the NS slope divided by 1e3, Bmax unchanged",
   "analysis": "saturation",
   "rows": [
    {
     "x": 100.0,
     "kind": "total",
     "y": 21.875432840302704
    },
    {
     "x": 100.0,
     "kind": "ns",
     "y": 1.0603795847296869
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 19.069214006518777
    },
    {
     "x": 100.0,
     "kind": "ns",
     "y": 25.900800178559596
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 71.47968859349517
    },
    {
     "x": 100.0,
     "kind": "ns",
     "y": -3.4155209319905184
    },
    {
     "x": 250.0,
     "kind": "total",
     "y": 126.75252016685745
    },
    {
     "x": 250.0,
     "kind": "ns",
     "y": 2.1416621597458416
    },
    {
     "x": 250.0,
     "kind": "total",
     "y": 144.2436842831956
    },
    {
     "x": 250.0,
     "kind": "ns",
     "y": -11.527613878135224
    },
    {
     "x": 250.0,
     "kind": "total",
     "y": 87.5587827680137
    },
    {
     "x": 250.0,
     "kind": "ns",
     "y": 5.39163938289329
    },
    {
     "x": 500.0,
     "kind": "total",
     "y": 209.6710661526115
    },
    {
     "x": 500.0,
     "kind": "ns",
     "y": 17.640855956741472
    },
    {
     "x": 500.0,
     "kind": "total",
     "y": 220.90272827592705
    },
    {
     "x": 500.0,
     "kind": "ns",
     "y": 29.28929271176601
    },
    {
     "x": 500.0,
     "kind": "total",
     "y": 217.43060299854983
    },
    {
     "x": 500.0,
     "kind": "ns",
     "y": 9.451700602791416
    },
    {
     "x": 1000.0,
     "kind": "total",
     "y": 370.4932154902849
    },
    {
     "x": 1000.0,
     "kind": "ns",
     "y": 43.63703931159188
    },
    {
     "x": 1000.0,
     "kind": "total",
     "y": 331.1954905580183
    },
    {
     "x": 1000.0,
     "kind": "ns",
     "y": 4.526278051344711
    },
    {
     "x": 1000.0,
     "kind": "total",
     "y": 352.50879954803827
    },
    {
     "x": 1000.0,
     "kind": "ns",
     "y": 32.47967500067237
    },
    {
     "x": 2000.0,
     "kind": "total",
     "y": 563.9730014376665
    },
    {
     "x": 2000.0,
     "kind": "ns",
     "y": 54.888130515761304
    },
    {
     "x": 2000.0,
     "kind": "total",
     "y": 560.6538203872415
    },
    {
     "x": 2000.0,
     "kind": "ns",
     "y": 84.955568643618
    },
    {
     "x": 2000.0,
     "kind": "total",
     "y": 544.7559479622818
    },
    {
     "x": 2000.0,
     "kind": "ns",
     "y": 51.810450696629864
    },
    {
     "x": 4000.0,
     "kind": "total",
     "y": 778.8660905098911
    },
    {
     "x": 4000.0,
     "kind": "ns",
     "y": 144.96217910515418
    },
    {
     "x": 4000.0,
     "kind": "total",
     "y": 778.9389001714156
    },
    {
     "x": 4000.0,
     "kind": "ns",
     "y": 139.18808473574805
    },
    {
     "x": 4000.0,
     "kind": "total",
     "y": 774.4086812874657
    },
    {
     "x": 4000.0,
     "kind": "ns",
     "y": 169.90196743714515
    },
    {
     "x": 8000.0,
     "kind": "total",
     "y": 1054.8277183945033
    },
    {
     "x": 8000.0,
     "kind": "ns",
     "y": 228.02761846956733
    },
    {
     "x": 8000.0,
     "kind": "total",
     "y": 1040.8560464000875
    },
    {
     "x": 8000.0,
     "kind": "ns",
     "y": 267.2042650860797
    },
    {
     "x": 8000.0,
     "kind": "total",
     "y": 1050.0424416602102
    },
    {
     "x": 8000.0,
     "kind": "ns",
     "y": 252.7223492632319
    },
    {
     "x": 16000.0,
     "kind": "total",
     "y": 1373.6423316696664
    },
    {
     "x": 16000.0,
     "kind": "ns",
     "y": 473.88118307871423
    },
    {
     "x": 16000.0,
     "kind": "total",
     "y": 1377.2635085878762
    },
    {
     "x": 16000.0,
     "kind": "ns",
     "y": 471.510765209818
    },
    {
     "x": 16000.0,
     "kind": "total",
     "y": 1346.2900773662639
    },
    {
     "x": 16000.0,
     "kind": "ns",
     "y": 468.63243517317164
    }
   ],
   "options": {
    "route": "fitted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "pM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 1004.307305242068,
     "kd": 2069.4724258853794,
     "rss": 13783.693927309672,
     "df": 45,
     "order": [
      "bmax",
      "kd",
      "ns"
     ],
     "correlation": [
      [
       0.9999999999999999,
       0.8329993517857832,
       -0.62502162191959
      ],
      [
       0.8329993517857832,
       0.9999999999999998,
       -0.36157156658411743
      ],
      [
       -0.62502162191959,
       -0.3615715665841174,
       1.0
      ]
     ],
     "kdInterval": {
      "status": "computed",
      "level": 0.95,
      "df": 45,
      "low": {
       "status": "crossing",
       "value": 1907.4859581528317
      },
      "high": {
       "status": "crossing",
       "value": 2244.297771522927
      }
     },
     "bmaxInterval": {
      "status": "computed",
      "level": 0.95,
      "df": 45,
      "low": {
       "status": "crossing",
       "value": 973.3584184977972
      },
      "high": {
       "status": "crossing",
       "value": 1036.3145946287923
      }
     },
     "extrapolated": false,
     "depletion": null,
     "n": 48,
     "concentrations": 8,
     "ns": 0.030116307787114396
    }
   }
  },
  {
   "name": "saturation-metamorphic-counts",
   "about": "The noisy rows times 60 (counts per hour), NS fitted: Bmax and the NS slope times 60, Kd unchanged",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 1312.5259704181622
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 63.622775083781214
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 1144.1528403911266
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 1554.0480107135756
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 4288.78131560971
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": -204.9312559194311
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 7605.151210011447
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 128.4997295847505
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 8654.621056991735
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": -691.6568326881135
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 5253.526966080822
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 323.4983629735974
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 12580.263969156691
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 1058.4513574044884
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 13254.163696555623
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 1757.3575627059606
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 13045.836179912989
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 567.1020361674849
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 22229.592929417093
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 2618.2223586955124
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 19871.729433481098
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 271.57668308068264
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 21150.527972882297
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 1948.7805000403423
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 33838.38008625999
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 3293.2878309456783
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 33639.22922323449
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 5097.33411861708
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 32685.356877736907
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 3108.6270417977917
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 46731.96543059347
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 8697.730746309251
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 46736.33401028494
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 8351.285084144884
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 46464.52087724794
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 10194.118046228708
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 63289.6631036702
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 13681.65710817404
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 62451.36278400525
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 16032.255905164782
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 63002.54649961261
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 15163.340955793914
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 82418.53990017998
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 28432.870984722853
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 82635.81051527258
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 28290.64591258908
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 80777.40464197584
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 28117.946110390298
    }
   ],
   "options": {
    "route": "fitted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cph",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 60258.438354146674,
     "kd": 2.0694724304012717,
     "rss": 49621298.13831478,
     "df": 45,
     "order": [
      "bmax",
      "kd",
      "ns"
     ],
     "correlation": [
      [
       1.0000000000000002,
       0.8329993519197563,
       -0.6250216218497908
      ],
      [
       0.8329993519197564,
       1.0,
       -0.3615715665038854
      ],
      [
       -0.6250216218497908,
       -0.3615715665038854,
       1.0000000000000002
      ]
     ],
     "kdInterval": {
      "status": "computed",
      "level": 0.95,
      "df": 45,
      "low": {
       "status": "crossing",
       "value": 1.9074859581528316
      },
      "high": {
       "status": "crossing",
       "value": 2.2442977715229264
      }
     },
     "bmaxInterval": {
      "status": "computed",
      "level": 0.95,
      "df": 45,
      "low": {
       "status": "crossing",
       "value": 58401.50510986784
      },
      "high": {
       "status": "crossing",
       "value": 62178.875677727556
      }
     },
     "extrapolated": false,
     "depletion": null,
     "n": 48,
     "concentrations": 8,
     "ns": 1806.9784671437692
    }
   }
  },
  {
   "name": "saturation-metamorphic-row-order",
   "about": "The noisy rows permuted (seed 20261020): everything unchanged",
   "analysis": "saturation",
   "rows": [
    {
     "x": 2.0,
     "kind": "ns",
     "y": 84.955568643618
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 51.810450696629864
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1040.8560464000875
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 217.43060299854983
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 43.63703931159188
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1346.2900773662639
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 220.90272827592705
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 252.7223492632319
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": -3.4155209319905184
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 331.1954905580183
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 468.63243517317164
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 774.4086812874657
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": -11.527613878135224
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1050.0424416602102
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 471.510765209818
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 370.4932154902849
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 4.526278051344711
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 17.640855956741472
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 778.9389001714156
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 473.88118307871423
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 9.451700602791416
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 87.5587827680137
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 32.47967500067237
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 563.9730014376665
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 169.90196743714515
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 21.875432840302704
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 139.18808473574805
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 144.2436842831956
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 778.8660905098911
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 29.28929271176601
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 352.50879954803827
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 19.069214006518777
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 71.47968859349517
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 560.6538203872415
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 209.6710661526115
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 2.1416621597458416
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 544.7559479622818
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1373.6423316696664
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 1.0603795847296869
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 54.888130515761304
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 126.75252016685745
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 267.2042650860797
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 25.900800178559596
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1054.8277183945033
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 144.96217910515418
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1377.2635085878762
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 228.02761846956733
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 5.39163938289329
    }
   ],
   "options": {
    "route": "fitted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 1004.3073054398254,
     "kd": 2.0694724272380443,
     "rss": 13783.693927309672,
     "df": 45,
     "order": [
      "bmax",
      "kd",
      "ns"
     ],
     "correlation": [
      [
       0.9999999999999999,
       0.8329993518630594,
       -0.6250216219213124
      ],
      [
       0.8329993518630592,
       0.9999999999999998,
       -0.36157156660865136
      ],
      [
       -0.6250216219213124,
       -0.36157156660865136,
       0.9999999999999999
      ]
     ],
     "kdInterval": {
      "status": "computed",
      "level": 0.95,
      "df": 45,
      "low": {
       "status": "crossing",
       "value": 1.9074859581528298
      },
      "high": {
       "status": "crossing",
       "value": 2.244297771522925
      }
     },
     "bmaxInterval": {
      "status": "computed",
      "level": 0.95,
      "df": 45,
      "low": {
       "status": "crossing",
       "value": 973.3584184977972
      },
      "high": {
       "status": "crossing",
       "value": 1036.3145946287923
      }
     },
     "extrapolated": false,
     "depletion": null,
     "n": 48,
     "concentrations": 8,
     "ns": 30.11630778921797
    }
   }
  },
  {
   "name": "saturation-constant-freed",
   "about": "Hand rows with a constant background of 50 cpm on total and NS, the constant freed",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 100.61904761904762
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 53.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 168.61111111111111
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 57.5
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 265.0
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 65.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 413.3333333333333
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 80.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 610.0
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 110.0
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 836.6666666666666
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 170.0
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1090.0
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 290.0
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1418.888888888889
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 530.0
    }
   ],
   "options": {
    "route": "fitted",
    "freeConstant": true,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 1000.0000000000001,
     "kd": 2.0000000000000004,
     "rss": 3.402392296637374e-26,
     "df": 12,
     "order": [
      "bmax",
      "kd",
      "ns",
      "constant"
     ],
     "correlation": [
      [
       1.0,
       0.831258758361001,
       -0.6735288164214682,
       0.33419516056750803
      ],
      [
       0.831258758361001,
       1.0,
       -0.5828109535831721,
       0.5819034563344884
      ],
      [
       -0.6735288164214678,
       -0.582810953583172,
       1.0000000000000002,
       -0.5928966893709847
      ],
      [
       0.33419516056750753,
       0.581903456334488,
       -0.5928966893709845,
       1.0000000000000002
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "zero-residual"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "zero-residual"
     },
     "extrapolated": false,
     "depletion": null,
     "n": 16,
     "concentrations": 8,
     "ns": 29.999999999999996,
     "constant": 50.0
    }
   },
   "hand": {
    "kd": 2.0,
    "bmax": 1000.0,
    "ns": 30.0,
    "constant": 50.0
   }
  },
  {
   "name": "saturation-depletion-flag",
   "about": "One site in molar units: bound 0.5 L/(2 + L) nM against L nM, NS 0: the depletion flag fires",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 0.023809523809523808
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 0.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 0.05555555555555555
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 0.0
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 0.1
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 0.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 0.16666666666666666
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 0.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 0.25
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 0.0
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 0.3333333333333333
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 0.0
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 0.4
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 0.0
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 0.4444444444444444
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 0.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": 1.0,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "nM",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 0.5,
     "kd": 2.0000000000000004,
     "rss": 4.574678040742027e-33,
     "df": 6,
     "order": [
      "bmax",
      "kd"
     ],
     "correlation": [
      [
       1.0,
       0.8306655869786923
      ],
      [
       0.8306655869786924,
       1.0
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "extrapolated": false,
     "depletion": true,
     "n": 8,
     "concentrations": 8
    }
   }
  },
  {
   "name": "saturation-extrapolated",
   "about": "One site, Kd 20 nM, highest L 1.8 nM: the extrapolation flag fires",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.05,
     "kind": "total",
     "y": 3.993765586034913
    },
    {
     "x": 0.05,
     "kind": "ns",
     "y": 1.5
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 7.975124378109452
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 3.0
    },
    {
     "x": 0.2,
     "kind": "total",
     "y": 15.900990099009901
    },
    {
     "x": 0.2,
     "kind": "ns",
     "y": 6.0
    },
    {
     "x": 0.4,
     "kind": "total",
     "y": 31.607843137254903
    },
    {
     "x": 0.4,
     "kind": "ns",
     "y": 12.0
    },
    {
     "x": 0.8,
     "kind": "total",
     "y": 62.46153846153846
    },
    {
     "x": 0.8,
     "kind": "ns",
     "y": 24.0
    },
    {
     "x": 1.2,
     "kind": "total",
     "y": 92.60377358490567
    },
    {
     "x": 1.2,
     "kind": "ns",
     "y": 36.0
    },
    {
     "x": 1.5,
     "kind": "total",
     "y": 114.76744186046511
    },
    {
     "x": 1.5,
     "kind": "ns",
     "y": 45.0
    },
    {
     "x": 1.8,
     "kind": "total",
     "y": 136.56880733944953
    },
    {
     "x": 1.8,
     "kind": "ns",
     "y": 54.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 999.9999999999999,
     "kd": 19.999999999999996,
     "rss": 4.490540469608215e-28,
     "df": 6,
     "order": [
      "bmax",
      "kd"
     ],
     "correlation": [
      [
       0.9999999999999998,
       0.9998457110581402
      ],
      [
       0.9998457110581402,
       1.0000000000000002
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "extrapolated": true,
     "depletion": null,
     "n": 8,
     "concentrations": 8
    }
   }
  },
  {
   "name": "saturation-two-site-hand",
   "about": "Two sites, Kd 0.5 and 50 nM, Bmax 300 and 700, 12 concentrations over 5.5 decades, NS subtracted: the hand values exactly",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.01,
     "kind": "total",
     "y": 6.322324946775351
    },
    {
     "x": 0.01,
     "kind": "ns",
     "y": 0.3
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 18.300880226581032
    },
    {
     "x": 0.03,
     "kind": "ns",
     "y": 0.8999999999999999
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 54.39720558882235
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 3.0
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 125.67495029821073
    },
    {
     "x": 0.3,
     "kind": "ns",
     "y": 9.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 243.72549019607843
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 30.0
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 386.7654986522911
    },
    {
     "x": 3.0,
     "kind": "ns",
     "y": 90.0
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 702.3809523809524
    },
    {
     "x": 10.0,
     "kind": "ns",
     "y": 300.0
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 1457.5819672131147
    },
    {
     "x": 30.0,
     "kind": "ns",
     "y": 900.0
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 3765.174129353234
    },
    {
     "x": 100.0,
     "kind": "ns",
     "y": 3000.0
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 9899.500831946756
    },
    {
     "x": 300.0,
     "kind": "ns",
     "y": 9000.0
    },
    {
     "x": 1000.0,
     "kind": "total",
     "y": 30966.516741629184
    },
    {
     "x": 1000.0,
     "kind": "ns",
     "y": 30000.0
    },
    {
     "x": 3000.0,
     "kind": "total",
     "y": 90988.47459849589
    },
    {
     "x": 3000.0,
     "kind": "ns",
     "y": 90000.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 2
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 934.6464817204161,
     "kd": 12.438512806614506,
     "rss": 65607.45129272823,
     "df": 10,
     "order": [
      "bmax",
      "kd"
     ],
     "correlation": [
      [
       1.0000000000000002,
       0.5405073669288474
      ],
      [
       0.5405073669288474,
       1.0
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "extrapolated": false,
     "depletion": null,
     "n": 12,
     "concentrations": 12
    },
    "twoSite": {
     "status": "estimated",
     "bmax1": 300.0000000000016,
     "kd1": 0.5000000000000048,
     "bmax2": 700.0000000000019,
     "kd2": 50.0000000000009,
     "rss": 3.215285558143414e-23,
     "df": 8,
     "comparison": {
      "status": "not-available",
      "reason": "zero-residual"
     },
     "n": 12,
     "concentrations": 12
    }
   },
   "hand": {
    "kd1": 0.5,
    "kd2": 50.0,
    "bmax1": 300.0,
    "bmax2": 700.0
   }
  },
  {
   "name": "saturation-two-site-on-one-site",
   "about": "One-site rows (Kd 2, Bmax 1000) in duplicate at 12 concentrations with noise SD 10 (seed 20261022): the two-site fit is withheld or bound",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.01,
     "kind": "total",
     "y": 3.0423240514285737
    },
    {
     "x": 0.01,
     "kind": "ns",
     "y": -0.0210875738847211
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": -0.19233961934248
    },
    {
     "x": 0.01,
     "kind": "ns",
     "y": -1.6194130393944468
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 18.69964776149925
    },
    {
     "x": 0.03,
     "kind": "ns",
     "y": 4.647329966617333
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 26.56671633257989
    },
    {
     "x": 0.03,
     "kind": "ns",
     "y": -10.832035470647536
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 53.848528480357245
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 16.183111975830027
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 45.0991574535046
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": -5.2286984264340575
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 135.1638733723073
    },
    {
     "x": 0.3,
     "kind": "ns",
     "y": 3.6833586589242904
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 148.91919805200087
    },
    {
     "x": 0.3,
     "kind": "ns",
     "y": 9.277831702610518
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 366.5662992118711
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 32.381230051048966
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 376.9250658962793
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 30.805829512197572
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 688.9450746485799
    },
    {
     "x": 3.0,
     "kind": "ns",
     "y": 124.3913840423217
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 692.2980686849911
    },
    {
     "x": 3.0,
     "kind": "ns",
     "y": 101.73540988146878
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 1125.8597113299465
    },
    {
     "x": 10.0,
     "kind": "ns",
     "y": 290.4423631750668
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 1145.360096643401
    },
    {
     "x": 10.0,
     "kind": "ns",
     "y": 306.3141199768101
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 1848.596540619618
    },
    {
     "x": 30.0,
     "kind": "ns",
     "y": 893.73959815723
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 1834.849782957947
    },
    {
     "x": 30.0,
     "kind": "ns",
     "y": 913.2116495289744
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 3960.7881497449894
    },
    {
     "x": 100.0,
     "kind": "ns",
     "y": 3011.777953499166
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 3960.70063598306
    },
    {
     "x": 100.0,
     "kind": "ns",
     "y": 2998.6019679269284
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 9989.923498526423
    },
    {
     "x": 300.0,
     "kind": "ns",
     "y": 8993.663745187769
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 10001.58168017908
    },
    {
     "x": 300.0,
     "kind": "ns",
     "y": 9002.689909604946
    },
    {
     "x": 1000.0,
     "kind": "total",
     "y": 30986.98343201483
    },
    {
     "x": 1000.0,
     "kind": "ns",
     "y": 30005.922680918775
    },
    {
     "x": 1000.0,
     "kind": "total",
     "y": 30998.684158750693
    },
    {
     "x": 1000.0,
     "kind": "ns",
     "y": 29982.326711532096
    },
    {
     "x": 3000.0,
     "kind": "total",
     "y": 91003.28223852637
    },
    {
     "x": 3000.0,
     "kind": "ns",
     "y": 89990.6479058696
    },
    {
     "x": 3000.0,
     "kind": "total",
     "y": 91002.43942319827
    },
    {
     "x": 3000.0,
     "kind": "ns",
     "y": 90016.66299150426
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 2
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 996.4609835059085,
     "kd": 2.022961570256101,
     "rss": 3127.3098209025975,
     "df": 22,
     "order": [
      "bmax",
      "kd"
     ],
     "correlation": [
      [
       0.9999999999999999,
       0.46493416233559837
      ],
      [
       0.46493416233559837,
       1.0000000000000002
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "extrapolated": false,
     "depletion": null,
     "n": 24,
     "concentrations": 12
    },
    "twoSite": {
     "status": "withheld",
     "reason": "not-separated",
     "n": 24,
     "concentrations": 12
    }
   }
  },
  {
   "name": "saturation-two-site-narrow",
   "about": "Two-site rows at 8 concentrations: the two-site fit withheld (concentrations)",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 54.39720558882235
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 3.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 110.98258706467662
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 7.5
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 171.93069306930693
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 15.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 243.72549019607843
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 30.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 326.9230769230769
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 60.0
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 438.51851851851853
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 120.0
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 618.9046653144017
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 240.0
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 940.6060606060606
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 480.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 2
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "bmax": 449.4269227256948,
     "kd": 1.1315816203118783,
     "rss": 4395.791869717708,
     "df": 6,
     "order": [
      "bmax",
      "kd"
     ],
     "correlation": [
      [
       1.0000000000000002,
       0.7748735363836475
      ],
      [
       0.7748735363836475,
       1.0
      ]
     ],
     "kdInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "bmaxInterval": {
      "status": "not-available",
      "reason": "ns-subtracted"
     },
     "extrapolated": false,
     "depletion": null,
     "n": 8,
     "concentrations": 8
    },
    "twoSite": {
     "status": "withheld",
     "reason": "concentrations",
     "n": 8,
     "concentrations": 8
    }
   }
  },
  {
   "name": "refused-ns-missing",
   "about": "NS missing at 4 nM, NS subtracted",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 50.61904761904762
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 3.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 118.61111111111111
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 7.5
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 215.0
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 15.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 363.3333333333333
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 30.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 560.0
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 60.0
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 786.6666666666666
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1040.0
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 240.0
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1368.888888888889
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 480.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "refused",
     "reason": "ns-missing"
    }
   }
  },
  {
   "name": "refused-ns-exceeds",
   "about": "NS at twice the total at every concentration",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 3.0
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 6.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 7.5
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 15.0
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 15.0
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 30.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 30.0
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 60.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 60.0
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 120.0
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 120.0
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 240.0
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 240.0
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 480.0
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 480.0
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 960.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "refused",
     "reason": "ns-exceeds-total"
    }
   }
  },
  {
   "name": "refused-five-concentrations",
   "about": "Five concentrations",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.1,
     "kind": "total",
     "y": 50.61904761904762
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 3.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 118.61111111111111
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 7.5
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 215.0
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 15.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 363.3333333333333
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 30.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 560.0
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 60.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "refused",
     "reason": "concentrations"
    }
   }
  },
  {
   "name": "refused-zero-concentration",
   "about": "A radioligand concentration of zero",
   "analysis": "saturation",
   "rows": [
    {
     "x": 0.0,
     "kind": "total",
     "y": 1.0
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 50.61904761904762
    },
    {
     "x": 0.1,
     "kind": "ns",
     "y": 3.0
    },
    {
     "x": 0.25,
     "kind": "total",
     "y": 118.61111111111111
    },
    {
     "x": 0.25,
     "kind": "ns",
     "y": 7.5
    },
    {
     "x": 0.5,
     "kind": "total",
     "y": 215.0
    },
    {
     "x": 0.5,
     "kind": "ns",
     "y": 15.0
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 363.3333333333333
    },
    {
     "x": 1.0,
     "kind": "ns",
     "y": 30.0
    },
    {
     "x": 2.0,
     "kind": "total",
     "y": 560.0
    },
    {
     "x": 2.0,
     "kind": "ns",
     "y": 60.0
    },
    {
     "x": 4.0,
     "kind": "total",
     "y": 786.6666666666666
    },
    {
     "x": 4.0,
     "kind": "ns",
     "y": 120.0
    },
    {
     "x": 8.0,
     "kind": "total",
     "y": 1040.0
    },
    {
     "x": 8.0,
     "kind": "ns",
     "y": 240.0
    },
    {
     "x": 16.0,
     "kind": "total",
     "y": 1368.888888888889
    },
    {
     "x": 16.0,
     "kind": "ns",
     "y": 480.0
    }
   ],
   "options": {
    "route": "subtracted",
    "freeConstant": false,
    "boundToConcentration": null,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "refused",
     "reason": "invalid"
    }
   }
  },
  {
   "name": "competition-hand",
   "about": "One site, Top 1000, Bottom 100, IC50 2 nM, 11 concentrations with a zero: the hand values; Ki by Cheng-Prusoff (L 1 nM, Kd 0.5 nM) and Munson-Rodbard at y0 = 0",
   "analysis": "competition",
   "rows": [
    {
     "x": 0.0,
     "kind": "total",
     "y": 1000.0
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 995.5223880597016
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 986.6995073891626
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 957.1428571428571
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 882.608695652174
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 700.0
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 460.0
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 250.0
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 156.25
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 117.64705882352942
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 105.96026490066225
    }
   ],
   "options": {
    "bottom": "free",
    "hillFree": false,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "top": 1000.0,
     "bottom": 99.99999999999999,
     "bottomFixed": null,
     "ic50": 2.0000000000000004,
     "hill": null,
     "rss": 1.2711137632955757e-26,
     "df": 8,
     "order": [
      "top",
      "bottom",
      "ic50"
     ],
     "correlation": [
      [
       1.0000000000000002,
       0.127555132946369,
       -0.47936404771128044
      ],
      [
       0.127555132946369,
       1.0,
       -0.5529219399635698
      ],
      [
       -0.47936404771128055,
       -0.5529219399635698,
       1.0
      ]
     ],
     "ic50Interval": {
      "status": "not-available",
      "reason": "zero-residual"
     },
     "n": 11,
     "concentrations": 10
    }
   },
   "ki": {
    "inputs": {
     "L": 1.0,
     "kd": 0.5,
     "y0": 0.0
    },
    "chengPrusoff": 0.6666666666666669,
    "munsonRodbard": {
     "status": "computed",
     "ki": 0.6666666666666669
    }
   },
   "hand": {
    "ic50": 2.0,
    "top": 1000.0,
    "bottom": 100.0
   }
  },
  {
   "name": "competition-noisy",
   "about": "Triplicates with noise SD 20 (seed 20261021); Ki by both equations at y0 = 0.3",
   "analysis": "competition",
   "rows": [
    {
     "x": 0.0,
     "kind": "total",
     "y": 965.6722861717042
    },
    {
     "x": 0.0,
     "kind": "total",
     "y": 994.7248508921073
    },
    {
     "x": 0.0,
     "kind": "total",
     "y": 985.2256893055481
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 995.2881906960755
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 999.5847036843084
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 981.0570000639511
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 971.8447625420354
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 981.1362174715285
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 970.7392058654339
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 983.6009501213393
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 966.7846738697169
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 983.1696763542099
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 862.6635595273017
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 882.2672219540325
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 895.0947813803225
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 715.9439541998845
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 762.1320841709207
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 683.2005171483626
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 459.70368247380924
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 463.43880551034624
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 457.0950424213832
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 258.3699987906605
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 246.62411628753563
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 230.750606087297
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 172.05359296240533
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 137.32061227567345
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 120.435195162446
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 114.53806739260533
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 122.84651546592593
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 127.08226214616721
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 150.47767772294327
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 118.69980486160092
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 124.40996474960136
    }
   ],
   "options": {
    "bottom": "free",
    "hillFree": false,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "top": 996.5542129961916,
     "bottom": 102.73825557561868,
     "bottomFixed": null,
     "ic50": 2.062916343822408,
     "hill": null,
     "rss": 13027.768812752296,
     "df": 30,
     "order": [
      "top",
      "bottom",
      "ic50"
     ],
     "correlation": [
      [
       1.0000000000000002,
       0.12777723833591956,
       -0.47820100202899535
      ],
      [
       0.1277772383359196,
       0.9999999999999998,
       -0.5547386466655116
      ],
      [
       -0.4782010020289954,
       -0.5547386466655116,
       0.9999999999999999
      ]
     ],
     "ic50Interval": {
      "status": "computed",
      "level": 0.95,
      "df": 30,
      "low": {
       "status": "crossing",
       "value": 1.8720243934411858
      },
      "high": {
       "status": "crossing",
       "value": 2.273167440943709
      }
     },
     "n": 33,
     "concentrations": 10
    }
   },
   "ki": {
    "inputs": {
     "L": 1.0,
     "kd": 0.5,
     "y0": 0.3
    },
    "chengPrusoff": 0.6876387812741359,
    "munsonRodbard": {
     "status": "computed",
     "ki": 0.606910740768116
    }
   }
  },
  {
   "name": "competition-bottom-ns",
   "about": "The hand rows with two NS rows at 100 cpm: Bottom fixed to the NS mean",
   "analysis": "competition",
   "rows": [
    {
     "x": 0.0,
     "kind": "total",
     "y": 1000.0
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 995.5223880597016
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 986.6995073891626
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 957.1428571428571
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 882.608695652174
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 700.0
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 460.0
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 250.0
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 156.25
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 117.64705882352942
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 105.96026490066225
    },
    {
     "x": 1000.0,
     "kind": "ns",
     "y": 100.0
    },
    {
     "x": 1000.0,
     "kind": "ns",
     "y": 100.0
    }
   ],
   "options": {
    "bottom": "ns",
    "hillFree": false,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "top": 1000.0,
     "bottom": 100.0,
     "bottomFixed": "ns",
     "ic50": 2.0000000000000004,
     "hill": null,
     "rss": 1.6370404527291505e-26,
     "df": 9,
     "order": [
      "top",
      "ic50"
     ],
     "correlation": [
      [
       1.0000000000000002,
       -0.49470325377192126
      ],
      [
       -0.4947032537719213,
       1.0
      ]
     ],
     "ic50Interval": {
      "status": "not-available",
      "reason": "zero-residual"
     },
     "n": 11,
     "concentrations": 10
    }
   }
  },
  {
   "name": "competition-hill-free",
   "about": "nH 1.5: the Hill-free variant, no IC50 interval and no Ki",
   "analysis": "competition",
   "rows": [
    {
     "x": 0.0,
     "kind": "total",
     "y": 1000.0
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 999.6819144087054
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 998.3496263536102
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 990.0489502200284
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 950.5854507223879
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 764.9165125326327
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 417.2234005804822
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 173.88956369958913
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 115.2297792453468
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 102.53840471950933
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 100.48963142696594
    }
   ],
   "options": {
    "bottom": "free",
    "hillFree": true,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "top": 1000.0,
     "bottom": 99.99999999999999,
     "bottomFixed": null,
     "ic50": 2.0000000000000004,
     "hill": 1.5000000000000002,
     "rss": 3.4666738998970245e-27,
     "df": 7,
     "order": [
      "top",
      "bottom",
      "ic50",
      "hill"
     ],
     "correlation": [
      [
       1.0000000000000002,
       -0.11468982457553796,
       -0.3311926790452682,
       -0.38622726466727225
      ],
      [
       -0.11468982457553796,
       1.0000000000000002,
       -0.41853190592183914,
       0.44636402273066744
      ],
      [
       -0.3311926790452683,
       -0.41853190592183914,
       1.0,
       -0.060431876881940724
      ],
      [
       -0.3862272646672722,
       0.44636402273066744,
       -0.060431876881940724,
       1.0000000000000002
      ]
     ],
     "ic50Interval": null,
     "n": 11,
     "concentrations": 10
    }
   }
  },
  {
   "name": "competition-outside-range",
   "about": "IC50 2000 nM above the highest 300 nM: withheld",
   "analysis": "competition",
   "rows": [
    {
     "x": 0.0,
     "kind": "total",
     "y": 1000.0
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 999.9955000224999
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 999.9865002024969
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 999.9550022498875
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 999.8650202469629
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 999.5502248875563
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 998.6520219670493
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 995.5223880597016
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 986.6995073891626
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 957.1428571428571
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 882.608695652174
    }
   ],
   "options": {
    "bottom": "free",
    "hillFree": false,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "withheld",
     "reason": "ic50-outside-range",
     "n": 11,
     "concentrations": 10
    }
   }
  },
  {
   "name": "competition-two-site",
   "about": "Two sites, IC50 0.05 and 20 nM, F 0.3, 14 concentrations: the hand values; Ki refused for two sites",
   "analysis": "competition",
   "rows": [
    {
     "x": 0.0,
     "kind": "total",
     "y": 1000.0
    },
    {
     "x": 0.001,
     "kind": "total",
     "y": 994.3785163682992
    },
    {
     "x": 0.003,
     "kind": "total",
     "y": 983.7681894885577
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 952.1676661669165
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 892.1289940089864
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 806.6915422885572
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 745.8866995073892
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 696.9047619047618
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 632.9330007127585
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 494.7512437810945
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 316.47420965058234
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 160.9757621189405
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 91.60999208465256
    },
    {
     "x": 1000.0,
     "kind": "total",
     "y": 63.05346497381014
    }
   ],
   "options": {
    "bottom": "free",
    "hillFree": false,
    "sites": 2
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "estimated",
     "top": 907.4131788785845,
     "bottom": 99.84742295782337,
     "bottomFixed": null,
     "ic50": 6.964377778873196,
     "hill": null,
     "rss": 72323.81441635951,
     "df": 11,
     "order": [
      "top",
      "bottom",
      "ic50"
     ],
     "correlation": [
      [
       0.9999999999999998,
       0.09995807380835418,
       -0.3810801959273309
      ],
      [
       0.09995807380835417,
       1.0,
       -0.5647587425520636
      ],
      [
       -0.3810801959273308,
       -0.5647587425520636,
       1.0
      ]
     ],
     "ic50Interval": {
      "status": "computed",
      "level": 0.95,
      "df": 11,
      "low": {
       "status": "crossing",
       "value": 2.453947514727191
      },
      "high": {
       "status": "crossing",
       "value": 17.767751843144417
      }
     },
     "n": 14,
     "concentrations": 13
    },
    "twoSite": {
     "status": "estimated",
     "top": 1000.0,
     "bottom": 50.000000000000014,
     "ic50High": 0.049999999999999954,
     "ic50Low": 19.999999999999993,
     "fraction": 0.3,
     "rss": 1.6370404527291505e-26,
     "df": 9,
     "comparison": {
      "status": "not-available",
      "reason": "zero-residual"
     },
     "n": 14,
     "concentrations": 13
    }
   },
   "hand": {
    "ic50High": 0.05,
    "ic50Low": 20.0,
    "fraction": 0.3
   }
  },
  {
   "name": "refused-competition-ns-missing",
   "about": "Bottom fixed to NS with no NS rows",
   "analysis": "competition",
   "rows": [
    {
     "x": 0.0,
     "kind": "total",
     "y": 1000.0
    },
    {
     "x": 0.01,
     "kind": "total",
     "y": 995.5223880597016
    },
    {
     "x": 0.03,
     "kind": "total",
     "y": 986.6995073891626
    },
    {
     "x": 0.1,
     "kind": "total",
     "y": 957.1428571428571
    },
    {
     "x": 0.3,
     "kind": "total",
     "y": 882.608695652174
    },
    {
     "x": 1.0,
     "kind": "total",
     "y": 700.0
    },
    {
     "x": 3.0,
     "kind": "total",
     "y": 460.0
    },
    {
     "x": 10.0,
     "kind": "total",
     "y": 250.0
    },
    {
     "x": 30.0,
     "kind": "total",
     "y": 156.25
    },
    {
     "x": 100.0,
     "kind": "total",
     "y": 117.64705882352942
    },
    {
     "x": 300.0,
     "kind": "total",
     "y": 105.96026490066225
    }
   ],
   "options": {
    "bottom": "ns",
    "hillFree": false,
    "sites": 1
   },
   "concentrationUnit": "nM",
   "readingUnit": "cpm",
   "expected": {
    "oneSite": {
     "status": "refused",
     "reason": "ns-missing"
    }
   }
  }
 ]
}
