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 */
021package org.biojava.nbio.structure.align.seq;
022
023
024import org.biojava.nbio.structure.align.StructureAlignment;
025import org.biojava.nbio.structure.align.ce.AbstractUserArgumentProcessor;
026import org.biojava.nbio.structure.align.ce.StartupParameters;
027
028
029
030public class SmithWatermanUserArgumentProcessor extends AbstractUserArgumentProcessor{
031
032
033        protected static class SmithWatermanStartupParams extends StartupParameters {
034                private short gapOpen;
035                private short gapExtend;
036
037                public SmithWatermanStartupParams() {
038                        super();
039                }
040
041                public short getGapOpen() {
042                        return gapOpen;
043                }
044
045                public void setGapOpen(short gapOpen) {
046                        this.gapOpen = gapOpen;
047                }
048
049                public short getGapExtend() {
050                        return gapExtend;
051                }
052
053                public void setGapExtend(short gapExtend) {
054                        this.gapExtend = gapExtend;
055                }
056
057                @Override
058                public String toString() {
059                        StringBuilder builder = new StringBuilder();
060                        builder.append("SmithWatermanStartupParams [gapOpen=")
061                        .append(gapOpen).append(", gapExtend=").append(gapExtend)
062                        .append("]");
063                        return builder.toString();
064                }
065        }
066
067
068        @Override
069        public StructureAlignment getAlgorithm() {
070                return new SmithWaterman3Daligner();
071        }
072
073
074
075        @Override
076        public Object getParameters() {
077                StructureAlignment alignment = getAlgorithm();
078
079                SmithWaterman3DParameters p = (SmithWaterman3DParameters) alignment.getParameters();
080                SmithWatermanStartupParams startup = (SmithWatermanStartupParams)params;
081
082                if ( p == null)
083                        p = new SmithWaterman3DParameters();
084
085                p.setGapExtend(startup.getGapExtend());
086                p.setGapOpen(startup.getGapOpen());
087
088                return p;
089        }
090
091        @Override
092        public String getDbSearchLegend(){
093                String legend = "# name1\tname2\tscore\tz-score\trmsd\tlen1\tlen2\tsim1\tsim2\t " ;
094                return legend;
095        }
096
097
098
099        @Override
100        protected StartupParameters getStartupParametersInstance() {
101                return new SmithWatermanStartupParams();
102        }
103
104
105
106}