Sequence is char []
[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
24 /**
25  * DOCUMENT ME!
26  *
27  * @author $author$
28  * @version $Revision$
29  */
30 public interface SequenceI
31 {
32     /**
33      * DOCUMENT ME!
34      *
35      * @param name DOCUMENT ME!
36      */
37     public void setName(String name);
38
39     /**
40      * DOCUMENT ME!
41      *
42      * @return DOCUMENT ME!
43      */
44     public String getName();
45
46
47     /**
48      * DOCUMENT ME!
49      *
50      * @param start DOCUMENT ME!
51      */
52     public void setStart(int start);
53
54     /**
55      * DOCUMENT ME!
56      *
57      * @return DOCUMENT ME!
58      */
59     public int getStart();
60
61     /**
62      * DOCUMENT ME!
63      *
64      * @return DOCUMENT ME!
65      */
66     public String getDisplayId(boolean jvsuffix);
67
68     /**
69      * DOCUMENT ME!
70      *
71      * @param end DOCUMENT ME!
72      */
73     public void setEnd(int end);
74
75     /**
76      * DOCUMENT ME!
77      *
78      * @return DOCUMENT ME!
79      */
80     public int getEnd();
81
82     /**
83      * DOCUMENT ME!
84      *
85      * @return DOCUMENT ME!
86      */
87     public int getLength();
88
89     /**
90      * DOCUMENT ME!
91      *
92      * @param sequence DOCUMENT ME!
93      */
94     public void setSequence(String sequence);
95
96     /**
97      * DOCUMENT ME!
98      *
99      * @return DOCUMENT ME!
100      */
101     public String getSequenceAsString();
102
103     /**
104      * DOCUMENT ME!
105      *
106      * @param start DOCUMENT ME!
107      * @param end DOCUMENT ME!
108      *
109      * @return DOCUMENT ME!
110      */
111     public String getSequenceAsString(int start, int end);
112
113     /**
114      * DOCUMENT ME!
115      *
116      * @return DOCUMENT ME!
117      */
118     public char [] getSequence();
119
120     /**
121      * DOCUMENT ME!
122      *
123      * @param start DOCUMENT ME!
124      * @param end DOCUMENT ME!
125      *
126      * @return DOCUMENT ME!
127      */
128     public char [] getSequence(int start, int end);
129     /**
130      * create a new sequence object from start to end of this sequence
131      * @param start int
132      * @param end int
133      * @return SequenceI
134      */
135     public SequenceI getSubSequence(int start, int end);
136     /**
137      * DOCUMENT ME!
138      *
139      * @param i DOCUMENT ME!
140      *
141      * @return DOCUMENT ME!
142      */
143     public char getCharAt(int i);
144
145     /**
146      * DOCUMENT ME!
147      *
148      * @param desc DOCUMENT ME!
149      */
150     public void setDescription(String desc);
151
152     /**
153      * DOCUMENT ME!
154      *
155      * @return DOCUMENT ME!
156      */
157     public String getDescription();
158
159     /**
160      * DOCUMENT ME!
161      *
162      * @param pos DOCUMENT ME!
163      *
164      * @return DOCUMENT ME!
165      */
166     public int findIndex(int pos);
167
168     /**
169      * Returns the sequence position for an alignment position
170      *
171      * @param i column index in alignment (from 1)
172      *
173      * @return residue number for residue (left of and) nearest ith column
174      */
175     public int findPosition(int i);
176
177     /**
178      * Returns an int array where indices correspond to each residue in the sequence and the element value gives its position in the alignment
179      *
180      * @return int[SequenceI.getEnd()-SequenceI.getStart()+1] or null if no residues in SequenceI object
181      */
182     public int[] gapMap();
183
184     /**
185      * DOCUMENT ME!
186      *
187      * @param i DOCUMENT ME!
188      * @param j DOCUMENT ME!
189      */
190     public void deleteChars(int i, int j);
191
192
193     /**
194      * DOCUMENT ME!
195      *
196      * @param i DOCUMENT ME!
197      * @param c DOCUMENT ME!
198      */
199     public void insertCharAt(int i, char c);
200
201     /**
202      * DOCUMENT ME!
203      *
204      * @param i DOCUMENT ME!
205      * @param c DOCUMENT ME!
206      */
207     public void insertCharAt(int i, int length, char c);
208
209
210     /**
211      * DOCUMENT ME!
212      *
213      * @return DOCUMENT ME!
214      */
215     public SequenceFeature[] getSequenceFeatures();
216
217     /**
218      * DOCUMENT ME!
219      *
220      * @param v DOCUMENT ME!
221      */
222     public void setSequenceFeatures(SequenceFeature [] features);
223
224     /**
225      * DOCUMENT ME!
226      *
227      * @param id DOCUMENT ME!
228      */
229     public void setPDBId(Vector ids);
230
231     /**
232      * DOCUMENT ME!
233      *
234      * @return DOCUMENT ME!
235      */
236     public Vector getPDBId();
237
238     public void addPDBId(PDBEntry entry);
239
240     public String getVamsasId();
241
242     public void setVamsasId(String id);
243
244     public void setDBRef(DBRefEntry[] dbs);
245
246     public DBRefEntry [] getDBRef();
247
248     public void addDBRef(DBRefEntry entry);
249
250     public void addSequenceFeature(SequenceFeature sf);
251
252     public void deleteFeature(SequenceFeature sf);
253
254     public void setDatasetSequence(SequenceI seq);
255
256     public SequenceI getDatasetSequence();
257
258     public AlignmentAnnotation [] getAnnotation();
259
260     public void addAlignmentAnnotation(AlignmentAnnotation annotation);
261
262     public SequenceGroup getHiddenSequences();
263
264     public void addHiddenSequence(SequenceI seq);
265
266     public void showHiddenSequence(SequenceI seq);
267
268 }