{
  "schemaVersion": 1,
  "analysis": {
    "id": "checkpoint",
    "title": "BUBR1 functional controls: arrest duration",
    "group": "reanalysis"
  },
  "generatedAt": "2026-10-25T04:58:53.658Z",
  "generatedBy": "BioLab Analysis Tools (www.stackfire.com)",
  "dates": {
    "archivedRecordedOn": "2026-10-09",
    "snapshotDataAsOf": "2026-10-17",
    "executions": [
      {
        "id": "stackfire-20261024-python313",
        "origin": "stackfire",
        "executedAt": null,
        "recordedAt": "2026-10-24T23:32:43.816Z",
        "executionTimeSource": null,
        "timingNote": "The original executedAt value was generated by the packaging script, not captured from the pipeline. It is preserved as recordedAt; the actual execution time is unknown."
      },
      {
        "id": "stackfire-20261024-python312",
        "origin": "stackfire",
        "executedAt": null,
        "recordedAt": "2026-10-24T23:32:43.620Z",
        "executionTimeSource": null,
        "timingNote": "The original executedAt value was generated by the packaging script, not captured from the pipeline. It is preserved as recordedAt; the actual execution time is unknown."
      },
      {
        "id": "replay-check-20261024",
        "origin": "repository",
        "executedAt": "2026-10-24T20:35:58.556365+00:00",
        "recordedAt": null,
        "executionTimeSource": null,
        "timingNote": null
      },
      {
        "id": "execution-check-20261022",
        "origin": "repository",
        "executedAt": "2026-10-22T18:59:19.720827+00:00",
        "recordedAt": null,
        "executionTimeSource": null,
        "timingNote": null
      }
    ],
    "note": "generatedAt is the moment this manifest was written; it is not an execution or publication date. recordedAt is packaging time; a null executedAt means the actual execution time is unknown."
  },
  "repository": {
    "sha": "a434af99342f57aa9fde958535c173b82c315c2a",
    "short": "a434af9",
    "repository": "https://github.com/ivillafuerte/mva-hackathon-2026",
    "treeUrl": "https://github.com/ivillafuerte/mva-hackathon-2026/tree/a434af99342f57aa9fde958535c173b82c315c2a"
  },
  "sources": [
    {
      "id": "bubr1-tpr-2026",
      "title": "BUBR1 TPR / MCC–APC/C functional controls",
      "url": "https://www.nature.com/articles/s42003-026-10384-9",
      "doi": "10.1038/s42003-026-10384-9",
      "pmid": "42477419"
    }
  ],
  "model": "Published HeLa BUBR1 depletion and replacement with WT or engineered TPR variants under nocodazole challenge.",
  "samples": "Individual displayed cells per figure panel (3D, 4B, 4F); representative replicate, cells are not independent biological replicates.",
  "parameters": [
    "Workbook SHA-256 and panel labels validated before reading",
    "Per-panel medians of NEBD-to-exit time (minutes)",
    "Deterministic extraction; no seed"
  ],
  "inputs": [
    {
      "path": "checkpoint/cache/source_data.xlsx",
      "url": "https://media.springernature.com/original/springer-static/esm/art%3A10.1038%2Fs42003-026-10384-9/MediaObjects/42003_2026_10384_MOESM5_ESM.xlsx",
      "sha256": "d793bc309981fefad4a7bc5a8de852054563b0c29b1212d0221519674f9f5f90",
      "bytes": 41329
    }
  ],
  "script": {
    "path": "track2/reproduction/checkpoint/reanalyze.py",
    "sha256": "f74760b9f52747f32352b83b3825ab2960392db41b7ecfb4bd267c5d706b4290",
    "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/checkpoint/reanalyze.py"
  },
  "command": "python reanalyze.py --input cache/source_data.xlsx --output results.json",
  "archived": {
    "snapshotId": "mva-results-2026-10-17-immunotherapy-audit-v1",
    "recordId": "MVA-CTRL-006",
    "provenance": {
      "artifact": "bubr1_checkpoint_kinetics_2026-10-09/results.json",
      "sha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
      "method": "Selected the Figure 4B rows from a completed deterministic source-workbook reanalysis; no kinetic rate or new confidence interval inferred.",
      "verification": "Imported an existing analysis artifact and computed its SHA-256. This snapshot build does not rerun the original analysis or validate biological efficacy."
    }
  },
  "executions": [
    {
      "id": "stackfire-20261024-python313",
      "origin": "stackfire",
      "executedAt": null,
      "recordedAt": "2026-10-24T23:32:43.816Z",
      "executionTimeSource": null,
      "timingNote": "The original executedAt value was generated by the packaging script, not captured from the pipeline. It is preserved as recordedAt; the actual execution time is unknown.",
      "environment": {
        "python": "3.13.17",
        "dependencies": {
          "pandas": "2.2.3",
          "numpy": "2.3.5",
          "scipy": "1.17.0",
          "openpyxl": "3.1.5"
        },
        "isolated": true,
        "pinned": false
      },
      "inputs": {
        "method": "Inputs fetched from the public URLs of input_manifest.json over the network, plus the two bundled public references; every byte count and SHA-256 compared with the manifest.",
        "verified": 14,
        "expected": 14
      },
      "artifacts": [
        {
          "analysis": "gse65145",
          "artifact": "gse65145/gse65145_bub1b_results.json",
          "sha256": "e71199b4f23c6315f02febfd18aac8b9bcd7e7f8bb05a7a7b624ad874d54d3b6",
          "expectedSha256": "e71199b4f23c6315f02febfd18aac8b9bcd7e7f8bb05a7a7b624ad874d54d3b6",
          "outputVerified": true,
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "nmd",
          "artifact": "nmd/results/selected_candidates.csv",
          "sha256": "ad7fa784e6caf2f126c9730e4edaf7dc75f0ea2ad54208661de75555ede6ab9c",
          "expectedSha256": "ad7fa784e6caf2f126c9730e4edaf7dc75f0ea2ad54208661de75555ede6ab9c",
          "outputVerified": true,
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "ptc",
          "artifact": "ptc/results/results.json",
          "sha256": "8d1f7ca32b05f9e85cedc5d025ea04efee60b581ae4effea8fd389e6f4afbcb9",
          "expectedSha256": "8d1f7ca32b05f9e85cedc5d025ea04efee60b581ae4effea8fd389e6f4afbcb9",
          "outputVerified": true,
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "checkpoint",
          "artifact": "checkpoint/results.json",
          "sha256": "81d3ccfd003926d90b70928407c3e91c8f52d046e655ecdead644994240539e0",
          "expectedSha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
          "outputVerified": true,
          "matches": false,
          "normalisation": {
            "field": "software.python",
            "from": "3.13.17",
            "to": "3.12.14",
            "sha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
            "matchesArchived": true
          }
        }
      ],
      "note": "Same fresh inputs, CPython 3.13.17 in a new virtual environment: interpreter deliberately outside the pinned version to show which artifact depends on it."
    },
    {
      "id": "stackfire-20261024-python312",
      "origin": "stackfire",
      "executedAt": null,
      "recordedAt": "2026-10-24T23:32:43.620Z",
      "executionTimeSource": null,
      "timingNote": "The original executedAt value was generated by the packaging script, not captured from the pipeline. It is preserved as recordedAt; the actual execution time is unknown.",
      "environment": {
        "python": "3.12.3",
        "dependencies": {
          "pandas": "2.2.3",
          "numpy": "2.3.5",
          "scipy": "1.17.0",
          "openpyxl": "3.1.5"
        },
        "isolated": true,
        "pinned": false
      },
      "inputs": {
        "method": "Inputs fetched from the public URLs of input_manifest.json over the network, plus the two bundled public references; every byte count and SHA-256 compared with the manifest.",
        "verified": 14,
        "expected": 14
      },
      "artifacts": [
        {
          "analysis": "gse65145",
          "artifact": "gse65145/gse65145_bub1b_results.json",
          "sha256": "e71199b4f23c6315f02febfd18aac8b9bcd7e7f8bb05a7a7b624ad874d54d3b6",
          "expectedSha256": "e71199b4f23c6315f02febfd18aac8b9bcd7e7f8bb05a7a7b624ad874d54d3b6",
          "outputVerified": true,
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "nmd",
          "artifact": "nmd/results/selected_candidates.csv",
          "sha256": "ad7fa784e6caf2f126c9730e4edaf7dc75f0ea2ad54208661de75555ede6ab9c",
          "expectedSha256": "ad7fa784e6caf2f126c9730e4edaf7dc75f0ea2ad54208661de75555ede6ab9c",
          "outputVerified": true,
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "ptc",
          "artifact": "ptc/results/results.json",
          "sha256": "8d1f7ca32b05f9e85cedc5d025ea04efee60b581ae4effea8fd389e6f4afbcb9",
          "expectedSha256": "8d1f7ca32b05f9e85cedc5d025ea04efee60b581ae4effea8fd389e6f4afbcb9",
          "outputVerified": true,
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "checkpoint",
          "artifact": "checkpoint/results.json",
          "sha256": "c464fed27412ae21bcaf8925de98b04fbad70d758474320c5a977981312e502b",
          "expectedSha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
          "outputVerified": true,
          "matches": false,
          "normalisation": {
            "field": "software.python",
            "from": "3.12.3",
            "to": "3.12.14",
            "sha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
            "matchesArchived": true
          }
        }
      ],
      "note": "Fresh network downloads of all 12 public inputs on 2026-10-24, each verified against input_manifest.json; system CPython 3.12.3 in a new virtual environment (the pinned 3.12.14 build was not available on this host)."
    },
    {
      "id": "replay-check-20261024",
      "origin": "repository",
      "executedAt": "2026-10-24T20:35:58.556365+00:00",
      "recordedAt": null,
      "executionTimeSource": null,
      "timingNote": null,
      "environment": {
        "python": "3.12.14",
        "dependencies": {
          "pandas": "2.2.3",
          "numpy": "2.3.5",
          "scipy": "1.17.0",
          "openpyxl": "3.1.5"
        },
        "isolated": false,
        "pinned": true
      },
      "inputs": {
        "method": "Previously downloaded public cached bytes, each verified against the unchanged manifest; not a fresh network download.",
        "verified": 14,
        "expected": 14
      },
      "artifacts": [
        {
          "analysis": "gse65145",
          "artifact": "gse65145/gse65145_bub1b_results.json",
          "sha256": "e71199b4f23c6315f02febfd18aac8b9bcd7e7f8bb05a7a7b624ad874d54d3b6",
          "expectedSha256": "e71199b4f23c6315f02febfd18aac8b9bcd7e7f8bb05a7a7b624ad874d54d3b6",
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "nmd",
          "artifact": "nmd/results/selected_candidates.csv",
          "sha256": "ad7fa784e6caf2f126c9730e4edaf7dc75f0ea2ad54208661de75555ede6ab9c",
          "expectedSha256": "ad7fa784e6caf2f126c9730e4edaf7dc75f0ea2ad54208661de75555ede6ab9c",
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "ptc",
          "artifact": "ptc/results/results.json",
          "sha256": "8d1f7ca32b05f9e85cedc5d025ea04efee60b581ae4effea8fd389e6f4afbcb9",
          "expectedSha256": "8d1f7ca32b05f9e85cedc5d025ea04efee60b581ae4effea8fd389e6f4afbcb9",
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "checkpoint",
          "artifact": "checkpoint/results.json",
          "sha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
          "expectedSha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
          "matches": true,
          "normalisation": null
        }
      ],
      "note": "Run in the existing, non-isolated Python 3.12.14 environment before the sensitivity audit."
    },
    {
      "id": "execution-check-20261022",
      "origin": "repository",
      "executedAt": "2026-10-22T18:59:19.720827+00:00",
      "recordedAt": null,
      "executionTimeSource": null,
      "timingNote": null,
      "environment": {
        "python": "3.12.14",
        "dependencies": {
          "pandas": "2.2.3",
          "numpy": "2.3.5",
          "scipy": "1.17.0",
          "openpyxl": "3.1.5"
        },
        "isolated": true,
        "pinned": true
      },
      "inputs": {
        "method": "All 12 remote inputs fetched sequentially into a brand-new isolated virtual environment and verified against input_manifest.json.",
        "verified": 12,
        "expected": 12
      },
      "artifacts": [
        {
          "analysis": "gse65145",
          "artifact": "gse65145/gse65145_bub1b_results.json",
          "sha256": "e71199b4f23c6315f02febfd18aac8b9bcd7e7f8bb05a7a7b624ad874d54d3b6",
          "expectedSha256": "e71199b4f23c6315f02febfd18aac8b9bcd7e7f8bb05a7a7b624ad874d54d3b6",
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "nmd",
          "artifact": "nmd/results/selected_candidates.csv",
          "sha256": "ad7fa784e6caf2f126c9730e4edaf7dc75f0ea2ad54208661de75555ede6ab9c",
          "expectedSha256": "ad7fa784e6caf2f126c9730e4edaf7dc75f0ea2ad54208661de75555ede6ab9c",
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "ptc",
          "artifact": "ptc/results/results.json",
          "sha256": "8d1f7ca32b05f9e85cedc5d025ea04efee60b581ae4effea8fd389e6f4afbcb9",
          "expectedSha256": "8d1f7ca32b05f9e85cedc5d025ea04efee60b581ae4effea8fd389e6f4afbcb9",
          "matches": true,
          "normalisation": null
        },
        {
          "analysis": "checkpoint",
          "artifact": "checkpoint/results.json",
          "sha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
          "expectedSha256": "d6be3833115ac368fffe185dfea0e42439e4c80e723b88c626ecb9b874073e6c",
          "matches": true,
          "normalisation": null
        }
      ],
      "note": "Recorded in the research repository. Successful computational reproduction under the stated input boundaries, not biological validation."
    }
  ],
  "values": [
    {
      "key": "figure-3d-wild-type",
      "label": "Figure 3D, Wild type: median NEBD-to-exit (40 cells)",
      "value": "515.01",
      "unit": "minutes",
      "source": {
        "label": "results.json (stackfire-20261024-python312)",
        "fileId": "stackfire-20261024-python312.checkpoint.results.json"
      }
    },
    {
      "key": "figure-3d-v200a-l205a",
      "label": "Figure 3D, V200A/L205A: median NEBD-to-exit (40 cells)",
      "value": "184.99",
      "unit": "minutes",
      "source": {
        "label": "results.json (stackfire-20261024-python312)",
        "fileId": "stackfire-20261024-python312.checkpoint.results.json"
      }
    },
    {
      "key": "figure-4b-wild-type",
      "label": "Figure 4B, Wild type: median NEBD-to-exit (27 cells)",
      "value": "650.00",
      "unit": "minutes",
      "source": {
        "label": "results.json (stackfire-20261024-python312)",
        "fileId": "stackfire-20261024-python312.checkpoint.results.json"
      }
    },
    {
      "key": "figure-4b-d137r",
      "label": "Figure 4B, D137R: median NEBD-to-exit (39 cells)",
      "value": "60.00",
      "unit": "minutes",
      "source": {
        "label": "results.json (stackfire-20261024-python312)",
        "fileId": "stackfire-20261024-python312.checkpoint.results.json"
      }
    },
    {
      "key": "figure-4f-wild-type",
      "label": "Figure 4F, Wild type: median NEBD-to-exit (40 cells)",
      "value": "455.00",
      "unit": "minutes",
      "source": {
        "label": "results.json (stackfire-20261024-python312)",
        "fileId": "stackfire-20261024-python312.checkpoint.results.json"
      }
    },
    {
      "key": "figure-4f-c132e",
      "label": "Figure 4F, C132E: median NEBD-to-exit (40 cells)",
      "value": "175.01",
      "unit": "minutes",
      "source": {
        "label": "results.json (stackfire-20261024-python312)",
        "fileId": "stackfire-20261024-python312.checkpoint.results.json"
      }
    }
  ],
  "crossChecks": [
    {
      "label": "Figure 4B wild type median, chart versus results.json",
      "archived": 650,
      "executed": 650,
      "tolerance": 0,
      "agrees": true
    },
    {
      "label": "Figure 4B D137R median, chart versus results.json",
      "archived": 60,
      "executed": 60,
      "tolerance": 0,
      "agrees": true
    }
  ],
  "files": [
    {
      "id": "script-checkpoint",
      "path": "track2/reproduction/checkpoint/reanalyze.py",
      "sha256": "f74760b9f52747f32352b83b3825ab2960392db41b7ecfb4bd267c5d706b4290",
      "bytes": 3517,
      "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/checkpoint/reanalyze.py",
      "href": "http://www.stackfire.com/api/biolab/analysis/files/script-checkpoint"
    },
    {
      "id": "input-manifest",
      "path": "track2/reproduction/input_manifest.json",
      "sha256": "71839d51558a1ff86c5c9c15ce6948f3a45e32eedd4e8b36f9e02ab7cc26bd46",
      "bytes": 4123,
      "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/input_manifest.json",
      "href": "http://www.stackfire.com/api/biolab/analysis/files/input-manifest"
    },
    {
      "id": "original-script-hashes",
      "path": "track2/reproduction/original_script_hashes.json",
      "sha256": "f1cf273298d00d7d7c92be82beb691c0e59e0186a3459a019c8752ff631c925f",
      "bytes": 476,
      "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/original_script_hashes.json",
      "href": "http://www.stackfire.com/api/biolab/analysis/files/original-script-hashes"
    },
    {
      "id": "requirements",
      "path": "track2/reproduction/requirements.txt",
      "sha256": "864ff6d6156a3101bdcb73aba6c3565763143808c81f408f0b8c2214c62c9080",
      "bytes": 57,
      "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/requirements.txt",
      "href": "http://www.stackfire.com/api/biolab/analysis/files/requirements"
    },
    {
      "id": "fetch-inputs",
      "path": "track2/reproduction/fetch_inputs.py",
      "sha256": "b12696b6387d5120d1ab49528576e7b90153cf098c29ecc06babb46797a30d99",
      "bytes": 1478,
      "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/fetch_inputs.py",
      "href": "http://www.stackfire.com/api/biolab/analysis/files/fetch-inputs"
    },
    {
      "id": "run-reanalyses",
      "path": "track2/reproduction/run_reanalyses.py",
      "sha256": "3ccbd544b2c119b0c2558ea4ea172bf37c4a100e569fe047b2f16d95274713ea",
      "bytes": 3460,
      "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/run_reanalyses.py",
      "href": "http://www.stackfire.com/api/biolab/analysis/files/run-reanalyses"
    },
    {
      "id": "stackfire-20261024-python313.execution.json",
      "path": "executions/stackfire-20261024-python313/execution.json",
      "sha256": "3e96a613c786bd72e045f0678e9f063aa551ab0821296efe28e84cc2432d3ff9",
      "bytes": 12164,
      "url": null,
      "href": "http://www.stackfire.com/api/biolab/analysis/files/stackfire-20261024-python313.execution.json"
    },
    {
      "id": "stackfire-20261024-python312.execution.json",
      "path": "executions/stackfire-20261024-python312/execution.json",
      "sha256": "1356584c9c89ff15209c9af82ba5b4e1385545f7e351dcd3763772de5b73a5b7",
      "bytes": 12223,
      "url": null,
      "href": "http://www.stackfire.com/api/biolab/analysis/files/stackfire-20261024-python312.execution.json"
    },
    {
      "id": "replay-check-20261024",
      "path": "track2/reproduction/robustness/verification/deterministic_replay_check_20261024.json",
      "sha256": "c6eb2ccde8c0fb3f297ecf715a2d1808a78a2eb6fdab5f3d7eeba0625527894a",
      "bytes": 1750,
      "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/robustness/verification/deterministic_replay_check_20261024.json",
      "href": "http://www.stackfire.com/api/biolab/analysis/files/replay-check-20261024"
    },
    {
      "id": "execution-check-20261022",
      "path": "track2/reproduction/execution_check.json",
      "sha256": "38ed7fccba9f110ac6a832a950f42a6c001d07666ec134a0e5e2f189653fbe55",
      "bytes": 1749,
      "url": "https://github.com/ivillafuerte/mva-hackathon-2026/blob/a434af99342f57aa9fde958535c173b82c315c2a/track2/reproduction/execution_check.json",
      "href": "http://www.stackfire.com/api/biolab/analysis/files/execution-check-20261022"
    }
  ],
  "limitations": [
    "D137R is not N1002K; no tested drug or exact patient genotype.",
    "Cells in the displayed representative replicate are not independent biological replicates.",
    "Mitotic-arrest duration under spindle challenge is not chromosome-segregation fidelity in unperturbed divisions."
  ],
  "whatItIsNot": "A control for checkpoint competence, not a drug-rescue result. No drug and no N1002K were tested."
}
