Class GeoServiceImpl

java.lang.Object
ubic.gemma.core.loader.expression.geo.service.GeoServiceImpl
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, GeoService

@Component public class GeoServiceImpl extends Object implements GeoService, org.springframework.beans.factory.InitializingBean
Non-interactive fetching, processing and persisting of GEO data.
Author:
pavlidis
  • Constructor Details

    • GeoServiceImpl

      public GeoServiceImpl()
  • Method Details

    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
    • addElements

      @Transactional public ArrayDesign addElements(ArrayDesign targetPlatform)
      Description copied from interface: GeoService
      For the rare cases (Exon arrays) where we load the platform in two stages.
      Specified by:
      addElements in interface GeoService
      Parameters:
      targetPlatform - already persistent array design.
      Returns:
      updated (persistent) array design
    • fetchAndLoad

      @Transactional public Collection<?> fetchAndLoad(String geoAccession, boolean loadPlatformOnly, boolean doSampleMatching, boolean splitByPlatform)
      Description copied from interface: GeoService
      Load data, no restrictions on superseries or subseries
      Specified by:
      fetchAndLoad in interface GeoService
      Parameters:
      geoAccession - accession
      loadPlatformOnly - load platforms only
      doSampleMatching - do sample matching
      splitByPlatform - split incompatible platforms
      Returns:
      collection
    • fetchAndLoad

      @Transactional public Collection<?> fetchAndLoad(String geoAccession, boolean loadPlatformOnly, boolean doSampleMatching, boolean splitByPlatform, boolean allowSuperSeriesImport, boolean allowSubSeriesImport)
      Given a GEO GSE or GDS (or GPL, but support might not be complete)
      1. Check that it doesn't already exist in the system, filter samples
      2. Download and parse GDS files and GSE file needed
      3. Convert the GDS and GSE into a ExpressionExperiment (or just the ArrayDesigns)
      4. Load the resulting ExpressionExperiment and/or ArrayDesigns into Gemma
      Specified by:
      fetchAndLoad in interface GeoService
      Parameters:
      geoAccession - accession
      loadPlatformOnly - load platforms only
      doSampleMatching - do sample matching
      splitByPlatform - split incompatible platforms
      allowSuperSeriesImport - Allow loading if the Series is a SuperSeries
      allowSubSeriesImport - Allow loading if the Series is a SubSeries
      Returns:
      collection
    • updateFromGEO

      @Transactional public void updateFromGEO(String geoAccession, GeoService.GeoUpdateConfig geoUpdateConfig)
      Description copied from interface: GeoService
      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 GeoService.updateFromGEO(ExpressionExperiment, GeoUpdateConfig).

      Specified by:
      updateFromGEO in interface GeoService
    • updateFromGEO

      public void updateFromGEO(ExpressionExperiment ee, GeoService.GeoUpdateConfig geoUpdateConfig)
      Description copied from interface: GeoService
      Refetch and reprocess a given experiment.
      Specified by:
      updateFromGEO in interface GeoService
    • loadFromSoftFile

      @Transactional public Collection<?> loadFromSoftFile(String accession, String softFile, boolean loadPlatformOnly, boolean doSampleMatching, boolean splitByPlatform)
      Description copied from interface: GeoService
      Load from a SOFT file. This can be used for testing but maybe there are other situations it is useful.
      Specified by:
      loadFromSoftFile in interface GeoService
      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

      public void setGeoDomainObjectGenerator(GeoDomainObjectGenerator generator)
      Specified by:
      setGeoDomainObjectGenerator in interface GeoService