From 6a4192007f93c030726298295037f6eac97cf4f3 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Tue, 16 Nov 2004 15:26:19 +0000 Subject: [PATCH] new file --- src/jalview/schemes/ConservationColourScheme.java | 138 +++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100755 src/jalview/schemes/ConservationColourScheme.java diff --git a/src/jalview/schemes/ConservationColourScheme.java b/src/jalview/schemes/ConservationColourScheme.java new file mode 100755 index 0000000..0eac54b --- /dev/null +++ b/src/jalview/schemes/ConservationColourScheme.java @@ -0,0 +1,138 @@ +/* Jalview - a java multiple alignment editor + * Copyright (C) 1998 Michele Clamp + * + * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package jalview.schemes; +import java.awt.*; +import jalview.gui.*; +import jalview.datamodel.*; +import jalview.analysis.*; + +public class ConservationColourScheme extends ResidueColourScheme { + public Conservation conserve; + boolean byResidue = true; + public ColourSchemeI cs; + public int inc = 30; + int colourThreshold = 7; + + public ConservationColourScheme(SequenceGroup sg) + { + super(); + this.conserve = sg.getConservation(); + colourThreshold = 7; + this.cs = sg.cs; + } + + public void setColours(DrawableSequence seq, int j) { + Color c = Color.white; + String s = seq.getSequence().substring(j,j+1); + + if (colourThreshold > 0 && conserve.getConsSequence() != null) { + if (fullConservation(j)) { + if (byResidue) { + c = findColour(seq,s,j); + } else { + c = Color.red; + } + } else { + if (byResidue) { + + int tmp = 10; + int t = Integer.parseInt(conserve.getConsSequence().getSequence().substring(j,j+1)); + c = findColour(seq,s,j); + + while (tmp >= t) { + // c = c.darker(); + c = lighter(c,inc); + tmp--; + } + } else { + c = Color.yellow; + } + } + } + + seq.setColor(c); + + } + public Color findColour(SequenceI seq, String s, int i, java.util.Vector whatever) + { + Color c = null; + if (colourThreshold > 0 && conserve.getConsSequence() != null) + { + if (fullConservation(i)) { + if (byResidue) { + c = findColour(null,s,i); + } else { + c = Color.red; + } + } else { + if (byResidue) { + + int tmp = 10; + int t = 0; + try + {t=Integer.parseInt(conserve.getConsSequence().getSequence().substring(i,i+1));} + catch(NumberFormatException ex){ + System.out.println("fix this bug, conserveColourScheme"); + t=0; + } + c = findColour(null,s,i); + + while (tmp >= t) { + // c = c.darker(); + c = lighter(c,inc); + tmp--; + } + } else { + c = Color.yellow; + } + } + } + return c; + } + + public Color findColour(DrawableSequence seq, String s, int j) { + return cs.findColour(null, s, -1, null); + } + public boolean fullConservation(int j) { + String tmp = conserve.getConsSequence().getSequence().substring(j,j+1); + if (tmp.equals("*")) return true; else return false; + } + public boolean aboveThreshold(DrawableSequence seq, int j, int threshold) { + String tmp = conserve.getConsSequence().getSequence().substring(j,j+1); + + if (Integer.parseInt(tmp) >= threshold || tmp.equals("*")) { + return true; + } else { + return false; + } + } + + public Color lighter(Color c, int inc) { + int red = c.getRed(); + int blue = c.getBlue(); + int green = c.getGreen(); + + if (red < 255-inc) { red = red +inc;} else {red = 255;} + if (blue < 255-inc) { blue = blue +inc;} else {blue = 255;} + if (green < 255-inc) { green = green +inc;} else {green = 255;} + + return new Color(red,green,blue); + } + +} -- 1.7.10.2