{
  "protocol": {
    "lockedAtUTC": "2026-10-13T17:32:26.754196+00:00",
    "candidate": "M4 v9: nonnegative unit-sum blend of absolute-error boosted trees, ExtraTrees and ridge. No intercept or test calibration.",
    "selection": "86 annotation features: the original 52 plus median and IQR for each of 17 transcript features. Identical inputs, weights, seed and 12 configurations per component for all model families. Within each outer training pair, train each configuration on one study and validate on the other, in both directions. Choose lowest equal-study transfer MAE; optimize convex weights on the selected cross-study predictions. Refit bases on the two training studies and apply frozen weights to the third. No held-outer-study outcomes used in selection.",
    "budget": "216 base tuning fits plus three convex optimizations. Ensemble combines all three families and has greater aggregate computation than a single baseline. Not a novel architecture claim.",
    "featureCount": 86,
    "features": [
      "nexon__mean",
      "nexon__max",
      "nexon__std",
      "tx_len__mean",
      "tx_len__max",
      "tx_len__std",
      "cds_len__mean",
      "cds_len__max",
      "cds_len__std",
      "utr5_len__mean",
      "utr5_len__max",
      "utr5_len__std",
      "utr3_len__mean",
      "utr3_len__max",
      "utr3_len__std",
      "stop_to_lastEJ__mean",
      "stop_to_lastEJ__max",
      "stop_to_lastEJ__std",
      "downstream_junctions__mean",
      "downstream_junctions__max",
      "downstream_junctions__std",
      "stop_upstream_50nt__mean",
      "stop_upstream_50nt__max",
      "stop_upstream_50nt__std",
      "max_exon_len__mean",
      "max_exon_len__max",
      "max_exon_len__std",
      "mean_exon_len__mean",
      "mean_exon_len__max",
      "mean_exon_len__std",
      "last_exon_len__mean",
      "last_exon_len__max",
      "last_exon_len__std",
      "cds_fraction__mean",
      "cds_fraction__max",
      "cds_fraction__std",
      "GC_tx__mean",
      "GC_tx__max",
      "GC_tx__std",
      "GC_utr5__mean",
      "GC_utr5__max",
      "GC_utr5__std",
      "GC_cds__mean",
      "GC_cds__max",
      "GC_cds__std",
      "GC_utr3__mean",
      "GC_utr3__max",
      "GC_utr3__std",
      "utr3_mfe_nt__mean",
      "utr3_mfe_nt__max",
      "utr3_mfe_nt__std",
      "isoform_count",
      "nexon_median",
      "tx_len_median",
      "cds_len_median",
      "utr5_len_median",
      "utr3_len_median",
      "stop_to_lastEJ_median",
      "downstream_junctions_median",
      "stop_upstream_50nt_median",
      "max_exon_len_median",
      "mean_exon_len_median",
      "last_exon_len_median",
      "cds_fraction_median",
      "GC_tx_median",
      "GC_utr5_median",
      "GC_cds_median",
      "GC_utr3_median",
      "utr3_mfe_nt_median",
      "nexon_iqr",
      "tx_len_iqr",
      "cds_len_iqr",
      "utr5_len_iqr",
      "utr3_len_iqr",
      "stop_to_lastEJ_iqr",
      "downstream_junctions_iqr",
      "stop_upstream_50nt_iqr",
      "max_exon_len_iqr",
      "mean_exon_len_iqr",
      "last_exon_len_iqr",
      "cds_fraction_iqr",
      "GC_tx_iqr",
      "GC_utr5_iqr",
      "GC_cds_iqr",
      "GC_utr3_iqr",
      "utr3_mfe_nt_iqr"
    ],
    "historicalComparatorSHA256": "c2be050a13fd12145d7f6fbf1dd7f30c7540240814ea2c6af311bcc312eb5891",
    "sourceHashes": {
      "docs/validation/2026-10-13-response-reconciliation-v4/m4-aligned.parquet": "08527f163c57d28fc248a78eb7f9c262dafed686300727a4257df2e90d2ff68b",
      "docs/validation/2026-10-13-public-only-benchmarks-v8/evaluated-predictions.csv": "a199a705ce31e8bb27e0f4e9c9fe207dbbac9251990cf94041cefd846b55b357",
      "docs/validation/2026-10-13-nmd-response-models/m4-frozen-inputs.parquet": "b773969e5f13b1fd0ab134f185c9a75cd7311dc531fde0556d6a0a1c9f4546f7",
      "docs/validation/2026-10-13-m4-ensemble-v8/predictions.csv": "c69894b3c522185c022bcf6148df2691311dceda918e4a1270302d685e8e4f31"
    },
    "families": [
      "M4_v6",
      "ExtraTrees",
      "ridge"
    ],
    "configurations": {
      "M4_v6": [
        {
          "max_depth": 2,
          "min_child_weight": 20,
          "reg_lambda": 10
        },
        {
          "max_depth": 2,
          "min_child_weight": 20,
          "reg_lambda": 100
        },
        {
          "max_depth": 2,
          "min_child_weight": 80,
          "reg_lambda": 10
        },
        {
          "max_depth": 2,
          "min_child_weight": 80,
          "reg_lambda": 100
        },
        {
          "max_depth": 4,
          "min_child_weight": 20,
          "reg_lambda": 10
        },
        {
          "max_depth": 4,
          "min_child_weight": 20,
          "reg_lambda": 100
        },
        {
          "max_depth": 4,
          "min_child_weight": 80,
          "reg_lambda": 10
        },
        {
          "max_depth": 4,
          "min_child_weight": 80,
          "reg_lambda": 100
        },
        {
          "max_depth": 6,
          "min_child_weight": 20,
          "reg_lambda": 10
        },
        {
          "max_depth": 6,
          "min_child_weight": 20,
          "reg_lambda": 100
        },
        {
          "max_depth": 6,
          "min_child_weight": 80,
          "reg_lambda": 10
        },
        {
          "max_depth": 6,
          "min_child_weight": 80,
          "reg_lambda": 100
        }
      ],
      "ExtraTrees": [
        {
          "min_samples_leaf": 2,
          "max_features": 0.5,
          "max_depth": 18
        },
        {
          "min_samples_leaf": 2,
          "max_features": 0.5,
          "max_depth": null
        },
        {
          "min_samples_leaf": 2,
          "max_features": 1.0,
          "max_depth": 18
        },
        {
          "min_samples_leaf": 2,
          "max_features": 1.0,
          "max_depth": null
        },
        {
          "min_samples_leaf": 5,
          "max_features": 0.5,
          "max_depth": 18
        },
        {
          "min_samples_leaf": 5,
          "max_features": 0.5,
          "max_depth": null
        },
        {
          "min_samples_leaf": 5,
          "max_features": 1.0,
          "max_depth": 18
        },
        {
          "min_samples_leaf": 5,
          "max_features": 1.0,
          "max_depth": null
        },
        {
          "min_samples_leaf": 10,
          "max_features": 0.5,
          "max_depth": 18
        },
        {
          "min_samples_leaf": 10,
          "max_features": 0.5,
          "max_depth": null
        },
        {
          "min_samples_leaf": 10,
          "max_features": 1.0,
          "max_depth": 18
        },
        {
          "min_samples_leaf": 10,
          "max_features": 1.0,
          "max_depth": null
        }
      ],
      "ridge": [
        {
          "alpha": 0.01
        },
        {
          "alpha": 0.1
        },
        {
          "alpha": 1.0
        },
        {
          "alpha": 10.0
        },
        {
          "alpha": 100.0
        },
        {
          "alpha": 1000.0
        },
        {
          "alpha": 10000.0
        },
        {
          "alpha": 100000.0
        },
        {
          "alpha": 1000000.0
        },
        {
          "alpha": 10000000.0
        },
        {
          "alpha": 100000000.0
        },
        {
          "alpha": 1000000000.0
        }
      ]
    },
    "rows": 29703,
    "genes": 11277,
    "freshHoldout": false,
    "primaryMetric": "MAE; secondary Spearman and R2",
    "finalFit": "Choose each component by mean inner MAE across folds; average the three inner-selected convex weight vectors; refit components on all development data.",
    "limitations": [
      "All three studies are repeatedly used development data; no confirmatory superiority claim.",
      "Weights and component configurations share an inner validation set, creating selection optimism; outer outcomes do not select weights.",
      "Inner splits separate studies, not genes; gene overlap is allowed to match the cross-study deployment question. This does not establish unseen-gene generalization.",
      "The ensemble contains the ExtraTrees baseline itself; any gain is an incremental ensemble effect, not independent biological novelty.",
      "Different assays, perturbations and cell types remain. Gene bootstrap does not model laboratory/replicate uncertainty."
    ]
  },
  "folds": [
    {
      "study": "NMDRHT",
      "genes": 10990,
      "overlappingGenes": 10813,
      "weights": {
        "M4_v6": 0.06113560121642179,
        "ExtraTrees": 0.2490971083321931,
        "ridge": 0.6897672904513852
      },
      "metrics": {
        "M4_v9": {
          "spearman": 0.5721599744986571,
          "mae": 0.5031838092904165,
          "r2": 0.10821910854009031
        },
        "M4_v6": {
          "spearman": 0.5847459218748878,
          "mae": 0.4938966425760231,
          "r2": 0.13748921344643572
        },
        "ExtraTrees": {
          "spearman": 0.6055909804657332,
          "mae": 0.47239752652504097,
          "r2": 0.23214164677369653
        },
        "ridge": {
          "spearman": 0.47700909953615844,
          "mae": 0.5244237634392213,
          "r2": 0.03300473935928516
        },
        "training_median": {
          "spearman": null,
          "mae": 0.5675473432855375,
          "r2": -0.10189963958838
        }
      },
      "comparisons": [
        {
          "baseline": "historical_ExtraTrees",
          "benefit": -0.028202213473704843,
          "ci": [
            -0.03174562160487105,
            -0.024794658130736016
          ]
        },
        {
          "baseline": "ExtraTrees",
          "benefit": -0.030786282765375563,
          "ci": [
            -0.034561116196721434,
            -0.026648940160913306
          ]
        },
        {
          "baseline": "ridge",
          "benefit": 0.021239954148804717,
          "ci": [
            0.019767361993016395,
            0.022748394909061727
          ]
        }
      ],
      "selected": {
        "M4_v6": 8,
        "ExtraTrees": 9,
        "ridge": 7
      }
    },
    {
      "study": "SMG1_HEK293",
      "genes": 11026,
      "overlappingGenes": 11026,
      "weights": {
        "M4_v6": 0.519665455302668,
        "ExtraTrees": 0.3811010635311796,
        "ridge": 0.09923348116615244
      },
      "metrics": {
        "M4_v9": {
          "spearman": 0.5683280230177852,
          "mae": 0.29023860100419485,
          "r2": 0.14867560179465034
        },
        "M4_v6": {
          "spearman": 0.5346640361701471,
          "mae": 0.3017533726943467,
          "r2": 0.057639820906785766
        },
        "ExtraTrees": {
          "spearman": 0.5998255179855297,
          "mae": 0.2951108155669419,
          "r2": 0.16614015730530451
        },
        "ridge": {
          "spearman": 0.40918993212129184,
          "mae": 0.3184856234906368,
          "r2": -0.04760083647619906
        },
        "training_median": {
          "spearman": null,
          "mae": 0.30850374408515713,
          "r2": -0.0719493901606727
        }
      },
      "comparisons": [
        {
          "baseline": "historical_ExtraTrees",
          "benefit": -0.007593518747364778,
          "ci": [
            -0.010152735129232801,
            -0.005151110475045607
          ]
        },
        {
          "baseline": "ExtraTrees",
          "benefit": 0.004872214562747075,
          "ci": [
            0.002002321025884373,
            0.007657985010979098
          ]
        },
        {
          "baseline": "ridge",
          "benefit": 0.028247022486441994,
          "ci": [
            0.02377688575406071,
            0.03262093973733826
          ]
        }
      ],
      "selected": {
        "M4_v6": 8,
        "ExtraTrees": 9,
        "ridge": 6
      }
    },
    {
      "study": "Tani2012",
      "genes": 7687,
      "overlappingGenes": 7643,
      "weights": {
        "M4_v6": 0.0,
        "ExtraTrees": 0.9266736191473492,
        "ridge": 0.07332638085265075
      },
      "metrics": {
        "M4_v9": {
          "spearman": 0.5026457130494928,
          "mae": 0.6146221686082832,
          "r2": 0.050932270480935515
        },
        "M4_v6": {
          "spearman": 0.46320097553590517,
          "mae": 0.6127371429550511,
          "r2": 0.04180177218334036
        },
        "ExtraTrees": {
          "spearman": 0.5009334277173966,
          "mae": 0.6139683188416296,
          "r2": 0.05125854187153811
        },
        "ridge": {
          "spearman": 0.3900065938963582,
          "mae": 0.666940399480792,
          "r2": -0.0595094670229388
        },
        "training_median": {
          "spearman": null,
          "mae": 0.6450195364304797,
          "r2": -0.07579048338070993
        }
      },
      "comparisons": [
        {
          "baseline": "historical_ExtraTrees",
          "benefit": -0.00041898995184443827,
          "ci": [
            -0.0012408732405080041,
            0.00046514861556660607
          ]
        },
        {
          "baseline": "ExtraTrees",
          "benefit": -0.0006538497666536388,
          "ci": [
            -0.0012700754943696978,
            -2.3236129584810258e-05
          ]
        },
        {
          "baseline": "ridge",
          "benefit": 0.052318230872508656,
          "ci": [
            0.04502465452357885,
            0.059798337597473834
          ]
        }
      ],
      "selected": {
        "M4_v6": 9,
        "ExtraTrees": 6,
        "ridge": 6
      }
    }
  ],
  "finalModel": {
    "path": "backend/models/m4-decay-response-v9/M4_v9.joblib",
    "sha256": "2ad38707281a957b58a1715b8166a82b6daebc711fe76f1499f077b643a37d64",
    "weights": {
      "M4_v6": 0.19360035217302993,
      "ExtraTrees": 0.5189572636702406,
      "ridge": 0.28744238415672946
    },
    "componentSelection": {
      "M4_v6": {
        "configurationId": 8
      },
      "ExtraTrees": {
        "configurationId": 4
      },
      "ridge": {
        "configurationId": 7
      }
    }
  },
  "independentSuperiority": false,
  "strongestComparisons": [
    {
      "study": "NMDRHT",
      "genes": 10990,
      "m4": 0.5031838092904165,
      "v8": 0.5069845314746838,
      "historicalExtraTrees": 0.4749815958167117,
      "historicalRecipe": "v8 study-transfer ExtraTrees",
      "newExtraTrees": 0.47239752652504097,
      "strongestExtraTrees": 0.47239752652504097,
      "ridge": 0.5244237634392213,
      "wins": false
    },
    {
      "study": "SMG1_HEK293",
      "genes": 11026,
      "m4": 0.29023860100419485,
      "v8": 0.2857677051596157,
      "historicalExtraTrees": 0.28264508225683,
      "historicalRecipe": "historical v5 frozen ExtraTrees",
      "newExtraTrees": 0.2951108155669419,
      "strongestExtraTrees": 0.28264508225683,
      "ridge": 0.3184856234906368,
      "wins": false
    },
    {
      "study": "Tani2012",
      "genes": 7687,
      "m4": 0.6146221686082832,
      "v8": 0.6149105442624968,
      "historicalExtraTrees": 0.6142031786564388,
      "historicalRecipe": "v8 study-transfer ExtraTrees",
      "newExtraTrees": 0.6139683188416296,
      "strongestExtraTrees": 0.6139683188416296,
      "ridge": 0.666940399480792,
      "wins": false
    }
  ],
  "strongestWins": 0,
  "newFreshStudyQualified": false,
  "search": [
    {
      "name": "ICE1 / GSE105436",
      "url": "https://elifesciences.org/articles/33178",
      "decision": "Broad stability changes are inferred using REMBRANDTS; directly measured 5-EU half-lives use selected-gene qPCR. Does not qualify as a broad measured-decay holdout for M4. No supplementary numerical outcomes used."
    },
    {
      "name": "Human RNA structural switches (2024)",
      "url": "https://www.nature.com/articles/s41592-024-02335-1",
      "decision": "UPF1 perturbation is assessed by endogenous RORC RT-qPCR. This does not provide a matched genome-wide UPF1 RNA/RPF response or broad measured-decay endpoint."
    },
    {
      "name": "GSE305934 / GSE305933 (2026 paper)",
      "url": "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE305934",
      "decision": "Matched human RNA/RPF data exist, but the experiment measures stem-cell differentiation, not UPF1 perturbation. Not a qualifying M5 response holdout."
    },
    {
      "name": "Ribosome-associated lncRNAs (2018)",
      "url": "https://doi.org/10.1186/s12864-018-4765-z",
      "decision": "NMD sensitivity uses separate GSE86148 UPF1 RNA-seq, alongside collected baseline ribosome profiles. It is not matched perturbation RNA/RPF data for M5."
    },
    {
      "name": "MDC Ribo-seq deposit 25705",
      "url": "https://edoc.mdc-berlin.de/id/eprint/25705/",
      "decision": "Public human UPF1 Ribo-seq, but a mirror of the Boehm NMDRHT study already used. Not a fresh independent cohort."
    }
  ],
  "searchScope": "Public GEO metadata, primary articles and repository mirrors checked on 2026-10-13. No author contact. This bounded search found no new qualifying cohort; it does not establish that none exists.",
  "overallMAE": {
    "m4": 0.46934819296763153,
    "v8": 0.46922092696559875,
    "historicalExtraTrees": 0.4572766189099935,
    "newExtraTrees": 0.4604922203112041,
    "strongestExtraTrees": 0.4563369758745002,
    "ridge": 0.5032832621368833
  },
  "validation": {
    "rows": 29703,
    "genes": 11277,
    "identicalCohorts": true,
    "tuningFits": 216,
    "tuningFitSeconds": 224.02904192499997
  }
}