Class ArrayDesignSequenceManipulatingCli

All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.context.EnvironmentAware, CLI
Direct Known Subclasses:
ArrayDesignAnnotationFileCli, ArrayDesignAuditTrailCleanupCli, ArrayDesignBioSequenceDetachCli, ArrayDesignBlatCli, ArrayDesignMapSummaryCli, ArrayDesignMergeCli, ArrayDesignProbeCleanupCLI, ArrayDesignProbeMapperCli, ArrayDesignProbeRenamerCli, ArrayDesignRepeatScanCli, ArrayDesignSequenceAssociationCli, ArrayDesignSubsumptionTesterCli, BioSequenceCleanupCli

public abstract class ArrayDesignSequenceManipulatingCli extends AbstractAutoSeekingCLI<ArrayDesign>
Aggregates functionality useful when writing CLIs that need to get an array design from the database and do something with it.
Author:
pavlidis
  • Field Details

  • Constructor Details

    • ArrayDesignSequenceManipulatingCli

      protected ArrayDesignSequenceManipulatingCli()
  • Method Details

    • getCommandGroup

      public CLI.CommandGroup getCommandGroup()
      Description copied from interface: CLI
      Obtain the command group for this CLI.
      Specified by:
      getCommandGroup in interface CLI
      Overrides:
      getCommandGroup in class AbstractCLI
    • buildOptions

      protected final void buildOptions(org.apache.commons.cli.Options options)
      Description copied from class: AbstractCLI
      Build option implementation.

      Implement this method to add options to your command line, using the OptionBuilder.

      This is called right after AbstractCLI.buildStandardOptions(Options) so the options will be added after standard options.

      Overrides:
      buildOptions in class AbstractCLI
    • buildArrayDesignOptions

      protected void buildArrayDesignOptions(org.apache.commons.cli.Options options)
    • processOptions

      @OverridingMethodsMustInvokeSuper protected final void processOptions(org.apache.commons.cli.CommandLine commandLine) throws org.apache.commons.cli.ParseException
      Description copied from class: AbstractCLI
      Process command line options.

      Implement this to provide processing of options. It is called after AbstractCLI.buildOptions(Options) and right before AbstractCLI.doWork().

      Overrides:
      processOptions in class AbstractAutoSeekingCLI<ArrayDesign>
      Throws:
      org.apache.commons.cli.ParseException - in case of unrecoverable failure (i.e. missing option or invalid value), an exception can be raised and will result in an exit code of AbstractCLI.FAILURE.
    • processArrayDesignOptions

      protected void processArrayDesignOptions(org.apache.commons.cli.CommandLine commandLine) throws org.apache.commons.cli.ParseException
      Throws:
      org.apache.commons.cli.ParseException
    • doAuthenticatedWork

      protected final void doAuthenticatedWork() throws Exception
      Specified by:
      doAuthenticatedWork in class AbstractAuthenticatedCLI
      Throws:
      Exception
    • processArrayDesigns

      protected void processArrayDesigns(Collection<ArrayDesign> arrayDesigns)
    • processArrayDesign

      protected void processArrayDesign(ArrayDesign arrayDesign)
    • toBatchObject

      protected Serializable toBatchObject(@Nullable ArrayDesign object)
      Description copied from class: AbstractAutoSeekingCLI
      Convert the given object to a serializable object for batch processing.
      Specified by:
      toBatchObject in class AbstractAutoSeekingCLI<ArrayDesign>
    • isSubsumedOrMerged

      protected boolean isSubsumedOrMerged(ArrayDesign arrayDesign)
      Parameters:
      arrayDesign - the array design to check
      Returns:
      true if the sequences on the given array design would be equivalently treated by analyzing another array design. In the case of subsumption, this only works if the array design has been either analyzed for subsuming status. (the analysis is not done as part of this call).
    • shouldRun

      protected boolean shouldRun(Date skipIfLastRunLaterThan, ArrayDesign design, Class<? extends ArrayDesignAnalysisEvent> cls)
    • getRelatedDesigns

      protected Collection<ArrayDesign> getRelatedDesigns(ArrayDesign design)
      Mergees or subsumees of the platform.
      Parameters:
      design - a platform
      Returns:
      related platforms
    • needToRun

      protected boolean needToRun(@Nullable Date skipIfLastRunLaterThan, ArrayDesign arrayDesign, Class<? extends ArrayDesignAnalysisEvent> eventClass)
      Parameters:
      eventClass - e.g., ArrayDesignSequenceAnalysisEvent.class
      Returns:
      true if skipIfLastRunLaterThan is null, or there is no record of a previous analysis, or if the last analysis was run before skipIfLastRunLaterThan. false otherwise.