Files

544 lines
39 KiB
JSON
Raw Permalink Normal View History

2026-08-03 18:42:47 +08:00
{
"validation_id": "string-ppi-task7-live-e2e",
"date": "2026-07-21",
"target": {
"base_url": "http://127.0.0.1:9010",
"job_id": "job_1784552755238_b8762f",
"prefix": "Sv.HKL",
"scope_file": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json",
"scope_sha256": "31d8f69ef697c9c802cc929cd2383aca8e700a6c7fc52a57db408156384ed711",
"target_species": "Sv",
"target_scientific_name": "Setaria viridis",
"target_tree_taxon_id": "4556"
},
"overall_status": "passed",
"blocking_gate": null,
"snapshot": {
"string_version": "12.0",
"snapshot_id": "ede47d546d853d0ec30ee75066976a35c08fd2412e6e5fc7866bbd205fc2eeb3",
"source_manifest_sha256": "46fd3d72d7e2086682d7cb3723c668b6bb629087ad4c8ce1e1aac9480131c6e7"
},
"baseline": {
"captured_at": "2026-07-21T08:24:30+08:00",
"ppi_or_ortholog_artifacts_present": false,
"queue_lengths": {
"plantai_4090_9010.default": 0,
"plantai_4090_9010.heavy": 0,
"plantai_4090_9010.medium": 0,
"plantai_4090_9010.light": 0,
"plantai_4090_9010.rnaseq": 0
},
"pids": {
"web_9010": 2523340,
"worker_default": 2523309,
"worker_heavy": 2523315,
"worker_medium": 2523323,
"worker_light": 2523330,
"worker_rnaseq": 2523341,
"web_19000_observed_before": 2483131,
"workers_9000": [3588799, 3588807, 3588814, 3588821, 3588830]
}
},
"steps": [
{
"step": "unconfirmed_preflight",
"method": "POST",
"path": "/api/ppi/species-resolution",
"request": {
"job_id": "job_1784552755238_b8762f",
"prefix": "Sv.HKL",
"scopeFile": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json",
"ppiSpecies": "auto",
"targetSpecies": ["Sv"],
"geneFamily": "HKL",
"targetScientificName": "Setaria viridis",
"ppiTargetTreeTaxonId": "4556",
"ppiReferenceTaxonId": "4555",
"ppiReferenceStorageKey": "string_taxon_4555",
"ppiReferenceSelectionMode": "tree_nearest",
"ppiReferenceUserConfirmed": false,
"dependencyOwner": "ppi",
"requestedStages": ["ppi"]
},
"response": {
"status": "confirmation_required",
"issue_code": "ppi_reference_confirmation_required",
"selection_mode": "tree_nearest",
"user_confirmation": {"required": true, "confirmed": false}
},
"decision_record": "workspace/job_1784552755238_b8762f/reproducibility/Sv.HKL.ppi.preflight_decisions.jsonl"
},
{
"step": "confirmed_owner_preflight",
"method": "POST",
"path": "/api/ppi/species-resolution",
"request_delta": {"ppiReferenceUserConfirmed": true},
"http_status": 200,
"response": {
"status": "needs_reference_data",
"issue_code": "ppi_reference_data_missing",
"selected_taxon_id": "4555",
"reference_species": "string_taxon_4555",
"required_files": ["pep"],
"missing_required": ["pep"],
"required_next_stage": "",
"user_confirmation": {"required": true, "confirmed": true}
}
},
{
"step": "reference_bundle_download",
"method": "POST",
"path": "/api/reference-bundle/download",
"request": {
"job_id": "job_1784552755238_b8762f",
"speciesCode": "string_taxon_4555",
"speciesName": "Setaria italica",
"taxonId": "4555",
"requestedStages": ["ppi"],
"includeRecommended": false,
"timeoutSec": 600,
"asyncMode": true
},
"http_status": 200,
"task_id": "d9cdbb88-1eb0-4109-947d-f6e14f7f5eb4",
"task_status": "success",
"assembly": "GCF_000263155.2",
"bytes_downloaded": 9242771,
"requested_file_types": ["pep"],
"pep_records": 35844,
"cds_records": 0,
"files": {
"pep": "input/job_1784552755238_b8762f/string_taxon_4555/string_taxon_4555.pep.fasta",
"pep_sha256": "2c037fe5e3e17e6afe9dd7134c7a5ed4a6eb5e12c54c1cc1b29978b2f90bd926",
"id_map": "input/job_1784552755238_b8762f/string_taxon_4555/string_taxon_4555.pep_cds_idmap.tsv",
"manifest": "input/job_1784552755238_b8762f/string_taxon_4555/string_taxon_4555.reference_bundle_download.manifest.json"
}
},
{
"step": "ortholog_rejected_request",
"method": "POST",
"path": "/api/execute",
"request_error": "The first direct request incorrectly included referenceSpecies/refSpeciesList=[string_taxon_4555] in addition to owner fields.",
"http_status": 400,
"response_detail": "referenceSpecies cannot map string_taxon_4555 through config.xlsx",
"task_id": null,
"side_effects": "none; queues remained empty and no Ortholog files existed"
},
{
"step": "ortholog_owner_execution",
"method": "POST",
"path": "/api/execute",
"request": {
"stage": "ortholog",
"job_id": "job_1784552755238_b8762f",
"prefix": "Sv.HKL",
"cpu": 4,
"blastEvalue": 0.00001,
"scopeFile": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json",
"scopeMode": "target_only",
"analysisRoute": "target_only",
"geneFamily": "HKL",
"targetSpecies": ["Sv"],
"ppiReferenceTaxonId": "4555",
"ppiReferenceStorageKey": "string_taxon_4555",
"ppiReferenceSelectionMode": "tree_nearest",
"ppiReferenceUserConfirmed": true,
"dependencyOwner": "ppi"
},
"http_status": 200,
"task_id": "0a20a621-ca10-47fe-a4c3-da1d334303d2",
"queue": "plantai_4090_9010.medium",
"task_status": "success",
"ortholog_pairs": 6,
"log": "workspace/job_1784552755238_b8762f/logs/20260721_082842_ortholog.log",
"mapping": "workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt",
"mapping_sha256": "cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677",
"sidecar": "workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt.identity.json",
"manifest": "workspace/job_1784552755238_b8762f/final/Sv.HKL.ortholog.manifest.json",
"reference_taxon_id": "4555",
"reference_storage_key": "string_taxon_4555"
},
{
"step": "post_ortholog_preflight",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"response": {
"status": "needs_ortholog",
"decision": "needs_reference_ortholog",
"issue_code": "stale_ortholog_identity_conflict",
"message": "Existing Ortholog mapping identity is stale or unverifiable: ppi_owner_mapping_sidecar_identity_mismatch.",
"required_next_stage": "ortholog"
}
}
],
"identity_diff": {
"equal_fields": {
"reference_taxon_id": "4555",
"reference_storage_key": "string_taxon_4555",
"reference_pep_sha256": "2c037fe5e3e17e6afe9dd7134c7a5ed4a6eb5e12c54c1cc1b29978b2f90bd926",
"query_path": "workspace/job_1784552755238_b8762f/final/Target.Sv.HKL.curated_members.pep.fa",
"query_sha256": "5da2e091bf8ab0c1d39c28b71ec9ad0d6242fa4992fdddc3f77ae579b79bc3a1",
"target_identity": "c59de0e1278c292d5cfc57a2d3c2d819edbe6130faf8bbd9814982732e36f847",
"mapping_path": "workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt",
"mapping_sha256": "cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677",
"member_set_id_for_identity": ""
},
"expected_preflight": {
"scope_id": "HKL.target-Sv.ref-string_taxon_4555.target_only",
"member_identity": "d29df17ac8c0bfc099e329ca26b3b0b334bd9366271ac949fb56dda1da50d49e",
"mapping_identity": "a8f8536f993c962f87f286b0e8017ea9d07de9f74e3f669c2fd2fe0fd5a3b060"
},
"actual_producer": {
"scope_file": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.ref-At.target_plus_reference.scope.json",
"scope_id": "HKL.target-Sv.ref-string_taxon_4555.target_plus_reference",
"member_identity": "6ba95475a678853f3bfb34666a5286e4b3828f24eb3c3e934ce1fe2ebbedbb1f",
"mapping_identity": "f288bdaa65032adddca9c0acb2f66dc71a3ae4a8352297b2bca2b9e6b5fb0568"
},
"root_cause": "The producer executes under a target_plus_reference scope rewritten by request-context construction, while post-Ortholog PPI preflight rebuilds identity from the original user target_only scope. Scope ID changes member_identity and mapping_identity despite identical biological and file inputs."
},
"not_executed_after_blocker": [
"PPI /api/execute",
"PPI artifact/status verification",
"API species matrix",
"independent Bn backend job"
],
"final_safety": {
"ppi_files_created": 0,
"queue_lengths": {"plantai_4090_9010.default": 0, "plantai_4090_9010.medium": 0},
"workers_9000_unchanged": [3588799, 3588807, 3588814, 3588821, 3588830],
"web_19000_note": "No Task 7 command addressed port 19000 or PID 2483131. The old PID disappeared and listener PID 2526118 started at 08:28:48 by an external mechanism during this run; it was observed only and not modified.",
"deletions": 0
},
"attempt_2": {
"request": {
"method": "POST",
"path": "/api/execute",
"body": {
"stage": "ortholog",
"job_id": "job_1784552755238_b8762f",
"prefix": "Sv.HKL",
"cpu": 4,
"blastEvalue": 0.00001,
"scopeFile": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json",
"scopeMode": "target_only",
"analysisRoute": "target_only",
"geneFamily": "HKL",
"targetSpecies": ["Sv"],
"ppiReferenceTaxonId": "4555",
"ppiReferenceStorageKey": "string_taxon_4555",
"ppiReferenceSelectionMode": "tree_nearest",
"ppiReferenceUserConfirmed": true,
"dependencyOwner": "ppi"
},
"forceRerun_effective": false,
"forceRerunStages_effective": [],
"use_existing": "not present in request or request model"
},
"tasks": {
"api_task_id": "cb4515ba-117f-4749-9b72-a5a083ad04dd",
"celery_task_id": "66463b47-abe9-49f4-82a3-87263e11fad6",
"queue": "plantai_4090_9010.medium",
"status": "success",
"ortholog_pairs": 6,
"elapsed_seconds": 0.5197922608349472
},
"worker_evidence": {
"log": "logs/runtime_9010/celery/plantai_4090_9010_medium.log",
"reuse_line": "[INFO] Reusing identity-matched ortholog pairs for Sv -> string_taxon_4555: workspace/job_1784552755238_b8762f/ortholog/Sv.HKL.Sv_to_string_taxon_4555_pairs.txt",
"claimed_stage_log": "workspace/job_1784552755238_b8762f/logs/20260721_090012_ortholog.log",
"claimed_stage_log_exists": false,
"api_task_log_source": "workspace/job_1784552755238_b8762f/logs/20260721_082842_ortholog.log"
},
"files": {
"intermediate_mapping": {"mtime": "2026-07-21 08:28:47.682668677 +0800", "sha256": "4c5e1c3b1d8d9b40644559da9df6eb6277240ae30a327d20ee40a69718d35f29"},
"intermediate_sidecar": {"mtime": "2026-07-21 08:28:47.714255320 +0800", "sha256": "f97a77748716497e0177485118404492d3f7b5fb77b1743ac0a174c135506201", "target_identity": "c59de0e1278c292d5cfc57a2d3c2d819edbe6130faf8bbd9814982732e36f847", "member_identity": "6ba95475a678853f3bfb34666a5286e4b3828f24eb3c3e934ce1fe2ebbedbb1f", "mapping_identity": "00c27374dc0050f0c588a9ab0fff2546973b2aa99a76c7ef8a72fdcb88686a0a"},
"final_mapping": {"mtime": "2026-07-21 09:00:12.591883154 +0800", "sha256": "cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677"},
"final_sidecar": {"mtime": "2026-07-21 09:00:12.592846398 +0800", "sha256": "f0a96652cb7635f5108bfbb355e3e7c3568badb3c020aeff8fb8f1763c114bca", "target_identity": "c59de0e1278c292d5cfc57a2d3c2d819edbe6130faf8bbd9814982732e36f847", "member_identity": "6ba95475a678853f3bfb34666a5286e4b3828f24eb3c3e934ce1fe2ebbedbb1f", "mapping_identity": "f288bdaa65032adddca9c0acb2f66dc71a3ae4a8352297b2bca2b9e6b5fb0568"},
"legacy_manifest": {"mtime": "2026-07-21 09:00:12.593582705 +0800", "sha256": "3236e7edb00f346d1921a82be28ac379c7be0b320b35bc86f4e120869fc98f60"},
"scoped_manifest": {"mtime": "2026-07-21 09:00:12.594018966 +0800", "sha256": "dcccb1b76656b12cd33ae5e444854a061f1b88742a11f7ed9aee404d4bd11420", "scope_id": "HKL.target-Sv.ref-string_taxon_4555.target_plus_reference", "scope_mode": "target_plus_reference", "analysis_route": "target_only", "scope_file": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.ref-At.target_plus_reference.scope.json"}
},
"reuse_gate": {
"path": ["POST /api/execute", "_ensure_gene_family_scope_file", "Celery execute_single_stage_task", "StageToolRegistry.execute", "StageToolExecutor.execute", "pipeline_backend.run_stage", "build_ortholog_run_identity", "ortholog_run_identity_matches"],
"root_cause": "The API technical-reference collector ignores ppiReferenceStorageKey. The owner-only Ortholog request therefore enters the generic Ortholog reference fallback, which replaces the supplied target_only scope with the job's ref-At target_plus_reference scope before the producer fix runs. The producer then computes the same identity as the stale intermediate and reuses it."
},
"module_sha256": {
"apps/web/vue3/main.py": "72261549d622e70a90a43f8795e3c9cf0eccf499899c62233e1f7c25768fd3e1",
"tasks.py": "89b434ccd7e2a4c997efc87cbec954fbfd63857931752b2daa0549279f13fc08",
"gfa_core/mas/tools/stage_tools.py": "ffda6ec77256e8ef23c2635210f5624db550c2e657aaaf8b38b0c3b820d5f1a9",
"apps/web/pipeline_backend.py": "32b4391ec4d3fda87d78180b923bcb1c5d4066588980bbc61e73d5fe153b5d17",
"gfa_core/ortholog_materialize.py": "a0a70088f230eb0560355c7a68cb05a9b4933c72cc626c9ebef6427f46c97913"
},
"post_preflight": {"recorded_at": "2026-07-21T09:00:54.535659", "status": "needs_ortholog", "decision": "needs_reference_ortholog", "issue_code": "stale_ortholog_identity_conflict"},
"stopped_without": ["PPI /api/execute", "species matrix", "independent Bn job", "code changes", "deletions"]
},
"attempt_3": {
"runtime_gate": {
"scope_file": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json",
"scope_sha256": "31d8f69ef697c9c802cc929cd2383aca8e700a6c7fc52a57db408156384ed711",
"scope_id": "HKL.target-Sv.target_only",
"scope_mode": "target_only",
"redis": "redis://localhost:6379/11",
"queue_prefix": "plantai_4090_9010",
"web_pid": 2586056,
"worker_master_pids": [2586051, 2586052, 2586053, 2586054, 2586055],
"worker_pong": 5,
"main_py_sha256": "90240498d608c8182afb10ad79e81a0213b20e428c3a20f69a7c63c9458266a4"
},
"ortholog": {
"request": {"stage":"ortholog","job_id":"job_1784552755238_b8762f","prefix":"Sv.HKL","cpu":4,"blastEvalue":0.00001,"scopeFile":"/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","scopeMode":"target_only","analysisRoute":"target_only","geneFamily":"HKL","targetSpecies":["Sv"],"ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","ppiReferenceUserConfirmed":true,"dependencyOwner":"ppi"},
"api_task_id": "eaf45f36-d86e-4887-ae2d-d799d3ccaaef",
"celery_task_id": "6ad681e3-e7d5-49fd-b78c-0d8c999b3df6",
"status": "success",
"pairs": 6,
"elapsed_seconds": 5.773302449146286,
"new_log": {"path":"workspace/job_1784552755238_b8762f/logs/20260721_100750_ortholog.log","sha256":"902d3998e3c3098ff62b67817867d89dfb3aa7d690877dee292627118b4215f5"},
"intermediate_sidecar_sha256": "21d61a723e03988a80076f3cacec047bcc6478d7be4abf66f627296e23200fe6",
"final_sidecar_sha256": "ffd3c39bd52cdd1d4fabdba2466940fdd9c0367948d670d7838b7fec31290358",
"scoped_manifest_sha256": "95e745621d873e11bd4818a869e21066948dd6a167ddf0220d09ae8d46a1ce07",
"identity": {"scope_id":"HKL.target-Sv.target_only","scope_mode":"target_only","analysis_route":"target_only","reference_taxon_id":"4555","reference_storage_key":"string_taxon_4555","reference_pep_sha256":"2c037fe5e3e17e6afe9dd7134c7a5ed4a6eb5e12c54c1cc1b29978b2f90bd926","target_identity":"c59de0e1278c292d5cfc57a2d3c2d819edbe6130faf8bbd9814982732e36f847","member_identity":"dc9fbbfc0384d2fc42dd5235856cee61b5359ebd6ac43bc580df31313c62094a"},
"post_preflight": {"http_status":200,"status":"ready","decision":"ready_reference_mapping","issue_code":"","confirmation_required":true,"confirmation_confirmed":true}
},
"ppi": {
"request": {"stage":"ppi","job_id":"job_1784552755238_b8762f","prefix":"Sv.HKL","cpu":4,"scopeFile":"/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","scopeMode":"target_only","analysisRoute":"target_only","geneFamily":"HKL","targetSpecies":["Sv"],"ppiSpecies":"auto","ppiScore":200,"ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","ppiReferenceUserConfirmed":true,"dependencyOwner":"ppi"},
"api_task_id": "1f2a89c4-5042-4b93-a50f-923cd8925bfa",
"celery_task_id": "a25e255e-6d14-4c8f-98ac-151b90aa682c",
"queue": "plantai_4090_9010.light",
"status": "failed",
"celery_wrapper_elapsed_seconds": 11.837375451112166,
"error": "PPI cannot infer the STRING reference species from the Ortholog mapping",
"issue_code": "ppi_invalid_ortholog_mapping",
"fallback_reason": "ortholog_mapping_target_species_not_supported_by_string",
"failed_manifest": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.ppi.manifest.json","sha256":"ce6e65eca81ddd1950408900aad1f2a6d1fdce7dda0470f338532c0517df885a","artifacts":{},"selected_taxon_id":"","reference_species":""},
"provenance": {"selected_string_taxon_id":"","selection_mode":"tree_nearest","confirmation_required":true,"confirmation_confirmed":true,"mapping_reference_species":"string_taxon_4555","mapping_path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt"},
"source_ids": {"path":"workspace/job_1784552755238_b8762f/ppi/analysis/Sv.HKL.HKL.target-Sv.target_only.ppi_source_ids.txt","count":6,"sha256":"1e0cc6e5bcabe348a36e99f9ad0be63ae06f70268e9283d457191b48384df2ef"},
"stage_log_created": false,
"cli_command_emitted": false,
"success_artifacts_created": false,
"scoped_stage_status": {"status":"not_found","completed":false,"expected_manifest":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.ppi.manifest.json"},
"request_vs_transport": "The request matches the real frontend path: ppiSpecies remains auto while owner TaxID/storage/mode/confirmation are attached separately. API and StageTool propagation preserve the owner fields. The execution resolver ignores the owner TaxID when ppiSpecies is auto and cannot translate mapping target storage key string_taxon_4555 through the legacy alias resolver.",
"raw_celery_params_available": false
},
"stopped_after_failure": true,
"not_run": ["PPI retry", "species matrix", "independent Bn job", "code changes", "file deletion"],
"final_queue_lengths": {"default":0,"heavy":0,"medium":0,"light":0,"rnaseq":0},
"forbidden_processes_unchanged": {"web_19000":2529914,"workers_9000":[3588799,3588807,3588814,3588821,3588830]}
},
"attempt_4": {
"constraint": "Restart only 9010 and run exactly one real PPI attempt using the already-ready Ortholog mapping; stop on failure.",
"runtime_gate": {
"scope_file": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json",
"scope_sha256": "31d8f69ef697c9c802cc929cd2383aca8e700a6c7fc52a57db408156384ed711",
"scope_id": "HKL.target-Sv.target_only",
"preflight_before_restart": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","reference_storage_key":"string_taxon_4555","confirmation_required":true,"confirmation_confirmed":true},
"preflight_after_restart": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","reference_storage_key":"string_taxon_4555","confirmation_required":true,"confirmation_confirmed":true},
"mapping": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt","sha256":"cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677","final_sidecar_sha256":"ffd3c39bd52cdd1d4fabdba2466940fdd9c0367948d670d7838b7fec31290358","scoped_manifest_sha256":"95e745621d873e11bd4818a869e21066948dd6a167ddf0220d09ae8d46a1ce07"},
"web_pid": 2595459,
"worker_master_pids": [2595454,2595455,2595456,2595457,2595458],
"worker_pong": 5,
"module_sha256": {
"apps/web/vue3/main.py": "90240498d608c8182afb10ad79e81a0213b20e428c3a20f69a7c63c9458266a4",
"tasks.py": "89b434ccd7e2a4c997efc87cbec954fbfd63857931752b2daa0549279f13fc08",
"gfa_core/mas/tools/stage_tools.py": "ffda6ec77256e8ef23c2635210f5624db550c2e657aaaf8b38b0c3b820d5f1a9",
"apps/web/pipeline_backend.py": "57b35484a89cb096211ac18032a34ad220a33dbc5bc98a455724713ce3303d05"
}
},
"ppi": {
"request": {"stage":"ppi","job_id":"job_1784552755238_b8762f","prefix":"Sv.HKL","cpu":4,"scopeFile":"/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","scopeMode":"target_only","analysisRoute":"target_only","geneFamily":"HKL","targetSpecies":["Sv"],"ppiSpecies":"auto","ppiScore":200,"ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","ppiReferenceUserConfirmed":true,"dependencyOwner":"ppi"},
"api_task_id": "fd77c17d-0387-477c-a294-747f41277529",
"celery_task_id": "f401575e-43ac-43dd-84ac-26d1b20a392e",
"queue": "plantai_4090_9010.light",
"status": "failed",
"celery_wrapper_elapsed_seconds": 29.942377381026745,
"cli": "/home/xzq/miniconda3/envs/test4py311/bin/python skills/ppi/run.py --gene-ids /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/ppi/analysis/Sv.HKL.HKL.target-Sv.target_only.ppi_source_ids.txt --species 4555 --normalization-species-label 4555 --prefix Sv.HKL --output /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/ppi --score 200 --provenance-json /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/ppi/Sv.HKL.ppi_provenance.json --mapping /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt --id-map /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/input/job_1784552755238_b8762f/string_taxon_4555/string_taxon_4555.pep_cds_idmap.tsv",
"error": "Alias evidence species mismatch at row 2: declared '4555', observed 'string_taxon_4555'",
"identity_evidence": {"execution_string_taxon_id":"4555","normalization_species_label":"4555","id_map_header":"species_code protein_id pep_id cds_id gene_id ncbi_gene_id pep_present cds_present pep_header cds_header","id_map_observed_species_code":"string_taxon_4555","ortholog_mapping_rows_loaded":6,"source_ids_loaded":6},
"root_cause": "The remote STRING execution identity correctly uses TaxID 4555, but the local alias-evidence normalization identity was also set to 4555. The selected reference bundle ID map declares storage identity string_taxon_4555, so the identity guard rejects the mismatch. Ortholog readiness and execution-species resolution are not the blocker.",
"files": {
"stage_log": {"path":"workspace/job_1784552755238_b8762f/logs/20260721_102510_ppi.log","sha256":"07f7cb3aa446a30c5ee841edbf62070d8006669bf5af60849a0317607572d650"},
"final_failed_manifest": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.ppi.manifest.json","sha256":"987b929bcfcb74497f26443802700ed431b333a21f9ae05303d8a385b3b8886f","artifacts":{},"stale_resolution_block":true},
"skill_failed_manifest": {"path":"workspace/job_1784552755238_b8762f/ppi/Sv.HKL.manifest.json","sha256":"7125042256bdf62a6ab034ab94b3c3f444ab4edc49456842e544066f3ccb463e"},
"provenance": {"path":"workspace/job_1784552755238_b8762f/ppi/Sv.HKL.ppi_provenance.json","sha256":"94875cbf36eb264eb44d7a30f6c001e154c2752eb6c0413b8a818961adac4242","selected_string_taxon_id":"4555","mapping_reference_species":"string_taxon_4555","normalization_species_label":"4555","selection_mode":"tree_nearest","confirmation_required":true,"confirmation_confirmed":true},
"source_ids": {"path":"workspace/job_1784552755238_b8762f/ppi/analysis/Sv.HKL.HKL.target-Sv.target_only.ppi_source_ids.txt","count":6,"sha256":"1e0cc6e5bcabe348a36e99f9ad0be63ae06f70268e9283d457191b48384df2ef"}
},
"scoped_stage_status": {"status":"not_found","completed":false,"expected_manifest":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.ppi.manifest.json"},
"legacy_stage_status": {"status":"failed","completed":false,"artifacts_checked":0},
"success_artifacts_created": false
},
"stopped_after_failure": true,
"not_run": ["PPI retry","Ortholog rerun","species matrix","independent Bn job","code changes","file deletion"],
"final_queue_lengths": {"default":0,"heavy":0,"medium":0,"light":0,"rnaseq":0},
"forbidden_processes_unchanged": {"web_19000":2529914,"workers_9000":[3588799,3588807,3588814,3588821,3588830]}
},
"attempt_5": {
"constraint": "Restart only 9010 and submit exactly one frontend-consistent real PPI request using the existing ready Ortholog mapping; no matrix or code changes.",
"runtime_gate": {
"scope_file": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json",
"scope_id": "HKL.target-Sv.target_only",
"preflight_before_restart": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","reference_storage_key":"string_taxon_4555","confirmation_required":true,"confirmation_confirmed":true},
"preflight_after_restart": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","reference_storage_key":"string_taxon_4555","confirmation_required":true,"confirmation_confirmed":true},
"mapping": {"sha256":"cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677","final_sidecar_sha256":"ffd3c39bd52cdd1d4fabdba2466940fdd9c0367948d670d7838b7fec31290358","scoped_ortholog_manifest_sha256":"95e745621d873e11bd4818a869e21066948dd6a167ddf0220d09ae8d46a1ce07"},
"web_pid": 2608735,
"worker_master_pids": [2608731,2608635,2608732,2608607,2608636],
"worker_pong": 5,
"module_sha256": {
"apps/web/vue3/main.py":"90240498d608c8182afb10ad79e81a0213b20e428c3a20f69a7c63c9458266a4",
"tasks.py":"89b434ccd7e2a4c997efc87cbec954fbfd63857931752b2daa0549279f13fc08",
"gfa_core/mas/tools/stage_tools.py":"ffda6ec77256e8ef23c2635210f5624db550c2e657aaaf8b38b0c3b820d5f1a9",
"apps/web/pipeline_backend.py":"9834917f36c9b400b22b7a8a50b7e047a57a3cf3e01ee83184f5e3b5aa9a629a",
"gfa_core/ortholog_materialize.py":"a0a70088f230eb0560355c7a68cb05a9b4933c72cc626c9ebef6427f46c97913",
"gfa_core/ppi_provenance.py":"b4d947d5ffa05db776039ffdec0c6f713e247a706994673dff1d92e4733c3031",
"gfa_core/mas/tools/stage_status.py":"a3fc701271bbfca599324eeac721f027dd67752a1e640977b9ffef76cb21d473",
"skills/ppi/run.py":"2f592370b3c0c97d8f5e0500f348099fb85e581ad29219e2143b629011327a12"
}
},
"ppi": {
"request": {"stage":"ppi","job_id":"job_1784552755238_b8762f","prefix":"Sv.HKL","cpu":4,"scopeFile":"/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","scopeMode":"target_only","analysisRoute":"target_only","geneFamily":"HKL","targetSpecies":["Sv"],"ppiSpecies":"auto","ppiScore":200,"ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","ppiReferenceUserConfirmed":true,"dependencyOwner":"ppi"},
"api_task_id":"72ddcc69-fa90-4514-bd78-3a931e8054c9",
"celery_task_id":"44f60fe5-ffcc-4def-b9fd-48d531a085a2",
"queue":"plantai_4090_9010.light",
"status":"success",
"celery_wrapper_elapsed_seconds":32.72843774687499,
"cli_identity":{"string_execution_taxon_id":"4555","normalization_species_label":"string_taxon_4555"},
"string_request":{"species":"4555","required_score":200,"network_type":"functional","query_ids":["4555.K3Z5J1","4555.K3Z625","4555.K3ZDE9","4555.A0A368R4B9","4555.K3XGZ3","4555.K3XGV8"]},
"metrics":{"input_genes":6,"genes_in_network":6,"total_interactions":15,"avg_score":0.904,"high_confidence":15,"member_mapping_rate":1.0,"query_mapping_rate":1.0,"unresolved_member_count":0,"ambiguous_member_count":0},
"stage_log":{"path":"workspace/job_1784552755238_b8762f/logs/20260721_104344_ppi.log","sha256":"eb3cfcb8cc4859a68a33a629eee4beea2e3db5735387f5d410ab049222dddc5f"},
"scoped_manifest":{"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.ppi.manifest.json","sha256":"118ddf51ae112333228debc1d2a5b4c94f8fc3737a39d903160cf83b73120359","status":"success","scope_id":"HKL.target-Sv.target_only","scope_mode":"target_only","analysis_route":"target_only","member_set_id":"HKL.target-Sv.target_only:target_only:all_members"},
"artifacts": {
"network":{"path":"final/Sv.HKL.ppi_network.tsv","sha256":"9fe9e10c5d57d3dae2bce2a09cb4640738d41b8328f0a21305f7fbace860c52a","size":492},
"report":{"path":"final/Sv.HKL.ppi_report.md","sha256":"866e63d67aceb5b7108feeed8539b0c7f9971f2c2302dd26186523aba86ad60f","size":717},
"id_resolution":{"path":"final/Sv.HKL.ppi_id_resolution.tsv","sha256":"488f0a2ae1ef66ded461c1d39c9231bf0b6d169e8dfd2b950edacdc1bc1b5399","size":1845},
"string_url":{"path":"final/Sv.HKL.ppi_url.txt","sha256":"3c26395fb2d8281a1b123dc4f9816ba60ca6efe45c355fcfa1b2cf62f687dbdf","size":304},
"string_network_image":{"path":"final/Sv.HKL.ppi_network.string.png","sha256":"fe7891cf0e07e6865cb35a42bbd8445c88819ee12d069d112609c56fd204b862","size":161819,"dimensions":"3253x793"},
"alphafold2_links":{"path":"final/Sv.HKL.ppi_alphafold2_links.tsv","sha256":"dde7bdbab0a4e0f011781fafb572e3c416c2f88f656209b54d31fc9eee3b1598","size":1748}
},
"stage_status":{"status":"completed","completed":true,"manifest_status":"success","artifacts_checked":6,"missing_artifacts":[],"errors":[]},
"provenance":{"selected_string_taxon_id":"4555","mapping_reference_species":"string_taxon_4555","normalization_species_label":"string_taxon_4555","selection_mode":"tree_nearest","confirmation_required":true,"confirmation_confirmed":true,"snapshot_id":"ede47d546d853d0ec30ee75066976a35c08fd2412e6e5fc7866bbd205fc2eeb3"}
},
"not_run":["PPI retry","Ortholog rerun","species matrix","independent Bn job","code changes","file deletion"],
"final_queue_lengths":{"default":0,"heavy":0,"medium":0,"light":0,"rnaseq":0},
"forbidden_processes_unchanged":{"web_19000":2529914,"workers_9000":[3588799,3588807,3588814,3588821,3588830]}
},
"final_read_only_matrix": {
"constraint": "Read-only preflight/status verification against current 9010 and existing evidence; no execute, new job, restart, or stage run.",
"base_url": "http://127.0.0.1:9010",
"job_id": "job_1784552755238_b8762f",
"snapshot_id": "ede47d546d853d0ec30ee75066976a35c08fd2412e6e5fc7866bbd205fc2eeb3",
"overall_status": "passed",
"items": [
{
"id": 1,
"name": "Os direct ready without Ortholog",
"evidence_level": "real_api",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"request": {"prefix":"Os.HKL","targetSpecies":["Os"],"targetScientificName":"Oryza sativa Japonica Group","ppiTargetTreeTaxonId":"39947","ppiSpecies":"auto","requestedStages":["ppi"]},
"response": {"status":"ready","decision":"ready_target_string","selection_mode":"exact_string","selected_taxon_id":"39947","target_string_supported":true,"candidates":[]},
"note": "Parent TaxID 4530 correctly produced Oryza Top3 rather than a false direct match.",
"result": "pass"
},
{
"id": 2,
"name": "Sv stable Top3 and confirmed ready",
"evidence_level": "real_api_and_real_job",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"request": {"prefix":"Sv.HKL","scopeFile":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","targetSpecies":["Sv"],"targetScientificName":"Setaria viridis","ppiTargetTreeTaxonId":"4556","ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","requestedStages":["ppi"]},
"unconfirmed": {"status":"confirmation_required","issue_code":"ppi_reference_confirmation_required","candidates":[{"taxon_id":"4555","distance":2},{"taxon_id":"4540","distance":6},{"taxon_id":"888268","distance":6}],"confirmation":{"required":true,"confirmed":false}},
"confirmed": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","storage_key":"string_taxon_4555","mapping":"workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt","confirmation":{"required":true,"confirmed":true}},
"result": "pass"
},
{
"id": 3,
"name": "Ft candidates are tree-derived",
"evidence_level": "real_api",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"request": {"prefix":"Ft.HKL","targetSpecies":["Ft"],"targetScientificName":"Fagopyrum tataricum","ppiTargetTreeTaxonId":"62330","requestedStages":["ppi"]},
"response": {"status":"confirmation_required","selection_mode":"tree_nearest","candidate_source":"string_species_tree","resolution_source":"explicit_tree_taxon_id","policy_id":"string_species_tree_v12_topology_v1","candidates":[{"taxon_id":"3562","distance":10},{"taxon_id":"3476","distance":12},{"taxon_id":"3775","distance":12}]},
"static_ft_marker_present": false,
"result": "pass"
},
{
"id": 4,
"name": "Registry-only TaxID 3708",
"evidence_level": "real_api_and_prior_real_string",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"request": {"prefix":"Bn.HKL","targetSpecies":["Bn"],"targetScientificName":"Brassica napus","ppiTargetTreeTaxonId":"3708","requestedStages":["ppi"]},
"response": {"status":"ready","decision":"ready_target_string","selection_mode":"exact_string","selected_taxon_id":"3708","target_string_supported":true},
"real_string_evidence": ["docs/validation/2026-07-21-string-ppi-task4-real-network.md","docs/validation/2026-07-21-string-ppi-task4-real-network.json"],
"result": "pass"
},
{
"id": 5,
"name": "Second unsupported plant stable Top3",
"evidence_level": "real_api_twice",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"request": {"prefix":"Cs.HKL","targetSpecies":["Cs"],"targetScientificName":"Camellia sinensis","ppiTargetTreeTaxonId":"4442","requestedStages":["ppi"]},
"response_first": [{"taxon_id":"542762","distance":1},{"taxon_id":"1590841","distance":7},{"taxon_id":"4155","distance":9}],
"response_second": [{"taxon_id":"542762","distance":1},{"taxon_id":"1590841","distance":7},{"taxon_id":"4155","distance":9}],
"candidate_source": "string_species_tree",
"result": "pass"
},
{
"id": 6,
"name": "Unknown identity is supplemented, not guessed as At",
"evidence_level": "real_api",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"unresolved_request": {"prefix":"Xx.HKL","targetSpecies":["Xx"],"requestedStages":["ppi"]},
"unresolved_response": {"status":"unresolved","issue_code":"target_string_tree_unresolved","decision":"target_identity_unresolved","selected_taxon_id":"","reference_species":"","candidates":[]},
"supplemented_request": {"targetScientificName":"Camellia sinensis","ppiTargetTreeTaxonId":"4442"},
"supplemented_response": {"status":"confirmation_required","selection_mode":"tree_nearest","candidate_source":"string_species_tree","candidate_taxon_ids":["542762","1590841","4155"],"contains_at_3702":false},
"result": "pass"
},
{
"id": 7,
"name": "Natural At fallback confirmation gate",
"evidence_level": "real_api",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"request": {"prefix":"Aa.HKL","targetSpecies":["Aa"],"targetScientificName":"Arabidopsis arenosa","ppiTargetTreeTaxonId":"38785","ppiReferenceTaxonId":"3702","ppiReferenceStorageKey":"At","ppiReferenceSelectionMode":"model_fallback","dependencyOwner":"ppi","requestedStages":["ppi"]},
"unconfirmed": {"status":"confirmation_required","top_candidate":{"taxon_id":"3702","name":"Arabidopsis thaliana","distance":2},"confirmation":{"required":true,"confirmed":false}},
"confirmed": {"status":"needs_ortholog","issue_code":"ppi_requires_ortholog_mapping","selected_taxon_id":"3702","reference_species":"At","storage_key":"At","pep_complete":true,"reference_selection_mode":"model_fallback","confirmation":{"required":true,"confirmed":true}},
"stage_executed": false,
"result": "pass"
},
{
"id": 8,
"name": "Nearest-reference real success chain",
"evidence_level": "prior_real_job_and_current_file_verification",
"source": "attempt_5",
"status": "success",
"manifest": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.ppi.manifest.json","expected_sha256":"118ddf51ae112333228debc1d2a5b4c94f8fc3737a39d903160cf83b73120359","current_sha256":"118ddf51ae112333228debc1d2a5b4c94f8fc3737a39d903160cf83b73120359"},
"network": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.ppi_network.tsv","expected_sha256":"9fe9e10c5d57d3dae2bce2a09cb4640738d41b8328f0a21305f7fbace860c52a","current_sha256":"9fe9e10c5d57d3dae2bce2a09cb4640738d41b8328f0a21305f7fbace860c52a"},
"identity": {"execution_taxon_id":"4555","normalization_species_label":"string_taxon_4555","selection_mode":"tree_nearest","confirmed":true},
"metrics": {"input_genes":6,"genes_in_network":6,"interactions":15,"member_mapping_rate":1.0,"query_mapping_rate":1.0},
"result": "verified"
},
{
"id": 9,
"name": "PPI readiness is independent of missing KaKs CDS",
"evidence_level": "real_api",
"method": "POST",
"path": "/api/ppi/species-resolution",
"http_status": 200,
"ppi_only": {"request":{"requestedStages":["ppi"],"dependencyOwner":"ppi"},"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555"},
"kaks_only": {"request":{"requestedStages":["kaks"],"dependencyOwner":"kaks","referenceSpecies":["string_taxon_4555"]},"status":"needs_reference_data","issue_code":"kaks_reference_cds_missing","decision":"needs_reference_bundle","bundle_mode":"pep_only","missing_required":["cds"],"kaks_ready":false},
"stage_executed": false,
"result": "pass"
}
],
"safety": {"execute_endpoint_called":false,"new_job_created":false,"stage_run":false,"service_restarted":false,"code_changed":false,"final_queue_lengths":{"default":0,"heavy":0,"medium":0,"light":0,"rnaseq":0}}
}
}