From 2bd3c28fe234c6883bec5412db83a809ab8d1500 Mon Sep 17 00:00:00 2001 From: gmungoc Date: Thu, 22 Sep 2016 15:49:27 +0100 Subject: [PATCH] JAL-1421 typed ResidueProperties.propHash; JAL-2176 removed propHash from Conservation constructor, ResidueProperties.codonHash --- src/jalview/analysis/Conservation.java | 57 +- src/jalview/appletgui/APopupMenu.java | 9 +- src/jalview/appletgui/TreeCanvas.java | 10 +- src/jalview/datamodel/SequenceGroup.java | 6 +- src/jalview/gui/Jalview2XML.java | 4 +- src/jalview/gui/Jalview2XML_V1.java | 5 +- src/jalview/gui/PopupMenu.java | 6 +- src/jalview/gui/TreeCanvas.java | 7 +- src/jalview/io/AnnotationFile.java | 7 +- src/jalview/io/vamsas/DatastoreRegistry.java | 4 +- src/jalview/schemes/ResidueProperties.java | 834 ++++++++++---------------- src/jalview/viewmodel/AlignmentViewport.java | 7 +- src/jalview/workers/ConservationThread.java | 3 +- test/jalview/schemes/DnaCodonTests.java | 39 -- 14 files changed, 365 insertions(+), 633 deletions(-) diff --git a/src/jalview/analysis/Conservation.java b/src/jalview/analysis/Conservation.java index 01a14c9..19a6514 100755 --- a/src/jalview/analysis/Conservation.java +++ b/src/jalview/analysis/Conservation.java @@ -53,7 +53,7 @@ public class Conservation boolean seqNumsChanged = false; // updated after any change via calcSeqNum; - Hashtable[] total; + Map[] total; boolean canonicaliseAa = true; // if true then conservation calculation will @@ -62,20 +62,18 @@ public class Conservation // symbol /** Stores calculated quality values */ - public Vector quality; + private Vector quality; /** Stores maximum and minimum values of quality values */ private double[] qualityRange = new double[2]; - Sequence consSequence; + private Sequence consSequence; - Map> propHash; + private int threshold; - int threshold; + private String name = ""; - String name = ""; - - int[][] cons2; + private int[][] cons2; private String[] consSymbs; @@ -84,8 +82,6 @@ public class Conservation * * @param name * Name of conservation - * @param propHash - * hash of properties for each symbol * @param threshold * to count the residues in residueHash(). commonly used value is 3 * @param sequences @@ -95,11 +91,10 @@ public class Conservation * @param end * end residue position */ - public Conservation(String name, Hashtable propHash, int threshold, + public Conservation(String name, int threshold, List sequences, int start, int end) { this.name = name; - this.propHash = propHash; this.threshold = threshold; this.start = start; this.end = end; @@ -254,9 +249,9 @@ public class Conservation String res = String.valueOf(v); // Now loop over the properties - for (String type : propHash.keySet()) + for (String type : ResidueProperties.propHash.keySet()) { - Hashtable ht = (Hashtable) propHash + Hashtable ht = (Hashtable) ResidueProperties.propHash .get(type); // Have we ticked this before? @@ -384,7 +379,7 @@ public class Conservation if (percentageGaps > pgaps) { - Hashtable resultHash = total[i - start]; + Map resultHash = total[i - start]; // Now find the verdict int count = 0; for (String type : resultHash.keySet()) @@ -724,9 +719,6 @@ public class Conservation * * @param name * - name of conservation - * @param consHash - * - hash table of properties for each amino acid (normally - * ResidueProperties.propHash) * @param threshold * - minimum number of conserved residues needed to indicate * conservation (typically 3) @@ -744,35 +736,18 @@ public class Conservation * @return Conservation object ready for use in visualization */ public static Conservation calculateConservation(String name, - Hashtable consHash, int threshold, List seqs, - int start, int end, boolean posOrNeg, int consPercGaps, - boolean calcQuality) - { - Conservation cons = new Conservation(name, consHash, threshold, seqs, - start, end); - return calculateConservation(cons, posOrNeg, consPercGaps, calcQuality); - } - - /** - * @param b - * positive (true) or negative (false) conservation - * @param consPercGaps - * percentage of gaps tolerated in column - * @param calcQuality - * flag indicating if alignment quality should be calculated - * @return Conservation object ready for use in visualization - */ - public static Conservation calculateConservation(Conservation cons, - boolean b, int consPercGaps, boolean calcQuality) + int threshold, List seqs, int start, int end, + boolean posOrNeg, int consPercGaps, boolean calcQuality) { + Conservation cons = new Conservation(name, threshold, seqs, start, end); cons.calculate(); - cons.verdict(b, consPercGaps); - + cons.verdict(posOrNeg, consPercGaps); + if (calcQuality) { cons.findQuality(); } - + return cons; } } diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index ec7cd25..c30fdad 100644 --- a/src/jalview/appletgui/APopupMenu.java +++ b/src/jalview/appletgui/APopupMenu.java @@ -43,7 +43,6 @@ import jalview.schemes.HelixColourScheme; import jalview.schemes.HydrophobicColourScheme; import jalview.schemes.NucleotideColourScheme; import jalview.schemes.PIDColourScheme; -import jalview.schemes.ResidueProperties; import jalview.schemes.StrandColourScheme; import jalview.schemes.TaylorColourScheme; import jalview.schemes.TurnColourScheme; @@ -1208,10 +1207,10 @@ public class APopupMenu extends java.awt.PopupMenu implements if (conservationMenuItem.getState()) { - sg.cs.setConservation(Conservation.calculateConservation("Group", - ResidueProperties.propHash, 3, sg.getSequences(ap.av - .getHiddenRepSequences()), 0, ap.av.getAlignment() - .getWidth(), false, ap.av.getConsPercGaps(), false)); + sg.cs.setConservation(Conservation.calculateConservation("Group", 3, + sg.getSequences(ap.av.getHiddenRepSequences()), 0, ap.av + .getAlignment().getWidth(), false, ap.av + .getConsPercGaps(), false)); SliderPanel.setConservationSlider(ap, sg.cs, sg.getName()); SliderPanel.showConservationSlider(); } diff --git a/src/jalview/appletgui/TreeCanvas.java b/src/jalview/appletgui/TreeCanvas.java index c8f526c..47c2d28 100755 --- a/src/jalview/appletgui/TreeCanvas.java +++ b/src/jalview/appletgui/TreeCanvas.java @@ -29,7 +29,6 @@ import jalview.datamodel.SequenceI; import jalview.datamodel.SequenceNode; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; -import jalview.schemes.ResidueProperties; import jalview.schemes.UserColourScheme; import jalview.util.Format; import jalview.util.MappingUtils; @@ -627,9 +626,9 @@ public class TreeCanvas extends Panel implements MouseListener, Color col = new Color((int) (Math.random() * 255), (int) (Math.random() * 255), (int) (Math.random() * 255)); - setColor((SequenceNode) tree.getGroups().elementAt(i), col.brighter()); + setColor(tree.getGroups().elementAt(i), col.brighter()); - Vector l = tree.findLeaves((SequenceNode) tree + Vector l = tree.findLeaves(tree .getGroups().elementAt(i)); Vector sequences = new Vector(); @@ -679,9 +678,8 @@ public class TreeCanvas extends Panel implements MouseListener, if (av.getGlobalColourScheme() != null && av.getGlobalColourScheme().conservationApplied()) { - Conservation c = new Conservation("Group", - ResidueProperties.propHash, 3, sg.getSequences(null), - sg.getStartRes(), sg.getEndRes()); + Conservation c = new Conservation("Group", 3, + sg.getSequences(null), sg.getStartRes(), sg.getEndRes()); c.calculate(); c.verdict(false, av.getConsPercGaps()); diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index 046f1e6..9a408e3 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -23,7 +23,6 @@ package jalview.datamodel; import jalview.analysis.AAFrequency; import jalview.analysis.Conservation; import jalview.schemes.ColourSchemeI; -import jalview.schemes.ResidueProperties; import java.awt.Color; import java.util.ArrayList; @@ -548,9 +547,8 @@ public class SequenceGroup implements AnnotatedCollectionI if ((conservation != null) || (cs != null && cs.conservationApplied())) { - Conservation c = new Conservation(groupName, - ResidueProperties.propHash, 3, sequences, startRes, - endRes + 1); + Conservation c = new Conservation(groupName, 3, sequences, + startRes, endRes + 1); c.calculate(); c.verdict(false, consPercGaps); if (conservation != null) diff --git a/src/jalview/gui/Jalview2XML.java b/src/jalview/gui/Jalview2XML.java index 7093a9a..47a8faf 100644 --- a/src/jalview/gui/Jalview2XML.java +++ b/src/jalview/gui/Jalview2XML.java @@ -20,6 +20,7 @@ */ package jalview.gui; +import jalview.analysis.Conservation; import jalview.api.FeatureColourI; import jalview.api.ViewStyleI; import jalview.api.structures.JalviewStructureDisplayI; @@ -3389,8 +3390,7 @@ public class Jalview2XML } if (jGroup.getConsThreshold() != 0) { - jalview.analysis.Conservation c = new jalview.analysis.Conservation( - "All", ResidueProperties.propHash, 3, + Conservation c = new Conservation("All", 3, sg.getSequences(null), 0, sg.getWidth() - 1); c.calculate(); c.verdict(false, 25); diff --git a/src/jalview/gui/Jalview2XML_V1.java b/src/jalview/gui/Jalview2XML_V1.java index 61e20fa..f8a296f 100755 --- a/src/jalview/gui/Jalview2XML_V1.java +++ b/src/jalview/gui/Jalview2XML_V1.java @@ -20,6 +20,7 @@ */ package jalview.gui; +import jalview.analysis.Conservation; import jalview.binding.Annotation; import jalview.binding.AnnotationElement; import jalview.binding.Features; @@ -37,7 +38,6 @@ import jalview.binding.Viewport; import jalview.datamodel.PDBEntry; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; -import jalview.schemes.ResidueProperties; import jalview.structure.StructureSelectionManager; import jalview.util.MessageManager; import jalview.util.jarInputStreamProvider; @@ -359,8 +359,7 @@ public class Jalview2XML_V1 if (groups[i].getConsThreshold() != 0) { - jalview.analysis.Conservation c = new jalview.analysis.Conservation( - "All", ResidueProperties.propHash, 3, + Conservation c = new Conservation("All", 3, sg.getSequences(null), 0, sg.getWidth() - 1); c.calculate(); c.verdict(false, 25); diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index d28dc60..939c087 100644 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -49,7 +49,6 @@ import jalview.schemes.HydrophobicColourScheme; import jalview.schemes.NucleotideColourScheme; import jalview.schemes.PIDColourScheme; import jalview.schemes.PurinePyrimidineColourScheme; -import jalview.schemes.ResidueProperties; import jalview.schemes.StrandColourScheme; import jalview.schemes.TaylorColourScheme; import jalview.schemes.TurnColourScheme; @@ -2039,9 +2038,8 @@ public class PopupMenu extends JPopupMenu if (conservationMenuItem.isSelected()) { // JBPNote: Conservation name shouldn't be i18n translated - Conservation c = new Conservation("Group", - ResidueProperties.propHash, 3, sg.getSequences(ap.av - .getHiddenRepSequences()), sg.getStartRes(), + Conservation c = new Conservation("Group", 3, sg.getSequences(ap.av + .getHiddenRepSequences()), sg.getStartRes(), sg.getEndRes() + 1); c.calculate(); diff --git a/src/jalview/gui/TreeCanvas.java b/src/jalview/gui/TreeCanvas.java index 6bfea9e..ef65b92 100755 --- a/src/jalview/gui/TreeCanvas.java +++ b/src/jalview/gui/TreeCanvas.java @@ -29,7 +29,6 @@ import jalview.datamodel.SequenceI; import jalview.datamodel.SequenceNode; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; -import jalview.schemes.ResidueProperties; import jalview.schemes.UserColourScheme; import jalview.structure.SelectionSource; import jalview.util.Format; @@ -1020,10 +1019,8 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, if (aps[a].av.getGlobalColourScheme() != null && aps[a].av.getGlobalColourScheme().conservationApplied()) { - Conservation c = new Conservation("Group", - ResidueProperties.propHash, 3, sg.getSequences(null), - sg.getStartRes(), sg.getEndRes()); - + Conservation c = new Conservation("Group", 3, + sg.getSequences(null), sg.getStartRes(), sg.getEndRes()); c.calculate(); c.verdict(false, aps[a].av.getConsPercGaps()); sg.cs.setConservation(c); diff --git a/src/jalview/io/AnnotationFile.java b/src/jalview/io/AnnotationFile.java index d738882..34fdabe 100755 --- a/src/jalview/io/AnnotationFile.java +++ b/src/jalview/io/AnnotationFile.java @@ -32,7 +32,6 @@ import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; -import jalview.schemes.ResidueProperties; import jalview.schemes.UserColourScheme; import java.io.BufferedReader; @@ -1638,9 +1637,9 @@ public class AnnotationFile else if (key.equalsIgnoreCase("consThreshold")) { sg.cs.setConservationInc(Integer.parseInt(value)); - Conservation c = new Conservation("Group", - ResidueProperties.propHash, 3, sg.getSequences(null), - sg.getStartRes(), sg.getEndRes() + 1); + Conservation c = new Conservation("Group", 3, + sg.getSequences(null), sg.getStartRes(), + sg.getEndRes() + 1); c.calculate(); c.verdict(false, 25); // TODO: refer to conservation percent threshold diff --git a/src/jalview/io/vamsas/DatastoreRegistry.java b/src/jalview/io/vamsas/DatastoreRegistry.java index 2879889..ff7a764 100644 --- a/src/jalview/io/vamsas/DatastoreRegistry.java +++ b/src/jalview/io/vamsas/DatastoreRegistry.java @@ -152,7 +152,8 @@ public class DatastoreRegistry return dsregitem; } - protected void finalize() + @Override + protected void finalize() throws Throwable { if (dsObjReg != null) { @@ -171,5 +172,6 @@ public class DatastoreRegistry { dsItemReg.clear(); } + super.finalize(); } } diff --git a/src/jalview/schemes/ResidueProperties.java b/src/jalview/schemes/ResidueProperties.java index d0d26b0..c235c7a 100755 --- a/src/jalview/schemes/ResidueProperties.java +++ b/src/jalview/schemes/ResidueProperties.java @@ -26,6 +26,7 @@ import jalview.api.analysis.ScoreModelI; import java.awt.Color; import java.util.ArrayList; +import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; @@ -223,36 +224,36 @@ public class ResidueProperties static { - aa3Hash.put("ALA", new Integer(0)); - aa3Hash.put("ARG", new Integer(1)); - aa3Hash.put("ASN", new Integer(2)); - aa3Hash.put("ASP", new Integer(3)); // D - aa3Hash.put("CYS", new Integer(4)); - aa3Hash.put("GLN", new Integer(5)); // Q - aa3Hash.put("GLU", new Integer(6)); // E - aa3Hash.put("GLY", new Integer(7)); - aa3Hash.put("HIS", new Integer(8)); - aa3Hash.put("ILE", new Integer(9)); - aa3Hash.put("LEU", new Integer(10)); - aa3Hash.put("LYS", new Integer(11)); - aa3Hash.put("MET", new Integer(12)); - aa3Hash.put("PHE", new Integer(13)); - aa3Hash.put("PRO", new Integer(14)); - aa3Hash.put("SER", new Integer(15)); - aa3Hash.put("THR", new Integer(16)); - aa3Hash.put("TRP", new Integer(17)); - aa3Hash.put("TYR", new Integer(18)); - aa3Hash.put("VAL", new Integer(19)); + aa3Hash.put("ALA", Integer.valueOf(0)); + aa3Hash.put("ARG", Integer.valueOf(1)); + aa3Hash.put("ASN", Integer.valueOf(2)); + aa3Hash.put("ASP", Integer.valueOf(3)); // D + aa3Hash.put("CYS", Integer.valueOf(4)); + aa3Hash.put("GLN", Integer.valueOf(5)); // Q + aa3Hash.put("GLU", Integer.valueOf(6)); // E + aa3Hash.put("GLY", Integer.valueOf(7)); + aa3Hash.put("HIS", Integer.valueOf(8)); + aa3Hash.put("ILE", Integer.valueOf(9)); + aa3Hash.put("LEU", Integer.valueOf(10)); + aa3Hash.put("LYS", Integer.valueOf(11)); + aa3Hash.put("MET", Integer.valueOf(12)); + aa3Hash.put("PHE", Integer.valueOf(13)); + aa3Hash.put("PRO", Integer.valueOf(14)); + aa3Hash.put("SER", Integer.valueOf(15)); + aa3Hash.put("THR", Integer.valueOf(16)); + aa3Hash.put("TRP", Integer.valueOf(17)); + aa3Hash.put("TYR", Integer.valueOf(18)); + aa3Hash.put("VAL", Integer.valueOf(19)); // IUB Nomenclature for ambiguous peptides - aa3Hash.put("ASX", new Integer(20)); // "B"; - aa3Hash.put("GLX", new Integer(21)); // Z - aa3Hash.put("XAA", new Integer(22)); // X unknown - aa3Hash.put("-", new Integer(23)); - aa3Hash.put("*", new Integer(23)); - aa3Hash.put(".", new Integer(23)); - aa3Hash.put(" ", new Integer(23)); - aa3Hash.put("Gap", new Integer(23)); - aa3Hash.put("UR3", new Integer(24)); + aa3Hash.put("ASX", Integer.valueOf(20)); // "B"; + aa3Hash.put("GLX", Integer.valueOf(21)); // Z + aa3Hash.put("XAA", Integer.valueOf(22)); // X unknown + aa3Hash.put("-", Integer.valueOf(23)); + aa3Hash.put("*", Integer.valueOf(23)); + aa3Hash.put(".", Integer.valueOf(23)); + aa3Hash.put(" ", Integer.valueOf(23)); + aa3Hash.put("Gap", Integer.valueOf(23)); + aa3Hash.put("UR3", Integer.valueOf(24)); } static @@ -305,24 +306,24 @@ public class ResidueProperties public static final Color midBlue = new Color(100, 100, 255); - public static final Vector scaleColours = new Vector(); - - static - { - scaleColours.addElement(new Color(114, 0, 147)); - scaleColours.addElement(new Color(156, 0, 98)); - scaleColours.addElement(new Color(190, 0, 0)); - scaleColours.addElement(Color.red); - scaleColours.addElement(new Color(255, 125, 0)); - scaleColours.addElement(Color.orange); - scaleColours.addElement(new Color(255, 194, 85)); - scaleColours.addElement(Color.yellow); - scaleColours.addElement(new Color(255, 255, 181)); - scaleColours.addElement(Color.white); - } - - public static final Color[] taylor = { new Color(204, 255, 0), // A - // Greenish-yellowy-yellow + // not currently in use + // public static final Vector scaleColours = new Vector(); + // static + // { + // scaleColours.addElement(new Color(114, 0, 147)); + // scaleColours.addElement(new Color(156, 0, 98)); + // scaleColours.addElement(new Color(190, 0, 0)); + // scaleColours.addElement(Color.red); + // scaleColours.addElement(new Color(255, 125, 0)); + // scaleColours.addElement(Color.orange); + // scaleColours.addElement(new Color(255, 194, 85)); + // scaleColours.addElement(Color.yellow); + // scaleColours.addElement(new Color(255, 255, 181)); + // scaleColours.addElement(Color.white); + // } + + public static final Color[] taylor = { new Color(204, 255, 0), + // A Greenish-yellowy-yellow new Color(0, 0, 255), // R Blueish-bluey-blue new Color(204, 0, 255), // N Blueish-reddy-blue new Color(255, 0, 0), // D Reddish-reddy-red @@ -572,21 +573,21 @@ public class ResidueProperties { -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, 1 }, }; - public static final Hashtable ssHash = new Hashtable(); // stores the number - // value of the aa - - static - { - ssHash.put("H", Color.magenta); - ssHash.put("E", Color.yellow); - ssHash.put("-", Color.white); - ssHash.put(".", Color.white); - ssHash.put("S", Color.cyan); - ssHash.put("T", Color.blue); - ssHash.put("G", Color.pink); - ssHash.put("I", Color.pink); - ssHash.put("B", Color.yellow); - } + // not currently used + // public static final Map ssHash = new Hashtable(); + // static + // { + // ssHash.put("H", Color.magenta); + // ssHash.put("E", Color.yellow); + // ssHash.put("-", Color.white); + // ssHash.put(".", Color.white); + // ssHash.put("S", Color.cyan); + // ssHash.put("T", Color.blue); + // ssHash.put("G", Color.pink); + // ssHash.put("I", Color.pink); + // ssHash.put("B", Color.yellow); + // } /* * new Color(60, 136, 238), // U Color.white, // I Color.white, // X @@ -618,7 +619,6 @@ public class ResidueProperties scoreMatrices.put("BLOSUM62", new ScoreMatrix("BLOSUM62", BLOSUM62, 0)); scoreMatrices.put("PAM250", new ScoreMatrix("PAM250", PAM250, 0)); scoreMatrices.put("DNA", new ScoreMatrix("DNA", DNA, 1)); - } public static final Color[] pidColours = { midBlue, @@ -628,77 +628,10 @@ public class ResidueProperties public static final float[] pidThresholds = { 80, 60, 40, }; - public static Map> codonHash = new HashMap>(); - - private static List Lys = new ArrayList(); - - private static List Asn = new ArrayList(); - - private static List Gln = new ArrayList(); - - private static List His = new ArrayList(); - - private static List Glu = new ArrayList(); - - private static List Asp = new ArrayList(); - - private static List Tyr = new ArrayList(); - - private static List Thr = new ArrayList(); - - private static List Pro = new ArrayList(); - - private static List Ala = new ArrayList(); - - private static List Ser = new ArrayList(); - - private static List Arg = new ArrayList(); - - private static List Gly = new ArrayList(); - - private static List Trp = new ArrayList(); - - private static List Cys = new ArrayList(); - - private static List Ile = new ArrayList(); - - private static List Met = new ArrayList(); - - private static List Leu = new ArrayList(); - - private static List Val = new ArrayList(); - - private static List Phe = new ArrayList(); - - public static List STOP = new ArrayList(); + public static List STOP = Arrays.asList("TGA", "TAA", "TAG"); public static String START = "ATG"; - static - { - codonHash.put("K", Lys); - codonHash.put("N", Asn); - codonHash.put("Q", Gln); - codonHash.put("H", His); - codonHash.put("E", Glu); - codonHash.put("D", Asp); - codonHash.put("Y", Tyr); - codonHash.put("T", Thr); - codonHash.put("P", Pro); - codonHash.put("A", Ala); - codonHash.put("S", Ser); - codonHash.put("R", Arg); - codonHash.put("G", Gly); - codonHash.put("W", Trp); - codonHash.put("C", Cys); - codonHash.put("I", Ile); - codonHash.put("M", Met); - codonHash.put("L", Leu); - codonHash.put("V", Val); - codonHash.put("F", Phe); - codonHash.put("STOP", STOP); - } - /** * Nucleotide Ambiguity Codes */ @@ -885,7 +818,6 @@ public class ResidueProperties // make all codons for this combination char allres[][] = new char[tpos.length][]; String _acodon = ""; - char _anuc; for (ipos = 0; ipos < tpos.length; ipos++) { if (acodon[ipos].length == 0 || tpos[ipos] < 0) @@ -951,379 +883,294 @@ public class ResidueProperties } } } - - } - - static - { - Lys.add("AAA"); - Lys.add("AAG"); - Asn.add("AAC"); - Asn.add("AAT"); - - Gln.add("CAA"); - Gln.add("CAG"); - His.add("CAC"); - His.add("CAT"); - - Glu.add("GAA"); - Glu.add("GAG"); - Asp.add("GAC"); - Asp.add("GAT"); - - Tyr.add("TAC"); - Tyr.add("TAT"); - - Thr.add("ACA"); - Thr.add("ACG"); - Thr.add("ACC"); - Thr.add("ACT"); - - Pro.add("CCA"); - Pro.add("CCG"); - Pro.add("CCC"); - Pro.add("CCT"); - - Ala.add("GCA"); - Ala.add("GCG"); - Ala.add("GCC"); - Ala.add("GCT"); - - Ser.add("TCA"); - Ser.add("TCG"); - Ser.add("TCC"); - Ser.add("TCT"); - Ser.add("AGC"); - Ser.add("AGT"); - - Arg.add("AGA"); - Arg.add("AGG"); - Arg.add("CGA"); - Arg.add("CGG"); - Arg.add("CGC"); - Arg.add("CGT"); - - Gly.add("GGA"); - Gly.add("GGG"); - Gly.add("GGC"); - Gly.add("GGT"); - - STOP.add("TGA"); - STOP.add("TAA"); - STOP.add("TAG"); - - Trp.add("TGG"); - - Cys.add("TGC"); - Cys.add("TGT"); - - Ile.add("ATA"); - Ile.add("ATC"); - Ile.add("ATT"); - - Met.add("ATG"); - - Leu.add("CTA"); - Leu.add("CTG"); - Leu.add("CTC"); - Leu.add("CTT"); - Leu.add("TTA"); - Leu.add("TTG"); - - Val.add("GTA"); - Val.add("GTG"); - Val.add("GTC"); - Val.add("GTT"); - - Phe.add("TTC"); - Phe.add("TTT"); } // Stores residue codes/names and colours and other things - public static Hashtable propHash = new Hashtable(); + public static Map> propHash = new Hashtable>(); - public static Hashtable hydrophobic = new Hashtable(); + public static Map hydrophobic = new Hashtable(); - public static Hashtable polar = new Hashtable(); + public static Map polar = new Hashtable(); - public static Hashtable small = new Hashtable(); + public static Map small = new Hashtable(); - public static Hashtable positive = new Hashtable(); + public static Map positive = new Hashtable(); - public static Hashtable negative = new Hashtable(); + public static Map negative = new Hashtable(); - public static Hashtable charged = new Hashtable(); + public static Map charged = new Hashtable(); - public static Hashtable aromatic = new Hashtable(); + public static Map aromatic = new Hashtable(); - public static Hashtable aliphatic = new Hashtable(); + public static Map aliphatic = new Hashtable(); - public static Hashtable tiny = new Hashtable(); + public static Map tiny = new Hashtable(); - public static Hashtable proline = new Hashtable(); + public static Map proline = new Hashtable(); static { - hydrophobic.put("I", new Integer(1)); - hydrophobic.put("L", new Integer(1)); - hydrophobic.put("V", new Integer(1)); - hydrophobic.put("C", new Integer(1)); - hydrophobic.put("A", new Integer(1)); - hydrophobic.put("G", new Integer(1)); - hydrophobic.put("M", new Integer(1)); - hydrophobic.put("F", new Integer(1)); - hydrophobic.put("Y", new Integer(1)); - hydrophobic.put("W", new Integer(1)); - hydrophobic.put("H", new Integer(1)); - hydrophobic.put("K", new Integer(1)); - hydrophobic.put("X", new Integer(1)); - hydrophobic.put("-", new Integer(1)); - hydrophobic.put("*", new Integer(1)); - hydrophobic.put("R", new Integer(0)); - hydrophobic.put("E", new Integer(0)); - hydrophobic.put("Q", new Integer(0)); - hydrophobic.put("D", new Integer(0)); - hydrophobic.put("N", new Integer(0)); - hydrophobic.put("S", new Integer(0)); - hydrophobic.put("T", new Integer(0)); - hydrophobic.put("P", new Integer(0)); + hydrophobic.put("I", Integer.valueOf(1)); + hydrophobic.put("L", Integer.valueOf(1)); + hydrophobic.put("V", Integer.valueOf(1)); + hydrophobic.put("C", Integer.valueOf(1)); + hydrophobic.put("A", Integer.valueOf(1)); + hydrophobic.put("G", Integer.valueOf(1)); + hydrophobic.put("M", Integer.valueOf(1)); + hydrophobic.put("F", Integer.valueOf(1)); + hydrophobic.put("Y", Integer.valueOf(1)); + hydrophobic.put("W", Integer.valueOf(1)); + hydrophobic.put("H", Integer.valueOf(1)); + hydrophobic.put("K", Integer.valueOf(1)); + hydrophobic.put("X", Integer.valueOf(1)); + hydrophobic.put("-", Integer.valueOf(1)); + hydrophobic.put("*", Integer.valueOf(1)); + hydrophobic.put("R", Integer.valueOf(0)); + hydrophobic.put("E", Integer.valueOf(0)); + hydrophobic.put("Q", Integer.valueOf(0)); + hydrophobic.put("D", Integer.valueOf(0)); + hydrophobic.put("N", Integer.valueOf(0)); + hydrophobic.put("S", Integer.valueOf(0)); + hydrophobic.put("T", Integer.valueOf(0)); + hydrophobic.put("P", Integer.valueOf(0)); } static { - polar.put("Y", new Integer(1)); - polar.put("W", new Integer(1)); - polar.put("H", new Integer(1)); - polar.put("K", new Integer(1)); - polar.put("R", new Integer(1)); - polar.put("E", new Integer(1)); - polar.put("Q", new Integer(1)); - polar.put("D", new Integer(1)); - polar.put("N", new Integer(1)); - polar.put("S", new Integer(1)); - polar.put("T", new Integer(1)); - polar.put("X", new Integer(1)); - polar.put("-", new Integer(1)); - polar.put("*", new Integer(1)); - polar.put("I", new Integer(0)); - polar.put("L", new Integer(0)); - polar.put("V", new Integer(0)); - polar.put("C", new Integer(0)); - polar.put("A", new Integer(0)); - polar.put("G", new Integer(0)); - polar.put("M", new Integer(0)); - polar.put("F", new Integer(0)); - polar.put("P", new Integer(0)); + polar.put("Y", Integer.valueOf(1)); + polar.put("W", Integer.valueOf(1)); + polar.put("H", Integer.valueOf(1)); + polar.put("K", Integer.valueOf(1)); + polar.put("R", Integer.valueOf(1)); + polar.put("E", Integer.valueOf(1)); + polar.put("Q", Integer.valueOf(1)); + polar.put("D", Integer.valueOf(1)); + polar.put("N", Integer.valueOf(1)); + polar.put("S", Integer.valueOf(1)); + polar.put("T", Integer.valueOf(1)); + polar.put("X", Integer.valueOf(1)); + polar.put("-", Integer.valueOf(1)); + polar.put("*", Integer.valueOf(1)); + polar.put("I", Integer.valueOf(0)); + polar.put("L", Integer.valueOf(0)); + polar.put("V", Integer.valueOf(0)); + polar.put("C", Integer.valueOf(0)); + polar.put("A", Integer.valueOf(0)); + polar.put("G", Integer.valueOf(0)); + polar.put("M", Integer.valueOf(0)); + polar.put("F", Integer.valueOf(0)); + polar.put("P", Integer.valueOf(0)); } static { - small.put("I", new Integer(0)); - small.put("L", new Integer(0)); - small.put("V", new Integer(1)); - small.put("C", new Integer(1)); - small.put("A", new Integer(1)); - small.put("G", new Integer(1)); - small.put("M", new Integer(0)); - small.put("F", new Integer(0)); - small.put("Y", new Integer(0)); - small.put("W", new Integer(0)); - small.put("H", new Integer(0)); - small.put("K", new Integer(0)); - small.put("R", new Integer(0)); - small.put("E", new Integer(0)); - small.put("Q", new Integer(0)); - small.put("D", new Integer(1)); - small.put("N", new Integer(1)); - small.put("S", new Integer(1)); - small.put("T", new Integer(1)); - small.put("P", new Integer(1)); - small.put("-", new Integer(1)); - small.put("*", new Integer(1)); + small.put("I", Integer.valueOf(0)); + small.put("L", Integer.valueOf(0)); + small.put("V", Integer.valueOf(1)); + small.put("C", Integer.valueOf(1)); + small.put("A", Integer.valueOf(1)); + small.put("G", Integer.valueOf(1)); + small.put("M", Integer.valueOf(0)); + small.put("F", Integer.valueOf(0)); + small.put("Y", Integer.valueOf(0)); + small.put("W", Integer.valueOf(0)); + small.put("H", Integer.valueOf(0)); + small.put("K", Integer.valueOf(0)); + small.put("R", Integer.valueOf(0)); + small.put("E", Integer.valueOf(0)); + small.put("Q", Integer.valueOf(0)); + small.put("D", Integer.valueOf(1)); + small.put("N", Integer.valueOf(1)); + small.put("S", Integer.valueOf(1)); + small.put("T", Integer.valueOf(1)); + small.put("P", Integer.valueOf(1)); + small.put("-", Integer.valueOf(1)); + small.put("*", Integer.valueOf(1)); } static { - positive.put("I", new Integer(0)); - positive.put("L", new Integer(0)); - positive.put("V", new Integer(0)); - positive.put("C", new Integer(0)); - positive.put("A", new Integer(0)); - positive.put("G", new Integer(0)); - positive.put("M", new Integer(0)); - positive.put("F", new Integer(0)); - positive.put("Y", new Integer(0)); - positive.put("W", new Integer(0)); - positive.put("H", new Integer(1)); - positive.put("K", new Integer(1)); - positive.put("R", new Integer(1)); - positive.put("E", new Integer(0)); - positive.put("Q", new Integer(0)); - positive.put("D", new Integer(0)); - positive.put("N", new Integer(0)); - positive.put("S", new Integer(0)); - positive.put("T", new Integer(0)); - positive.put("P", new Integer(0)); - positive.put("-", new Integer(1)); - positive.put("*", new Integer(1)); + positive.put("I", Integer.valueOf(0)); + positive.put("L", Integer.valueOf(0)); + positive.put("V", Integer.valueOf(0)); + positive.put("C", Integer.valueOf(0)); + positive.put("A", Integer.valueOf(0)); + positive.put("G", Integer.valueOf(0)); + positive.put("M", Integer.valueOf(0)); + positive.put("F", Integer.valueOf(0)); + positive.put("Y", Integer.valueOf(0)); + positive.put("W", Integer.valueOf(0)); + positive.put("H", Integer.valueOf(1)); + positive.put("K", Integer.valueOf(1)); + positive.put("R", Integer.valueOf(1)); + positive.put("E", Integer.valueOf(0)); + positive.put("Q", Integer.valueOf(0)); + positive.put("D", Integer.valueOf(0)); + positive.put("N", Integer.valueOf(0)); + positive.put("S", Integer.valueOf(0)); + positive.put("T", Integer.valueOf(0)); + positive.put("P", Integer.valueOf(0)); + positive.put("-", Integer.valueOf(1)); + positive.put("*", Integer.valueOf(1)); } static { - negative.put("I", new Integer(0)); - negative.put("L", new Integer(0)); - negative.put("V", new Integer(0)); - negative.put("C", new Integer(0)); - negative.put("A", new Integer(0)); - negative.put("G", new Integer(0)); - negative.put("M", new Integer(0)); - negative.put("F", new Integer(0)); - negative.put("Y", new Integer(0)); - negative.put("W", new Integer(0)); - negative.put("H", new Integer(0)); - negative.put("K", new Integer(0)); - negative.put("R", new Integer(0)); - negative.put("E", new Integer(1)); - negative.put("Q", new Integer(0)); - negative.put("D", new Integer(1)); - negative.put("N", new Integer(0)); - negative.put("S", new Integer(0)); - negative.put("T", new Integer(0)); - negative.put("P", new Integer(0)); - negative.put("-", new Integer(1)); - negative.put("*", new Integer(1)); + negative.put("I", Integer.valueOf(0)); + negative.put("L", Integer.valueOf(0)); + negative.put("V", Integer.valueOf(0)); + negative.put("C", Integer.valueOf(0)); + negative.put("A", Integer.valueOf(0)); + negative.put("G", Integer.valueOf(0)); + negative.put("M", Integer.valueOf(0)); + negative.put("F", Integer.valueOf(0)); + negative.put("Y", Integer.valueOf(0)); + negative.put("W", Integer.valueOf(0)); + negative.put("H", Integer.valueOf(0)); + negative.put("K", Integer.valueOf(0)); + negative.put("R", Integer.valueOf(0)); + negative.put("E", Integer.valueOf(1)); + negative.put("Q", Integer.valueOf(0)); + negative.put("D", Integer.valueOf(1)); + negative.put("N", Integer.valueOf(0)); + negative.put("S", Integer.valueOf(0)); + negative.put("T", Integer.valueOf(0)); + negative.put("P", Integer.valueOf(0)); + negative.put("-", Integer.valueOf(1)); + negative.put("*", Integer.valueOf(1)); } static { - charged.put("I", new Integer(0)); - charged.put("L", new Integer(0)); - charged.put("V", new Integer(0)); - charged.put("C", new Integer(0)); - charged.put("A", new Integer(0)); - charged.put("G", new Integer(0)); - charged.put("M", new Integer(0)); - charged.put("F", new Integer(0)); - charged.put("Y", new Integer(0)); - charged.put("W", new Integer(0)); - charged.put("H", new Integer(1)); - charged.put("K", new Integer(1)); - charged.put("R", new Integer(1)); - charged.put("E", new Integer(1)); - charged.put("Q", new Integer(0)); - charged.put("D", new Integer(1)); - charged.put("N", new Integer(0)); // Asparagine is polar but not charged. + charged.put("I", Integer.valueOf(0)); + charged.put("L", Integer.valueOf(0)); + charged.put("V", Integer.valueOf(0)); + charged.put("C", Integer.valueOf(0)); + charged.put("A", Integer.valueOf(0)); + charged.put("G", Integer.valueOf(0)); + charged.put("M", Integer.valueOf(0)); + charged.put("F", Integer.valueOf(0)); + charged.put("Y", Integer.valueOf(0)); + charged.put("W", Integer.valueOf(0)); + charged.put("H", Integer.valueOf(1)); + charged.put("K", Integer.valueOf(1)); + charged.put("R", Integer.valueOf(1)); + charged.put("E", Integer.valueOf(1)); + charged.put("Q", Integer.valueOf(0)); + charged.put("D", Integer.valueOf(1)); + charged.put("N", Integer.valueOf(0)); // Asparagine is polar but not + // charged. // Alternative would be charged and // negative (in basic form)? - charged.put("S", new Integer(0)); - charged.put("T", new Integer(0)); - charged.put("P", new Integer(0)); - charged.put("-", new Integer(1)); - charged.put("*", new Integer(1)); + charged.put("S", Integer.valueOf(0)); + charged.put("T", Integer.valueOf(0)); + charged.put("P", Integer.valueOf(0)); + charged.put("-", Integer.valueOf(1)); + charged.put("*", Integer.valueOf(1)); } static { - aromatic.put("I", new Integer(0)); - aromatic.put("L", new Integer(0)); - aromatic.put("V", new Integer(0)); - aromatic.put("C", new Integer(0)); - aromatic.put("A", new Integer(0)); - aromatic.put("G", new Integer(0)); - aromatic.put("M", new Integer(0)); - aromatic.put("F", new Integer(1)); - aromatic.put("Y", new Integer(1)); - aromatic.put("W", new Integer(1)); - aromatic.put("H", new Integer(1)); - aromatic.put("K", new Integer(0)); - aromatic.put("R", new Integer(0)); - aromatic.put("E", new Integer(0)); - aromatic.put("Q", new Integer(0)); - aromatic.put("D", new Integer(0)); - aromatic.put("N", new Integer(0)); - aromatic.put("S", new Integer(0)); - aromatic.put("T", new Integer(0)); - aromatic.put("P", new Integer(0)); - aromatic.put("-", new Integer(1)); - aromatic.put("*", new Integer(1)); + aromatic.put("I", Integer.valueOf(0)); + aromatic.put("L", Integer.valueOf(0)); + aromatic.put("V", Integer.valueOf(0)); + aromatic.put("C", Integer.valueOf(0)); + aromatic.put("A", Integer.valueOf(0)); + aromatic.put("G", Integer.valueOf(0)); + aromatic.put("M", Integer.valueOf(0)); + aromatic.put("F", Integer.valueOf(1)); + aromatic.put("Y", Integer.valueOf(1)); + aromatic.put("W", Integer.valueOf(1)); + aromatic.put("H", Integer.valueOf(1)); + aromatic.put("K", Integer.valueOf(0)); + aromatic.put("R", Integer.valueOf(0)); + aromatic.put("E", Integer.valueOf(0)); + aromatic.put("Q", Integer.valueOf(0)); + aromatic.put("D", Integer.valueOf(0)); + aromatic.put("N", Integer.valueOf(0)); + aromatic.put("S", Integer.valueOf(0)); + aromatic.put("T", Integer.valueOf(0)); + aromatic.put("P", Integer.valueOf(0)); + aromatic.put("-", Integer.valueOf(1)); + aromatic.put("*", Integer.valueOf(1)); } static { - aliphatic.put("I", new Integer(1)); - aliphatic.put("L", new Integer(1)); - aliphatic.put("V", new Integer(1)); - aliphatic.put("C", new Integer(0)); - aliphatic.put("A", new Integer(0)); - aliphatic.put("G", new Integer(0)); - aliphatic.put("M", new Integer(0)); - aliphatic.put("F", new Integer(0)); - aliphatic.put("Y", new Integer(0)); - aliphatic.put("W", new Integer(0)); - aliphatic.put("H", new Integer(0)); - aliphatic.put("K", new Integer(0)); - aliphatic.put("R", new Integer(0)); - aliphatic.put("E", new Integer(0)); - aliphatic.put("Q", new Integer(0)); - aliphatic.put("D", new Integer(0)); - aliphatic.put("N", new Integer(0)); - aliphatic.put("S", new Integer(0)); - aliphatic.put("T", new Integer(0)); - aliphatic.put("P", new Integer(0)); - aliphatic.put("-", new Integer(1)); - aliphatic.put("*", new Integer(1)); + aliphatic.put("I", Integer.valueOf(1)); + aliphatic.put("L", Integer.valueOf(1)); + aliphatic.put("V", Integer.valueOf(1)); + aliphatic.put("C", Integer.valueOf(0)); + aliphatic.put("A", Integer.valueOf(0)); + aliphatic.put("G", Integer.valueOf(0)); + aliphatic.put("M", Integer.valueOf(0)); + aliphatic.put("F", Integer.valueOf(0)); + aliphatic.put("Y", Integer.valueOf(0)); + aliphatic.put("W", Integer.valueOf(0)); + aliphatic.put("H", Integer.valueOf(0)); + aliphatic.put("K", Integer.valueOf(0)); + aliphatic.put("R", Integer.valueOf(0)); + aliphatic.put("E", Integer.valueOf(0)); + aliphatic.put("Q", Integer.valueOf(0)); + aliphatic.put("D", Integer.valueOf(0)); + aliphatic.put("N", Integer.valueOf(0)); + aliphatic.put("S", Integer.valueOf(0)); + aliphatic.put("T", Integer.valueOf(0)); + aliphatic.put("P", Integer.valueOf(0)); + aliphatic.put("-", Integer.valueOf(1)); + aliphatic.put("*", Integer.valueOf(1)); } static { - tiny.put("I", new Integer(0)); - tiny.put("L", new Integer(0)); - tiny.put("V", new Integer(0)); - tiny.put("C", new Integer(0)); - tiny.put("A", new Integer(1)); - tiny.put("G", new Integer(1)); - tiny.put("M", new Integer(0)); - tiny.put("F", new Integer(0)); - tiny.put("Y", new Integer(0)); - tiny.put("W", new Integer(0)); - tiny.put("H", new Integer(0)); - tiny.put("K", new Integer(0)); - tiny.put("R", new Integer(0)); - tiny.put("E", new Integer(0)); - tiny.put("Q", new Integer(0)); - tiny.put("D", new Integer(0)); - tiny.put("N", new Integer(0)); - tiny.put("S", new Integer(1)); - tiny.put("T", new Integer(0)); - tiny.put("P", new Integer(0)); - tiny.put("-", new Integer(1)); - tiny.put("*", new Integer(1)); + tiny.put("I", Integer.valueOf(0)); + tiny.put("L", Integer.valueOf(0)); + tiny.put("V", Integer.valueOf(0)); + tiny.put("C", Integer.valueOf(0)); + tiny.put("A", Integer.valueOf(1)); + tiny.put("G", Integer.valueOf(1)); + tiny.put("M", Integer.valueOf(0)); + tiny.put("F", Integer.valueOf(0)); + tiny.put("Y", Integer.valueOf(0)); + tiny.put("W", Integer.valueOf(0)); + tiny.put("H", Integer.valueOf(0)); + tiny.put("K", Integer.valueOf(0)); + tiny.put("R", Integer.valueOf(0)); + tiny.put("E", Integer.valueOf(0)); + tiny.put("Q", Integer.valueOf(0)); + tiny.put("D", Integer.valueOf(0)); + tiny.put("N", Integer.valueOf(0)); + tiny.put("S", Integer.valueOf(1)); + tiny.put("T", Integer.valueOf(0)); + tiny.put("P", Integer.valueOf(0)); + tiny.put("-", Integer.valueOf(1)); + tiny.put("*", Integer.valueOf(1)); } static { - proline.put("I", new Integer(0)); - proline.put("L", new Integer(0)); - proline.put("V", new Integer(0)); - proline.put("C", new Integer(0)); - proline.put("A", new Integer(0)); - proline.put("G", new Integer(0)); - proline.put("M", new Integer(0)); - proline.put("F", new Integer(0)); - proline.put("Y", new Integer(0)); - proline.put("W", new Integer(0)); - proline.put("H", new Integer(0)); - proline.put("K", new Integer(0)); - proline.put("R", new Integer(0)); - proline.put("E", new Integer(0)); - proline.put("Q", new Integer(0)); - proline.put("D", new Integer(0)); - proline.put("N", new Integer(0)); - proline.put("S", new Integer(0)); - proline.put("T", new Integer(0)); - proline.put("P", new Integer(1)); - proline.put("-", new Integer(1)); - proline.put("*", new Integer(1)); + proline.put("I", Integer.valueOf(0)); + proline.put("L", Integer.valueOf(0)); + proline.put("V", Integer.valueOf(0)); + proline.put("C", Integer.valueOf(0)); + proline.put("A", Integer.valueOf(0)); + proline.put("G", Integer.valueOf(0)); + proline.put("M", Integer.valueOf(0)); + proline.put("F", Integer.valueOf(0)); + proline.put("Y", Integer.valueOf(0)); + proline.put("W", Integer.valueOf(0)); + proline.put("H", Integer.valueOf(0)); + proline.put("K", Integer.valueOf(0)); + proline.put("R", Integer.valueOf(0)); + proline.put("E", Integer.valueOf(0)); + proline.put("Q", Integer.valueOf(0)); + proline.put("D", Integer.valueOf(0)); + proline.put("N", Integer.valueOf(0)); + proline.put("S", Integer.valueOf(0)); + proline.put("T", Integer.valueOf(0)); + proline.put("P", Integer.valueOf(1)); + proline.put("-", Integer.valueOf(1)); + proline.put("*", Integer.valueOf(1)); } static @@ -1368,11 +1215,9 @@ public class ResidueProperties propMatrixF[i][j] = 0; propMatrixPos[i][j] = 0; propMatrixEpos[i][j] = 0; - for (Enumeration en = propHash.keys(); en.hasMoreElements();) + for (String ph : propHash.keySet()) { - String ph = en.nextElement(); - Map pph = (Map) propHash - .get(ph); + Map pph = propHash.get(ph); if (pph.get(ic) != null && pph.get(jc) != null) { int icp = pph.get(ic).intValue(), jcp = pph.get(jc).intValue(); @@ -1470,22 +1315,8 @@ public class ResidueProperties return pog; } - public static Vector getCodons(String res) - { - if (codonHash.containsKey(res)) - { - return (Vector) codonHash.get(res); - } - - return null; - } - public static String codonTranslate(String lccodon) { - if (false) - { - return _codonTranslate(lccodon); - } String cdn = codonHash2.get(lccodon.toUpperCase()); if ("*".equals(cdn)) { @@ -1494,25 +1325,6 @@ public class ResidueProperties return cdn; } - public static String _codonTranslate(String lccodon) - { - String codon = lccodon.toUpperCase(); - // all base ambiguity codes yield an 'X' amino acid residue - if (codon.indexOf('X') > -1 || codon.indexOf('N') > -1) - { - return "X"; - } - for (String key : codonHash.keySet()) - { - if (codonHash.get(key).contains(codon)) - { - return key; - } - } - - return null; - } - public static int[][] getDefaultPeptideMatrix() { return ResidueProperties.getBLOSUM62(); @@ -1560,10 +1372,10 @@ public class ResidueProperties return pog; } - public static Hashtable toDssp3State; + public static Hashtable toDssp3State; static { - toDssp3State = new Hashtable(); + toDssp3State = new Hashtable(); toDssp3State.put("H", "H"); toDssp3State.put("E", "E"); toDssp3State.put("C", " "); @@ -1593,7 +1405,7 @@ public class ResidueProperties String ssc = ssstring.substring(i, i + 1); if (toDssp3State.containsKey(ssc)) { - ss.append((String) toDssp3State.get(ssc)); + ss.append(toDssp3State.get(ssc)); } else { @@ -2921,51 +2733,47 @@ public class ResidueProperties } - public static String getCanonicalAminoAcid(String aa) + public static String getCanonicalAminoAcid(String aA) { - String canonical = modifications.get(aa); - return canonical == null ? aa : canonical; + String canonical = modifications.get(aA); + return canonical == null ? aA : canonical; } // main method generates perl representation of residue property hash // / cut here public static void main(String[] args) { - Hashtable aa = new Hashtable(); + Hashtable> aaProps = new Hashtable>(); System.out.println("my %aa = {"); // invert property hashes - Enumeration prop = propHash.keys(); - while (prop.hasMoreElements()) + for (String pname : propHash.keySet()) { - String pname = (String) prop.nextElement(); - Hashtable phash = (Hashtable) propHash.get(pname); - Enumeration res = phash.keys(); - while (res.hasMoreElements()) + Map phash = propHash.get(pname); + for (String rname : phash.keySet()) { - String rname = (String) res.nextElement(); - Vector aprops = (Vector) aa.get(rname); + Vector aprops = aaProps.get(rname); if (aprops == null) { - aprops = new Vector(); - aa.put(rname, aprops); + aprops = new Vector(); + aaProps.put(rname, aprops); } - Integer hasprop = (Integer) phash.get(rname); + Integer hasprop = phash.get(rname); if (hasprop.intValue() == 1) { aprops.addElement(pname); } } } - Enumeration res = aa.keys(); + Enumeration res = aaProps.keys(); while (res.hasMoreElements()) { - String rname = (String) res.nextElement(); + String rname = res.nextElement(); System.out.print("'" + rname + "' => ["); - Enumeration props = ((Vector) aa.get(rname)).elements(); + Enumeration props = aaProps.get(rname).elements(); while (props.hasMoreElements()) { - System.out.print("'" + (String) props.nextElement() + "'"); + System.out.print("'" + props.nextElement() + "'"); if (props.hasMoreElements()) { System.out.println(", "); @@ -2981,15 +2789,15 @@ public class ResidueProperties /** * Returns a list of residue characters for the specified inputs * - * @param nucleotide + * @param forNucleotide * @param includeAmbiguous * @return */ - public static List getResidues(boolean nucleotide, + public static List getResidues(boolean forNucleotide, boolean includeAmbiguous) { List result = new ArrayList(); - if (nucleotide) + if (forNucleotide) { for (String nuc : nucleotideName.keySet()) { diff --git a/src/jalview/viewmodel/AlignmentViewport.java b/src/jalview/viewmodel/AlignmentViewport.java index cb43d90..80319be 100644 --- a/src/jalview/viewmodel/AlignmentViewport.java +++ b/src/jalview/viewmodel/AlignmentViewport.java @@ -44,7 +44,6 @@ import jalview.datamodel.SequenceI; import jalview.schemes.Blosum62ColourScheme; import jalview.schemes.ColourSchemeI; import jalview.schemes.PIDColourScheme; -import jalview.schemes.ResidueProperties; import jalview.structure.CommandListener; import jalview.structure.StructureSelectionManager; import jalview.structure.VamsasSource; @@ -1864,9 +1863,9 @@ public abstract class AlignmentViewport implements AlignViewportI, cs.setConsensus(hconsensus); if (cs.conservationApplied()) { - cs.setConservation(Conservation.calculateConservation("All", - ResidueProperties.propHash, 3, alignment.getSequences(), 0, - alignment.getWidth(), false, getConsPercGaps(), false)); + cs.setConservation(Conservation.calculateConservation("All", 3, + alignment.getSequences(), 0, alignment.getWidth(), false, + getConsPercGaps(), false)); } } diff --git a/src/jalview/workers/ConservationThread.java b/src/jalview/workers/ConservationThread.java index 5c303fd..11ec521 100644 --- a/src/jalview/workers/ConservationThread.java +++ b/src/jalview/workers/ConservationThread.java @@ -94,8 +94,7 @@ public class ConservationThread extends AlignCalcWorker } try { - cons = Conservation.calculateConservation("All", - jalview.schemes.ResidueProperties.propHash, 3, + cons = Conservation.calculateConservation("All", 3, alignment.getSequences(), 0, alWidth - 1, false, ConsPercGaps, quality != null); } catch (IndexOutOfBoundsException x) diff --git a/test/jalview/schemes/DnaCodonTests.java b/test/jalview/schemes/DnaCodonTests.java index ff2f2aa..45b56c2 100644 --- a/test/jalview/schemes/DnaCodonTests.java +++ b/test/jalview/schemes/DnaCodonTests.java @@ -55,43 +55,4 @@ public class DnaCodonTests + codon.getKey() + "\", \"" + codon.getValue() + "\");"); } } - - @Test(groups = { "Functional" }) - public void checkOldCodonagainstNewCodonTable() - { - // note - this test will be removed once the old codon table (including - // Vectors) is removed - String additional = "", failtrans = "", differentTr = ""; - for (String amacid : ResidueProperties.codonHash.keySet()) - { - for (String codon : ResidueProperties.codonHash.get(amacid)) - { - String trans = ResidueProperties.codonTranslate(codon); - String oldtrans = ResidueProperties._codonTranslate(codon); - if (trans == null) - { - additional += "\nOld translation table includes additional codons for " - + amacid + " : " + codon; - } - if (oldtrans == null) - { - failtrans += ("\nold translation routine failed for old translation entry (aa was " - + amacid + " codon was " + codon + ")"); - } - if (!oldtrans.equals(trans)) - { - differentTr += ("\nDifferent translation for old and new routines: " - + amacid - + " " - + codon - + " => expected " - + oldtrans - + " and got " + trans); - } - } - } - assertTrue("" + additional + "\n" + failtrans + "\n" + differentTr, - additional.length() == 0 && failtrans.length() == 0 - && differentTr.length() == 0); - } } -- 1.7.10.2