001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 * Created on Jun 7, 2010
021 * Author: ap3
022 *
023 */
024
025package org.biojava.nbio.structure.align.seq;
026
027import org.biojava.nbio.structure.align.ce.ConfigStrucAligParams;
028
029import java.util.ArrayList;
030import java.util.List;
031
032public class SmithWaterman3DParameters implements ConfigStrucAligParams {
033
034        private short gapOpen;    // gap opening penalty for sequence alignment
035        private short gapExtend;  // gap extension penalty for sequence alignment
036        private double maxRmsd;   // maximum RMSD of superposition allowed
037        private int minLen;       // minimum alignment length allowed
038
039        public SmithWaterman3DParameters() {
040                reset();
041        }
042
043        @Override
044        public List<String> getUserConfigHelp() {
045                List<String> params = new ArrayList<String>();
046                params.add("The Gap open penalty");
047                params.add("The Gap extension penalty");
048                params.add("The maximum RMSD of superposition allowed");
049                params.add("The minimum alignment length allowed");
050
051                // TODO Auto-generated method stub
052                return params;
053        }
054
055        @Override
056        public List<String> getUserConfigParameterNames() {
057                List<String> params = new ArrayList<String>();
058                params.add("Gap Open");
059                params.add("Gap Extension");
060                params.add("Maximum RMSD");
061                params.add("Minimum Alignment Length");
062
063                return params;
064        }
065
066        @Override
067        public List<String> getUserConfigParameters() {
068                List<String> params = new ArrayList<String>();
069                params.add("GapOpen");
070                params.add("GapExtend");
071                params.add("MaxRmsd");
072                params.add("MinLen");
073
074                return params;
075        }
076
077        @Override
078        @SuppressWarnings("rawtypes")
079        public List<Class> getUserConfigTypes() {
080                List<Class> params = new ArrayList<Class>();
081                params.add(Short.class);
082                params.add(Short.class);
083                params.add(Double.class);
084                params.add(Integer.class);
085
086                return params;
087        }
088
089        @Override
090        public void reset() {
091                gapOpen = (short) 8;
092                gapExtend = (short) 1;
093                maxRmsd = 99;
094                minLen = 30;
095
096        }
097
098        public Short getGapExtend() {
099                return gapExtend;
100        }
101
102        public void setGapExtend(Short gapExtend) {
103                this.gapExtend = gapExtend;
104        }
105
106        public Short getGapOpen() {
107                return gapOpen;
108        }
109
110        public void setGapOpen(Short gapOpen) {
111                this.gapOpen = gapOpen;
112        }
113
114        public Double getMaxRmsd() {
115                return maxRmsd;
116        }
117
118        public void setMaxRmsd(Double maxRmsd) {
119                this.maxRmsd = maxRmsd;
120        }
121
122        public Integer getMinLen() {
123                return minLen;
124        }
125
126        public void setMinLen(Integer minLen) {
127                this.minLen = minLen;
128        }
129
130}