X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FAlignSeq.java;h=a27c51bc71763c716df8a84769c682630227b6c7;hb=d83c0095dae033f5b4b7c81eb1493083b5cbe346;hp=c9ae0446605b4fa6ed1ac598379c789d6c76aed2;hpb=f55e45cc5d9db13675e9de77c45bd7b657da08ac;p=jalview.git diff --git a/src/jalview/analysis/AlignSeq.java b/src/jalview/analysis/AlignSeq.java index c9ae044..a27c51b 100755 --- a/src/jalview/analysis/AlignSeq.java +++ b/src/jalview/analysis/AlignSeq.java @@ -1,20 +1,19 @@ /* - * 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 + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) + * Copyright (C) 2010 J Procter, AM Waterhouse, 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 file is part of Jalview. * - * 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. + * 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. * - * 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 + * 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.analysis; @@ -113,17 +112,17 @@ public class AlignSeq String type; - private int[] charToInt; + private int[] charToInt; /** * Creates a new AlignSeq object. * * @param s1 - * DOCUMENT ME! + * DOCUMENT ME! * @param s2 - * DOCUMENT ME! + * DOCUMENT ME! * @param type - * DOCUMENT ME! + * DOCUMENT ME! */ public AlignSeq(SequenceI s1, SequenceI s2, String type) { @@ -135,16 +134,16 @@ public class AlignSeq * Creates a new AlignSeq object. * * @param s1 - * DOCUMENT ME! + * DOCUMENT ME! * @param s2 - * DOCUMENT ME! + * DOCUMENT ME! * @param type - * DOCUMENT ME! + * DOCUMENT ME! */ public AlignSeq(SequenceI s1, String string1, SequenceI s2, String string2, String type) { - SeqInit(s1, string1, s2, string2, type); + SeqInit(s1, string1.toUpperCase(), s2, string2.toUpperCase(), type); } /** @@ -271,15 +270,15 @@ public class AlignSeq * DOCUMENT ME! * * @param s1 - * DOCUMENT ME! - * @param string1 - - * string to align for sequence1 + * DOCUMENT ME! + * @param string1 + * - string to align for sequence1 * @param s2 - * sequence 2 - * @param string2 - - * string to align for sequence2 + * sequence 2 + * @param string2 + * - string to align for sequence2 * @param type - * DNA or PEPTIDE + * DNA or PEPTIDE */ public void SeqInit(SequenceI s1, String string1, SequenceI s2, String string2, String type) @@ -502,12 +501,25 @@ public class AlignSeq // TODO: Use original sequence characters rather than re-translated // characters in output // Find the biggest id length for formatting purposes + String s1id = s1.getName(), s2id = s2.getName(); int maxid = s1.getName().length(); if (s2.getName().length() > maxid) { maxid = s2.getName().length(); } - + if (maxid > 30) + { + maxid = 30; + // JAL-527 - truncate the sequence ids + if (s1.getName().length() > maxid) + { + s1id = s1.getName().substring(0, 30); + } + if (s2.getName().length() > maxid) + { + s2id = s2.getName().substring(0, 30); + } + } int len = 72 - maxid - 1; int nochunks = ((aseq1.length - count) / len) + 1; pid = 0; @@ -526,8 +538,7 @@ public class AlignSeq for (int j = 0; j < nochunks; j++) { // Print the first aligned sequence - output.append(new Format("%" + (maxid) + "s").form(s1.getName()) - + " "); + output.append(new Format("%" + (maxid) + "s").form(s1id) + " "); for (int i = 0; i < len; i++) { @@ -573,8 +584,7 @@ public class AlignSeq // Now print the second aligned sequence output = output.append("\n"); - output = output.append(new Format("%" + (maxid) + "s").form(s2 - .getName()) + output = output.append(new Format("%" + (maxid) + "s").form(s2id) + " "); for (int i = 0; i < len; i++) @@ -604,7 +614,7 @@ public class AlignSeq * DOCUMENT ME! * * @param mat - * DOCUMENT ME! + * DOCUMENT ME! */ public void printScoreMatrix(int[][] mat) { @@ -644,9 +654,9 @@ public class AlignSeq * DOCUMENT ME! * * @param i - * DOCUMENT ME! + * DOCUMENT ME! * @param j - * DOCUMENT ME! + * DOCUMENT ME! * * @return DOCUMENT ME! */ @@ -718,7 +728,7 @@ public class AlignSeq { E[i][0] = -gapOpen; F[i][0] = max(score[i - 1][0] - gapOpen, F[i - 1][0] - gapExtend); - + score[i][0] = max(lookup[seq1[i]][seq2[0]] * 10, E[i][0], F[i][0]); traceback[i][0] = -1; } @@ -742,9 +752,9 @@ public class AlignSeq * DOCUMENT ME! * * @param gapChar - * DOCUMENT ME! + * DOCUMENT ME! * @param seq - * DOCUMENT ME! + * DOCUMENT ME! * * @return DOCUMENT ME! */ @@ -765,11 +775,11 @@ public class AlignSeq * DOCUMENT ME! * * @param i1 - * DOCUMENT ME! + * DOCUMENT ME! * @param i2 - * DOCUMENT ME! + * DOCUMENT ME! * @param i3 - * DOCUMENT ME! + * DOCUMENT ME! * * @return DOCUMENT ME! */ @@ -794,9 +804,9 @@ public class AlignSeq * DOCUMENT ME! * * @param i1 - * DOCUMENT ME! + * DOCUMENT ME! * @param i2 - * DOCUMENT ME! + * DOCUMENT ME! * * @return DOCUMENT ME! */ @@ -816,9 +826,9 @@ public class AlignSeq * DOCUMENT ME! * * @param s - * DOCUMENT ME! + * DOCUMENT ME! * @param type - * DOCUMENT ME! + * DOCUMENT ME! * * @return DOCUMENT ME! */ @@ -839,11 +849,12 @@ public class AlignSeq try { seq1[i] = charToInt[c]; // set accordingly from setType - if (seq1[i]<0 || seq1[i] > defInt) // set from setType: 23 for peptides, or 4 for NA. + if (seq1[i] < 0 || seq1[i] > defInt) // set from setType: 23 for + // peptides, or 4 for NA. { seq1[i] = defInt; } - + } catch (Exception e) { seq1[i] = defInt; @@ -857,15 +868,15 @@ public class AlignSeq * DOCUMENT ME! * * @param g - * DOCUMENT ME! + * DOCUMENT ME! * @param mat - * DOCUMENT ME! + * DOCUMENT ME! * @param n - * DOCUMENT ME! + * DOCUMENT ME! * @param m - * DOCUMENT ME! + * DOCUMENT ME! * @param psize - * DOCUMENT ME! + * DOCUMENT ME! */ public static void displayMatrix(Graphics g, int[][] mat, int n, int m, int psize)