/*
- * 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 <http://www.gnu.org/licenses/>.
*/
package jalview.analysis;
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)
{
* 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);
}
/**
* 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)
// 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;
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++)
{
// 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++)
* DOCUMENT ME!
*
* @param mat
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void printScoreMatrix(int[][] mat)
{
* DOCUMENT ME!
*
* @param i
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param j
- * DOCUMENT ME!
+ * DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
{
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;
}
* DOCUMENT ME!
*
* @param gapChar
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param seq
- * DOCUMENT ME!
+ * DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
* DOCUMENT ME!
*
* @param i1
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param i2
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param i3
- * DOCUMENT ME!
+ * DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
* DOCUMENT ME!
*
* @param i1
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param i2
- * DOCUMENT ME!
+ * DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
* DOCUMENT ME!
*
* @param s
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param type
- * DOCUMENT ME!
+ * DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
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;
* 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)