Skip to content

API changes for curation agents #1651

Description

@oganm

Gemma REST API — Gaps to Fill

https://github.com/PavlidisLab/gemma-curation-agents/blob/main/TODO-gemma-api.md

Bug Fixes

  • §19 BioAssayValueObject.originalPlatform echoes arrayDesign for GENELIST stand-ins — should carry the real platform (e.g. Illumina HiSeq), not the Generic stub
  • §15 /datasets/{id}/samples?useProcessedQuantitationType=true 404s when a preferred QT is set (filed by Paul 2026-04-27; workaround: pass use_processed_quantitation_type=False)
  • §20 gemmapy drops evidenceCode from get_dataset_annotations (gemmapy fix, not Gemma REST; not yet filed upstream)

Read-Side Gaps (priority order)

  • §3 Audit trail — GET /rest/v2/datasets/{id}/auditEvents returning full AuditEventValueObject list; empty History tab is the most-noticed UI gap
  • §13 Publications — GET /rest/v2/datasets/{id}/publications returning BibliographicReferenceValueObject; description scrape is a thin fallback
  • §14 Public/private state (read) — isPublic: bool on ExpressionExperimentValueObject; needed to gate "edit a public experiment safely" banner
  • §2 Annotation usage counts — add usage_count to AnnotationSearchResultValueObject; biggest pick-quality lift in the typeahead
  • §16 Cell-type subset structure for sc experiments — expose cell-type assignment per bioassay so the UI can group rows by cell type
  • §17 URI → ontology-term lookup — GET /rest/v2/ontology/term?uri=...; unblocks S10 validator false "possible hallucination" warnings on real-but-novel URIs
  • §1 Categories enum — GET /rest/v2/categories returning canonical EFO factor/statement categories; would eliminate duplicate static lists in UI and prompts
  • §7 Predicates enum — GET /rest/v2/predicates returning curated allow-list with URIs; same shape as §1, smaller list
  • §8 Design GET — GET /rest/v2/datasets/{id}/design returning full structured design (factors, FVs, statements, biomaterial assignments); import path works without it
  • §9 Cleaner dataset search — free-text q= param on /datasets or a dedicated /datasets/search typeahead endpoint
  • §11 Diagnostics / QC plot endpoints — REST access to sample correlation matrix, PCA scree, mean-variance plot, p-value distribution, predicted-outliers list (defer)
  • §12 Curator user info — extend /users/me with roles and permissions (defer until multi-curator deployment)
  • 21: gemmapy drops experimentalFactorType + per-FV measurement from get_dataset_samples (gemmapy fix, not Gemma REST). We talked about using direct API calls rather than relying on gemmapy for the agents. I believe the agent wants to use gemmapy because the design endpoint isn't as robust as it should be for now. Will refer back to this when the design endpoint is handled
  • 22: Gene-symbol resolution on /annotations/search

Write Surfaces (defer until production rollout; priority order)

  • §4 Curation write endpoints
    • GET/PUT /datasets/{id}/design
    • GET/PUT /datasets/{id}/curationDetails; without this the UI is a read-only inspector
  • §5 Curation proposals — POST/GET/PATCH /rest/v2/curation-proposals; needed for agent integration and curator review loop
  • §18 Structured detail on curation-commit audit event — versioned JSON in AuditEventValueObject.detail for rich History tab badges and downstream aggregation; pairs with §4
  • §14b Public/private toggle (write) — PUT /datasets/{id}/permissions; pairs with §14 read
  • §6 Quantitation Type editing — PUT /datasets/{id}/quantitationTypes/{qtid}; needed to close the pre-publish checklist
  • §10 ETag / If-Match concurrency on writes — prevent last-write-wins race between concurrent curators

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    g2-addressedaddressed for Gemma 2.0: triaged or addressed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions