P2 resolution calibration (phenotype-blind, MDD+CON 625220)

Review state: WAITING_FOR_INVESTIGATOR_REVIEW. test_only=False.

Objective

Determine a phenotype-blind Leiden resolution range and selection basis for later P2 clustering. This freeze is not execution approval.

Scientific scope

Accepted clustering universe = 625220 MDD+CON nuclei / 70 Channels. Canonical clustering implementation is Pegasus only; Worker may not substitute Scanpy. Registered Pegasus kwargs: robust genes; log-norm with counts retained; HVG n_top=2000 batch=Channel; pca n_components=50; Harmony attrs=Channel; neighbors K=100; Leiden r from R_cal only. UMAP is sanity only. Grid R_cal = [0.4, 0.6, 1.0, 1.2, 1.6, 1.8, 2.4] with seeds [0, 1, 2]. G3b operational set {0.6, 1.2, 1.8} is included; author Leiden resolution remains NOT_FOUND. Admissible range uses operational guardrails (collapse n_clusters<7; over-fragment n_clusters>80 or >25% clusters size<50 or seed-ARI median<0.70). If lowest r=0.4 or highest r=2.4 remains admissible, mark RANGE_BOUNDARY_NOT_BRACKETED and do not claim a complete admissible range; recommend a later grid-extension contract. If any required grid point is unfinished, report completed diagnostics only and mark the calibration HOLD/INCOMPLETE; do not claim a complete admissible range. Do not declare one biological true resolution. Do not assign class labels. Marker-panel gaps are diagnostic distributions only (no GAP_WEAK cutoff) and run only if a frozen public panel identity/hash is resolved; otherwise HOLD_NOT_RUN.

Out of scope

Do not run clustering GO, annotation, unblind, DE, pathway, PTSD inclusion, P1 C2 copy, OPEN_01 auto-approval, production ENSG remapping, or scientific GO change. Do not use diagnosis, AST count-max, Channel balance, P1 concordance, 241/DEG, or Hwang ST2 AST fraction as selection targets. Do not use P1 8-gene panel. Do not open the restricted diagnosis asset. UMAP is sanity only and does not define identity. Do not execute archived contract a5aebb33… on this runtime.

Identity

Resolved inputs

assetrolereplicasiteaccesssha256bytesstatus
P2 MDD+CON 聚类队列(625,220 / 70 Channels)analysis_cohortLOCALLOCALlocal_readffc9dcc707452e5b49ebd12132d3b2bff2143b1871bb59bbb1f45536bcd1e3f421882716MATCH
P2 计数矩阵(只公布逻辑名与哈希)count_matrix_csrSSH_CLOUDSSH_CLOUDmetadata_only79876eda346f3a6c325a2cb33de9f35cfc2d276018b79462bd749a957b2799225948837770MATCH

Scientific parameters

{
  "calibration_spec": {
    "author_leiden_resolution": "NOT_FOUND",
    "design_reference": "archived TASK_CONTRACT_DRAFT_V0_2_RICHER_METRICS.md used as planner input only; not executable",
    "forbidden_selection_targets": [
      "diagnosis",
      "AST_count_max",
      "channel_balance_optimization",
      "P1_C2_concordance",
      "DEG_241",
      "Hwang_ST2_AST_fraction",
      "UMAP_aesthetics"
    ],
    "g3b_operational_subset": [
      0.6,
      1.2,
      1.8
    ],
    "grid": [
      0.4,
      0.6,
      1.0,
      1.2,
      1.6,
      1.8,
      2.4
    ],
    "guardrails": {
      "GAP_WEAK": "DELETED",
      "admissible_set_size_0_or_1": "HOLD",
      "collapse_if_n_clusters_lt": 7,
      "incomplete_grid": {
        "claim_complete_admissible_range": false,
        "if_any_required_grid_point_unfinished": "HOLD/INCOMPLETE",
        "may_report_completed_diagnostics": true
      },
      "marker_separability": "diagnostic distribution only; no pass/fail cutoff; requires frozen public panel identity/hash",
      "overfragment_if_frac_clusters_size_lt_50_gt": 0.25,
      "overfragment_if_n_clusters_gt": 80,
      "overfragment_if_seed_ari_median_lt": 0.7,
      "range_boundary": {
        "claim_complete_admissible_range": false,
        "follow_up": "later grid-extension contract",
        "highest_r": 2.4,
        "if_lowest_or_highest_still_admissible": "RANGE_BOUNDARY_NOT_BRACKETED",
        "lowest_r": 0.4
      }
    },
    "harmony_covariate": "Channel",
    "hvg_batch": "Channel",
    "hvg_n_top": 2000,
    "implementation": {
      "family": "Pegasus",
      "harmony": {
        "batch": "Channel"
      },
      "hvg": {
        "batch": "Channel",
        "fn": "highly_variable_features",
        "n_top": 2000
      },
      "log_norm": "pg.log_norm; raw counts retained in a separate layer",
      "neighbors": {
        "K": 100,
        "use_cache": false
      },
      "no_live_library_defaults": true,
      "no_scanpy_substitute": true,
      "pca": {
        "n_components": 50
      },
      "required_library": "Pegasus",
      "robust_genes": "pg.identify_robust_genes; keep var.robust",
      "worker_may_choose_scanpy": false
    },
    "k_neighbors": 100,
    "marker_separability": {
      "do_not_search_or_replace": true,
      "reason": "no frozen public class-marker panel asset_id with identity/hash in Record Core; P1 panels are not requested and are not substitutes",
      "status": "HOLD_NOT_RUN"
    },
    "n_pcs": 50,
    "ptsd_included": false,
    "seeds": [
      0,
      1,
      2
    ],
    "universe_asset_id": "P2_MDD_CON_CLUSTERING_COHORT_625220",
    "universe_n_channels": 70,
    "universe_n_nuclei": 625220
  },
  "csr_axis_semantics": null
}

Acceptance criteria

HOLD / stop

canonical_stop=WAITING_FOR_INVESTIGATOR_REVIEW

Outputs

not declared

Machine-readable sources: projection.json · contract.json · manifest.json

Technical JSON (same objects as the files above)
{
  "contract": {
    "acceptance_criteria": [
      "Every r in R_cal finishes or is explicit HOLD",
      "Diagnosis remains sealed",
      "PTSD nuclei remain excluded",
      "Original ENSG row order unchanged",
      "No AST_MEMBERSHIP_FREEZE",
      "No single privileged resolution declared as biological truth",
      "Admissible set size is not 0 or 1, or the report is HOLD",
      "IMPLEMENTATION_CHECK records Pegasus with registered kwargs (no Scanpy substitute, no live library defaults)",
      "If r=0.4 or r=2.4 is admissible, report RANGE_BOUNDARY_NOT_BRACKETED and do not claim a complete range",
      "If any required grid point is unfinished, calibration is HOLD/INCOMPLETE and does not claim a complete range",
      "marker_separability is HOLD_NOT_RUN unless a frozen public panel identity/hash was resolved before freeze"
    ],
    "canonical_stop": "WAITING_FOR_INVESTIGATOR_REVIEW",
    "cloud_environment_manifest_sha256": "0fe8e83f3513bd9766faae0b7175fb393bfbe160272798b7089fbf4890c2de7c",
    "contract_body_sha256": "08936c2ae760646cd5910244f6f0bced17299e12b84affc1de89cb6077d4bb67",
    "excluded_scope": "Do not run clustering GO, annotation, unblind, DE, pathway, PTSD inclusion, P1 C2 copy, OPEN_01 auto-approval, production ENSG remapping, or scientific GO change. Do not use diagnosis, AST count-max, Channel balance, P1 concordance, 241/DEG, or Hwang ST2 AST fraction as selection targets. Do not use P1 8-gene panel. Do not open the restricted diagnosis asset. UMAP is sanity only and does not define identity. Do not execute archived contract a5aebb33… on this runtime.",
    "execution_runtime_release_id": "0.3.2-rc4-reviewpub-v2",
    "holds": [
      "OPEN_01 UNION_REMOVE remains unapproved; this task does not decide Round-1 merge",
      "Public class-marker panel has no frozen Record Core identity/hash; marker_separability = HOLD_NOT_RUN; do not search or substitute P1 panels",
      "G2 specimen HOLD remains; this task is nucleus-level geometry only; 70 Channels are not 70 verified specimens",
      "RNA gene identity ledger is audit-only; no remap",
      "CALIBRATION/CLUSTERING/ANNOTATION Record Core flags remain NOT_AUTHORIZED until a later approved execution actually records them",
      "CSR matrix is CLOUD_AUTHORITATIVE; execution must be on the registered cloud host after approval",
      "Archived frozen contract b90b5917-… / a5aebb33… is immutable and not executable on this runtime"
    ],
    "method_identity": "p2-task-contract/0.3.2-rc4",
    "objective": "Determine a phenotype-blind Leiden resolution range and selection basis for later P2 clustering. This freeze is not execution approval.",
    "output_assets": [],
    "project_id": "P2_HWANG",
    "record_checkpoint_id": "ckpt-1d9b0900-de09-4037-aaad-36d77ce380b9",
    "resolved_inputs": [
      {
        "access_mode": "local_read",
        "alias_zh": "P2 MDD+CON 聚类队列(625,220 / 70 Channels)",
        "asset_id": "P2_MDD_CON_CLUSTERING_COHORT_625220",
        "bytes": 21882716,
        "execution_location": "local",
        "execution_site": "LOCAL",
        "object_identity": null,
        "object_identity_status": "not_applicable",
        "path_withheld": true,
        "restricted": false,
        "restricted_class": "none",
        "role": "analysis_cohort",
        "selected_replica": "LOCAL",
        "sha256": "ffc9dcc707452e5b49ebd12132d3b2bff2143b1871bb59bbb1f45536bcd1e3f4",
        "status": "MATCH"
      },
      {
        "access_mode": "metadata_only",
        "alias_zh": "P2 计数矩阵(只公布逻辑名与哈希)",
        "asset_id": "P2_CSR_COUNT_MATRIX",
        "bytes": 5948837770,
        "execution_location": "cloud",
        "execution_site": "SSH_CLOUD",
        "object_identity": null,
        "object_identity_status": "not_applicable",
        "path_withheld": true,
        "restricted": false,
        "restricted_class": "none",
        "role": "count_matrix_csr",
        "selected_replica": "SSH_CLOUD",
        "sha256": "79876eda346f3a6c325a2cb33de9f35cfc2d276018b79462bd749a957b279922",
        "status": "MATCH"
      }
    ],
    "review_schema": "p2.contract_review_projection.v1",
    "runtime_manifest_sha256": "db6674929f862ff6df3134ca04ca74e6dea84e21a001a4b04e120f0bee9fff34",
    "schema": "p2.review_public_contract.v1",
    "schema_version": "p2-task-contract/0.3.2-rc4",
    "scientific_go": false,
    "scientific_parameters": {
      "calibration_spec": {
        "author_leiden_resolution": "NOT_FOUND",
        "design_reference": "archived TASK_CONTRACT_DRAFT_V0_2_RICHER_METRICS.md used as planner input only; not executable",
        "forbidden_selection_targets": [
          "diagnosis",
          "AST_count_max",
          "channel_balance_optimization",
          "P1_C2_concordance",
          "DEG_241",
          "Hwang_ST2_AST_fraction",
          "UMAP_aesthetics"
        ],
        "g3b_operational_subset": [
          0.6,
          1.2,
          1.8
        ],
        "grid": [
          0.4,
          0.6,
          1.0,
          1.2,
          1.6,
          1.8,
          2.4
        ],
        "guardrails": {
          "GAP_WEAK": "DELETED",
          "admissible_set_size_0_or_1": "HOLD",
          "collapse_if_n_clusters_lt": 7,
          "incomplete_grid": {
            "claim_complete_admissible_range": false,
            "if_any_required_grid_point_unfinished": "HOLD/INCOMPLETE",
            "may_report_completed_diagnostics": true
          },
          "marker_separability": "diagnostic distribution only; no pass/fail cutoff; requires frozen public panel identity/hash",
          "overfragment_if_frac_clusters_size_lt_50_gt": 0.25,
          "overfragment_if_n_clusters_gt": 80,
          "overfragment_if_seed_ari_median_lt": 0.7,
          "range_boundary": {
            "claim_complete_admissible_range": false,
            "follow_up": "later grid-extension contract",
            "highest_r": 2.4,
            "if_lowest_or_highest_still_admissible": "RANGE_BOUNDARY_NOT_BRACKETED",
            "lowest_r": 0.4
          }
        },
        "harmony_covariate": "Channel",
        "hvg_batch": "Channel",
        "hvg_n_top": 2000,
        "implementation": {
          "family": "Pegasus",
          "harmony": {
            "batch": "Channel"
          },
          "hvg": {
            "batch": "Channel",
            "fn": "highly_variable_features",
            "n_top": 2000
          },
          "log_norm": "pg.log_norm; raw counts retained in a separate layer",
          "neighbors": {
            "K": 100,
            "use_cache": false
          },
          "no_live_library_defaults": true,
          "no_scanpy_substitute": true,
          "pca": {
            "n_components": 50
          },
          "required_library": "Pegasus",
          "robust_genes": "pg.identify_robust_genes; keep var.robust",
          "worker_may_choose_scanpy": false
        },
        "k_neighbors": 100,
        "marker_separability": {
          "do_not_search_or_replace": true,
          "reason": "no frozen public class-marker panel asset_id with identity/hash in Record Core; P1 panels are not requested and are not substitutes",
          "status": "HOLD_NOT_RUN"
        },
        "n_pcs": 50,
        "ptsd_included": false,
        "seeds": [
          0,
          1,
          2
        ],
        "universe_asset_id": "P2_MDD_CON_CLUSTERING_COHORT_625220",
        "universe_n_channels": 70,
        "universe_n_nuclei": 625220
      },
      "csr_axis_semantics": null
    },
    "scientific_scope": "Accepted clustering universe = 625220 MDD+CON nuclei / 70 Channels. Canonical clustering implementation is Pegasus only; Worker may not substitute Scanpy. Registered Pegasus kwargs: robust genes; log-norm with counts retained; HVG n_top=2000 batch=Channel; pca n_components=50; Harmony attrs=Channel; neighbors K=100; Leiden r from R_cal only. UMAP is sanity only. Grid R_cal = [0.4, 0.6, 1.0, 1.2, 1.6, 1.8, 2.4] with seeds [0, 1, 2]. G3b operational set {0.6, 1.2, 1.8} is included; author Leiden resolution remains NOT_FOUND. Admissible range uses operational guardrails (collapse n_clusters<7; over-fragment n_clusters>80 or >25% clusters size<50 or seed-ARI median<0.70). If lowest r=0.4 or highest r=2.4 remains admissible, mark RANGE_BOUNDARY_NOT_BRACKETED and do not claim a complete admissible range; recommend a later grid-extension contract. If any required grid point is unfinished, report completed diagnostics only and mark the calibration HOLD/INCOMPLETE; do not claim a complete admissible range. Do not declare one biological true resolution. Do not assign class labels. Marker-panel gaps are diagnostic distributions only (no GAP_WEAK cutoff) and run only if a frozen public panel identity/hash is resolved; otherwise HOLD_NOT_RUN.",
    "task_id": "79e985ee-db03-49bb-a9b7-027caf8b3928",
    "test_only": false,
    "title": "P2 resolution calibration (phenotype-blind, MDD+CON 625220)",
    "webpage_is_not_scientific_authorization": true
  },
  "projection": {
    "acceptance_criteria": [
      "Every r in R_cal finishes or is explicit HOLD",
      "Diagnosis remains sealed",
      "PTSD nuclei remain excluded",
      "Original ENSG row order unchanged",
      "No AST_MEMBERSHIP_FREEZE",
      "No single privileged resolution declared as biological truth",
      "Admissible set size is not 0 or 1, or the report is HOLD",
      "IMPLEMENTATION_CHECK records Pegasus with registered kwargs (no Scanpy substitute, no live library defaults)",
      "If r=0.4 or r=2.4 is admissible, report RANGE_BOUNDARY_NOT_BRACKETED and do not claim a complete range",
      "If any required grid point is unfinished, calibration is HOLD/INCOMPLETE and does not claim a complete range",
      "marker_separability is HOLD_NOT_RUN unless a frozen public panel identity/hash was resolved before freeze"
    ],
    "approval_requirement": {
      "authorized_scientific_step": "P2_RESOLUTION_CALIBRATION",
      "channel": "existing trusted approval envelope; not this webpage",
      "required": true
    },
    "contract_body_sha256": "08936c2ae760646cd5910244f6f0bced17299e12b84affc1de89cb6077d4bb67",
    "contract_frozen_at": "2026-09-20T17:58:20.883550Z",
    "excluded_scope": "Do not run clustering GO, annotation, unblind, DE, pathway, PTSD inclusion, P1 C2 copy, OPEN_01 auto-approval, production ENSG remapping, or scientific GO change. Do not use diagnosis, AST count-max, Channel balance, P1 concordance, 241/DEG, or Hwang ST2 AST fraction as selection targets. Do not use P1 8-gene panel. Do not open the restricted diagnosis asset. UMAP is sanity only and does not define identity. Do not execute archived contract a5aebb33… on this runtime.",
    "execution_location": "cloud",
    "expected_outputs": [
      "calibration_metrics.tsv (r, seed, n_clusters, size stats, modularity, Channel entropy, technical Cramer's V, over-fragmentation/collapse flags)",
      "pairwise_ari.tsv (seed ARI and adjacent-r ARI)",
      "marker_separability.tsv = HOLD_NOT_RUN (no frozen public panel identity in Record Core)",
      "IMPLEMENTATION_CHECK.json (Pegasus required; n_top=2000, batch=Channel, n_components=50, Harmony Channel, K=100)",
      "UNIVERSE_CHECK.json (n=625220, n_channels=70, PTSD=false, diagnosis_columns=none)",
      "CALIBRATION_REPORT.md (admissible range only if complete and bracketed; else HOLD/INCOMPLETE and/or RANGE_BOUNDARY_NOT_BRACKETED; no AST membership; no final r)"
    ],
    "frozen_contract_hash": "08936c2ae760646cd5910244f6f0bced17299e12b84affc1de89cb6077d4bb67",
    "holds": [
      "OPEN_01 UNION_REMOVE remains unapproved; this task does not decide Round-1 merge",
      "Public class-marker panel has no frozen Record Core identity/hash; marker_separability = HOLD_NOT_RUN; do not search or substitute P1 panels",
      "G2 specimen HOLD remains; this task is nucleus-level geometry only; 70 Channels are not 70 verified specimens",
      "RNA gene identity ledger is audit-only; no remap",
      "CALIBRATION/CLUSTERING/ANNOTATION Record Core flags remain NOT_AUTHORIZED until a later approved execution actually records them",
      "CSR matrix is CLOUD_AUTHORITATIVE; execution must be on the registered cloud host after approval",
      "Archived frozen contract b90b5917-… / a5aebb33… is immutable and not executable on this runtime"
    ],
    "kind": "PRE_EXECUTION_REVIEW",
    "loop": "0.3.2-rc4",
    "not_a_commit": true,
    "not_a_scientific_result": true,
    "objective": "Determine a phenotype-blind Leiden resolution range and selection basis for later P2 clustering. This freeze is not execution approval.",
    "output_assets": [],
    "policy_summary": "execution_location=cloud; network=cloud_registered_ssh_only; tools=python, pegasus",
    "project_id": "P2_HWANG",
    "recording_effects": {
      "minimum": [
        "task_receipt"
      ],
      "on_failure": [
        "task_receipt"
      ],
      "on_success": [
        "task_receipt"
      ]
    },
    "resolved_logical_assets": [
      {
        "access_mode": "local_read",
        "alias_zh": "P2 MDD+CON 聚类队列(625,220 / 70 Channels)",
        "asset_id": "P2_MDD_CON_CLUSTERING_COHORT_625220",
        "bytes": 21882716,
        "execution_location": "local",
        "execution_site": "LOCAL",
        "object_identity": null,
        "object_identity_status": "not_applicable",
        "path_withheld": true,
        "restricted": false,
        "restricted_class": "none",
        "role": "analysis_cohort",
        "selected_replica": "LOCAL",
        "sha256": "ffc9dcc707452e5b49ebd12132d3b2bff2143b1871bb59bbb1f45536bcd1e3f4",
        "status": "MATCH"
      },
      {
        "access_mode": "metadata_only",
        "alias_zh": "P2 计数矩阵(只公布逻辑名与哈希)",
        "asset_id": "P2_CSR_COUNT_MATRIX",
        "bytes": 5948837770,
        "execution_location": "cloud",
        "execution_site": "SSH_CLOUD",
        "object_identity": null,
        "object_identity_status": "not_applicable",
        "path_withheld": true,
        "restricted": false,
        "restricted_class": "none",
        "role": "count_matrix_csr",
        "selected_replica": "SSH_CLOUD",
        "sha256": "79876eda346f3a6c325a2cb33de9f35cfc2d276018b79462bd749a957b279922",
        "status": "MATCH"
      }
    ],
    "review_state": "WAITING_FOR_INVESTIGATOR_REVIEW",
    "reviewed_contract_hash": "08936c2ae760646cd5910244f6f0bced17299e12b84affc1de89cb6077d4bb67",
    "schema": "p2.contract_review_projection.v1",
    "scientific_go": false,
    "scientific_scope": "Accepted clustering universe = 625220 MDD+CON nuclei / 70 Channels. Canonical clustering implementation is Pegasus only; Worker may not substitute Scanpy. Registered Pegasus kwargs: robust genes; log-norm with counts retained; HVG n_top=2000 batch=Channel; pca n_components=50; Harmony attrs=Channel; neighbors K=100; Leiden r from R_cal only. UMAP is sanity only. Grid R_cal = [0.4, 0.6, 1.0, 1.2, 1.6, 1.8, 2.4] with seeds [0, 1, 2]. G3b operational set {0.6, 1.2, 1.8} is included; author Leiden resolution remains NOT_FOUND. Admissible range uses operational guardrails (collapse n_clusters<7; over-fragment n_clusters>80 or >25% clusters size<50 or seed-ARI median<0.70). If lowest r=0.4 or highest r=2.4 remains admissible, mark RANGE_BOUNDARY_NOT_BRACKETED and do not claim a complete admissible range; recommend a later grid-extension contract. If any required grid point is unfinished, report completed diagnostics only and mark the calibration HOLD/INCOMPLETE; do not claim a complete admissible range. Do not declare one biological true resolution. Do not assign class labels. Marker-panel gaps are diagnostic distributions only (no GAP_WEAK cutoff) and run only if a frozen public panel identity/hash is resolved; otherwise HOLD_NOT_RUN.",
    "scientific_step": "P2_RESOLUTION_CALIBRATION",
    "task_id": "79e985ee-db03-49bb-a9b7-027caf8b3928",
    "task_title": "P2 resolution calibration (phenotype-blind, MDD+CON 625220)",
    "test_only": false,
    "webpage_is_not_scientific_authorization": true
  }
}