001package org.biopax.paxtools.model.level3; 002 003import java.util.Set; 004 005/** 006 * Definition: An interaction in which one entity regulates, modifies, or otherwise influences a continuant entity, 007 * i.e. pathway or interaction. 008 * 009 * Usage: Conceptually, physical entities are involved in interactions (or events) and the events are controlled or 010 * modified, not the physical entities themselves. For example, a kinase activating a protein is a frequent event in 011 * signaling pathways and is usually represented as an 'activation' arrow from the kinase to the substrate in 012 * signaling diagrams. This is an abstraction, called "Activity Flow" representation, 013 * that can be ambiguous without context. In BioPAX, this information should be captured as the kinase catalyzing 014 * (via an instance of the catalysis class) a Biochemical Reaction in which the substrate is phosphorylated. 015 * Subclasses of control define types specific to the biological process that is being controlled and should be used 016 * instead of the generic "control" class when applicable. 017 * 018 * A control can potentially have multiple controllers. This acts as a logical AND, 019 * i.e. both controllers are needed to regulate the controlled event. Alternatively multiple controllers can control 020 * the same event and this acts as a logical OR, i.e. any one of them is sufficient to regulate the controlled event. 021 * Using this structure it is possible to describe arbitrary control logic using BioPAX. 022 * 023 * Rationale: Control can be temporally non-atomic, for example a pathway can control another pathway in BioPAX. 024 * Synonyms: regulation, mediation 025 * 026 * Examples: A small molecule that inhibits a pathway by an unknown mechanism. 027 */ 028public interface Control extends Interaction 029{ 030 031 032 /** 033 * The entity that is controlled, e.g., in a biochemical reaction, the reaction is controlled by an enzyme. 034 * Controlled is a sub-property of participants. 035 * @return The entity that is controlled 036 */ 037 public Set<Process> getControlled(); 038 039 /** 040 * The entity that is controlled, e.g., in a biochemical reaction, the reaction is controlled by an enzyme. 041 * Controlled is a sub-property of participants. 042 * @param controlled The entity that is controlled 043 */ 044 public void addControlled(Process controlled); 045 046 /** 047 * The entity that is controlled, e.g., in a biochemical reaction, the reaction is controlled by an enzyme. 048 * Controlled is a sub-property of participants. 049 * @param controlled The entity that is controlled 050 */ 051 public void removeControlled(Process controlled); 052 053 054 /** 055 * The controlling entity, e.g., in a biochemical reaction, an enzyme is the controlling entity of the reaction. 056 * Controller is a sub-property of participants. 057 * @return The controlling entity 058 */ 059 public Set<Controller> getController(); 060 061 /** 062 * The controlling entity, e.g., in a biochemical reaction, an enzyme is the controlling entity of the reaction. 063 * Controller is a sub-property of participants. 064 * @param controller The controlling entity 065 */ 066 public void addController(Controller controller); 067 068 /** 069 * The controlling entity, e.g., in a biochemical reaction, an enzyme is the controlling entity of the reaction. 070 * Controller is a sub-property of participants. 071 * @param controller The controlling entity 072 */ 073 public void removeController(Controller controller); 074 075 076 /** 077 * Defines the nature of the control relationship between the CONTROLLER and the CONTROLLED entities. 078 * 079 * @return control type 080 */ 081 public ControlType getControlType(); 082 083 /** 084 * Sets the controlType BioPAX property value, which 085 * fefines the nature of the control relationship between the CONTROLLER and the CONTROLLED entities. 086 * @param controlType new control type value 087 */ 088 public void setControlType(ControlType controlType); 089 090}