X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignedCodonFrame.java;h=9c2bd83e48a1c600ff324bd57ea1f6d0ec90fccf;hb=23304093bd85722ad85393516357e565616cbf0b;hp=c89c1705702a614a892f266b7b3d366542121a79;hpb=349ef01fe53c28dc78bec2d321f9c833a4b6e023;p=jalview.git
diff --git a/src/jalview/datamodel/AlignedCodonFrame.java b/src/jalview/datamodel/AlignedCodonFrame.java
index c89c170..9c2bd83 100644
--- a/src/jalview/datamodel/AlignedCodonFrame.java
+++ b/src/jalview/datamodel/AlignedCodonFrame.java
@@ -1,5 +1,25 @@
+/*
+ * 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.datamodel;
+import java.util.Enumeration;
+import java.util.Vector;
+
import jalview.util.MapList;
/**
@@ -10,20 +30,29 @@ import jalview.util.MapList;
public class AlignedCodonFrame
{
/**
- * array of nucleotide positions for aligned codons at column of aligned proteins.
+ * array of nucleotide positions for aligned codons at column of aligned
+ * proteins.
*/
public int[][] codons = null;
+
/**
- * width of protein sequence alignement
- * implicit assertion that codons.length >= aaWidth
+ * width of protein sequence alignement implicit assertion that codons.length
+ * >= aaWidth
*/
- public int aaWidth=0;
+ public int aaWidth = 0;
+
/**
* initialise codon frame with a nominal alignment width
+ *
* @param aWidth
*/
public AlignedCodonFrame(int aWidth)
{
+ if (aWidth <= 0)
+ {
+ codons = null;
+ return;
+ }
codons = new int[aWidth][];
for (int res = 0; res < aWidth; res++)
codons[res] = null;
@@ -31,6 +60,7 @@ public class AlignedCodonFrame
/**
* ensure that codons array is at least as wide as aslen residues
+ *
* @param aslen
* @return (possibly newly expanded) codon array
*/
@@ -49,31 +79,49 @@ public class AlignedCodonFrame
}
return codons;
}
+
/**
- * @return width of aligned translated amino acid residues
+ * @return width of aligned translated amino acid residues
*/
public int getaaWidth()
{
return aaWidth;
}
+
/**
- * increase aaWidth by one and insert a new aligned codon position space at aspos.
+ * TODO: not an ideal solution - we reference the aligned amino acid sequences
+ * in order to make insertions on them Better would be dnaAlignment and
+ * aaAlignment reference....
+ */
+ Vector a_aaSeqs = new Vector();
+
+ /**
+ * increase aaWidth by one and insert a new aligned codon position space at
+ * aspos.
+ *
* @param aspos
*/
public void insertAAGap(int aspos, char gapCharacter)
- {
- // this aa appears before the aligned codons at aspos - so shift them in each pair of mapped sequences
+ {
+ // this aa appears before the aligned codons at aspos - so shift them in
+ // each pair of mapped sequences
aaWidth++;
- for (int sq=0;aaSeqs!=null && sq