X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FConsensus.java;h=af2be8da76686ee6358bfad2d02a57619b0eed14;hb=2de8acfae59aced665e4c37ad0f7dcc2ed68818e;hp=27c59066bca12a6f05b91bb8ba75f43993a318d8;hpb=99c58ee0ae2a848f982552e53feaf6d5cb9925e5;p=jalview.git diff --git a/src/jalview/schemes/Consensus.java b/src/jalview/schemes/Consensus.java index 27c5906..af2be8d 100755 --- a/src/jalview/schemes/Consensus.java +++ b/src/jalview/schemes/Consensus.java @@ -1,77 +1,95 @@ -/* -* 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 (Development Version 2.4.1) + * Copyright (C) 2009 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]]); + // } + } + + /** + * @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; + } +}