All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hfg.bio.seq.pattern.PrositePatternPosition Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.bio.seq.pattern;

import com.hfg.math.Range;
import com.hfg.util.StringBuilderPlus;

//------------------------------------------------------------------------------
/**
 Prosite pattern position.
 
@author J. Alex Taylor, hairyfatguy.com
*/ //------------------------------------------------------------------------------ // com.hfg Library // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com // [email protected] //------------------------------------------------------------------------------ public class PrositePatternPosition { private PrositePatternPositionType mType; private String mResidues; private Range mCountRange; private boolean mLazyMatchMode; private boolean mMismatchNotAllowed; //########################################################################### // PACKAGE METHODS //########################################################################### //------------------------------------------------------------------------ @Override public String toString() { StringBuilderPlus buffer = new StringBuilderPlus(); if (getType().equals(PrositePatternPositionType.NOT)) { buffer.append("^"); } else if (getType().equals(PrositePatternPositionType.ONE_OF)) { buffer.append("["); } String residues = getResidues(); buffer.append(residues != null ? residues : "x"); if (getType().equals(PrositePatternPositionType.ONE_OF)) { buffer.append("]"); } Range countRange = getCountRange(); if (countRange != null) { buffer.append("(") .append(countRange.getStart()) .delimitedAppend(countRange.length() > 1 ? countRange.getEnd() : "") .append(")"); } return buffer.toString(); } //------------------------------------------------------------------------ void setType(PrositePatternPositionType inValue) { mType = inValue; } //------------------------------------------------------------------------ PrositePatternPositionType getType() { return mType; } //------------------------------------------------------------------------ void setResidues(String inValue) { mResidues = inValue; } //------------------------------------------------------------------------ String getResidues() { return mResidues; } //------------------------------------------------------------------------ boolean matchesResidue(char inTargetResidue) { boolean result = false; switch (mType) { case IS_ANY: result = true; break; case IS: case ONE_OF: result = mResidues.contains(inTargetResidue + ""); break; case NOT: result = ! mResidues.contains(inTargetResidue + ""); break; } return result; } //------------------------------------------------------------------------ void setCountRange(Range inValue) { mCountRange = inValue; } //------------------------------------------------------------------------ boolean hasCountRange() { return mCountRange != null; } //------------------------------------------------------------------------ Range getCountRange() { return mCountRange; } //------------------------------------------------------------------------ void setUseLazyMatchMode(boolean inValue) { mLazyMatchMode = inValue; } //------------------------------------------------------------------------ boolean useLazyMatchMode() { return mLazyMatchMode; } //------------------------------------------------------------------------ void setMismatchNotAllowed(boolean inValue) { mMismatchNotAllowed = inValue; } //------------------------------------------------------------------------ boolean mismatchNotAllowed() { return mMismatchNotAllowed; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy