001package org.biopax.paxtools.io.sif;
002
003/**
004 * This class holds the description, tag (used in SIF file), the information if the interaction is
005 * directed for the relevant binary interaction types.
006 */
007public enum BinaryInteractionType
008{
009
010        COMPONENT_OF(
011                        "The first entity is a component of the second entity, which is a complex.  " +
012                        "This interaction is transitive in the sense that A component_of B and B component_of " +
013                        "C implies A component_of C.  " +
014                        "This interaction is directed.", true),
015
016        IN_SAME_COMPONENT(
017                        "Two entities belong to the same molecular complex.  This does not necessarily " +
018                        "mean they interact directly.  In a complex with n molecules, this rule will create a " +
019                        "clique composed of n(n-1)/2 interactions.  " +
020                        "This interaction is undirected.", false),
021
022        CO_CONTROL(
023                        "This rule infers an interaction " +
024                        "if the first and second entities have control over the same process. " +
025                        "This interaction is undirected.", false),
026
027        SEQUENTIAL_CATALYSIS(
028                        "The entities catalyze two conversions that are connected via a common molecule, " +
029                        "e.g. the first entity produces a substrate that is consumed by the second entity.  " +
030                        "This interaction is directed.", true),
031
032        METABOLIC_CATALYSIS(
033                        "The first entity catalyzes a reaction that either consumes or produces the second entity.  " +
034                        "This interaction is directed.", true),
035
036        STATE_CHANGE(
037                        "The first entity controls a reaction that changes the state of the " +
038                        "second entity, e.g. by phosphorylation or other posttranslational modification, " +
039                        "or by a change in subcellular location.  " +
040                        "This interaction is directed.", true),
041
042        ACTIVATES(
043                        "The first entity controls a reaction that changes the state of the " +
044                        "second entity, from inactive or notr, to active. " +
045                        "This interaction is directed.", true),
046
047        INACTIVATES(
048                        "The first entity controls a reaction that changes the state of the " +
049                        "second entity, from active or notr, to inactive. " +
050                        "This interaction is directed.", true),
051
052        REACTS_WITH(
053                        "The entities participate in a conversion as substrates or products.  Controllers are not included.  " +
054                        "This interaction is undirected.", false),
055
056        INTERACTS_WITH(
057                        "The entities participate in an interaction.  Controllers are not included.  " +
058                        "This interaction is undirected.", false),
059
060        UPREGULATE_EXPRESSION(
061                        "The first entity upregulates the expression of the second entity. " +
062                        "This interaction is directed.", true),
063
064        DOWNREGULATE_EXPRESSION(
065                        "The first entity downregulates the expression of the second entity. " +
066                        "This interaction is directed.", true),
067
068        GENERIC_OF(
069                        "The first entity is a generic form of the second entity.This interaction is directed",true),
070
071        SIMILAR(
072                        "The two entities are members of a generic form. This interaction is undirected",false);
073
074        private String description;
075        private boolean directed;
076
077        BinaryInteractionType(
078                        String description,
079                        boolean directed)
080        {
081                this.description = description;
082                this.directed = directed;
083        }
084
085        /**
086         * Returns the description of the binary interaction as a string.
087         *
088         * @return a string describing the interaction
089         */
090        public String getDescription()
091        {
092                return description;
093        }
094
095        /**
096         * Returns the tag of the binary interaction. This tag is used in the SIF file(s).
097         *
098         * @return tag name as it is used in SIF files
099         */
100        public String getTag()
101        {
102                return this.toString();
103        }
104
105        /**
106         * Returns true, if the interaction is directed.
107         *
108         * @return false, if the interaction is not directed.
109         */
110        public boolean isDirected()
111        {
112                return directed;
113        }
114}