Alignment Annotation added
[jalview.git] / src / jalview / datamodel / AlignmentI.java
1 package jalview.datamodel;\r
2 \r
3 import java.util.*;\r
4 \r
5 /** Data structure to hold and manipulate a multiple sequence alignment\r
6  */\r
7 public interface AlignmentI {\r
8 \r
9   public int         getHeight() ;\r
10   public int         getWidth() ;\r
11   public int         getMaxIdLength() ;\r
12 \r
13   public boolean isAligned();\r
14 \r
15   public Vector      getSequences();\r
16   public SequenceI   getSequenceAt(int i);\r
17 \r
18   public void        addSequence(SequenceI seq) ;\r
19   public void        setSequenceAt(int i,SequenceI seq);\r
20 \r
21   public void        deleteSequence(SequenceI s) ;\r
22   public void        deleteSequence(int i) ;\r
23 \r
24   public SequenceI[] getColumns(int start, int end) ;\r
25   public SequenceI[] getColumns(int seq1, int seq2, int start, int end) ;\r
26 \r
27   public void        deleteColumns(int start, int end) ;\r
28   public void        deleteColumns(int seq1, int seq2, int start, int end) ;\r
29 \r
30   public void        insertColumns(SequenceI[] seqs, int pos) ;\r
31 \r
32   public SequenceI   findName(String name) ;\r
33   public SequenceI   findbyDisplayId(String name);\r
34 \r
35   public int         findIndex(SequenceI s) ;\r
36 \r
37   // Modifying\r
38   public void        trimLeft(int i) ;\r
39   public void        trimRight(int i) ;\r
40 \r
41   public void        removeGaps() ;\r
42   public Vector      removeRedundancy(float threshold, Vector sel) ;\r
43 \r
44 \r
45   // Grouping methods\r
46   public SequenceGroup findGroup(int i) ;\r
47   public SequenceGroup findGroup(SequenceI s) ;\r
48   public SequenceGroup [] findAllGroups(SequenceI s);\r
49   public void          addToGroup(SequenceGroup g, SequenceI s) ;\r
50   public void          removeFromGroup(SequenceGroup g,SequenceI s) ;\r
51   public void          addGroup(SequenceGroup sg) ;\r
52   public void          deleteGroup(SequenceGroup g) ;\r
53   public Vector        getGroups();\r
54   public void deleteAllGroups();\r
55 \r
56   public void          addSuperGroup(SuperGroup sg);\r
57   public void          removeSuperGroup(SuperGroup sg);\r
58   public SuperGroup    getSuperGroup(SequenceGroup sg);\r
59 \r
60   // Sorting\r
61   public void          sortGroups() ;\r
62   public void          sortByPID(SequenceI s) ;\r
63   public void          sortByID() ;\r
64 \r
65   //Annotations\r
66   public void addAnnotation(AlignmentAnnotation aa);\r
67   public void deleteAnnotation(AlignmentAnnotation aa);\r
68   public AlignmentAnnotation [] getAlignmentAnnotation();\r
69 \r
70   public void          setGapCharacter(char gc);\r
71   public char          getGapCharacter();\r
72 \r
73   public Vector        getAAFrequency();\r
74 }\r
75 \r
76 \r
77 \r