header updated
[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      * DOCUMENT ME!
155      *
156      * @param i DOCUMENT ME!
157      *
158      * @return DOCUMENT ME!
159      */
160     public int findPosition(int i);
161
162     /**
163      * DOCUMENT ME!
164      *
165      * @return DOCUMENT ME!
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     /**
194      * DOCUMENT ME!
195      *
196      * @param c DOCUMENT ME!
197      */
198     public void setColor(Color c);
199
200     /**
201      * DOCUMENT ME!
202      *
203      * @return DOCUMENT ME!
204      */
205     public Color getColor();
206
207     /**
208      * DOCUMENT ME!
209      *
210      * @return DOCUMENT ME!
211      */
212     public SequenceFeature[] getSequenceFeatures();
213
214     /**
215      * DOCUMENT ME!
216      *
217      * @param v DOCUMENT ME!
218      */
219     public void setSequenceFeatures(SequenceFeature [] features);
220
221     /**
222      * DOCUMENT ME!
223      *
224      * @param id DOCUMENT ME!
225      */
226     public void setPDBId(Vector ids);
227
228     /**
229      * DOCUMENT ME!
230      *
231      * @return DOCUMENT ME!
232      */
233     public Vector getPDBId();
234
235     public void addPDBId(PDBEntry entry);
236
237     public String getVamsasId();
238
239     public void setVamsasId(String id);
240
241     public void setDBRef(DBRefEntry[] dbs);
242
243     public DBRefEntry [] getDBRef();
244
245     public void addDBRef(DBRefEntry entry);
246
247     public void addSequenceFeature(SequenceFeature sf);
248
249     public void setDatasetSequence(SequenceI seq);
250
251     public SequenceI getDatasetSequence();
252
253     public AlignmentAnnotation [] getAnnotation();
254
255     public void addAlignmentAnnotation(AlignmentAnnotation annotation);
256
257     public SequenceGroup getHiddenSequences();
258
259     public void addHiddenSequence(SequenceI seq);
260
261     public void showHiddenSequence(SequenceI seq);
262
263     public void changeCase(boolean toUpper, int start, int end);
264
265     public void toggleCase(int start, int end);
266
267   /**
268    * getSubSequence from start to end of sequence
269    * @param start first residue in subSequence
270    * @return SequenceI
271    */
272   public SequenceI getSubSequence(int start);
273   /**
274    * remove all gaps in the sequence
275    * @return number of gaps removed
276    */
277   public int removeGaps();
278   /**
279    * remove all gaps from start to end columns in sequence
280    * @param start
281    * @param end
282    * @return number of gaps removed
283    */
284   public int removeGaps(int start, int end);
285
286 }