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