001package org.biopax.paxtools.model.level3;
002
003import java.util.Set;
004
005
006/**
007 * Definition: The support for a particular assertion, such as the existence of an interaction or pathway.
008 * 
009 * Usage: At least one of confidence, evidenceCode, or experimentalForm must be instantiated when creating an
010 * evidence instance. XREF may reference a publication describing the experimental evidence using a publicationXref
011 * or may store a description of the experiment in an experimental description database using a unificationXref (if
012 * the referenced experiment is the same) or relationshipXref (if it is not identical,
013 * but similar in some way e.g. similar in protocol). Evidence is meant to provide more information than just an xref
014 * to the source paper.
015 * 
016 * Examples: A description of a molecular binding assay that was used to detect a protein-protein interaction.
017 */
018public interface Evidence extends UtilityClass, XReferrable
019{
020
021
022        /**
023         * Confidence in the containing instance.  Usually a statistical measure.
024         * @return a set of scores representing confidence
025         */
026        Set<Score> getConfidence();
027
028        /**
029         * Confidence in the containing instance.  Usually a statistical measure.
030         * @param confidence a new confidence measure to add
031         */
032        void addConfidence(Score confidence);
033
034        /**
035         * Confidence in the containing instance.  Usually a statistical measure.
036         * @param confidence a confidence measure to be removed.
037         */
038        void removeConfidence(Score confidence);
039
040
041        /**
042         * A pointer to a term in an external controlled vocabulary, such as the GO, PSI-MI or BioCyc
043         * evidence codes, that describes the nature of the support, such as 'traceable author statement'
044         * or 'yeast two-hybrid'.
045         * Contents of this set should not be modified. Use add/remove methods instead.
046         * @return a set of evidence codes  for this evidence type.
047         */
048        Set<EvidenceCodeVocabulary> getEvidenceCode();
049
050        /**
051         * A pointer to a term in an external controlled vocabulary, such as the GO, PSI-MI or BioCyc
052         * evidence codes, that describes the nature of the support, such as 'traceable author statement'
053         * or 'yeast two-hybrid'.
054         * @param evidenceCode a new evidence code  for this evidence.
055         */
056        void addEvidenceCode(EvidenceCodeVocabulary evidenceCode);
057
058        /**
059         * A pointer to a term in an external controlled vocabulary, such as the GO, PSI-MI or BioCyc
060         * evidence codes, that describes the nature of the support, such as 'traceable author statement'
061         * or 'yeast two-hybrid'.
062         * @param evidenceCode to be removed
063         */
064        void removeEvidenceCode(EvidenceCodeVocabulary evidenceCode);
065
066
067        /**
068         * Contents of this set should not be modified. Use add/remove methods instead.
069         * @return The experimental forms associated with an evidence instance.
070         */
071        Set<ExperimentalForm> getExperimentalForm();
072
073        /**
074         * Adds an experimental form.
075         * @param experimentalForm associated with an evidence instance.
076         */
077        void addExperimentalForm(ExperimentalForm experimentalForm);
078
079        /**
080         * Removes an experimental form.
081         * @param experimentalForm associated with an evidence instance.
082         */
083        void removeExperimentalForm(ExperimentalForm experimentalForm);
084
085}