Class 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 Detail

      • GeoServiceImpl

        public GeoServiceImpl()
    • Method Detail

      • 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)
        Description copied from interface: GeoService
        Refetch and reprocess the GEO series, updating select information. Currently only implemented for experiments (GSEs)
        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.