X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FResidueColourScheme.java;h=4eefcda4599c1d94cdd7d68d9679d386875a5c7f;hb=b2f9a8d7bce642ff4011bc6d49e02bb0569fbb11;hp=05776564fd9e1d810b823468a9d52d77da4673ee;hpb=9a94f65ff18342c2505a828e780b9ea38dd51fe4;p=jalview.git diff --git a/src/jalview/schemes/ResidueColourScheme.java b/src/jalview/schemes/ResidueColourScheme.java index 0577656..4eefcda 100755 --- a/src/jalview/schemes/ResidueColourScheme.java +++ b/src/jalview/schemes/ResidueColourScheme.java @@ -1,28 +1,32 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) - * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1) + * Copyright (C) 2014 The Jalview Authors * - * 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 file is part of Jalview. * - * 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. + * Jalview 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 3 of the License, or (at your option) any later version. + * + * Jalview 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 + * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.schemes; -import java.util.*; +import jalview.analysis.AAFrequency; +import jalview.analysis.Conservation; +import jalview.datamodel.AnnotatedCollectionI; +import jalview.datamodel.SequenceCollectionI; +import jalview.datamodel.SequenceI; -import java.awt.*; - -import jalview.analysis.*; +import java.awt.Color; +import java.util.Hashtable; +import java.util.Map; /** * DOCUMENT ME! @@ -32,10 +36,11 @@ import jalview.analysis.*; */ public class ResidueColourScheme implements ColourSchemeI { + final int[] symbolIndex; boolean conservationColouring = false; - Color[] colors=null; + Color[] colors = null; int threshold = 0; @@ -56,22 +61,37 @@ public class ResidueColourScheme implements ColourSchemeI /** * Creates a new ResidueColourScheme object. * + * @param final int[] index table into colors (ResidueProperties.naIndex or + * ResidueProperties.aaIndex) * @param colors - * DOCUMENT ME! + * colours for symbols in sequences * @param threshold - * DOCUMENT ME! + * threshold for conservation shading */ - public ResidueColourScheme(Color[] colours, int threshold) + public ResidueColourScheme(int[] aaOrnaIndex, Color[] colours, + int threshold) { + symbolIndex = aaOrnaIndex; this.colors = colours; this.threshold = threshold; } /** - * Creates a new ResidueColourScheme object. + * Creates a new ResidueColourScheme object with a lookup table for indexing + * the colour map + */ + public ResidueColourScheme(int[] aaOrNaIndex) + { + symbolIndex = aaOrNaIndex; + } + + /** + * Creates a new ResidueColourScheme object - default constructor for + * non-sequence dependent colourschemes */ public ResidueColourScheme() { + symbolIndex = null; } /** @@ -79,16 +99,18 @@ public class ResidueColourScheme implements ColourSchemeI */ public Color findColour(char c) { - return colors==null ? Color.white : colors[ResidueProperties.aaIndex[c]]; + return colors == null ? Color.white : colors[symbolIndex[c]]; } - public Color findColour(char c, int j) + @Override + public Color findColour(char c, int j, SequenceI seq) { Color currentColour; - if ((threshold == 0) || aboveThreshold(c, j)) + if (colors != null && symbolIndex != null && (threshold == 0) + || aboveThreshold(c, j)) { - currentColour = colors[ResidueProperties.aaIndex[c]]; + currentColour = colors[symbolIndex[c]]; } else { @@ -117,7 +139,7 @@ public class ResidueColourScheme implements ColourSchemeI * DOCUMENT ME! * * @param ct - * DOCUMENT ME! + * DOCUMENT ME! */ public void setThreshold(int ct, boolean ignoreGaps) { @@ -136,9 +158,9 @@ public class ResidueColourScheme implements ColourSchemeI * DOCUMENT ME! * * @param s - * DOCUMENT ME! + * DOCUMENT ME! * @param j - * DOCUMENT ME! + * DOCUMENT ME! * * @return DOCUMENT ME! */ @@ -172,6 +194,11 @@ public class ResidueColourScheme implements ColourSchemeI { return conservationColouring; } + @Override + public void setConservationApplied(boolean conservationApplied) + { + conservationColouring = conservationApplied; + } public void setConservationInc(int i) { @@ -187,7 +214,7 @@ public class ResidueColourScheme implements ColourSchemeI * DOCUMENT ME! * * @param consensus - * DOCUMENT ME! + * DOCUMENT ME! */ public void setConsensus(Hashtable[] consensus) { @@ -224,9 +251,9 @@ public class ResidueColourScheme implements ColourSchemeI * DOCUMENT ME! * * @param s - * DOCUMENT ME! + * DOCUMENT ME! * @param i - * DOCUMENT ME! + * DOCUMENT ME! * * @return DOCUMENT ME! */ @@ -278,4 +305,22 @@ public class ResidueColourScheme implements ColourSchemeI return currentColour; } + @Override + public void alignmentChanged(AnnotatedCollectionI alignment, + Map hiddenReps) + { + } + + @Override + public ColourSchemeI applyTo(AnnotatedCollectionI sg, + Map hiddenRepSequences) + { + try { + return getClass().newInstance(); + } + catch (Exception q) + { + throw new Error("Serious implementation error: cannot duplicate colourscheme "+getClass().getName(), q); + } + } }