/* 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 jalview.datamodel.*; import java.util.*; import java.awt.*; public class ClustalxColourScheme extends ResidueColourScheme { Hashtable[] cons; int[][] cons2; ConsensusColour[] colours; ConsensusColour[] ResidueColour; int size; Consensus[] conses = new Consensus[32]; public static Hashtable colhash = new Hashtable(); { colhash.put("RED",new Color((float)0.9,(float)0.2,(float)0.1)); colhash.put("BLUE",new Color((float)0.5,(float)0.7,(float)0.9)); colhash.put("GREEN",new Color((float)0.1,(float)0.8,(float)0.1)); colhash.put("ORANGE",new Color((float)0.9,(float)0.6,(float)0.3)); colhash.put("CYAN",new Color((float)0.1,(float)0.7,(float)0.7)); colhash.put("PINK",new Color((float)0.9,(float)0.5,(float)0.5)); colhash.put("MAGENTA",new Color((float)0.8,(float)0.3,(float)0.8)); colhash.put("YELLOW",new Color((float)0.8,(float)0.8,(float)0.0)); } Vector colourTable = new Vector(); public ClustalxColourScheme(Vector seqs, int maxWidth) { cons2 = new int[maxWidth][24]; int start = 0, end = maxWidth-1; // Initialize the array for (int j=0;j<24;j++) for (int i=0; i < maxWidth;i++) cons2[i][j] = 0; int res,i, j = 0; String seq; while(j < seqs.size()) { seq = ( (SequenceI) seqs.elementAt(j)).getSequence(); int end_j = seq.length()-1; for (i = start; i <= end_j; i++) { if(seq.length()-119) return c; for (int k=0; k < ResidueColour[i].conses.length ; k++) if (ResidueColour[i].conses[k].isConserved(cons2,j,size)) c = ResidueColour[i].c; if (i == 4) { if (conses[27].isConserved(cons2, j, size)) c = (Color) colhash.get("PINK"); } return c; } } class ConsensusColour { Consensus[] conses; Color c; public ConsensusColour(Color c,Consensus[] conses) { this.conses = conses; // this.list = list; this.c = c; } }