Interface ArrayDesignService

All Superinterfaces:
BaseImmutableService<ArrayDesign>, BaseReadOnlyService<ArrayDesign>, BaseService<ArrayDesign>, BaseVoEnabledService<ArrayDesign,ArrayDesignValueObject>, FilteringService<ArrayDesign>, FilteringVoEnabledService<ArrayDesign,ArrayDesignValueObject>, SecurableBaseImmutableService<ArrayDesign>, SecurableBaseReadOnlyService<ArrayDesign>, SecurableBaseService<ArrayDesign>, SecurableBaseVoEnabledService<ArrayDesign,ArrayDesignValueObject>, SecurableFilteringVoEnabledService<ArrayDesign,ArrayDesignValueObject>
All Known Implementing Classes:
ArrayDesignServiceImpl

  • Method Details

    • loadAllGenericGenePlatforms

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<ArrayDesign> loadAllGenericGenePlatforms()
      Load *generic* gene-based platforms.
    • loadAndThaw

      @Nullable @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_READ"}) ArrayDesign loadAndThaw(Long id)
    • loadAndThawLiteOrFail

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_READ"}) <T extends Exception> ArrayDesign loadAndThawLiteOrFail(Long id, Function<String,T> exceptionSupplier, String message) throws T
      Load a platform by ID and thaw it with thawLite(ArrayDesign)
      Throws:
      T
    • addProbes

      @Secured("GROUP_ADMIN") void addProbes(ArrayDesign arrayDesign, Collection<CompositeSequence> newProbes)
    • deleteAlignmentData

      @Secured({"GROUP_USER","ACL_SECURABLE_EDIT"}) void deleteAlignmentData(ArrayDesign arrayDesign)
      remove sequence alignment results associated with the bioSequences for this array design. This can indirectly * affect other platforms that use the same sequences.
      Parameters:
      arrayDesign - AD
    • deleteGeneProductAssociations

      @Secured({"GROUP_USER","ACL_SECURABLE_EDIT"}) void deleteGeneProductAssociations(ArrayDesign arrayDesign)
      deletes the gene product associations on the specified array design. If you only want to delete alignment-based or annotation-based associations, use deleteGeneProductAlignmentAssociation deleteGeneProductAnnotationAssociations.
      Parameters:
      arrayDesign - AD
    • findByAlternateName

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<ArrayDesign> findByAlternateName(String queryString)
    • findOneByAlternateName

      @Nullable @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_READ_QUIET"}) ArrayDesign findOneByAlternateName(String name)
    • findByManufacturer

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<ArrayDesign> findByManufacturer(String searchString)
    • findByName

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<ArrayDesign> findByName(String name)
    • findOneByName

      @Nullable @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_READ_QUIET"}) ArrayDesign findOneByName(String name)
    • findByShortName

      @Nullable @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_READ_QUIET"}) ArrayDesign findByShortName(String shortName)
    • findByTaxon

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<ArrayDesign> findByTaxon(Taxon taxon)
      Find by the primary taxon.
      Parameters:
      taxon - taxon
      Returns:
      ADs
    • getAlignments

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) Map<CompositeSequence,Collection<BlatResult>> getAlignments(ArrayDesign arrayDesign)
      Retrieves alignments for the platform elements, limited to those which map to a gene product (so not all blat results)
      Parameters:
      arrayDesign - AD
      Returns:
      map of composite sequences to alignments, if available.
    • getAllAssociatedBioAssays

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<BioAssay> getAllAssociatedBioAssays(ArrayDesign arrayDesign)
    • getBioSequences

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) Map<CompositeSequence,BioSequence> getBioSequences(ArrayDesign arrayDesign)
      Return all the (unique) biosequences associated with the array design. Composite sequences that don't have sequences are also returned, so this can be used to do a thawRawAndProcessed, in effect.
      Parameters:
      arrayDesign - AD
      Returns:
      map of composite seqs. to bio seqs.
    • getGenes

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) Collection<Gene> getGenes(ArrayDesign arrayDesign)
      See Also:
    • getGenesByCompositeSequence

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) Map<CompositeSequence,Set<Gene>> getGenesByCompositeSequence(ArrayDesign arrayDesign)
      See Also:
    • getGenesByCompositeSequence

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_COLLECTION_READ"}) Map<CompositeSequence,Set<Gene>> getGenesByCompositeSequence(Collection<ArrayDesign> arrayDesign)
    • getCompositeSequenceCount

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) Long getCompositeSequenceCount(ArrayDesign arrayDesign)
    • getCompositeSequences

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) Collection<CompositeSequence> getCompositeSequences(ArrayDesign arrayDesign)
    • getCompositeSequences

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) Collection<CompositeSequence> getCompositeSequences(ArrayDesign arrayDesign, int limit, int offset)
    • getExpressionExperiments

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ","AFTER_ACL_COLLECTION_READ"}) Collection<ExpressionExperiment> getExpressionExperiments(ArrayDesign arrayDesign)
    • getExpressionExperimentsCount

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long getExpressionExperimentsCount(ArrayDesign arrayDesign)
    • getLastGeneMapping

      Map<Long,AuditEvent> getLastGeneMapping(Collection<Long> ids)
      Gets the AuditEvents of the latest gene mapping for the specified array design ids. This returns a map of id -> AuditEvent. If the events do not exist, the map entry will point to null.
      Parameters:
      ids - ids
      Returns:
      map of IDs to events
    • getLastRepeatAnalysis

      Map<Long,AuditEvent> getLastRepeatAnalysis(Collection<Long> ids)
    • getLastSequenceAnalysis

      Map<Long,AuditEvent> getLastSequenceAnalysis(Collection<Long> ids)
      Gets the AuditEvents of the latest sequence analyses for the specified array design ids. This returns a map of id -> AuditEvent. If the events do not exist, the map entry will point to null.
      Parameters:
      ids - ids
      Returns:
      map of IDs to events
    • getLastSequenceUpdate

      Map<Long,AuditEvent> getLastSequenceUpdate(Collection<Long> ids)
      Gets the AuditEvents of the latest sequence update for the specified array design ids. This returns a map of id -> AuditEvent. If the events do not exist, the map entry will point to null.
      Parameters:
      ids - ids
      Returns:
      map of IDs to events
    • getSwitchedExperiments

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ","AFTER_ACL_COLLECTION_READ"}) Collection<ExpressionExperiment> getSwitchedExperiments(ArrayDesign id)
      Get the ids of experiments that "originally" used this platform, but which don't any more due to a platform switch. Note that for some old platforms we may not have recorded this information.
      Parameters:
      id - id of the platform
      Returns:
      collection of EE ids
    • getSwitchedExpressionExperimentCount

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long getSwitchedExpressionExperimentCount(ArrayDesign id)
    • getPerTaxonCount

      Map<Taxon,Long> getPerTaxonCount()
      Returns:
      a map of taxon -> count of how many array designs there are for that taxon. Taxa with no arrays are excluded.
    • getTaxa

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) Collection<Taxon> getTaxa(ArrayDesign arrayDesign)
      Return the taxa for the array design. This can be multiple, or zero if the array is not processed.
      Parameters:
      arrayDesign - The id of the array design
      Returns:
      The Set of Taxons for array design.
    • getTaxon

      Taxon getTaxon(Long id)
    • isMerged

      Map<Long,Boolean> isMerged(Collection<Long> ids)
    • isMergee

      Map<Long,Boolean> isMergee(Collection<Long> ids)
    • isSubsumed

      Map<Long,Boolean> isSubsumed(Collection<Long> ids)
    • isSubsumer

      Map<Long,Boolean> isSubsumer(Collection<Long> ids)
    • loadValueObjectsForEE

      List<ArrayDesignValueObject> loadValueObjectsForEE(Long eeId)
      Loads the Value Objects for array designs used by expression experiment with the given ID
      Parameters:
      eeId - the id of an expression experiment
      Returns:
      AD VOs
    • numAllCompositeSequenceWithBioSequences

      long numAllCompositeSequenceWithBioSequences()
      Function to return a count of all compositeSequences with bioSequence associations
      Returns:
      count
    • numAllCompositeSequenceWithBioSequences

      long numAllCompositeSequenceWithBioSequences(Collection<Long> ids)
      Function to return the count of all composite sequences with biosequences, given a list of array design Ids
      Parameters:
      ids - ids
      Returns:
      count
    • numAllCompositeSequenceWithBlatResults

      long numAllCompositeSequenceWithBlatResults()
      Function to return all composite sequences with blat results
      Returns:
      count
    • numAllCompositeSequenceWithBlatResults

      long numAllCompositeSequenceWithBlatResults(Collection<Long> ids)
      Function to return the count of all composite sequences with blat results, given a list of array design Ids
      Parameters:
      ids - ids
      Returns:
      count
    • numAllCompositeSequenceWithGenes

      long numAllCompositeSequenceWithGenes()
      Function to return a count of all composite sequences with associated genes.
      Returns:
      count
    • numAllCompositeSequenceWithGenes

      long numAllCompositeSequenceWithGenes(Collection<Long> ids)
      Function to return the count of all composite sequences with genes, given a list of array design Ids
      Parameters:
      ids - ids
      Returns:
      count
    • numAllGenes

      long numAllGenes()
      Returns a count of the number of genes associated with all arrayDesigns
      Returns:
      count
    • numAllGenes

      long numAllGenes(Collection<Long> ids)
      Returns the number of unique Genes associated with the collection of ArrayDesign ids.
      Parameters:
      ids - ids
      Returns:
      count
    • numBioSequences

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long numBioSequences(ArrayDesign arrayDesign)
      returns the number of bioSequences associated with this ArrayDesign id
      Parameters:
      arrayDesign - AD
      Returns:
      count
    • numBlatResults

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long numBlatResults(ArrayDesign arrayDesign)
      returns the number of BlatResults (BioSequence2GeneProduct) entries associated with this ArrayDesign id.
      Parameters:
      arrayDesign - AD
      Returns:
      count
    • numCompositeSequenceWithBioSequences

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long numCompositeSequenceWithBioSequences(ArrayDesign arrayDesign)
    • numCompositeSequenceWithBlatResults

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long numCompositeSequenceWithBlatResults(ArrayDesign arrayDesign)
    • numCompositeSequenceWithGenes

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long numCompositeSequenceWithGenes(ArrayDesign arrayDesign)
    • numExperiments

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long numExperiments(ArrayDesign arrayDesign)
      Parameters:
      arrayDesign - AD
      Returns:
      how many experiments use this platform (not including experiment subsets) security filtered
    • numGenes

      @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) long numGenes(ArrayDesign arrayDesign)
      Returns the number of unique Genes associated with this ArrayDesign id
      Parameters:
      arrayDesign - AD
      Returns:
      count
    • removeBiologicalCharacteristics

      @Secured({"GROUP_USER","ACL_SECURABLE_EDIT"}) void removeBiologicalCharacteristics(ArrayDesign arrayDesign)
      Remove all associations that this array design has with BioSequences. This is needed for cases where the original import has associated the probes with the wrong sequences. A common case is for GEO data sets where the actual oligonucleotide is not given. Instead the submitter provides Genbank accessions, which are misleading. This method can be used to clear those until the "right" sequences can be identified and filled in. Note that this does not remove the BioSequences, it just nulls the BiologicalCharacteristics of the CompositeSequences.
      Parameters:
      arrayDesign - AD
    • thaw

      @CheckReturnValue @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) ArrayDesign thaw(ArrayDesign arrayDesign)
      Thaw a given platform.
      See Also:
    • thaw

      @CheckReturnValue @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<ArrayDesign> thaw(Collection<ArrayDesign> aas)
      Thaw a collection of platforms.
      See Also:
    • thawCompositeSequences

      @CheckReturnValue @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) ArrayDesign thawCompositeSequences(ArrayDesign arrayDesign)
      Thaw the composite sequences of a given platform
      See Also:
    • thawCompositeSequences

      @CheckReturnValue @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<ArrayDesign> thawCompositeSequences(Collection<ArrayDesign> ads)
    • thawLite

      @CheckReturnValue @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","ACL_SECURABLE_READ"}) ArrayDesign thawLite(ArrayDesign arrayDesign)
      Perform a less intensive thaw of an array design: not the composite sequences.
      Parameters:
      arrayDesign - AD
      Returns:
      AD
    • thawLite

      @CheckReturnValue @Secured({"IS_AUTHENTICATED_ANONYMOUSLY","AFTER_ACL_COLLECTION_READ"}) Collection<ArrayDesign> thawLite(Collection<ArrayDesign> arrayDesigns)
    • updateSubsumingStatus

      @Secured({"GROUP_USER","ACL_SECURABLE_EDIT"}) boolean updateSubsumingStatus(ArrayDesign candidateSubsumer, ArrayDesign candidateSubsumee)
      Test whether the candidateSubsumer subsumes the candidateSubsumee. If so, the array designs are updated to reflect this fact. The boolean value returned indicates whether there was indeed a subsuming relationship found.
      Parameters:
      candidateSubsumer - candidate subsumer
      candidateSubsumee - candidate subsumee
      Returns:
      success
    • isBlackListed

      boolean isBlackListed(String geoAccession)
      Parameters:
      geoAccession - for a GEO series or platform
    • deleteGeneProductAnnotationAssociations

      @Secured({"GROUP_USER","ACL_SECURABLE_EDIT"}) void deleteGeneProductAnnotationAssociations(ArrayDesign arrayDesign)
    • deleteGeneProductAlignmentAssociations

      @Secured({"GROUP_USER","ACL_SECURABLE_EDIT"}) void deleteGeneProductAlignmentAssociations(ArrayDesign arrayDesign)
    • loadBlacklistedValueObjects

      @Secured("GROUP_ADMIN") Slice<ArrayDesignValueObject> loadBlacklistedValueObjects(@Nullable Filters filters, @Nullable Sort sort, int offset, int limit)
      No need for ACL_VALUE_OBJECT_COLLECTION_READ because the filtering is done in the query.
      See Also:
    • loadValueObjectsWithCache

      @Secured("IS_AUTHENTICATED_ANONYMOUSLY") Collection<ArrayDesignValueObject> loadValueObjectsWithCache(@Nullable Filters filters, @Nullable Sort sort)
    • countWithCache

      long countWithCache(@Nullable Filters filters)