package aliview.color; import java.awt.Color; import java.awt.Font; import aliview.AminoAcid; import aliview.NucleotideUtilities; import aliview.alignment.AAHistogram; import aliview.alignment.AliHistogram; import aliview.alignment.Alignment; public class DefaultColorScheme implements ColorScheme { Color[] baseBackgroundColor; Color[] baseForegroundColor; Color[] baseSelectionBackgroundColor; Color[] baseSelectionForegroundColor; Color[] aminoAcidBackgroundColor; Color[] aminoAcidForegroundColor; Color[] aminoAcidSelectionBackgroundColor; Color[] aminoAcidSelectionForegroundColor; Color baseConsensusBackgroundColor; Color aminoAcidConsensusBackgroundColor; protected String colorSchemeName = "Default"; public String getName() { return colorSchemeName; } public DefaultColorScheme() { this.colorSchemeName = "Default"; baseForegroundColor = new Color[64]; baseForegroundColor[NucleotideUtilities.A] = new Color(1,128,1); //Color.green baseForegroundColor[NucleotideUtilities.C] = new Color(1,1,255); //Color.blue baseForegroundColor[NucleotideUtilities.G] = Color.black; baseForegroundColor[NucleotideUtilities.TU] = new Color(255,1,1); // Color.red baseForegroundColor[NucleotideUtilities.R] = Color.magenta; baseForegroundColor[NucleotideUtilities.Y] = Color.magenta; baseForegroundColor[NucleotideUtilities.M] = Color.magenta; baseForegroundColor[NucleotideUtilities.K] = Color.magenta; baseForegroundColor[NucleotideUtilities.W] = Color.magenta; baseForegroundColor[NucleotideUtilities.S] = Color.magenta; baseForegroundColor[NucleotideUtilities.B] = Color.magenta; baseForegroundColor[NucleotideUtilities.D] = Color.magenta; baseForegroundColor[NucleotideUtilities.H] = Color.magenta; baseForegroundColor[NucleotideUtilities.V] = Color.magenta; baseForegroundColor[NucleotideUtilities.N] = Color.magenta;//new Color(180,200,250); baseForegroundColor[NucleotideUtilities.GAP] = Color.LIGHT_GRAY.darker(); baseForegroundColor[NucleotideUtilities.UNKNOWN] = Color.cyan; baseBackgroundColor = new Color[64]; baseBackgroundColor[NucleotideUtilities.A] = new Color(90,220,90); baseBackgroundColor[NucleotideUtilities.C] = new Color(100,100,250); baseBackgroundColor[NucleotideUtilities.G] = new Color(90,90,90); baseBackgroundColor[NucleotideUtilities.TU] = new Color(245,130,130); baseBackgroundColor[NucleotideUtilities.R] = Color.white; baseBackgroundColor[NucleotideUtilities.Y] = Color.white; baseBackgroundColor[NucleotideUtilities.M] = Color.white; baseBackgroundColor[NucleotideUtilities.K] = Color.white; baseBackgroundColor[NucleotideUtilities.W] = Color.white; baseBackgroundColor[NucleotideUtilities.S] = Color.white; baseBackgroundColor[NucleotideUtilities.B] = Color.white; baseBackgroundColor[NucleotideUtilities.D] = Color.white; baseBackgroundColor[NucleotideUtilities.H] = Color.white; baseBackgroundColor[NucleotideUtilities.V] = Color.white; baseBackgroundColor[NucleotideUtilities.N] = Color.white; baseBackgroundColor[NucleotideUtilities.GAP] = new Color(250,250,250); baseBackgroundColor[NucleotideUtilities.UNKNOWN] = Color.white; baseConsensusBackgroundColor = new Color(240,240,240); baseSelectionForegroundColor = new Color[64]; baseSelectionForegroundColor[NucleotideUtilities.A] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.A] ); baseSelectionForegroundColor[NucleotideUtilities.C] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.C] ); baseSelectionForegroundColor[NucleotideUtilities.G] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.G] ); baseSelectionForegroundColor[NucleotideUtilities.TU] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.TU]); baseSelectionForegroundColor[NucleotideUtilities.R] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.R] ); baseSelectionForegroundColor[NucleotideUtilities.Y] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.Y] ); baseSelectionForegroundColor[NucleotideUtilities.M] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.M] ); baseSelectionForegroundColor[NucleotideUtilities.K] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.K] ); baseSelectionForegroundColor[NucleotideUtilities.W] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.W] ); baseSelectionForegroundColor[NucleotideUtilities.S] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.S] ); baseSelectionForegroundColor[NucleotideUtilities.B] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.B] ); baseSelectionForegroundColor[NucleotideUtilities.D] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.D] ); baseSelectionForegroundColor[NucleotideUtilities.H] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.H] ); baseSelectionForegroundColor[NucleotideUtilities.V] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.V] ); baseSelectionForegroundColor[NucleotideUtilities.N] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.N] ); baseSelectionForegroundColor[NucleotideUtilities.GAP] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.GAP]); baseSelectionForegroundColor[NucleotideUtilities.UNKNOWN] =createSelectionForegroundColor(baseForegroundColor[NucleotideUtilities.UNKNOWN]); baseSelectionBackgroundColor = new Color[64]; baseSelectionBackgroundColor[NucleotideUtilities.A] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.A]); baseSelectionBackgroundColor[NucleotideUtilities.C] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.C]); baseSelectionBackgroundColor[NucleotideUtilities.G] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.G]); baseSelectionBackgroundColor[NucleotideUtilities.TU] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.TU]); baseSelectionBackgroundColor[NucleotideUtilities.R] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.R]); baseSelectionBackgroundColor[NucleotideUtilities.Y] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.Y]); baseSelectionBackgroundColor[NucleotideUtilities.M] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.M]); baseSelectionBackgroundColor[NucleotideUtilities.K] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.K]); baseSelectionBackgroundColor[NucleotideUtilities.W] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.W]); baseSelectionBackgroundColor[NucleotideUtilities.S] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.S]); baseSelectionBackgroundColor[NucleotideUtilities.B] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.B]); baseSelectionBackgroundColor[NucleotideUtilities.D] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.D]); baseSelectionBackgroundColor[NucleotideUtilities.H] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.H]); baseSelectionBackgroundColor[NucleotideUtilities.V] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.V]); baseSelectionBackgroundColor[NucleotideUtilities.N] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.N]); baseSelectionBackgroundColor[NucleotideUtilities.GAP] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.GAP]); baseSelectionBackgroundColor[NucleotideUtilities.UNKNOWN] = createSelectionColor(baseBackgroundColor[NucleotideUtilities.UNKNOWN]); /* * * This is mesquite color-sceme * */ /* aminoAcidBackgroundColor = new Color[255]; aminoAcidBackgroundColor[AminoAcid.A.intVal] = new Color(0x82e9ff); aminoAcidBackgroundColor[AminoAcid.C.intVal] = new Color(0xffabff); aminoAcidBackgroundColor[AminoAcid.D.intVal] = new Color(0xaea876); aminoAcidBackgroundColor[AminoAcid.E.intVal] = new Color(0x948f71); aminoAcidBackgroundColor[AminoAcid.F.intVal] = new Color(0x94b6ff); aminoAcidBackgroundColor[AminoAcid.G.intVal] = new Color(0xe306b0); aminoAcidBackgroundColor[AminoAcid.H.intVal] = new Color(0xb914ff); aminoAcidBackgroundColor[AminoAcid.I.intVal] = new Color(0x4f9bff); aminoAcidBackgroundColor[AminoAcid.K.intVal] = new Color(0xa70de3); aminoAcidBackgroundColor[AminoAcid.L.intVal] = new Color(0x0012b8); aminoAcidBackgroundColor[AminoAcid.M.intVal] = new Color(0x5eb5b5); aminoAcidBackgroundColor[AminoAcid.N.intVal] = new Color(0xff000c); aminoAcidBackgroundColor[AminoAcid.P.intVal] = new Color(0x14b86e); aminoAcidBackgroundColor[AminoAcid.Q.intVal] = new Color(0x810d0f); aminoAcidBackgroundColor[AminoAcid.R.intVal] = new Color(0xa172b7); aminoAcidBackgroundColor[AminoAcid.S.intVal] = new Color(0xffdf0a); aminoAcidBackgroundColor[AminoAcid.T.intVal] = new Color(0x781b1e); aminoAcidBackgroundColor[AminoAcid.V.intVal] = new Color(0x2ab528); aminoAcidBackgroundColor[AminoAcid.W.intVal] = new Color(0x9bc186); aminoAcidBackgroundColor[AminoAcid.Y.intVal] = new Color(0xea8f85); aminoAcidBackgroundColor[AminoAcid.STOP.intVal] = Color.black; aminoAcidBackgroundColor[AminoAcid.GAP.intVal] = Color.white; aminoAcidBackgroundColor[AminoAcid.X.intVal] = Color.white; */ /* * * This is seaview color-sceme (almost - but I put shades on same color) * */ aminoAcidBackgroundColor = new Color[255]; aminoAcidBackgroundColor[AminoAcid.A.intVal] = new Color(0x276eb7); aminoAcidBackgroundColor[AminoAcid.C.intVal] = new Color(0xe68080); aminoAcidBackgroundColor[AminoAcid.D.intVal] = new Color(0xcc4dcc); aminoAcidBackgroundColor[AminoAcid.E.intVal] = new Color(0x984097); aminoAcidBackgroundColor[AminoAcid.F.intVal] = new Color(0x1980e6); aminoAcidBackgroundColor[AminoAcid.G.intVal] = new Color(0xe6994d); aminoAcidBackgroundColor[AminoAcid.H.intVal] = new Color(0x19b3b3); aminoAcidBackgroundColor[AminoAcid.I.intVal] = new Color(0x4ea0f3); aminoAcidBackgroundColor[AminoAcid.K.intVal] = new Color(0xe63319); aminoAcidBackgroundColor[AminoAcid.L.intVal] = new Color(0x78a6d5); aminoAcidBackgroundColor[AminoAcid.M.intVal] = new Color(0x0f549b); aminoAcidBackgroundColor[AminoAcid.N.intVal] = new Color(0x19cc19); aminoAcidBackgroundColor[AminoAcid.P.intVal] = new Color(0xcccc00); aminoAcidBackgroundColor[AminoAcid.Q.intVal] = new Color(0x5ced5c); aminoAcidBackgroundColor[AminoAcid.R.intVal] = new Color(0xf6442c); aminoAcidBackgroundColor[AminoAcid.S.intVal] = new Color(0x029602); aminoAcidBackgroundColor[AminoAcid.T.intVal] = new Color(0x45c945); aminoAcidBackgroundColor[AminoAcid.V.intVal] = new Color(0x047df9); aminoAcidBackgroundColor[AminoAcid.W.intVal] = new Color(0x0355a9); aminoAcidBackgroundColor[AminoAcid.Y.intVal] = new Color(0x14c6c8); aminoAcidBackgroundColor[AminoAcid.STOP.intVal] = Color.darkGray; aminoAcidBackgroundColor[AminoAcid.GAP.intVal] = new Color(230,230,230); //aminoAcidBackgroundColor[AminoAcid.GAP.intVal] = Color.white; aminoAcidBackgroundColor[AminoAcid.X.intVal] = Color.white; aminoAcidConsensusBackgroundColor = new Color(240,240,240); aminoAcidForegroundColor = new Color[255]; aminoAcidForegroundColor[AminoAcid.A.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.C.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.D.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.E.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.F.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.G.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.H.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.I.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.K.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.L.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.M.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.N.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.P.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.Q.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.R.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.S.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.T.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.V.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.W.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.Y.intVal] = Color.BLACK; aminoAcidForegroundColor[AminoAcid.STOP.intVal] = Color.CYAN; aminoAcidForegroundColor[AminoAcid.GAP.intVal] = Color.DARK_GRAY; aminoAcidForegroundColor[AminoAcid.X.intVal] = Color.CYAN; aminoAcidSelectionBackgroundColor = new Color[255]; aminoAcidSelectionBackgroundColor[AminoAcid.A.intVal] = new Color(0x276eb7).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.C.intVal] = new Color(0xe68080).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.D.intVal] = new Color(0xcc4dcc).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.E.intVal] = new Color(0x984097).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.F.intVal] = new Color(0x1980e6).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.G.intVal] = new Color(0xe6994d).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.H.intVal] = new Color(0x19b3b3).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.I.intVal] = new Color(0x4ea0f3).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.K.intVal] = new Color(0xe63319).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.L.intVal] = new Color(0x78a6d5).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.M.intVal] = new Color(0x0f549b).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.N.intVal] = new Color(0x19cc19).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.P.intVal] = new Color(0xcccc00).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.Q.intVal] = new Color(0x5ced5c).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.R.intVal] = new Color(0xf6442c).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.S.intVal] = new Color(0x029602).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.T.intVal] = new Color(0x45c945).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.V.intVal] = new Color(0x047df9).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.W.intVal] = new Color(0x0355a9).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.Y.intVal] = new Color(0x14c6c8).brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.STOP.intVal] = Color.darkGray.brighter(); aminoAcidSelectionBackgroundColor[AminoAcid.GAP.intVal] = Color.lightGray; aminoAcidSelectionBackgroundColor[AminoAcid.X.intVal] = Color.lightGray; aminoAcidSelectionForegroundColor = new Color[255]; aminoAcidSelectionForegroundColor[AminoAcid.A.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.C.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.D.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.E.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.F.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.G.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.H.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.I.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.K.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.L.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.M.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.N.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.P.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.Q.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.R.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.S.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.T.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.V.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.W.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.Y.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.STOP.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.GAP.intVal] = Color.GRAY; aminoAcidSelectionForegroundColor[AminoAcid.X.intVal] = Color.GRAY; } public static Color createSelectionColor(Color color) { //return color.darker(); int r = Math.max(color.getRed() - 85, 0); int g = Math.max(color.getGreen() - 85, 0); int b = Math.max(color.getBlue() - 85, 0); return new Color(r,g,b); } public static Color createSelectionForegroundColor(Color color) { // return color.darker(); int r = Math.min(color.getRed() + 150, 255); int g = Math.min(color.getGreen() + 150, 255); int b = Math.min(color.getBlue() + 150, 255); return new Color(r,g,b); //color.brighter().brighter().brighter().brighter().brighter();//Color.white;//color.brighter(); //Color.white;// } public Color getBaseBackgroundColor(int baseValue) { return baseBackgroundColor[baseValue]; } public Color getBaseForegroundColor(int baseValue) { return baseForegroundColor[baseValue]; } public Color getBaseSelectionForegroundColor(int baseValue) { return baseSelectionForegroundColor[baseValue]; } public Color getBaseSelectionBackgroundColor(int baseValue) { return baseSelectionBackgroundColor[baseValue]; } public Color getAminoAcidBackgroundColor(AminoAcid acid) { return aminoAcidBackgroundColor[acid.intVal]; } public Color getAminoAcidForgroundColor(AminoAcid acid){ return aminoAcidForegroundColor[acid.intVal]; } public Color getAminoAcidSelectionBackgroundColor(AminoAcid acid) { return aminoAcidSelectionBackgroundColor[acid.intVal]; } public Color getAminoAcidSelectionForegroundColor(AminoAcid acid) { return aminoAcidSelectionForegroundColor[acid.intVal]; } public Color getAminoAcidBackgroundColor(AminoAcid acid, int xPos, Alignment aliment) { return getAminoAcidBackgroundColor(acid); } public Color getAminoAcidForgroundColor(AminoAcid acid, int xPos, Alignment aliment) { return getAminoAcidForgroundColor(acid); } public Color getAminoAcidSelectionBackgroundColor(AminoAcid acid, int xPos, Alignment aliment) { return getAminoAcidSelectionBackgroundColor(acid); } public Color getAminoAcidSelectionForegroundColor(AminoAcid acid, int xPos, Alignment aliment) { return getAminoAcidSelectionForegroundColor(acid); } public Color getBaseConsensusBackgroundColor() { return baseConsensusBackgroundColor; } public Color getAminoAcidConsensusBackgroundColor() { return aminoAcidConsensusBackgroundColor; } public Color[] getALLCompundColors() { // TODO Auto-generated method stub return null; } }