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 calls register 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). Do not declare one biological true resolution. Do not assign class labels. Marker-panel gaps are diagnostic distributions only (no GAP_WEAK cutoff).

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,
      "marker_separability": "diagnostic distribution only; no pass/fail cutoff",
      "overfragment_if_frac_clusters_size_lt_50_gt": 0.25,
      "overfragment_if_n_clusters_gt": 80,
      "overfragment_if_seed_ari_median_lt": 0.7
    },
    "harmony_covariate": "Channel",
    "hvg_batch": "Channel",
    "hvg_n_top": 2000,
    "implementation": {
      "family": "Pegasus or equivalent registered kwargs",
      "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,
      "pca": {
        "n_components": 50
      },
      "robust_genes": "pg.identify_robust_genes; keep var.robust"
    },
    "k_neighbors": 100,
    "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 registered kwargs (no live library defaults)"
    ],
    "canonical_stop": "WAITING_FOR_INVESTIGATOR_REVIEW",
    "cloud_environment_manifest_sha256": "0fe8e83f3513bd9766faae0b7175fb393bfbe160272798b7089fbf4890c2de7c",
    "contract_body_sha256": "4792109f456ac7a8e30742f115148b28f973198bb436a80075b72a01d91865d0",
    "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",
      "Marker Hodge/Lake/Ma JSON not frozen; unpublished JSON is not scored; public class panel gaps are diagnostic-only",
      "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,
          "marker_separability": "diagnostic distribution only; no pass/fail cutoff",
          "overfragment_if_frac_clusters_size_lt_50_gt": 0.25,
          "overfragment_if_n_clusters_gt": 80,
          "overfragment_if_seed_ari_median_lt": 0.7
        },
        "harmony_covariate": "Channel",
        "hvg_batch": "Channel",
        "hvg_n_top": 2000,
        "implementation": {
          "family": "Pegasus or equivalent registered kwargs",
          "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,
          "pca": {
            "n_components": 50
          },
          "robust_genes": "pg.identify_robust_genes; keep var.robust"
        },
        "k_neighbors": 100,
        "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 calls register 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). Do not declare one biological true resolution. Do not assign class labels. Marker-panel gaps are diagnostic distributions only (no GAP_WEAK cutoff).",
    "task_id": "f4979fd9-0a3a-42ab-a187-88b778e1b307",
    "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 registered kwargs (no live library defaults)"
    ],
    "approval_requirement": {
      "authorized_scientific_step": "P2_RESOLUTION_CALIBRATION",
      "channel": "existing trusted approval envelope; not this webpage",
      "required": true
    },
    "contract_body_sha256": "4792109f456ac7a8e30742f115148b28f973198bb436a80075b72a01d91865d0",
    "contract_frozen_at": "2026-09-20T17:07:49.633391Z",
    "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 (diagnostic gap distribution) or HOLD_NOT_RUN",
      "IMPLEMENTATION_CHECK.json (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 or HOLD; no AST membership; no final r)"
    ],
    "frozen_contract_hash": "4792109f456ac7a8e30742f115148b28f973198bb436a80075b72a01d91865d0",
    "holds": [
      "OPEN_01 UNION_REMOVE remains unapproved; this task does not decide Round-1 merge",
      "Marker Hodge/Lake/Ma JSON not frozen; unpublished JSON is not scored; public class panel gaps are diagnostic-only",
      "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, scanpy_or_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": "4792109f456ac7a8e30742f115148b28f973198bb436a80075b72a01d91865d0",
    "schema": "p2.contract_review_projection.v1",
    "scientific_go": false,
    "scientific_scope": "Accepted clustering universe = 625220 MDD+CON nuclei / 70 Channels. Canonical calls register 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). Do not declare one biological true resolution. Do not assign class labels. Marker-panel gaps are diagnostic distributions only (no GAP_WEAK cutoff).",
    "scientific_step": "P2_RESOLUTION_CALIBRATION",
    "task_id": "f4979fd9-0a3a-42ab-a187-88b778e1b307",
    "task_title": "P2 resolution calibration (phenotype-blind, MDD+CON 625220)",
    "test_only": false,
    "webpage_is_not_scientific_authorization": true
  }
}