Class GenomicRegionSearchService


  • public class GenomicRegionSearchService
    extends java.lang.Object
    A class to provide genomic region search services in general.
    • Field Detail

      • DEFAULT_REGION_INIT_BATCH_SIZE

        public static final int DEFAULT_REGION_INIT_BATCH_SIZE
        Default batch size to be used for region search initialisation queries.
        See Also:
        Constant Field Values
    • Constructor Detail

      • GenomicRegionSearchService

        public GenomicRegionSearchService()
        Constructor
    • Method Detail

      • init

        public void init​(javax.servlet.http.HttpServletRequest request)
        To set globally used variables.
        Parameters:
        request - HttpServletRequest
      • setupWebData

        public java.lang.String setupWebData()
                                      throws java.lang.Exception
        To call the queryOrganismAndSequenceFeatureTypes method in GenomicRegionSearchQueryRunner.
        Returns:
        a JSON string
        Throws:
        java.lang.Exception - e
      • getOptionsJavascript

        public java.lang.String getOptionsJavascript()
        Get the name of customized options javascript, by default, it is named "genomic_region_search_options_default.js"
        Returns:
        the name of options javascript name
      • getResultsJavascript

        public java.lang.String getResultsJavascript()
        Get the name of customized results javascript
        Returns:
        the name of results page
      • getOptionsCss

        public java.lang.String getOptionsCss()
        Get the name of customized options CSS
        Returns:
        the name of options css
      • getResultsCss

        public java.lang.String getResultsCss()
        Get the name of customized results CSS
        Returns:
        the name of results css
      • parseGenomicRegionSearchForm

        public org.apache.struts.action.ActionMessage parseGenomicRegionSearchForm​(GenomicRegionSearchForm grsForm)
                                                                            throws java.lang.Exception
        To parse form data
        Parameters:
        grsForm - GenomicRegionSearchForm
        Returns:
        genomic region search constraint
        Throws:
        java.lang.Exception - e
      • parseBasicInput

        public org.apache.struts.action.ActionMessage parseBasicInput​(GenomicRegionSearchForm grsForm)
                                                               throws java.lang.Exception
        Parameters:
        grsForm - GenomicRegionSearchForm
        Returns:
        ActionMessage
        Throws:
        java.lang.Exception - e
      • createQueryList

        public java.util.Map<GenomicRegion,​org.intermine.objectstore.query.Query> createQueryList()
        To prepare queries for genomic regions
        Returns:
        a list of prepared queries for genomic regions
      • getChromosomeInfomationMap

        public java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​ChromosomeInfo>> getChromosomeInfomationMap()
        Get chromosome information as in a map, keys are lowercased chromosome ids
        Returns:
        chrInfoMap
      • getFeatureTypeToSOTermMap

        public java.util.Map<java.lang.String,​java.util.List<java.lang.String>> getFeatureTypeToSOTermMap()
        Returns:
        featureTypeToSOTermMap
      • getOrganismToTaxonMap

        public java.util.Map<java.lang.String,​java.lang.String> getOrganismToTaxonMap()
        Returns:
        orgTaxonIdMap
      • validateGenomicRegions

        public java.util.Map<java.lang.String,​java.util.List<GenomicRegion>> validateGenomicRegions()
                                                                                                   throws java.lang.Exception
        Validate input genomic regions
        Returns:
        resultMap
        Throws:
        java.lang.Exception - with error message
      • getSelectionInformation

        public java.util.List<java.lang.String> getSelectionInformation()
        The message passed to results page
        Returns:
        resultMessages
      • getGenomicRegionOrganismConstraint

        public java.lang.String getGenomicRegionOrganismConstraint​(java.lang.String spanUUIDString,
                                                                   java.util.Map<GenomicRegionSearchConstraint,​java.lang.String> spanConstraintMap)
        Get organism for GenomicRegionSearchAjaxAction use.
        Parameters:
        spanUUIDString - uuid
        spanConstraintMap - map of contraints
        Returns:
        the organism
      • getGenomicRegionExtendedSizeConstraint

        public int getGenomicRegionExtendedSizeConstraint​(java.lang.String spanUUIDString,
                                                          java.util.Map<GenomicRegionSearchConstraint,​java.lang.String> spanConstraintMap)
        Get flanking size for GenomicRegionSearchAjaxAction use.
        Parameters:
        spanUUIDString - uuid
        spanConstraintMap - map of contraints
        Returns:
        the flanking size
      • getGenomicRegionOverlapFeaturesAsSet

        public java.util.Set<java.lang.Integer> getGenomicRegionOverlapFeaturesAsSet​(java.lang.String grInfo,
                                                                                     java.util.Map<GenomicRegion,​java.util.List<java.util.List<java.lang.String>>> resultMap)
                                                                              throws java.lang.Exception
        Get a set of ids of a span's overlap features. for GenomicRegionSearchAjaxAction use.
        Parameters:
        grInfo - a genomic region in string array
        resultMap - map of search results
        Returns:
        String feature ids joined by comma
        Throws:
        java.lang.Exception - with error message
      • getGenomicRegionOverlapFeaturesByType

        public java.util.Set<java.lang.Integer> getGenomicRegionOverlapFeaturesByType​(java.lang.String grInfo,
                                                                                      java.util.Map<GenomicRegion,​java.util.List<java.util.List<java.lang.String>>> resultMap,
                                                                                      java.lang.String featureType)
                                                                               throws java.lang.Exception
        Get a set of ids of a span's overlap features by given feature type. for GenomicRegionSearchAjaxAction use.
        Parameters:
        grInfo - a genomic region in string array
        resultMap - map of search results
        featureType - e.g. Gene
        Returns:
        String feature ids joined by comma
        Throws:
        java.lang.Exception - with error message
      • getAllGenomicRegionOverlapFeaturesByType

        public java.util.Set<java.lang.Integer> getAllGenomicRegionOverlapFeaturesByType​(java.util.Map<GenomicRegion,​java.util.List<java.util.List<java.lang.String>>> resultMap,
                                                                                         java.lang.String featureType)
        Get a set of ids of all span's overlap features by given feature type. for GenomicRegionSearchAjaxAction use.
        Parameters:
        resultMap - map of search results
        featureType - e.g. Gene
        Returns:
        String feature ids joined by comma
      • getGenomicRegionOverlapFeaturesAsString

        public java.lang.String getGenomicRegionOverlapFeaturesAsString​(java.lang.String grInfo,
                                                                        java.util.Map<GenomicRegion,​java.util.List<java.util.List<java.lang.String>>> resultMap)
                                                                 throws java.lang.Exception
        Get a comma separated string of a span's overlap features. for GenomicRegionSearchAjaxAction use.
        Parameters:
        grInfo - a genomic region in string array
        resultMap - map of search results
        Returns:
        String feature ids joined by comma
        Throws:
        java.lang.Exception - with error message
      • isEmptyFeature

        public java.lang.String isEmptyFeature​(java.util.Map<GenomicRegion,​java.util.List<java.util.List<java.lang.String>>> resultMap)
        Check whether the results have empty features. for GenomicRegionSearchAjaxAction use.
        Parameters:
        resultMap - map of search results
        Returns:
        String "hasFeature" or "emptyFeature"
      • generateCreateListHtml

        public java.lang.String generateCreateListHtml​(java.util.Map<GenomicRegion,​java.util.List<java.util.List<java.lang.String>>> resultMap)
        Generate a html string with all feature type for list creation.
        Parameters:
        resultMap - map of search results
        Returns:
        a html string
      • convertResultMapToHTML

        public java.lang.String convertResultMapToHTML​(java.util.Map<GenomicRegion,​java.util.List<java.util.List<java.lang.String>>> resultMap,
                                                       java.util.Map<GenomicRegion,​java.util.Map<java.lang.String,​java.lang.Integer>> resultStat,
                                                       java.util.List<GenomicRegion> genomicRegionList,
                                                       int fromIdx,
                                                       int toIdx,
                                                       javax.servlet.http.HttpSession session)
        Convert result map to HTML string.
        Parameters:
        resultMap - resultMap
        resultStat - result statistics
        genomicRegionList - spanList
        fromIdx - offsetStart
        toIdx - offsetEnd
        session - the current session
        Returns:
        a String of HTML
      • categorizeFeatureTypes

        public java.lang.String categorizeFeatureTypes​(java.util.Set<java.lang.String> featureSet,
                                                       GenomicRegion s)
        Get all feature types from a list of sequence features
        Parameters:
        featureSet - a set of feature types (class names) in a special order
        s - GenomicRegion
        Returns:
        A html string with a dropdown list of feature types
      • getFeatureTypeSetInAlphabeticalOrder

        public java.util.Set<java.lang.String> getFeatureTypeSetInAlphabeticalOrder​(java.util.Set<java.lang.String> featureSet)
        Get all feature types in a TresSet
        Parameters:
        featureSet - a set of feature types (class names) in a special order
        Returns:
        a set of feature types of a genomic region in alphabetical order
      • getMatchedBaseCount

        protected java.lang.String getMatchedBaseCount​(GenomicRegion gr,
                                                       java.util.List<java.lang.String> r)
        Calculate the number of matched bases.
        Parameters:
        gr - a GenomicRegion object
        r - a list of attributes
        Returns:
        matched base count as String
      • getExportFeaturesQuery

        public org.intermine.pathquery.PathQuery getExportFeaturesQuery​(java.util.Set<java.lang.Integer> featureIds,
                                                                        java.lang.String featureType,
                                                                        java.util.Set<java.lang.String> views,
                                                                        java.util.List<java.lang.String> sortOrder)
        A flexiable way of setting query fields.
        Parameters:
        featureIds - set of feature intermine ids
        featureType - feature class name
        views - user defined views in web.properties
        sortOrder - user defined sortOrder in web.properties
        Returns:
        a pathquery
      • getTaxonIds

        public java.util.Set<java.lang.String> getTaxonIds​(java.util.Set<java.lang.String> organisms)
        Parameters:
        organisms - set of org names
        Returns:
        set of taxonIds
      • isJBrowseEnabled

        public boolean isJBrowseEnabled()
        Test if jbrowse is enabled
        Returns:
        boolean
      • getJBrowseTracks

        public java.util.Map<java.lang.String,​java.lang.String> getJBrowseTracks()
        Get jbrowse track information from web.properties
        Returns:
        a map: key - feature type, value - track name
      • hasJBrowseTrack

        public boolean hasJBrowseTrack​(java.lang.String featureType)
        Test if jbrowse has a track regards to a feature type
        Parameters:
        featureType - a feature type
        Returns:
        boolean
      • generateJBrowseURL

        public java.lang.String generateJBrowseURL​(GenomicRegion s,
                                                   java.util.List<java.lang.String> featureTypes)
        Generated a jbrowse url
        Parameters:
        s - a GenomicRegion object
        featureTypes - list of feature types
        Returns:
        a string representing jbrowse url
      • generateJBrowseURL

        public java.lang.String generateJBrowseURL​(GenomicRegion s)
        A wrapper of generateJBrowseURL(GenomicRegion s, List featureTypes)
        Parameters:
        s - GenomicRegion
        Returns:
        jbrowse url