X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FConsensus.java;h=f0d1990ee6622dd0636f26db05dcdf9111141ad8;hb=37de9310bec3501cbc6381e0c3dcb282fcaad812;hp=8ca022389136d880b607ef11dc918c0640651166;hpb=588042b69abf8e60bcc950b24c283933c7dd422f;p=jalview.git diff --git a/src/jalview/schemes/Consensus.java b/src/jalview/schemes/Consensus.java index 8ca0223..f0d1990 100755 --- a/src/jalview/schemes/Consensus.java +++ b/src/jalview/schemes/Consensus.java @@ -1,72 +1,97 @@ -/* -* Jalview - A Sequence Alignment Editor and Viewer -* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle -* -* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -*/ -package jalview.schemes; - - -//////////////////////////////////////////// -// This does nothing at all at the moment!!!!!!!!!! -// AW 15th Dec 2004 -///////////////////////////////////////// -public class Consensus { - int[] mask; - double threshold; - String maskstr; - - public Consensus(String mask, double threshold) { - // this.id = id; - // this.mask = mask; - this.maskstr = mask; - setMask(mask); - this.threshold = threshold; - } - - public void setMask(String s) { - this.mask = setNums(s); - - // for (int i=0; i < mask.length; i++) { - // System.out.println(mask[i] + " " + ResidueProperties.aa[mask[i]]); - // } - } - - public boolean isConserved(int[][] cons2, int col, int size) { - int tot = 0; - - for (int i = 0; i < mask.length; i++) - tot += cons2[col][mask[i]]; - - if ((double) tot > ((threshold * size) / 100)) { - return true; - } - - return false; - } - - int[] setNums(String s) { - int[] out = new int[s.length()]; - int i = 0; - - while (i < s.length()) { - out[i] = ((Integer) ResidueProperties.aaHash.get(s.substring(i, - i + 1))).intValue(); - i++; - } - - return out; - } -} +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * 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 Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ +package jalview.schemes; + +// ////////////////////////////////////////// +// This does nothing at all at the moment!!!!!!!!!! +// AW 15th Dec 2004 +// /////////////////////////////////////// +public class Consensus +{ + int[] mask; + + double threshold; + + String maskstr; + + public Consensus(String mask, double threshold) + { + // this.id = id; + // this.mask = mask; + this.maskstr = mask; + setMask(mask); + this.threshold = threshold; + } + + public void setMask(String s) + { + this.mask = setNums(s); + + // for (int i=0; i < mask.length; i++) { + // System.out.println(mask[i] + " " + ResidueProperties.aa[mask[i]]); + // } + } + + /** + * @deprecated Use {@link #isConserved(int[][],int,int,boolean)} instead + */ + public boolean isConserved(int[][] cons2, int col, int size) + { + return isConserved(cons2, col, size, true); + } + + public boolean isConserved(int[][] cons2, int col, int size, + boolean includeGaps) + { + int tot = 0; + if (!includeGaps) + { + size -= cons2[col][cons2[col].length - 1]; + } + for (int i = 0; i < mask.length; i++) + { + tot += cons2[col][mask[i]]; + } + + if ((double) tot > ((threshold * size) / 100)) + { + // System.out.println("True conserved "+tot+" from "+threshold+" out of + // "+size+" : "+maskstr); + return true; + } + + return false; + } + + int[] setNums(String s) + { + int[] out = new int[s.length()]; + int i = 0; + + while (i < s.length()) + { + out[i] = ResidueProperties.aaIndex[s.charAt(i)]; + i++; + } + + return out; + } +}