Interface GeoService

All Known Implementing Classes:
GeoServiceImpl

public interface GeoService
Author:
paul
  • Method Details

    • addElements

      ArrayDesign addElements(ArrayDesign targetPlatform)
      For the rare cases (Exon arrays) where we load the platform in two stages.
      Parameters:
      targetPlatform - already persistent array design.
      Returns:
      updated (persistent) array design
    • fetchAndLoad

      @Nullable Collection<?> fetchAndLoad(String geoAccession, boolean loadPlatformOnly, boolean doSampleMatching, boolean splitIncompatiblePlatforms)
      Load data, no restrictions on superseries or subseries
      Parameters:
      geoAccession - accession
      loadPlatformOnly - load platforms only
      doSampleMatching - do sample matching
      splitIncompatiblePlatforms - split incompatible platforms
      Returns:
      collection
    • fetchAndLoad

      @Nullable Collection<?> fetchAndLoad(String geoAccession, boolean loadPlatformOnly, boolean doSampleMatching, boolean splitIncompatiblePlatforms, boolean allowSuperSeriesImport, boolean allowSubSeriesImport)
      Parameters:
      geoAccession - accession
      loadPlatformOnly - load platforms only
      doSampleMatching - do sample matching
      splitIncompatiblePlatforms - split incompatible platforms
      allowSuperSeriesImport - Allow loading if the Series is a SuperSeries
      allowSubSeriesImport - Allow loading if the Series is a SubSeries
      Returns:
      collection
    • loadPlatforms

      @Transactional Collection<ArrayDesign> loadPlatforms(String geoAccession, Collection<? extends GeoData> platforms)
      Convert already-fetched platform data and persist the resulting array designs.

      🛑 Not meant to be called directly — it exists so fetchAndLoad(String, boolean, boolean, boolean), which is Propagation.NEVER so the GEO fetch it wraps does not hold a transaction open, can reach a real transaction boundary through this bean's proxy for the persist step. A self-invocation would not open one.

    • convertAndPersist

      @Nullable @Transactional Collection<?> convertAndPersist(Collection<? extends GeoData> parseResult, boolean doSampleMatching, boolean splitByPlatform, boolean allowSuperSeriesImport, boolean allowSubSeriesImport)
      Convert an already-fetched series and persist the resulting experiment(s).

      Same reason as loadPlatforms(String, Collection): reached through the proxy from fetchAndLoad(String, boolean, boolean, boolean) once the long GEO fetch has already returned, so the ACL-creating persist at the end of this call (and everything that validates/converts the series beforehand) runs in its own fresh transaction rather than the one the fetch would otherwise have held open.

    • updateFromGEO

      void updateFromGEO(String geoAccession, GeoService.GeoUpdateConfig geoUpdateConfig)
      Refetch and reprocess the GEO series, updating select information. Currently only implemented for experiments (GSEs)

      All experiments that uses the GEO accession will be updated as per updateFromGEO(ExpressionExperiment, GeoUpdateConfig).

    • updateFromGEO

      void updateFromGEO(ExpressionExperiment expressionExperiment, GeoService.GeoUpdateConfig geoUpdateConfig)
      Refetch and reprocess a given experiment.
    • loadFromSoftFile

      Collection<?> loadFromSoftFile(String accession, String softFile, boolean loadPlatformOnly, boolean doSampleMatching, boolean splitByPlatform)
      Load from a SOFT file. This can be used for testing but maybe there are other situations it is useful.
      Parameters:
      accession - e.g GSE1234
      softFile - the full path to the SOFT file. The file name has to be [accession].soft.gz
      Returns:
      a single experiment.
    • setGeoDomainObjectGenerator

      void setGeoDomainObjectGenerator(GeoDomainObjectGenerator generator)