/* * Jalview - A Sequence Alignment Editor and Viewer * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ package jalview.schemes; import java.awt.*; import java.util.*; /** * DOCUMENT ME! * * @author $author$ * @version $Revision$ */ public class ResidueColourScheme implements ColourSchemeI { Color[] colors; int threshold = 0; /** DOCUMENT ME!! */ public Vector consensus; /** * Creates a new ResidueColourScheme object. * * @param colors DOCUMENT ME! * @param threshold DOCUMENT ME! */ public ResidueColourScheme(Color[] colors, int threshold) { this.colors = colors; this.threshold = threshold; } /** * Creates a new ResidueColourScheme object. */ public ResidueColourScheme() { } /** * DOCUMENT ME! * * @param consensus DOCUMENT ME! */ public void setConsensus(Vector consensus) { this.consensus = consensus; } /** * DOCUMENT ME! * * @param aa DOCUMENT ME! * * @return DOCUMENT ME! */ public Color findColour(String aa) { return colors[((Integer) (ResidueProperties.aaHash.get(aa))).intValue()]; } /** * DOCUMENT ME! * * @param s DOCUMENT ME! * @param j DOCUMENT ME! * * @return DOCUMENT ME! */ public Color findColour(String s, int j) { if ((threshold == 0) || aboveThreshold(s, j)) { return colors[((Integer) (ResidueProperties.aaHash.get(s))).intValue()]; } else { return Color.white; } } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public int getThreshold() { return threshold; } /** * DOCUMENT ME! * * @param ct DOCUMENT ME! */ public void setThreshold(int ct) { threshold = ct; } /** * DOCUMENT ME! * * @param s DOCUMENT ME! * @param j DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean aboveThreshold(String s, int j) { Hashtable hash = (Hashtable) consensus.elementAt(j); if ((((Integer) hash.get("maxCount")).intValue() != -1) && hash.contains(s)) { //// resCount//////////////////// ///////////////seq count//////////// double sc = (((Integer) hash.get(s)).intValue() * 100.0) / ((Integer) hash.get( "size")).intValue(); if (sc >= threshold) { return true; } } return false; } }