X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FConsensus.java;h=0c010d5ae50ac87217eef0083d5b0b0a5252eff8;hb=a45774ee31d9f35d4eff46d54d7deab719afb092;hp=7b0dbbb034ccf033b9848e9315cdbb75c9d04e5f;hpb=9360a7970c15aacc7e53eb3bdd2732d2c7bef9c8;p=jalview.git diff --git a/src/jalview/schemes/Consensus.java b/src/jalview/schemes/Consensus.java index 7b0dbbb..0c010d5 100755 --- a/src/jalview/schemes/Consensus.java +++ b/src/jalview/schemes/Consensus.java @@ -1,72 +1,94 @@ -/* 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.*; -//////////////////////////////////////////// -// This does nothing at all at the moment!!!!!!!!!! -// AW 15th Dec 2004 -///////////////////////////////////////// -public class Consensus { - - int[] mask; - double threshold; - - public Consensus(String m, double threshold) - { - mask = setNums(m); - this.threshold = threshold; - } - - - public boolean isConserved(int[][] cons2,int col, int res,int size) - { - int tot = 0; - -try{ - for (int i=0; i < mask.length; i++) - tot += cons2[col][mask[i]]; -}catch(Exception ex) -{ return true; } - - 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 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * + * 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 . + */ +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; + } +}