Class ArrayDesignReportCli

All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.context.EnvironmentAware, CLI

public class ArrayDesignReportCli extends ArrayDesignSequenceManipulatingCli
Regenerate the on-disk platform reports — the per-platform element / sequence / alignment / gene counts that ArrayDesignReportService serializes under ${gemma.appdata.home}/ArrayDesignReports.

These counts are expensive (counting distinct genes for one large platform measures ~1.7 s against production) and change only when a platform's sequences or gene mappings are recomputed, so they are computed ahead of time rather than per request. GET /platforms serves numberOfGenes / numberOfMappedElements from these files.

Until now nothing could write them on demand. The pipeline CLIs regenerate a single platform's report as a side effect of remapping it, and SchedulerConfig.arrayDesignReportTrigger regenerates all of them monthly — but that trigger is a Quartz bean gated on the scheduler profile, and production nodes run production without it, so on a production deployment the reports are never written at all. This command fills that gap.

Requires an explicit selection: pass --all for the whole corpus, or name platforms with the usual -a / platform-identifier options. With neither, the base class fails with "No platforms matched the given options" rather than defaulting to everything.

Author:
paul
  • Constructor Details

    • ArrayDesignReportCli

      public ArrayDesignReportCli()
  • Method Details

    • getCommandName

      public String getCommandName()
      Description copied from interface: CLI
      A short memorable name for the command that can be used to locate this class.
      Specified by:
      getCommandName in interface CLI
      Overrides:
      getCommandName in class AbstractCLI
      Returns:
      name; if null or blank, this will not be available as a shortcut command.
    • getShortDesc

      public String getShortDesc()
      Description copied from interface: CLI
      Obtain a short description for this command explaining what it does.
      Specified by:
      getShortDesc in interface CLI
      Overrides:
      getShortDesc in class AbstractCLI
    • processArrayDesigns

      protected void processArrayDesigns(Collection<ubic.gemma.model.expression.arrayDesign.ArrayDesign> arrayDesigns)
      Overrides:
      processArrayDesigns in class ArrayDesignSequenceManipulatingCli