001package org.biopax.paxtools.pattern.miner;
002
003import org.biopax.paxtools.pattern.Pattern;
004import org.biopax.paxtools.pattern.PatternBox;
005import org.biopax.paxtools.pattern.util.Blacklist;
006
007import java.util.HashSet;
008import java.util.Set;
009
010/**
011 * Miner for the controls-state-change pattern.
012 * @author Ozgun Babur
013 */
014public class CSCOThroughControllingSmallMoleculeMiner extends ControlsStateChangeOfMiner
015{
016        /**
017         * Constructor that sets name and description.
018         */
019        public CSCOThroughControllingSmallMoleculeMiner()
020        {
021                super("-through-controlling-small-mol", "The first protein produces a non-ubique small " +
022                        "molecule, and this small molecule controls state of the second protein.");
023        }
024
025        /**
026         * Constructs the pattern.
027         * @return pattern
028         */
029        @Override
030        public Pattern constructPattern()
031        {
032                return PatternBox.controlsStateChangeThroughControllerSmallMolecule(blacklist);
033        }
034
035        @Override
036        public String[] getMediatorLabels()
037        {
038                return new String[]{"upper Control", "upper Conversion", "Control", "Conversion",
039                        "controller PE"};
040        }
041
042        @Override
043        public String getSourceLabel()
044        {
045                return "upper controller ER";
046        }
047
048        @Override
049        public String getTargetLabel()
050        {
051                return "changed ER";
052        }
053
054        @Override
055        public String[] getSourcePELabels()
056        {
057                return new String[]{"upper controller simple PE", "upper controller PE"};
058        }
059
060        @Override
061        public String[] getTargetPELabels()
062        {
063                return new String[]{"input PE", "input simple PE", "output PE", "output simple PE"};
064        }
065}