X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FAlignFile.java;h=3b46760719f3e964ef5274c2c9510166ad9de37e;hb=59c9459d9b84f5e980da09599f2f0067a639fa8b;hp=661ebae135ec184b8b2f1c35b2a73693d55f6de1;hpb=ab43013b7e357b84b4abade0dba949668dfb2a0e;p=jalview.git diff --git a/src/jalview/io/AlignFile.java b/src/jalview/io/AlignFile.java index 661ebae..3b46760 100755 --- a/src/jalview/io/AlignFile.java +++ b/src/jalview/io/AlignFile.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2b1) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,15 +20,18 @@ */ package jalview.io; -import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.AlignmentI; import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.util.MessageManager; import java.io.IOException; +import java.util.ArrayList; import java.util.Enumeration; import java.util.Hashtable; +import java.util.List; import java.util.Vector; /** @@ -54,6 +57,11 @@ public abstract class AlignFile extends FileParse protected Vector annotations; /** + * SequenceGroups to be added to the alignment object + */ + protected List seqGroups; + + /** * Properties to be added to generated alignment object */ protected Hashtable properties; @@ -165,6 +173,11 @@ public abstract class AlignFile extends FileParse return seqs; } + public List getSeqGroups() + { + return seqGroups; + } + /** * Return the Sequences in the seqs Vector as an array of Sequences */ @@ -174,7 +187,7 @@ public abstract class AlignFile extends FileParse for (int i = 0; i < seqs.size(); i++) { - s[i] = (SequenceI) seqs.elementAt(i); + s[i] = seqs.elementAt(i); } return s; @@ -186,7 +199,7 @@ public abstract class AlignFile extends FileParse * * @param al */ - public void addAnnotations(Alignment al) + public void addAnnotations(AlignmentI al) { addProperties(al); for (int i = 0; i < annotations.size(); i++) @@ -198,7 +211,7 @@ public abstract class AlignFile extends FileParse * Rna.GetBasePairsFromAlignmentAnnotation(annotations.elementAt(i)); * Rna.HelixMap(pairArray); */ - AlignmentAnnotation an = (AlignmentAnnotation) annotations + AlignmentAnnotation an = annotations .elementAt(i); an.validateRangeAndDisplay(); al.addAnnotation(an); @@ -207,13 +220,24 @@ public abstract class AlignFile extends FileParse } /** + * register sequence groups on the alignment for **output** + * + * @param al + */ + public void addSeqGroups(AlignmentI al) + { + this.seqGroups = al.getGroups(); + + } + + /** * Add any additional information extracted from the file to the alignment * properties. * * @note implicitly called by addAnnotations() * @param al */ - public void addProperties(Alignment al) + public void addProperties(AlignmentI al) { if (properties != null && properties.size() > 0) { @@ -267,8 +291,9 @@ public abstract class AlignFile extends FileParse */ protected void initData() { - seqs = new Vector(); - annotations = new Vector(); + seqs = new Vector(); + annotations = new Vector(); + seqGroups = new ArrayList(); parseCalled=false; } @@ -280,7 +305,7 @@ public abstract class AlignFile extends FileParse */ protected void setSeqs(SequenceI[] s) { - seqs = new Vector(); + seqs = new Vector(); for (int i = 0; i < s.length; i++) { @@ -340,13 +365,13 @@ public abstract class AlignFile extends FileParse /** * vector of String[] treeName, newickString pairs */ - Vector newickStrings = null; + Vector newickStrings = null; protected void addNewickTree(String treeName, String newickString) { if (newickStrings == null) { - newickStrings = new Vector(); + newickStrings = new Vector(); } newickStrings.addElement(new String[] { treeName, newickString }); @@ -354,11 +379,16 @@ public abstract class AlignFile extends FileParse protected int getTreeCount() { - if (newickStrings == null) + return newickStrings == null ? 0 : newickStrings.size(); + } + + public void addGroups(AlignmentI al) + { + + for (SequenceGroup sg : getSeqGroups()) { - return 0; + al.addGroup(sg); } - return newickStrings.size(); } }