Class PipelineStatusValueObject.PipelineStepValueObject

java.lang.Object
ubic.gemma.rest.PipelineStatusValueObject.PipelineStepValueObject
Enclosing class:
PipelineStatusValueObject

public static class PipelineStatusValueObject.PipelineStepValueObject extends Object
  • Field Details

    • STATUS_OK

      public static final String STATUS_OK
      The step has completed successfully.
      See Also:
    • STATUS_FAILED

      public static final String STATUS_FAILED
      The most recent attempt failed.
      See Also:
    • STATUS_NOT_RUN

      public static final String STATUS_NOT_RUN
      Applicable to this experiment, but never attempted.
      See Also:
    • STATUS_NOT_APPLICABLE

      public static final String STATUS_NOT_APPLICABLE
      Not applicable to this experiment -- so "never run" is not a gap.
      See Also:
    • STATUS_STALE

      public static final String STATUS_STALE
      Ran successfully, and the experimental design has changed since -- so the result is still there but no longer describes the design it was computed from.

      🛑 Distinct from the two states that already exist elsewhere and are NOT this. incomplete (the curation store's step state) means started and unfinished, a curator owes it something. needsAttention is the curator's own flag, mirrored at the top level of this VO. This is neither: nobody has to do anything for the state to be true, and it is about the derived artifact rather than about the curation.

      Every step but batchInfo can report it. A design change that invalidates an analysis DELETES it, after which the step reads notRun; this covers the case where the analysis survived the change.

      GET /datasets/staleSteps is the corpus-wide read: which datasets carry one of these, and which steps.

      See Also:
  • Constructor Details

  • Method Details

    • getStep

      public String getStep()
      Which pipeline step. The nine emitted by DatasetsWebService.PIPELINE_STEPS.
    • getState

      public String getState()
      One of STATUS_OK, STATUS_FAILED, STATUS_NOT_RUN, STATUS_NOT_APPLICABLE, STATUS_STALE.

      Kept a String rather than promoted to an enum, so that adding a value later is not a deserialization break for a consumer holding an older copy of the vocabulary. The allowableValues below is what pins it: before this, the deployed OpenAPI spec said only "type": "string", which is how a vocabulary drifts with nobody noticing -- and it had already drifted, since the curation UI carries a six-value union of which two (in_progress, needs_attention) no producer here emits.

      Wire key is status per curation-UI alignment; legacy state accepted on read.

    • getLastRun

      @Nullable public Date getLastRun()
    • getEventType

      @Nullable public String getEventType()
      Simple class name of the latest audit event (BatchInformationFetchingEvent, FailedPCAAnalysisEvent, etc.). null when no event has been recorded.
    • getMessage

      @Nullable public String getMessage()
      Note attached to the latest audit event, when present. Most useful for failed steps where the failure reason is captured here.

      Wire key is details per curation-UI alignment; legacy message accepted on read.

    • getFilterAttrition

      @Nullable public SampleCorrelationAnalysisPayload getFilterAttrition()
      How many design elements and samples each filter removed while the step ran, and the filter settings that produced those numbers. Only the sampleCorrelation step carries it.

      🛑 null means NOT RECORDED, never "nothing was filtered". Filtering is not part of preprocessing and nothing about it was stored before this field existed, so every dataset whose correlation matrix predates it reads null until something recomputes the matrix.

      🛑 These counts describe the filter the correlation matrix was built under, which is not the one the "filtered" data download uses -- that path builds its own configuration. config is served alongside for exactly that reason; the counts are not interpretable without it.

    • getProcessedVectors

      @Nullable public ProcessedVectorComputationPayload getProcessedVectors()
      What the processed-vector creation did to the data: which raw quantitation type it started from, which one it produced, how many cells were masked for missing values and for outliers, and whether the result was quantile-normalized. Only the preprocess step carries it.

      🛑 This is as close as Gemma comes to a "normalization method", and it is not one -- there is no stored algorithm name. quantileNormalized is a single recorded fact; everything else about how the values are scaled is described by the preferred quantitation type's flags, served by GET /datasets/{id}/quantitationTypes.

      🛑 null means not recorded. The payload has been written since the Phase C audit migration, so this is populated for anything preprocessed since -- but not for older runs.

    • setStep

      public void setStep(String step)
      Which pipeline step. The nine emitted by DatasetsWebService.PIPELINE_STEPS.
    • setState

      public void setState(String state)
      One of STATUS_OK, STATUS_FAILED, STATUS_NOT_RUN, STATUS_NOT_APPLICABLE, STATUS_STALE.

      Kept a String rather than promoted to an enum, so that adding a value later is not a deserialization break for a consumer holding an older copy of the vocabulary. The allowableValues below is what pins it: before this, the deployed OpenAPI spec said only "type": "string", which is how a vocabulary drifts with nobody noticing -- and it had already drifted, since the curation UI carries a six-value union of which two (in_progress, needs_attention) no producer here emits.

      Wire key is status per curation-UI alignment; legacy state accepted on read.

    • setLastRun

      public void setLastRun(@Nullable Date lastRun)
    • setEventType

      public void setEventType(@Nullable String eventType)
      Simple class name of the latest audit event (BatchInformationFetchingEvent, FailedPCAAnalysisEvent, etc.). null when no event has been recorded.
    • setMessage

      public void setMessage(@Nullable String message)
      Note attached to the latest audit event, when present. Most useful for failed steps where the failure reason is captured here.

      Wire key is details per curation-UI alignment; legacy message accepted on read.

    • setFilterAttrition

      public void setFilterAttrition(@Nullable SampleCorrelationAnalysisPayload filterAttrition)
      How many design elements and samples each filter removed while the step ran, and the filter settings that produced those numbers. Only the sampleCorrelation step carries it.

      🛑 null means NOT RECORDED, never "nothing was filtered". Filtering is not part of preprocessing and nothing about it was stored before this field existed, so every dataset whose correlation matrix predates it reads null until something recomputes the matrix.

      🛑 These counts describe the filter the correlation matrix was built under, which is not the one the "filtered" data download uses -- that path builds its own configuration. config is served alongside for exactly that reason; the counts are not interpretable without it.

    • setProcessedVectors

      public void setProcessedVectors(@Nullable ProcessedVectorComputationPayload processedVectors)
      What the processed-vector creation did to the data: which raw quantitation type it started from, which one it produced, how many cells were masked for missing values and for outliers, and whether the result was quantile-normalized. Only the preprocess step carries it.

      🛑 This is as close as Gemma comes to a "normalization method", and it is not one -- there is no stored algorithm name. quantileNormalized is a single recorded fact; everything else about how the values are scaled is described by the preferred quantitation type's flags, served by GET /datasets/{id}/quantitationTypes.

      🛑 null means not recorded. The payload has been written since the Phase C audit migration, so this is populated for anything preprocessed since -- but not for older runs.