Associate trees with views
[jalview.git] / src / jalview / datamodel / SequenceI.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer
3  * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
18  */
19 package jalview.datamodel;
20
21 import java.util.*;
22
23 import java.awt.*;
24
25
26 /**
27  * DOCUMENT ME!
28  *
29  * @author $author$
30  * @version $Revision$
31  */
32 public interface SequenceI
33 {
34     /**
35      * DOCUMENT ME!
36      *
37      * @param name DOCUMENT ME!
38      */
39     public void setName(String name);
40
41     /**
42      * DOCUMENT ME!
43      *
44      * @return DOCUMENT ME!
45      */
46     public String getName();
47
48
49     /**
50      * DOCUMENT ME!
51      *
52      * @param start DOCUMENT ME!
53      */
54     public void setStart(int start);
55
56     /**
57      * DOCUMENT ME!
58      *
59      * @return DOCUMENT ME!
60      */
61     public int getStart();
62
63     /**
64      * DOCUMENT ME!
65      *
66      * @return DOCUMENT ME!
67      */
68     public String getDisplayId(boolean jvsuffix);
69
70     /**
71      * DOCUMENT ME!
72      *
73      * @param end DOCUMENT ME!
74      */
75     public void setEnd(int end);
76
77     /**
78      * DOCUMENT ME!
79      *
80      * @return DOCUMENT ME!
81      */
82     public int getEnd();
83
84     /**
85      * DOCUMENT ME!
86      *
87      * @return DOCUMENT ME!
88      */
89     public int getLength();
90
91     /**
92      * DOCUMENT ME!
93      *
94      * @param sequence DOCUMENT ME!
95      */
96     public void setSequence(String sequence);
97
98     /**
99      * DOCUMENT ME!
100      *
101      * @return DOCUMENT ME!
102      */
103     public String getSequence();
104
105     /**
106      * DOCUMENT ME!
107      *
108      * @param start DOCUMENT ME!
109      * @param end DOCUMENT ME!
110      *
111      * @return DOCUMENT ME!
112      */
113     public String getSequence(int start, int end);
114     /**
115      * create a new sequence object from start to end of this sequence
116      * @param start int
117      * @param end int
118      * @return SequenceI
119      */
120     public SequenceI getSubSequence(int start, int end);
121     /**
122      * DOCUMENT ME!
123      *
124      * @param i DOCUMENT ME!
125      *
126      * @return DOCUMENT ME!
127      */
128     public char getCharAt(int i);
129
130     /**
131      * DOCUMENT ME!
132      *
133      * @param desc DOCUMENT ME!
134      */
135     public void setDescription(String desc);
136
137     /**
138      * DOCUMENT ME!
139      *
140      * @return DOCUMENT ME!
141      */
142     public String getDescription();
143
144     /**
145      * DOCUMENT ME!
146      *
147      * @param pos DOCUMENT ME!
148      *
149      * @return DOCUMENT ME!
150      */
151     public int findIndex(int pos);
152
153     /**
154      * Returns the sequence position for an alignment position
155      *
156      * @param i column index in alignment (from 1)
157      *
158      * @return residue number for residue (left of and) nearest ith column
159      */
160     public int findPosition(int i);
161
162     /**
163      * Returns an int array where indices correspond to each residue in the sequence and the element value gives its position in the alignment
164      *
165      * @return int[SequenceI.getEnd()-SequenceI.getStart()+1] or null if no residues in SequenceI object
166      */
167     public int[] gapMap();
168
169     /**
170      * DOCUMENT ME!
171      *
172      * @param i DOCUMENT ME!
173      * @param j DOCUMENT ME!
174      */
175     public void deleteChars(int i, int j);
176
177     /**
178      * DOCUMENT ME!
179      *
180      * @param i DOCUMENT ME!
181      */
182     public void deleteCharAt(int i);
183
184     /**
185      * DOCUMENT ME!
186      *
187      * @param i DOCUMENT ME!
188      * @param c DOCUMENT ME!
189      */
190     public void insertCharAt(int i, char c);
191
192     /**
193      * DOCUMENT ME!
194      *
195      * @param i DOCUMENT ME!
196      * @param c DOCUMENT ME!
197      */
198     public void insertCharAt(int i, int length, char c);
199
200
201     /**
202      * DOCUMENT ME!
203      *
204      * @return DOCUMENT ME!
205      */
206     public SequenceFeature[] getSequenceFeatures();
207
208     /**
209      * DOCUMENT ME!
210      *
211      * @param v DOCUMENT ME!
212      */
213     public void setSequenceFeatures(SequenceFeature [] features);
214
215     /**
216      * DOCUMENT ME!
217      *
218      * @param id DOCUMENT ME!
219      */
220     public void setPDBId(Vector ids);
221
222     /**
223      * DOCUMENT ME!
224      *
225      * @return DOCUMENT ME!
226      */
227     public Vector getPDBId();
228
229     public void addPDBId(PDBEntry entry);
230
231     public String getVamsasId();
232
233     public void setVamsasId(String id);
234
235     public void setDBRef(DBRefEntry[] dbs);
236
237     public DBRefEntry [] getDBRef();
238
239     public void addDBRef(DBRefEntry entry);
240
241     public void addSequenceFeature(SequenceFeature sf);
242
243     public void deleteFeature(SequenceFeature sf);
244
245     public void setDatasetSequence(SequenceI seq);
246
247     public SequenceI getDatasetSequence();
248
249     public AlignmentAnnotation [] getAnnotation();
250
251     public void addAlignmentAnnotation(AlignmentAnnotation annotation);
252
253     public SequenceGroup getHiddenSequences();
254
255     public void addHiddenSequence(SequenceI seq);
256
257     public void showHiddenSequence(SequenceI seq);
258
259 }