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 023import org.biojava.nbio.structure.align.StructureAlignment; 024import org.biojava.nbio.structure.align.ce.AbstractUserArgumentProcessor; 025import org.biojava.nbio.structure.align.ce.StartupParameters; 026 027public class SmithWatermanUserArgumentProcessor extends AbstractUserArgumentProcessor{ 028 029 030 protected static class SmithWatermanStartupParams extends StartupParameters { 031 032 private short gapOpen; 033 private short gapExtend; 034 private double maxRmsd; 035 private int minLen; 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 058 public double getMaxRmsd() { 059 return maxRmsd; 060 } 061 062 public void setMaxRmsd(double maxRmsd) { 063 this.maxRmsd = maxRmsd; 064 } 065 066 public int getMinLen() { 067 return minLen; 068 } 069 070 public void setMinLen(int minLen) { 071 this.minLen = minLen; 072 } 073 074 @Override 075 public String toString() { 076 StringBuilder builder = new StringBuilder(); 077 builder.append("SmithWatermanStartupParams [gapOpen=") 078 .append(gapOpen).append(", gapExtend=").append(gapExtend) 079 .append("]").append(", maxRmsd=").append(maxRmsd) 080 .append(", minLen=").append(minLen).append("]"); 081 return builder.toString(); 082 } 083 } 084 085 086 @Override 087 public StructureAlignment getAlgorithm() { 088 return new SmithWaterman3Daligner(); 089 } 090 091 092 093 @Override 094 public Object getParameters() { 095 StructureAlignment alignment = getAlgorithm(); 096 097 SmithWaterman3DParameters p = (SmithWaterman3DParameters) alignment.getParameters(); 098 SmithWatermanStartupParams startup = (SmithWatermanStartupParams) params; 099 100 if ( p == null) 101 p = new SmithWaterman3DParameters(); 102 103 p.setGapExtend(startup.getGapExtend()); 104 p.setGapOpen(startup.getGapOpen()); 105 p.setMaxRmsd(startup.getMaxRmsd()); 106 p.setMinLen(startup.getMinLen()); 107 108 return p; 109 } 110 111 @Override 112 public String getDbSearchLegend(){ 113 String legend = "# name1\tname2\tscore\tz-score\trmsd\tlen1\tlen2\tsim1\tsim2\t " ; 114 return legend; 115 } 116 117 118 119 @Override 120 protected StartupParameters getStartupParametersInstance() { 121 return new SmithWatermanStartupParams(); 122 } 123 124}