PDAC Subtype Agent

by anne-voigtco.huggingface.anne-voigt/pdac-subtype-agent-prod

  • Remote endpoint
  • 11 tools

Tools

  • pdac_subtype_agent_prod__build_joint_embedding Joint embedding over N REGISTERED datasets (ADR-0020 §5, machine door). ``dataset_ids``: comma-separated registered ids (uploads stay UI-only, ADR-0006). ``selections``: optional JSON ARRAY of per-member ADR-0025 selection specs (null/{} for none), aligned by position. Returns the joint coordinates + the mandatory comparability banner, a structured refusal, or an error — never raises into Gradio. First build runs the full pipeline and is cached under the §5 member-identity key; a repeat call is instant.
  • pdac_subtype_agent_prod__check_login_status
  • pdac_subtype_agent_prod__compare_align Stateless ADR-0020 §1 alignment over N result payloads (JSON array string). Each element must be a payload as returned by this Space's PurIST/GSVA endpoints (machine-door payloads carry their own ``run_id``, echoed back as ``run_refs``). Oversize or malformed input is refused by name, never truncated (the ADR-0025 machine-door posture). Returns the aligned comparison, a structured refusal, or an error — never raises into Gradio.
  • pdac_subtype_agent_prod__enumerate_analyses Stateless: list the analyses this specialist runs, each marked valid/invalid for a given internal ``data_level``. Returns the tool JSON; never raises.
  • pdac_subtype_agent_prod__infer_data_state Stateless: resolve the two BYOD declarations (ADR-0010 Q1/Q2) to a data state plus the analyses valid for it. Returns the tool JSON; never raises into Gradio.
  • pdac_subtype_agent_prod__run_byod_gene_sets GSVA signature scoring on an uploaded matrix (machine shell, ADR-0004). Comma-separated ``sets``/``stratify``; blank = the tool's own default. ``metadata`` (plan §C1, ADR-0022) is the optional per-sample metadata table — a second ``handle_file`` upload through the same ``_machine_upload_path`` contract (a bare path string is refused) and the same gate-0/digest pipeline inside the seam. Omitted → All-only stratification, exactly as before; the param is trailing and defaulted so existing callers are untouched. ``sample_selection`` (ADR-0025 §8, trailing-most) is an optional canonical-JSON selection spec — schema-validated and size-capped here (refused, never truncated); empty/omitted is byte-identical to pre-0025. If a user passes a file as an input, use the upload_file_to_gradio tool, if present, to upload the file to the gradio app and create a Gradio File Input. Then use the returned path as the input to the tool
  • pdac_subtype_agent_prod__run_byod_purist PurIST subtyping on an uploaded matrix (machine shell, ADR-0004). ``matrix`` must be sent with ``gradio_client.handle_file``. ``attested`` must be explicitly true — the de-identification attestation is required on every door. ``principal`` is the end user the caller is acting for: recorded, never trusted. ``sample_selection`` (ADR-0025 §8, trailing) is an optional canonical-JSON selection spec — schema-validated and size-capped at this door (refused, never truncated); empty/omitted is byte-identical to pre-0025. ``request`` is injected by Gradio, not a positional argument. If a user passes a file as an input, use the upload_file_to_gradio tool, if present, to upload the file to the gradio app and create a Gradio File Input. Then use the returned path as the input to the tool
  • pdac_subtype_agent_prod__run_findings Machine door for the ADR-0028 ranking: score, then rank against the cohort's obs. Why this exists as its OWN endpoint rather than a `findings` block bolted onto ``score_signatures``. ``agents.yaml`` describes what the orchestrator may CALL, and the file records its own hard lesson twice: a capability declared but not delivered is worse than one not declared, because the tool-extraction call picks it confidently. The findings panel shipped UI-only, so until this endpoint existed the orchestrator could not obtain a ranking at all — and routing "which pathway differs most?" to ``score_signatures`` would have handed its summarizer 58 sets x N samples of raw scores and left it to invent the ordering. That is exactly the LLM free-association ADR-0027 §4 and ADR-0028 §5 forbid: the whole point is that the narrative restates a computed row. Extending ``score_signatures`` instead was rejected — it would change a payload the orchestrator already parses, and make every scoring call pay a dataset
  • pdac_subtype_agent_prod__run_findings_test_inputs The exact inputs behind a ranking, packed for DecoupleRpy's significance test. ADR-0028 §7, second amendment. ``rank_findings`` says which associations are strongest; whether they hold up is DecoupleRpy's question (ADR-0027). Its ``compare_scores_by_group`` endpoint (DecoupleRpy ADR-0035) tests a score matrix someone else computed, and this door hands it the one this ranking read: the same scoring call, the same samples, the labels each two-group row compared, and each row's Cliff's δ so DecoupleRpy can prove the numbers match before it reports a p-value. The orchestrator forwards ``request`` unchanged. Same arguments as ``rank_findings`` and the same scoring path (:func:`_ranked_findings`), so the two cannot describe different numbers. This endpoint computes no test statistic: it packs numbers for another agent to test. Registered datasets only; an upload's matrix is never kept (ADR-0006 §4). ``sample_selection`` and ``columns`` are ``rank_findings``' trailing arguments and must be fo
  • pdac_subtype_agent_prod__run_gene_sets Comma-separated ``sets``/``stratify``; blank = the tool's own default. ``sample_selection`` (trailing, optional; ADR-0025 §8 amendment, 2026-10-08): an ADR-0025 selection spec as JSON. GSVA then re-runs on the selected samples, which become its reference set (PLAN-ranking-method-review C2). Every ok payload states that set in ``gsva_reference``.
  • pdac_subtype_agent_prod__run_purist PurIST on a registered dataset. ``sample_selection`` (trailing, optional; ADR-0020 item 1, 2026-10-15) is an ADR-0025 selection spec as JSON, the same shape and parser as ``/score_signatures``. It lets a comparison run PurIST on one member's selected samples. Blank = the call exactly as before the parameter existed, so every existing caller is unaffected. A malformed spec is refused, never ignored (:func:`_machine_selection`).

As the server's own listing gives them. We never call a tool.