{
  "acceptance_criteria": [
    "five input SHA256 MATCH",
    "counts_layer_digest MATCH",
    "UMI 5630250337",
    "PCA 100 / graphs and Harmony 1:30 / k.param 30",
    "call exported harmony::RunHarmony; do not call harmony::RunHarmony.default or RunHarmony.Seurat",
    "SCIENTIFIC_GO remains false until separate execution approval"
  ],
  "canonical_stop": "WAITING_FOR_INVESTIGATOR_REVIEW",
  "cloud_environment_manifest_sha256": null,
  "contract_body_sha256": "103fc8ffcd90105b50606295bc5b14e65cc7da8357214aa209c7ae3f9d99280f",
  "excluded_scope": [
    "clustering",
    "resolution",
    "UMAP parameter selection",
    "annotation",
    "Ast membership freeze",
    "pseudobulk",
    "DE",
    "pathway",
    "PTSD/105-Channel fit",
    "diagnosis reads",
    "reuse of b0780b59-f106-4e0a-8795-12790307aab0",
    "VST on all 27982 genes then post-filter"
  ],
  "execution_runtime_release_id": "Seurat-5.3.0-harmony-1.2.4-R-4.5.1-QUALIFICATION_TARGET",
  "holds": [
    "input SHA256, cell order/set, Channel join, gene order, dimensions, nnz, or UMI mismatch",
    "counts_layer_digest mismatch or Seurat @x storage mutated: HOLD_COUNTS_LAYER_MUTATED",
    "VST not eligible-only first, or Channel/consensus HVG is not 2000 unique eligible features",
    "PCA is not 100, graphs/Harmony leave 1:30, graph names overwrite, or primary is not sealed first",
    "Harmony error, nonzero status, user stop, or no confirmed convergence: keep sealed primary, dual-graph delivery HOLD, do not add iterations",
    "OOM, disk, checkpoint failure, or 70 full objects coresident",
    "clustering, resolution, UMAP, annotation, Ast membership, pseudobulk, DE, or diagnosis use"
  ],
  "method_identity": "p2-upstream-dual-graph/v1.1b",
  "objective": "On the preflight-validated 625220/70 universe, freeze consensus HVG, ScaleData, PCA 100, seal uncorrected primary NN/SNN, run Harmony(Channel) sensitivity, seal sensitivity NN/SNN. Do not cluster.",
  "output_assets": [],
  "parent_contract_body_sha256": "83bde8a9fb9eb4a853d10b7b9170a02bc1ffd83dd9a25af3bcdda36679387e10",
  "project_id": "MDD_DLPFC_ANALYSIS_WORKSPACE",
  "record_checkpoint_id": null,
  "resolved_inputs": [
    {
      "alias_zh": "P2 计数矩阵（只公布逻辑名与哈希）",
      "asset_id": "P2_CSR_COUNT_MATRIX",
      "execution_location": "cloud",
      "path_withheld": true,
      "restricted": false,
      "role": "counts",
      "selected_replica": "SSH_CLOUD",
      "sha256": "79876eda346f3a6c325a2cb33de9f35cfc2d276018b79462bd749a957b279922",
      "status": "DECLARED"
    },
    {
      "alias_zh": "P2 细胞序",
      "asset_id": "P2_RNA_CELLNAMES",
      "execution_location": "cloud",
      "path_withheld": true,
      "restricted": false,
      "role": "cell_order",
      "selected_replica": "SSH_CLOUD",
      "sha256": "3d274bcc16ef0d57014e4c2a47bf47e7f83bdf579f2fc8d8be349c17a9b7a9ba",
      "status": "DECLARED"
    },
    {
      "alias_zh": "P2 基因序",
      "asset_id": "P2_RNA_GENENAMES",
      "execution_location": "cloud",
      "path_withheld": true,
      "restricted": false,
      "role": "gene_order",
      "selected_replica": "SSH_CLOUD",
      "sha256": "ba827830af502d16a9aa4dbc80a31bb61bc5b7ec440698171d78bfc5af1fee62",
      "status": "DECLARED"
    },
    {
      "alias_zh": "P2 MDD+CON 聚类队列（625,220 / 70 Channels）",
      "asset_id": "P2_MDD_CON_CLUSTERING_COHORT_625220",
      "execution_location": "cloud",
      "path_withheld": true,
      "restricted": false,
      "role": "universe",
      "selected_replica": "SSH_CLOUD",
      "sha256": "ffc9dcc707452e5b49ebd12132d3b2bff2143b1871bb59bbb1f45536bcd1e3f4",
      "status": "DECLARED"
    },
    {
      "alias_zh": "P2 RNA 基因身份台账",
      "asset_id": "P2_RNA_GENE_IDENTITY_LEDGER",
      "execution_location": "cloud",
      "path_withheld": true,
      "restricted": false,
      "role": "gene_identity",
      "selected_replica": "SSH_CLOUD",
      "sha256": "30daac6ee5a4319f6c1483227ec6b1af75bcadbb5b5e66f0ca8536793a5b6997",
      "status": "DECLARED"
    }
  ],
  "review_schema": "p2.contract_review_projection.v1",
  "runtime_manifest_sha256": null,
  "schema": "p2.review_public_contract.v1",
  "schema_version": "p2.upstream_dual_graph_execution_contract_candidate.v1.1b",
  "scientific_go": false,
  "scientific_parameters": {
    "counts_layer_digest": "120cf48fb8bd237200b0e464a7defc9b964925e3f0c93ad063dc00004565f91f",
    "dims": "1:30",
    "harmony_call": "harmony::RunHarmony(data_mat, meta_data, vars_use, theta, sigma, lambda, nclust, max_iter, early_stop, ncores, plot_convergence, return_object, verbose, .options)",
    "k_param": 30,
    "n_channel": 70,
    "n_genes": 27982,
    "n_nuclei": 625220,
    "nclust": 100,
    "pca_npcs": 100,
    "plot_convergence": false,
    "primary": "uncorrected PCA graph",
    "requested_theta": null,
    "sensitivity": "Harmony(Channel)",
    "subset_nnz": 1875045667,
    "umi_global": 5630250337
  },
  "scientific_scope": [
    "reuse preflight-validated load identities",
    "single LogNormalize",
    "sequential Channel VST 2000 on eligible-only temp objects and SelectIntegrationFeatures 2000",
    "ScaleData on frozen HVG",
    "RunPCA npcs=100",
    "primary uncorrected PCA graphs sealed before Harmony",
    "Harmony(Channel) on PC 1:30 via exported harmony::RunHarmony",
    "sensitivity graphs",
    "resource and parameter logging"
  ],
  "task_id": "5792cc3d-0a4b-4880-ac51-e7cb304e6954",
  "test_only": false,
  "title": "P2_MDD_CON_SEURAT_UPSTREAM_DUAL_GRAPH_BUILD",
  "webpage_is_not_scientific_authorization": true
}
