{
 "about": {
  "method": "standard-curve-interpolation (5PL)",
  "origin": "Original synthetic data (a known logistic plus a fixed noise vector), not experimental or manufacturer validation",
  "ruling": "CSO memo of 11 October 2026, item 3 (docs/board/memos/2026-10-11-cso-assay-depth-stage.md)",
  "model": "y = bottom + (top - bottom) / (1 + 10^((logMidpoint - x) * hill))^s, x = log10 concentration, s = exp(lnS) in [0.1, 10]",
  "minimumStandards": 7,
  "lnSBox": [
   -2.3025850929940455,
   2.302585092994046
  ],
  "zeroResidual": "comparison withheld when the 5PL RSS is at most 1e-20 times the responses' sum of squares",
  "tolerances": {
   "model": "top, bottom, logMidpoint and hill within 2e-5 absolute; ln s within 2e-5 absolute",
   "fittedResponses": "within 2e-5 absolute",
   "concentrations": "within 5e-5 relative (floor 1e-6)",
   "rss": "within 1e-6 relative",
   "F": "within 1e-5 relative",
   "p": "within 1e-4 relative",
   "aicc": "within 1e-6 absolute",
   "status": "exact"
  },
  "recordedOn": "2026-10-12",
  "script": "pipeline/assay-analyser/oracles/calibration_5pl_scipy.py",
  "scriptSha256": "b4e6d97b8a06a1a863f063bc8f216a1c0ac5436525d6895022f7d68ac3f4da11",
  "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-12",
   "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 drc::drm(fct = LL.5())",
   "version": "R version 4.4.3 (2025-02-28)",
   "drc": "4.0-0",
   "script": "pipeline/assay-analyser/oracles/r/calibration_ll5.R",
   "scriptSha256": "4737d1d97bf5de69bd507b2f546ba9066b81bf2e309b32d65ef852a2dc41cbb8",
   "ran": true,
   "settings": "drm on the standard means, started from the SciPy estimates; mapping b = -hill, c = bottom, d = top, e = 10^logMidpoint, f = s",
   "tolerances": {
    "parameters": "2e-5 absolute on bottom, top, logMidpoint, hill and ln s",
    "rss": "1e-6 relative (not compared at a zero residual)"
   },
   "cases": 3,
   "agreeing": 3,
   "rOnly": [],
   "scipyOnly": [
    {
     "case": "s-beyond-box",
     "status": "refused",
     "reason": "s-at-box"
    },
    {
     "case": "six-standards",
     "status": "refused",
     "reason": "standard-count"
    }
   ],
   "result": [
    {
     "case": "asymmetric-rising",
     "converged": true,
     "parameters": {
      "b": -1.106942972736,
      "c": 0.104721228236587,
      "d": 2.39881584022457,
      "e": 1.58421840838086,
      "f": 0.449277584883122
     },
     "mapped": {
      "bottom": 0.104721228236587,
      "top": 2.39881584022457,
      "logMidpoint": 0.19981505542002295,
      "hill": 1.106942972736,
      "lnS": -0.8001143531264328
     },
     "differences": {
      "bottom": 4.440892098500626e-16,
      "top": 2.220446049250313e-15,
      "logMidpoint": 1.3070100557399655e-13,
      "hill": 1.283861905676531e-12,
      "lnS": 1.5507595207964187e-12
     },
     "rssRelativeDifference": 9.427069765951758e-15,
     "agrees": true
    },
    {
     "case": "asymmetric-falling",
     "converged": true,
     "parameters": {
      "b": 1.27208116187909,
      "c": 0.15145024785122,
      "d": 2.20222959252033,
      "e": 0.902251747222011,
      "f": 2.47405118341943
     },
     "mapped": {
      "bottom": 0.15145024785122,
      "top": 2.20222959252033,
      "logMidpoint": -0.04467226825084003,
      "hill": -1.27208116187909,
      "lnS": 0.9058569622847596
     },
     "differences": {
      "bottom": 1.6653345369377348e-16,
      "top": 3.1086244689504383e-15,
      "logMidpoint": 4.0939474033052647e-16,
      "hill": 3.9968028886505635e-15,
      "lnS": 2.4424906541753444e-15
     },
     "rssRelativeDifference": 8.879045429570913e-16,
     "agrees": true
    },
    {
     "case": "symmetric-noiseless",
     "converged": true,
     "parameters": {
      "b": -1.2,
      "c": 0.12,
      "d": 2.4,
      "e": 1.99526231496888,
      "f": 1
     },
     "mapped": {
      "bottom": 0.12,
      "top": 2.4,
      "logMidpoint": 0.30000000000000004,
      "hill": 1.2,
      "lnS": 0.0
     },
     "differences": {
      "bottom": 1.3877787807814457e-17,
      "top": 0.0,
      "logMidpoint": 6.106226635438361e-16,
      "hill": 6.661338147750939e-16,
      "lnS": 1.3787485988722285e-15
     },
     "rssRelativeDifference": null,
     "agrees": true
    }
   ]
  }
 },
 "oracle": {
  "engine": "scipy.optimize.curve_fit",
  "method": "trf, bounded in ln s only; unweighted on concentration-level means; nine starts (ln s in {ln 0.5, 0, ln 2} by midpoint in {-0.5, 0, 0.5}), lowest residual sum of squares; the 4PL by method lm from three midpoints"
 },
 "cases": [
  {
   "name": "asymmetric-rising",
   "about": "s 0.45 (a long upper shoulder), rising, nine standards with noise",
   "standardConcentrations": [
    0.01,
    0.03162277660168379,
    0.1,
    0.31622776601683794,
    1.0,
    3.1622776601683795,
    10.0,
    31.622776601683793,
    100.0
   ],
   "standardResponses": [
    0.2900622833387577,
    0.4273132060368894,
    0.6775757830936322,
    1.0621027160042082,
    1.5820218032935336,
    2.039246873085281,
    2.27233948329108,
    2.3645514560718572,
    2.3882437992104517
   ],
   "status": "fitted",
   "model": {
    "bottom": 0.10472122823658656,
    "top": 2.3988158402245676,
    "logMidpoint": 0.19981505541989225,
    "hill": 1.1069429727347162,
    "lnS": -0.8001143531279835
   },
   "rss": 5.822353747748805e-05,
   "fittedStandardResponses": [
    0.2891691768277281,
    0.4303369286558528,
    0.6735173645369233,
    1.0647255628364718,
    1.5818547866751025,
    2.036988482022158,
    2.276166990353736,
    2.362287180262635,
    2.388410931117419
   ],
   "testedRangeFittedResponses": [
    0.2891691768277281,
    2.388410931117419
   ],
   "fourPL": {
    "model": {
     "bottom": 0.23883290186321585,
     "top": 2.43324250488545,
     "logMidpoint": -0.2520982072148729,
     "hill": 0.8461095258295757
    },
    "rss": 0.0024807111193427523
   },
   "comparison": {
    "status": "computed",
    "n": 9,
    "rss4": 0.0024807111193427523,
    "rss5": 5.822353747748805e-05,
    "F": 166.42668493317925,
    "df1": 1,
    "df2": 4,
    "p": 0.00020821199907519763,
    "aicc4": {
     "aicc": -43.76791136016183,
     "k": 5,
     "n": 9
    },
    "aicc5": {
     "aicc": -53.53600894477765,
     "k": 6,
     "n": 9
    }
   },
   "unknowns": [
    {
     "label": "unknown-0",
     "response": 0.5,
     "dilutionFactor": 1,
     "status": "interpolated",
     "concentration": 0.04699943639298116,
     "originalConcentration": 0.04699943639298116
    },
    {
     "label": "unknown-1",
     "response": 1.2,
     "dilutionFactor": 2,
     "status": "interpolated",
     "concentration": 0.4347772715813322,
     "originalConcentration": 0.8695545431626645
    },
    {
     "label": "unknown-2",
     "response": 1.9,
     "dilutionFactor": 10,
     "status": "interpolated",
     "concentration": 2.1160596983877635,
     "originalConcentration": 21.160596983877635
    },
    {
     "label": "out-of-range-0",
     "response": 0.2391691768277281,
     "dilutionFactor": 1,
     "status": "below-range",
     "concentration": null,
     "originalConcentration": null
    },
    {
     "label": "out-of-range-1",
     "response": 2.393613385670993,
     "dilutionFactor": 1,
     "status": "above-range",
     "concentration": null,
     "originalConcentration": null
    }
   ]
  },
  {
   "name": "asymmetric-falling",
   "about": "s 2.2, falling, nine standards with noise",
   "standardConcentrations": [
    0.01,
    0.03162277660168379,
    0.1,
    0.31622776601683794,
    1.0,
    3.1622776601683795,
    10.0,
    31.622776601683793,
    100.0
   ],
   "standardResponses": [
    2.18380058801852,
    2.1353571255812827,
    1.922201237423445,
    1.3011315874087162,
    0.46420329450748865,
    0.17512230412187843,
    0.15535175865195294,
    0.14805343670367738,
    0.15300201361477067
   ],
   "status": "fitted",
   "model": {
    "bottom": 0.15145024785121983,
    "top": 2.2022295925203332,
    "logMidpoint": -0.04467226825084044,
    "hill": -1.272081161879086,
    "lnS": 0.9058569622847572
   },
   "rss": 3.8158739201100534e-05,
   "fittedStandardResponses": [
    2.185803250532743,
    2.132486583561742,
    1.9231119998102868,
    1.3012275014281196,
    0.46374254766415934,
    0.17652866199693024,
    0.1523940809578532,
    0.15147772367069465,
    0.15145099645050175
   ],
   "testedRangeFittedResponses": [
    2.185803250532743,
    0.15145099645050175
   ],
   "fourPL": {
    "model": {
     "bottom": 0.13935125698415696,
     "top": 2.171835431972018,
     "logMidpoint": -0.4338050004372753,
     "hill": -1.6222090923634582
    },
    "rss": 0.002680436662340597
   },
   "comparison": {
    "status": "computed",
    "n": 9,
    "rss4": 0.002680436662340597,
    "rss5": 3.8158739201100534e-05,
    "F": 276.9774870405876,
    "df1": 1,
    "df2": 4,
    "p": 7.636261367550009e-05,
    "aicc4": {
     "aicc": -43.07100127222802,
     "k": 5,
     "n": 9
    },
    "aicc5": {
     "aicc": -57.338822961627116,
     "k": 6,
     "n": 9
    }
   },
   "unknowns": [
    {
     "label": "unknown-0",
     "response": 0.6,
     "dilutionFactor": 1,
     "status": "interpolated",
     "concentration": 0.7929183204532577,
     "originalConcentration": 0.7929183204532577
    },
    {
     "label": "unknown-1",
     "response": 1.3,
     "dilutionFactor": 5,
     "status": "interpolated",
     "concentration": 0.3167424072851283,
     "originalConcentration": 1.5837120364256416
    },
    {
     "label": "unknown-2",
     "response": 1.9,
     "dilutionFactor": 2,
     "status": "interpolated",
     "concentration": 0.1072160560427788,
     "originalConcentration": 0.2144321120855576
    },
    {
     "label": "out-of-range-0",
     "response": 2.2358032505327428,
     "dilutionFactor": 1,
     "status": "below-range",
     "concentration": null,
     "originalConcentration": null
    },
    {
     "label": "out-of-range-1",
     "response": 0.1514506221508608,
     "dilutionFactor": 1,
     "status": "above-range",
     "concentration": null,
     "originalConcentration": null
    }
   ]
  },
  {
   "name": "symmetric-noiseless",
   "about": "a 4PL curve (s = 1) without noise: the 5PL recovers s = 1 and the 4PL's estimates",
   "standardConcentrations": [
    0.01,
    0.03162277660168379,
    0.1,
    0.31622776601683794,
    1.0,
    3.1622776601683795,
    10.0,
    31.622776601683793,
    100.0
   ],
   "standardResponses": [
    0.12395531234447837,
    0.1356653682675682,
    0.18111321668075556,
    0.3452940296025976,
    0.8128264034205124,
    1.5672148039192821,
    2.112059759754785,
    2.3201185245830716,
    2.3793940810768137
   ],
   "status": "fitted",
   "model": {
    "bottom": 0.12000000000000001,
    "top": 2.4,
    "logMidpoint": 0.29999999999999943,
    "hill": 1.1999999999999993,
    "lnS": 1.3787485988722285e-15
   },
   "rss": 1.617781153285278e-32,
   "fittedStandardResponses": [
    0.12395531234447837,
    0.1356653682675682,
    0.18111321668075553,
    0.34529402960259753,
    0.8128264034205123,
    1.5672148039192821,
    2.112059759754785,
    2.3201185245830716,
    2.3793940810768137
   ],
   "testedRangeFittedResponses": [
    0.12395531234447837,
    2.3793940810768137
   ],
   "fourPL": {
    "model": {
     "bottom": 0.11999999999999995,
     "top": 2.4,
     "logMidpoint": 0.3,
     "hill": 1.2
    },
    "rss": 5.488900341503622e-32
   },
   "comparison": {
    "status": "withheld",
    "reason": "zero-residual"
   },
   "unknowns": [
    {
     "label": "unknown-0",
     "response": 0.4,
     "dilutionFactor": 1,
     "status": "interpolated",
     "concentration": 0.38765021549651274,
     "originalConcentration": 0.38765021549651274
    },
    {
     "label": "unknown-1",
     "response": 1.1,
     "dilutionFactor": 2,
     "status": "interpolated",
     "concentration": 1.576651116986554,
     "originalConcentration": 3.153302233973108
    },
    {
     "label": "unknown-2",
     "response": 1.8,
     "dilutionFactor": 10,
     "status": "interpolated",
     "concentration": 4.705780792930501,
     "originalConcentration": 47.05780792930501
    },
    {
     "label": "out-of-range-0",
     "response": 0.07395531234447837,
     "dilutionFactor": 1,
     "status": "below-range",
     "concentration": null,
     "originalConcentration": null
    },
    {
     "label": "out-of-range-1",
     "response": 2.389697040538407,
     "dilutionFactor": 1,
     "status": "above-range",
     "concentration": null,
     "originalConcentration": null
    }
   ]
  },
  {
   "name": "s-beyond-box",
   "about": "s 25, beyond the box: ln s reaches ln 10 and the 5PL is refused with the reason, no fallback",
   "standardConcentrations": [
    0.01,
    0.03162277660168379,
    0.1,
    0.31622776601683794,
    1.0,
    3.1622776601683795,
    10.0,
    31.622776601683793,
    100.0
   ],
   "standardResponses": [
    0.10300000000000001,
    0.09800000000880353,
    0.10400715304620278,
    0.10888854629610159,
    0.4130673528957176,
    1.2155820750020145,
    1.8696721372760123,
    2.1983493716098828,
    2.3244839729771924
   ],
   "status": "refused",
   "reason": "s-at-box",
   "lnSAtFit": 2.302585092994033,
   "box": [
    -2.3025850929940455,
    2.302585092994046
   ],
   "unknowns": []
  },
  {
   "name": "six-standards",
   "about": "six distinct standards: refused for the count (seven required)",
   "standardConcentrations": [
    0.05623413251903491,
    0.1778279410038923,
    0.5623413251903491,
    1.7782794100389228,
    5.623413251903491,
    17.78279410038923
   ],
   "standardResponses": [
    0.5385860786503629,
    0.8472172087623842,
    1.3194467203560851,
    1.8278036415511627,
    2.182527799529316,
    2.3350434173523618
   ],
   "status": "refused",
   "reason": "standard-count",
   "unknowns": [
    {
     "label": "unknown-0",
     "response": 1.0,
     "dilutionFactor": 1,
     "status": "unavailable"
    }
   ]
  }
 ]
}
