X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FBinarySequence.java;h=cea9de7ecec5c0095a40a0ccc7388f63067d525a;hb=bc7c2cf5500c5a4124a69ef8e7b1374d8997558f;hp=2b4ce6b47376754c363adc67df37fd374fe20b96;hpb=b2824493add6517beee16bf7dc9066642c9bd26e;p=jalview.git diff --git a/src/jalview/datamodel/BinarySequence.java b/src/jalview/datamodel/BinarySequence.java index 2b4ce6b..cea9de7 100755 --- a/src/jalview/datamodel/BinarySequence.java +++ b/src/jalview/datamodel/BinarySequence.java @@ -1,23 +1,27 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * 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. - * + * 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 . + * 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.datamodel; -import jalview.schemes.*; +import jalview.analysis.scoremodels.ScoreMatrix; +import jalview.schemes.ResidueProperties; /** * Encode a sequence as a numeric vector using either classic residue binary @@ -42,7 +46,8 @@ public class BinarySequence extends Sequence double[] dbinary; - boolean isNa=false; + boolean isNa = false; + /** * Creates a new BinarySequence object. * @@ -52,51 +57,52 @@ public class BinarySequence extends Sequence public BinarySequence(String s, boolean isNa) { super("", s, 0, s.length()); - this.isNa=isNa; + this.isNa = isNa; } /** - * clear the dbinary matrix + * clear the dbinary matrix + * * @return nores - dimension of sequence symbol encoding for this sequence */ private int initMatrixGetNoRes() { - int nores=(isNa) ? ResidueProperties.maxNucleotideIndex : ResidueProperties.maxProteinIndex; - // Set all matrix to 0 - dbinary = new double[getSequence().length * nores]; + int nores = (isNa) ? ResidueProperties.maxNucleotideIndex + : ResidueProperties.maxProteinIndex; + + dbinary = new double[getLength() * nores]; - for (int i = 0; i < dbinary.length; i++) - { - dbinary[i] = 0.0; - } return nores; } + private int[] getSymbolmatrix() { - return (isNa) ? ResidueProperties.nucleotideIndex : ResidueProperties.aaIndex; + return (isNa) ? ResidueProperties.nucleotideIndex + : ResidueProperties.aaIndex; } + /** * DOCUMENT ME! */ public void encode() { - int nores=initMatrixGetNoRes(); - final int[] sindex=getSymbolmatrix(); - for (int i = 0; i < getSequence().length; i++) + int nores = initMatrixGetNoRes(); + final int[] sindex = getSymbolmatrix(); + for (int i = 0; i < getLength(); i++) { - int aanum = nores-1; + int aanum = nores - 1; try { aanum = sindex[getCharAt(i)]; } catch (NullPointerException e) { - aanum = nores-1; + aanum = nores - 1; } if (aanum >= nores) { - aanum = nores-1; + aanum = nores - 1; } dbinary[(i * nores) + aanum] = 1.0; @@ -106,46 +112,41 @@ public class BinarySequence extends Sequence /** * ancode using substitution matrix given in matrix * - * @param matrix + * @param smtrx */ - public void matrixEncode(final ScoreMatrix matrix) throws InvalidSequenceTypeException + public void matrixEncode(final ScoreMatrix smtrx) + throws InvalidSequenceTypeException { - if (isNa!=matrix.isDNA()) + if (isNa != smtrx.isDNA()) { - throw new InvalidSequenceTypeException("matrix " - + matrix.getClass().getCanonicalName() - + " is not a valid matrix for " - + (isNa ? "nucleotide" : "protein") + "sequences"); + throw new InvalidSequenceTypeException( + "matrix " + smtrx.getClass().getCanonicalName() + + " is not a valid matrix for " + + (isNa ? "nucleotide" : "protein") + "sequences"); } - matrixEncode(matrix.isDNA() ? ResidueProperties.nucleotideIndex - : ResidueProperties.aaIndex, matrix.getMatrix()); + matrixEncode(smtrx.isDNA() ? ResidueProperties.nucleotideIndex + : ResidueProperties.aaIndex, smtrx.getMatrix()); } - private void matrixEncode(final int[] aaIndex, final int[][] matrix) + private void matrixEncode(final int[] aaIndex, final float[][] matrix) { - // Set all matrix to 0 - // dbinary = new double[getSequence().length * 21]; - int nores = initMatrixGetNoRes(); - // for (int i = 0; i < dbinary.length; i++) { - // dbinary[i] = 0.0; - // } - for (int i = 0,iSize=getSequence().length; i=nores) + if (aanum >= nores) { - aanum = nores-1; + aanum = nores - 1; } // Do the blosum^H^H^H^H^H score matrix summation thing @@ -168,7 +169,7 @@ public class BinarySequence extends Sequence for (int i = 0; i < binary.length; i++) { - out += (new Integer(binary[i])).toString(); + out += (Integer.valueOf(binary[i])).toString(); if (i < (binary.length - 1)) {