Class AnalysisResultSetsWebService

java.lang.Object
ubic.gemma.rest.AnalysisResultSetsWebService

@Service @Path("/resultSets") public class AnalysisResultSetsWebService extends Object
Endpoint for AnalysisResultSet
  • Field Details

  • Constructor Details

    • AnalysisResultSetsWebService

      public AnalysisResultSetsWebService()
  • Method Details

    • getResultSets

      @GZIP @GET @Produces("application/json") public Object getResultSets(@QueryParam("datasets") DatasetArrayArg datasets, @QueryParam("databaseEntries") DatabaseEntryArrayArg databaseEntries, @QueryParam("filter") @DefaultValue("") FilterArg<ExpressionAnalysisResultSet> filters, @QueryParam("offset") @DefaultValue("0") OffsetArg offset, @QueryParam("limit") @DefaultValue("20") LimitArg limit, @QueryParam("sort") @DefaultValue("+id") SortArg<ExpressionAnalysisResultSet> sort, @QueryParam("cursor") CursorArg cursorArg)
      Retrieve all AnalysisResultSet matching a set of criteria.
      Parameters:
      datasets - filter result sets that belong to any of the provided dataset identifiers, or null to ignore
      databaseEntries - filter by associated datasets with given external identifiers, or null to ignore
    • getNumberOfResultSets

      @GET @Path("/count") @Produces("application/json") public ResponseDataObject<Long> getNumberOfResultSets(@QueryParam("filter") @DefaultValue("") FilterArg<ExpressionAnalysisResultSet> filter)
    • getResultSet

      @GZIP(mediaTypes="application/json") @GZIP(mediaTypes="text/tab-separated-values; charset=UTF-8",alreadyCompressed=true) @GET @Path("/{resultSet}") @Produces({"application/json","text/tab-separated-values; charset=UTF-8; q=0.9"}) public Object getResultSet(@PathParam("resultSet") ExpressionAnalysisResultSetArg analysisResultSet, @QueryParam("threshold") Double threshold, @QueryParam("offset") OffsetArg offsetArg, @QueryParam("limit") LimitArg limitArg, @QueryParam("includeFactorValuesInContrasts") Boolean includeFactorValuesInContrasts, @QueryParam("includeTaxonInGenes") Boolean includeTaxonInGenes, @QueryParam("excludeResults") @DefaultValue("false") Boolean excludeResults, @Context jakarta.ws.rs.core.HttpHeaders headers)
      Retrieve a AnalysisResultSet given its identifier.
    • getPvalueDistribution

      @GET @Path("/{resultSet}/pvalueDistribution") @Produces("application/json") public jakarta.ws.rs.core.Response getPvalueDistribution(@PathParam("resultSet") ExpressionAnalysisResultSetArg analysisResultSet, @QueryParam("bins") @DefaultValue("20") int bins, @QueryParam("column") @DefaultValue("raw") String column)
      Histogram-binned p-values for a differential-expression result set.

      Served straight out of the stored PVALUE_DISTRIBUTION row hanging off the result set (ANALYSIS_RESULT_SET.PVALUE_DISTRIBUTION_FK); nothing is aggregated per request. DifferentialExpressionAnalyzerServiceImpl#addPvalueDistribution writes it when the analysis is run: 100 fixed-width bins over [0, 1] of result.getPvalue(), i.e. the RAW p-values. Measured on production 2026-08-31: PVALUE_DISTRIBUTION is 0.1 GB and every one of the 56,616 result sets has a row, whereas the DIFFERENTIAL_EXPRESSION_ANALYSIS_RESULT table the previous implementation grouped over is 120.5 GB / ~1,574,396,269 rows.

      Because the stored bins are fixed, bins can only merge whole stored bins — it has to divide the stored bin count exactly. Splitting a stored count across two output bins would be inventing data, so a non-divisor is a 400 rather than an approximation.