001package org.biopax.paxtools.pattern.miner;
002
003import org.biopax.paxtools.pattern.Pattern;
004import org.biopax.paxtools.pattern.PatternBox;
005
006/**
007 * Miner for the controls-state-change pattern. This time the controller is also an input.
008 * @author Ozgun Babur
009 */
010public class CSCOBothControllerAndParticipantMiner extends AbstractSIFMiner
011{
012        /**
013         * Constructor that sets name and description.
014         */
015        public CSCOBothControllerAndParticipantMiner()
016        {
017                super(SIFEnum.CONTROLS_STATE_CHANGE_OF, "-both-ctrl-part", "The controller is also an " +
018                        "input. The reaction has to be a Conversion and modified Protein should be " +
019                        "represented with different non-generic PhysicalEntity on each side.");
020        }
021
022        /**
023         * Constructs the pattern.
024         * @return pattern
025         */
026        @Override
027        public Pattern constructPattern()
028        {
029                return PatternBox.controlsStateChangeBothControlAndPart();
030        }
031
032        @Override
033        public String getSourceLabel()
034        {
035                return "controller ER";
036        }
037
038        @Override
039        public String getTargetLabel()
040        {
041                return "changed ER";
042        }
043
044        @Override
045        public String[] getMediatorLabels()
046        {
047                return new String[]{"Control", "Conversion"};
048        }
049
050        @Override
051        public String[] getSourcePELabels()
052        {
053                return new String[]{"controller simple PE", "controller PE"};
054        }
055
056        @Override
057        public String[] getTargetPELabels()
058        {
059                return new String[]{"input PE", "input simple PE", "output PE", "output simple PE"};
060        }
061}