Interface AnnotationRelationService
- All Known Implementing Classes:
AnnotationRelationServiceImpl
Three consumers, and they want three different shapes of the same rows:
- Display — an experiment page captioning what its own annotations imply.
findRelationsForExperiment(ExpressionExperiment, AnnotationRelationDao.Direction, Set, int)seeds from the experiment's annotations and answers "what does this dataset's genotype stand for?" - Browse and search — a disease selector that must still return a dataset annotated only
as
Chd8mutant.findRelatedTermsForSearch(Collection, Collection, AnnotationRelationDao.Direction, Set, Long, Collection, int, int)is the expansion primitive. - Suppression — a producer asking whether the tag it is about to write is already implied.
Also
findRelatedTermsForSearch(Collection, Collection, AnnotationRelationDao.Direction, Set, Long, Collection, int, int), read as set membership.
🛑 The suppression consumer must exclude the experiment under test. The curation pipeline
is gold-blind: it never sees the current experiment's own curation, and a gate that read the
experiment's own statements would be reading the very thing being evaluated. Peer precedent from the
rest of the corpus is the honest source, which is what excludedExperimentIds is for. It is
also what makes "this tag is inferable, so it can be dropped" a claim rather than a circle: hold the
dataset out and ask whether the rest of the corpus still recovers the disease.
-
Method Summary
Modifier and TypeMethodDescriptionfindRelatedTermsForSearch(Collection<String> seedValueUris, Collection<String> seedValues, AnnotationRelationDao.Direction direction, Set<AnnotationRelationBasis> bases, Long taxonId, Collection<Long> excludedExperimentIds, int maximumObjectBreadth, int maxResults) Terms related to the seeds, for widening a query or testing membership.The ranked, evidenced read.findRelationsForExperiment(ExpressionExperiment ee, AnnotationRelationDao.Direction direction, Set<AnnotationRelationBasis> bases, int maxResults) What this experiment's own annotations imply, for display beside them.
-
Method Details
-
findRelations
List<AnnotationRelationDao.RelationSummary> findRelations(AnnotationRelationDao.RelationQuery query) The ranked, evidenced read. SeeAnnotationRelationDao.findRelations(AnnotationRelationDao.RelationQuery). -
findRelationsForExperiment
List<AnnotationRelationDao.RelationSummary> findRelationsForExperiment(ExpressionExperiment ee, AnnotationRelationDao.Direction direction, Set<AnnotationRelationBasis> bases, int maxResults) What this experiment's own annotations imply, for display beside them.Seeds from every annotation the experiment carries and reports what each stands in relation to, with the experiment itself held out of the evidence — a dataset shown its own annotation as support for itself is showing a tautology.
Only forward walks, and no conclusion the experiment already carries: both follow from
AnnotationRelationDao.RelationQuery.seedFromExperimentId(Long), which is what makes this an inference rather than a symmetric browse.- Parameters:
direction- which way to read: what the experiment's terms stand for, or what stands for them
-
findRelatedTermsForSearch
List<String[]> findRelatedTermsForSearch(Collection<String> seedValueUris, Collection<String> seedValues, AnnotationRelationDao.Direction direction, Set<AnnotationRelationBasis> bases, @Nullable Long taxonId, Collection<Long> excludedExperimentIds, int maximumObjectBreadth, int maxResults) Terms related to the seeds, for widening a query or testing membership.No ranking and no ambiguity resolution, on purpose: SURF1's three diseases all belong in the set, and a caller testing membership gets the right answer whichever one is meant. A caller that needs to choose one wants
findRelations(AnnotationRelationDao.RelationQuery)and its evidence instead.
-