Files
2026-08-03 18:42:47 +08:00

6.6 KiB
Executable File

E2E Task 2 Report — Isolated real backend PPI validation

Status

  • PASS
  • Validation level: full real Ft→soe input evidence from job_1783583324146_c5cb74, standard backend apps.web.pipeline_backend.run_stage("ppi", ...), live STRING, isolated /tmp workspace.
  • Production and test files were not edited. Only this report and the requested project record were added.

Isolated layout

  • Job ID: job_e2e_task2_20260710_01
  • Input: /tmp/plantai_e2e_task2/input/job_e2e_task2_20260710_01
  • Workspace: /tmp/plantai_e2e_task2/workspace/job_e2e_task2_20260710_01
  • Scope selected from the real Ft→soe Ortholog manifest, not inferred by filename alone: /tmp/plantai_e2e_task2/workspace/job_e2e_task2_20260710_01/final/Ft.SPL.SPL.target-Ft.ref-soe.target_plus_reference.scope.json
  • Scope identity: SPL.target-Ft.ref-soe.target_plus_reference; target Ft; reference soe; route target_plus_reference.
  • Reproducibility root was set to /tmp/plantai_e2e_task2/workspace so the validation created no repository/historical-job outputs.

Copied-input SHA-256 values matched their historical sources:

Input SHA-256
soe/soe.pep_cds_idmap.tsv 98492d6f7a721dd000e9a4a12011aeae95ef2d0654562eba2f57f90f31149534
final/Ft.SPL.curated_members.id 5dac836cdbdeec2ab40645e62fd8bc30f78a723870b79796556d9c42de70c57d
final/Ft.SPL.orthologs.txt 7e78baba5c2550d2a2d313df340fc1cb60346d449f17e7b3dcb49363c2643ccc
Ft→soe scope JSON 77f3e220f569ef4577c2180639a7766e76a8b03de99cacaf8a6c02cd11df9147

Command evidence

Backend invocation used JobInfo above and:

pipeline_backend.run_stage(
    "ppi", validation_job, "Ft.SPL",
    ppi_species="soe", ppi_score=200,
    scope_file="/tmp/plantai_e2e_task2/workspace/job_e2e_task2_20260710_01/final/Ft.SPL.SPL.target-Ft.ref-soe.target_plus_reference.scope.json",
    analysis_route="target_plus_reference",
)

Actual runner command:

env PYTHONPATH=/data/project_roots/PlantAI-dev /home/xia-lab/miniconda3/envs/test4py311/bin/python /tmp/e2e_task2_runner.py

Actual backend-dispatched subprocess, captured in logs/20260710_222413_ppi.log:

/home/xia-lab/miniconda3/envs/test4py311/bin/python skills/ppi/run.py --gene-ids /tmp/plantai_e2e_task2/workspace/job_e2e_task2_20260710_01/ppi/analysis/Ft.SPL.SPL.target-Ft.ref-soe.target_plus_reference.ppi_source_ids.txt --species soe --prefix Ft.SPL --output /tmp/plantai_e2e_task2/workspace/job_e2e_task2_20260710_01/ppi --score 200 --mapping /tmp/plantai_e2e_task2/workspace/job_e2e_task2_20260710_01/final/Ft.SPL.orthologs.txt --id-map /tmp/plantai_e2e_task2/input/job_e2e_task2_20260710_01/soe/soe.pep_cds_idmap.tsv

This proves both --mapping and --id-map used exact isolated paths. The backend returned success and the scoped manifest path under /tmp.

Live results

  • Source member IDs loaded: 24.
  • Ortholog relationships loaded / ID-resolution data rows: 24.
  • Unique reference queries: 12.
  • Distinct nonempty STRING IDs: 12.
  • Distinct nonempty STRING preferred names: 12 (24 nonempty relationship rows).
  • Mapping status: resolved=24.
  • Mapping method: cds_header:db_xref=24.
  • Resolver manifest counts: raw resolved queries 0; GeneID fallback resolved queries 12; selected STRING queries 12; resolved members 24; unresolved 0; ambiguous 0.
  • Live STRING response: valid empty network.
  • Manifest: status=success, network_status=empty_network, genes_in_network=0, total_interactions=0.
  • Network TSV has one header line and zero interaction data rows.

Required final artifacts and SHA-256:

Artifact SHA-256
final/Ft.SPL.ppi_network.tsv ac7aa34599182ed2356e882ea600716f8401a5dc51e3ea81ceca18905bc47a3e
final/Ft.SPL.ppi_report.md cf12e208e2be719045c77c30c964a3bc3e029e57ab254eb598c167ec0006b038
final/Ft.SPL.ppi_url.txt f8fa8432cdf5f16d25473ab76d38ccf61e003e12dbf2c07bfc5367f3c33dbd8f
final/Ft.SPL.ppi_id_resolution.tsv 4790dd475c3076740bc5b2712b41afda6fe81228c028e677b937abb976065408
final/Ft.SPL.ppi.manifest.json 3faf79edfd517e91dc8067b9fc5308fd28165e34a6dfa1f84de2f863e96c868f

The manifest's required artifact path fields are all final/..., and their full_path fields all point into the isolated validation workspace.

Historical hash protection

Before and after SHA-256 values were identical:

Historical file Before After Result
final/Ft.SPL.curated_members.id 5dac836cdbdeec2ab40645e62fd8bc30f78a723870b79796556d9c42de70c57d same PASS
final/Ft.SPL.orthologs.txt 7e78baba5c2550d2a2d313df340fc1cb60346d449f17e7b3dcb49363c2643ccc same PASS
final/Ft.SPL.ppi.manifest.json 41596d88b70fc94a3b0d876e82cb31fc17bb7f72c89acf019bfc3cbc86f82807 same PASS
final/Ft.SPL.ppi_id_resolution.tsv b2f5cbfb6783f8572092806327cbbee9db5818bb2d171ebd2e686e7271b75600 same PASS

Historical root: /data/project_roots/PlantAI-dev/workspace/job_1783583324146_c5cb74.

Regression and compilation

/home/xia-lab/miniconda3/envs/test4py311/bin/python -m pytest tests/unit/test_id_resolution.py tests/unit/test_ppi_id_resolution.py tests/unit/test_ppi_string_policy.py tests/unit/test_pipeline_backend_execution_env.py -q

Result: 75 passed in 7.35s.

/home/xia-lab/miniconda3/envs/test4py311/bin/python -m py_compile skills/ppi/run.py apps/web/pipeline_backend.py

Result: exit code 0, no output.

Restart, diagnosis, blockers, and self-review

  • Service restart: not needed; no loaded production code was changed.
  • Celery restart: not needed.
  • Diagnosis record/code: not updated; no stage failure occurred and this task was validation/reporting only.
  • Blockers: none.
  • The first runner bootstrap attempt exited before import because /tmp was the script directory and the repository was not on sys.path; adding explicit PYTHONPATH fixed only the runner environment. No stage/subprocess/network work occurred in that failed attempt.
  • Concern: requests emitted a dependency compatibility warning for urllib3 2.6.3 versus the installed requests-supported dependency set. It did not prevent the live requests, but the environment should be normalized separately.
  • Concern: STRING is external and time-varying. This run's observed empty network is recorded as live evidence, not asserted as permanent behavior.
  • Self-review: standard backend used; full real inputs used; no fabricated biology; exact mapping/ID-map paths captured; five required artifacts present; live counts read from TSV and manifest; historical hashes rechecked; regression and compilation passed; no production/test edit made.