{
  "schema": "nmd-vcell-analysis-attempt-ledger/1.1",
  "release": "multidisease_release_v02",
  "generated_at": "2026-08-05T09:03:39.361928+00:00",
  "policy": "Failed or transport-aborted attempts are retained and excluded from claims; only a complete run may populate the release summary. Post-run serialization and figure-layout operations must be hash-bound, table-preserving and separately audited.",
  "attempts": [
    {
      "schema": "nmd-vcell-analysis-attempt/1.0",
      "release": "multidisease_release_v02",
      "attempt": 1,
      "status": "FAILED_PARTIAL_OUTPUTS_QUARANTINED",
      "stage": "FSHD post-QC/post-UMAP and post gene-level pseudobulk; before module effects, figures, SMA analysis, unified summary, and release completion",
      "error": "unable to find an inherited method for function 'cpm' for signature 'DGEList'",
      "cause": "The cpm symbol resolved to a masked S4 generic instead of edgeR::cpm after the single-cell packages were attached.",
      "results_used_for_claims": false,
      "partial_outputs": [
        "FSHD sample QC",
        "FSHD marker-defined cluster summaries",
        "FSHD gene-level line-blocked pseudobulk effects",
        "FSHD prespecified-candidate effect subset"
      ],
      "candidate_ranking_performed": false,
      "remediation_scope": "Explicit edgeR and limma namespace qualification plus a dispatch self-test.",
      "analysis_design_changes": [],
      "threshold_changes": [],
      "candidate_rule_changes": []
    },
    {
      "schema": "nmd-vcell-analysis-attempt/1.0",
      "release": "multidisease_release_v02",
      "attempt": 2,
      "status": "ABORTED_TRANSPORT_SESSION",
      "stage": "FSHD sample-wise QC completed; merged-object integration had not emitted its UMAP checkpoint",
      "observed_exit": "R process and SSH-owned process tree disappeared without an R error, OOM event, core dump, or completion marker.",
      "results_used_for_claims": false,
      "new_effect_outputs_completed": false,
      "candidate_ranking_performed": false,
      "remediation_scope": "Run the identical analysis in a detached setsid/nohup job so SSH transport lifetime cannot terminate R.",
      "analysis_design_changes": [],
      "threshold_changes": [],
      "candidate_rule_changes": []
    },
    {
      "schema": "nmd-vcell-analysis-attempt/1.0",
      "release": "multidisease_release_v02",
      "attempt": 3,
      "status": "FAILED_PARTIAL_OUTPUTS_QUARANTINED",
      "stage": "FSHD post-QC/post-UMAP, gene-level pseudobulk, module effects, metadata export, and first figure-device initialization; before complete FSHD figure family, SMA analysis, unified summary, and release completion",
      "error": "ggplot2 could not find UMAP_1 while computing the first FSHD embedding layer",
      "cause": "The installed Seurat version emitted lower-case reduction columns (umap_1 and umap_2), while the plotting contract expected canonical upper-case UMAP_1 and UMAP_2 names.",
      "results_used_for_claims": false,
      "partial_outputs": [
        "FSHD sample QC",
        "FSHD marker-defined cluster summaries",
        "FSHD gene-level line-blocked pseudobulk effects",
        "FSHD prespecified-candidate effect subset",
        "FSHD module effects and sample module scores",
        "FSHD cell metadata and embeddings",
        "incomplete FSHD PDF device output"
      ],
      "candidate_ranking_performed": false,
      "remediation_scope": "Canonicalize reduction-coordinate column names at the plotting/export boundary and add a dedicated self-test.",
      "analysis_design_changes": [],
      "threshold_changes": [],
      "candidate_rule_changes": []
    },
    {
      "schema": "nmd-vcell-analysis-attempt/1.0",
      "release": "multidisease_release_v02",
      "attempt": 4,
      "status": "FAILED_PARTIAL_OUTPUTS_QUARANTINED",
      "stage": "FSHD analysis and figure family complete; SMA sample QC, integration, marker annotation, line-level gene effects and module effects complete; before SMA composition/state effects, cell-metadata export, SMA figures, unified Figure 9, summary and release completion",
      "error": "SMA composition-stage merge failed because the requested biological_line key was not uniquely valid",
      "cause": "A generic data-frame merge was used where the design contract requires a unique biological-line-to-genotype map. The same run also exposed rank-deficient sample-batch coefficients in the visualization-only SMA PCA correction because technical libraries are nested within biological lines.",
      "results_used_for_claims": false,
      "partial_outputs": [
        "complete FSHD tables and unrefined figure family",
        "SMA sample QC and descriptive cluster summaries",
        "SMA line-level directional gene and module effects",
        "incomplete three-row SMA candidate subset"
      ],
      "candidate_ranking_performed": false,
      "remediation_scope": "Replace generic SMA merges with a validated one-to-one biological-line map; replace rank-deficient nested-batch regression with within-line technical-library PC centering that preserves line centroids; add direct self-tests.",
      "visualization_only_changes": [
        "SMA PCA geometry uses within-line technical-library centering instead of a rank-deficient sample-batch design"
      ],
      "analysis_design_changes": [],
      "threshold_changes": [],
      "candidate_rule_changes": []
    },
    {
      "schema": "nmd-vcell-analysis-attempt/1.0",
      "release": "multidisease_release_v02",
      "attempt": 5,
      "status": "FAILED_PARTIAL_OUTPUTS_QUARANTINED",
      "stage": "FSHD analysis and unrefined figure family complete; SMA sample QC, integration, marker scoring, line-level gene effects and module effects complete; before valid SMA composition/state effects, cell-metadata export, SMA figures, unified Figure 9, summary and release completion",
      "error": "SMA state-eligibility aggregation failed because marker_state was absent after every marker-state assignment resolved to missing",
      "cause": "Seurat 5 prefixed numeric AverageExpression cluster columns as g0/g1/... while seurat_clusters retained 0/1/... identifiers. The unvalidated lookup therefore assigned NA to every cell state, produced empty composition tables and failed at the first formula that required marker_state.",
      "formal_log_sha256": "6ffcb207aedbf858b94e5adc707e1e6d6d34e11b3d149d33214681c094f22de6",
      "script_snapshot_sha256": "01ff22c10a26511e4be70028b0e59fc38c47b483c5d68f46be7ffe2d6caacf76",
      "results_used_for_claims": false,
      "partial_outputs": [
        "complete FSHD tables and unrefined figure family",
        "SMA sample QC and descriptive cluster score table",
        "SMA line-level directional gene and module effects",
        "invalid empty SMA composition tables"
      ],
      "candidate_ranking_performed": false,
      "remediation_scope": "Canonicalize Seurat-prefixed AverageExpression cluster IDs against object cluster IDs before marker-state lookup; hard-fail on any missing assignment or empty composition matrix; add direct self-tests.",
      "visualization_only_changes": [],
      "analysis_design_changes": [],
      "threshold_changes": [],
      "candidate_rule_changes": []
    },
    {
      "schema": "nmd-vcell-analysis-attempt/1.0",
      "release": "multidisease_release_v02",
      "attempt": 6,
      "status": "COMPLETE",
      "transport": "detached setsid/nohup job",
      "formal_log": "logs/formal_run_attempt6.log",
      "formal_log_sha256": "cc8d54cbaa1a7e7056887390ad0120a32a628e2c1e7a0a888c1c0d15df177318",
      "candidate_table_finalization": {
        "path": "candidate_table_finalization.json",
        "log": "logs/formal_run_attempt6_candidate_table_finalization.log",
        "log_sha256": "6221d8876914e5abe0c664ac3a63e904bcd4148cedb3fed12efcf449af405581",
        "fshd_expected_rows": 24,
        "fshd_filtered_rows": 16,
        "sma_expected_rows": 3,
        "sma_filtered_rows": 0
      },
      "figure_refinement": {
        "path": "figure_refinement.json",
        "log": "logs/formal_run_attempt6_figure_refinement.log",
        "log_sha256": "623a755e1d2cb01828271f671be2eceaeec4ca740733bbab270882b931a00907",
        "fshd_cells_plotted": 30000,
        "sma_cells_plotted": 30000,
        "statistical_tables_modified": false
      },
      "qc_tsv_serialization_repair": {
        "path": "qc_tsv_serialization_repair.json",
        "log": "logs/formal_run_attempt6_qc_serialization_repair.log",
        "log_sha256": "9d0a4113ec30e2154e6cdba40831573600ab4855da971f7ed49c5f0250bdf203",
        "scope": "serialization only",
        "statistical_tables_modified": false,
        "files": [
          {
            "file": "fshd_gse303359_sample_qc.tsv",
            "expected_columns": 20,
            "pre_repair_physical_data_lines": 24,
            "post_repair_logical_rows": 8,
            "continuation_lines_folded": 16,
            "nonfinal_fields_modified": false,
            "pre_repair_sha256": "c56c069bf941d2e53826245fe6c31fa27f0987f1624da27f21c5bd3ca1752253",
            "post_repair_sha256": "f74f9161a0c6a0b5040929b9c41cd194fe7c4c793b08346f19ea22f6e657361c",
            "archived_source": "results/multidisease_release_v02/logs/formal_run_attempt6_qc_serialization_pre_repair/fshd_gse303359_sample_qc.tsv.malformed"
          },
          {
            "file": "sma_gse290980_sample_qc.tsv",
            "expected_columns": 20,
            "pre_repair_physical_data_lines": 24,
            "post_repair_logical_rows": 8,
            "continuation_lines_folded": 16,
            "nonfinal_fields_modified": false,
            "pre_repair_sha256": "d2426fd46d84b06ea6685825aec00fe4225673310a84e5931b37782e16c55793",
            "post_repair_sha256": "7781178c37fdfa7d9ed40baf449b5486d64ab150be3cfbcc15581e48d092676b",
            "archived_source": "results/multidisease_release_v02/logs/formal_run_attempt6_qc_serialization_pre_repair/sma_gse290980_sample_qc.tsv.malformed"
          }
        ]
      },
      "results_used_for_claims": true,
      "datasets": [
        "GSE290980",
        "GSE303359"
      ],
      "candidate_promotions": 0,
      "analysis_design_changes_from_lock": [],
      "threshold_changes_from_lock": [],
      "candidate_rule_changes_from_lock": []
    }
  ]
}
