001package org.biopax.paxtools.model.level3; 002 003import java.util.Set; 004 005/** 006 * Definition: The form of a physical entity in a particular experiment, as it may be modified for purposes of 007 * experimental design. 008 * 009 * Examples: A His-tagged protein in a binding assay. A protein can be tagged by multiple tags, 010 * so can have more than 1 experimental form type terms 011 */ 012public interface ExperimentalForm extends UtilityClass 013{ 014 015 016 /** 017 * Descriptor of this experimental form from a controlled vocabulary. 018 * The contents of this set should not be modified. Use add/remove methods instead. 019 * @return a CV term from PSI-MI participant identification methdod, experimental role, experimental preparation. 020 */ 021 Set<ExperimentalFormVocabulary> getExperimentalFormDescription(); 022 023 /** 024 * Adds an experimental form description. 025 * @param experimentalFormType descriptor of this experimental form from a controlled vocabulary. 026 */ 027 void addExperimentalFormDescription(ExperimentalFormVocabulary experimentalFormType); 028 029 /** 030 * Removes an experimental form description. 031 * @param experimentalFormType descriptor of this experimental form from a controlled vocabulary. 032 */ 033 void removeExperimentalFormDescription(ExperimentalFormVocabulary experimentalFormType); 034 035 036 /** 037 * @return The gene or physical entity that this experimental form describes. 038 */ 039 Entity getExperimentalFormEntity(); 040 041 void setExperimentalFormEntity(Entity newPARTICIPANT); 042 043 /** 044 * Contents of this set should not be modified. Please use add/remove methods instead. 045 * @return A feature of the experimental form of the participant of the interaction, 046 * such as a protein tag. It is not expected to occur in vivo or be necessary for the interaction. 047 */ 048 Set<EntityFeature> getExperimentalFeature(); 049 050 /** 051 * This method adds an experimental feature 052 * @param experimentalFeature of the experimental form of the participant of the interaction, 053 * such as a protein tag. It is not expected to occur in vivo or be necessary for the interaction. 054 */ 055 void addExperimentalFeature(EntityFeature experimentalFeature); 056 057 /** 058 * This method removes an experimental feature 059 * @param experimentalFeature of the experimental form of the participant of the interaction, 060 * such as a protein tag. It is not expected to occur in vivo or be necessary for the interaction. 061 */ 062 void removeExperimentalFeature(EntityFeature experimentalFeature); 063}