Class PreboardedExperiment

All Implemented Interfaces:
Securable, Auditable, Securable, Describable, Identifiable

@Entity public class PreboardedExperiment extends Investigation
Subclass of Investigation representing a proposed-but-not-yet-loaded dataset.

Created by POST /preboarded when the curation-agents runner targets a GEO (or other) accession that has not yet been imported into Gemma. The preboarded carries enough identifying metadata to triage / re-run the agent against it, and accumulates one or more AnnotationSet rows over time. When the data lands as an ExpressionExperiment, the preboarded is promoted via POST /preboarded/{id}/promote — the implementation rebinds the AnnotationSet FKs to the new EE row (new-row + FK rebind approach; see HANDOFF_PROPOSED_EXPERIMENT_WORKFLOW.md §"Open questions" item 1 and STATUS file for rationale).

Single-table inheritance under INVESTIGATION with discriminator value PreboardedExperiment; sibling of ExpressionExperiment and ExpressionExperimentSubSet.

Defaults its WorkflowState to WorkflowState.Preboarded on construction (collapsing handoff states 1+2; see STATUS file). Promotion advances the resulting EE to WorkflowState.Loaded.

  • Constructor Details

    • PreboardedExperiment

      public PreboardedExperiment()
  • Method Details

    • getAccession

      public String getAccession()
      Returns:
      the upstream accession this preboarded targets (e.g. GSE12345). Required; the create endpoint enforces it.
    • setAccession

      public void setAccession(String accession)
    • getSource

      public String getSource()
      Returns:
      the upstream source this accession belongs to. Defaults to "GEO"; future values may include "ArrayExpress", "manual".
    • setSource

      public void setSource(String source)
    • getMatchedCriteria

      public String getMatchedCriteria()
      Returns:
      JSON-as-string listing matcher names from the GEO scrape pipeline that flagged this preboarded, or null if not produced by the scrape pipeline.
    • setMatchedCriteria

      public void setMatchedCriteria(String matchedCriteria)
    • hashCode

      public int hashCode()
      Description copied from class: AbstractDescribable
      The default hash code for a describable is based on its name, ignoring case.

      Important note: Never use the ID in the hashCode() implementation since it can be assigned when the object is persisted.

      Overrides:
      hashCode in class AbstractDescribable
    • equals

      public boolean equals(Object object)
      Description copied from class: AbstractDescribable
      Important note: The name should be compared in a case-insensitive manner. You can use DescribableUtils.equalsByName(Describable, Describable) to get the correct behavior.

      Important note: Two objects with the same class and non-null ID must be considered equal. If one or both IDs are nulls, the rest of the state can be used to determine equality.

      Specified by:
      equals in class AbstractDescribable