remove all representative seqs on delete groups
[jalview.git] / src / jalview / datamodel / Alignment.java
index 8c320f7..86c140f 100755 (executable)
@@ -70,11 +70,7 @@ public class Alignment implements AlignmentI
      * @param seqs SeqCigar[]
      */
     public Alignment(SeqCigar[] alseqs) {
-
-      SequenceI[] seqs = new SequenceI[alseqs.length];
-      for (int i=0; i<alseqs.length; i++) {
-        seqs[i] = alseqs[i].getSeq(this.gapCharacter);
-      }
+      SequenceI[] seqs = SeqCigar.createAlignmentSequences(alseqs, gapCharacter, new ColumnSelection(), null);
       initAlignment(seqs);
     }
     /**
@@ -83,7 +79,7 @@ public class Alignment implements AlignmentI
      * JBPNote - must also check that compactAlignment resolves to a set of SeqCigars - or construct them appropriately.
      * @param compactAlignment CigarArray
      */
-    public Alignment(CigarArray compactAlignment) {
+    public static AlignmentI createAlignment(CigarArray compactAlignment) {
       throw new Error("Alignment(CigarArray) not yet implemented");
       // this(compactAlignment.refCigars);
     }
@@ -398,7 +394,8 @@ public class Alignment implements AlignmentI
 
         while (i < sequences.size())
         {
-            SequenceI s = getSequenceAt(i);
+            Sequence s = (Sequence)getSequenceAt(i);
+            s.hiddenSequences = null;
             s.setColor(java.awt.Color.white);
             i++;
         }
@@ -409,6 +406,9 @@ public class Alignment implements AlignmentI
     {
         if (groups.contains(g))
         {
+          //remove any hidden representatives
+        //  for(int i=0; i<g.getsiz
+         //   g.getSequences()
             groups.removeElement(g);
         }
     }
@@ -431,6 +431,28 @@ public class Alignment implements AlignmentI
         return null;
     }
 
+    public SequenceI [] findSequenceMatch(String name)
+    {
+      Vector matches = new Vector();
+      int i = 0;
+
+      while (i < sequences.size())
+      {
+          if (getSequenceAt(i).getName().equals(name))
+          {
+              matches.addElement(getSequenceAt(i));
+          }
+          i++;
+      }
+
+      SequenceI [] result = new SequenceI[matches.size()];
+      for(i=0; i<result.length; i++)
+        result[i] = (SequenceI)matches.elementAt(i);
+
+      return result;
+
+    }
+
 
     /**    */
     public int findIndex(SequenceI s)
@@ -715,7 +737,8 @@ public class Alignment implements AlignmentI
                                    ),
                                    getSequenceAt(i).getStart(),
                                    getSequenceAt(i).getEnd());
-
+            seqs[i].sequenceFeatures = getSequenceAt(i).getSequenceFeatures();
+            getSequenceAt(i).setSequenceFeatures(null);
             getSequenceAt(i).setDatasetSequence(seqs[i]);
           }
         }
@@ -811,7 +834,7 @@ public class Alignment implements AlignmentI
   {
     SeqCigar alseqs[] = new SeqCigar[sequences.size()];
     for (int i=0; i<sequences.size(); i++) {
-      alseqs[i] = new SeqCigar((SequenceI) sequences.get(i));
+      alseqs[i] = new SeqCigar((SequenceI) sequences.elementAt(i));
     }
     return new CigarArray(alseqs);
   }