Formatting
[jalview.git] / src / jalview / datamodel / SequenceI.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer
3  * Copyright (C) 2007 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  * DOCUMENT ME!
25  *
26  * @author $author$
27  * @version $Revision$
28  */
29 public interface SequenceI
30 {
31   /**
32    * DOCUMENT ME!
33    *
34    * @param name DOCUMENT ME!
35    */
36   public void setName(String name);
37
38   /**
39    * DOCUMENT ME!
40    *
41    * @return DOCUMENT ME!
42    */
43   public String getName();
44
45   /**
46    * DOCUMENT ME!
47    *
48    * @param start DOCUMENT ME!
49    */
50   public void setStart(int start);
51
52   /**
53    * DOCUMENT ME!
54    *
55    * @return DOCUMENT ME!
56    */
57   public int getStart();
58
59   /**
60    * DOCUMENT ME!
61    *
62    * @return DOCUMENT ME!
63    */
64   public String getDisplayId(boolean jvsuffix);
65
66   /**
67    * DOCUMENT ME!
68    *
69    * @param end DOCUMENT ME!
70    */
71   public void setEnd(int end);
72
73   /**
74    * DOCUMENT ME!
75    *
76    * @return DOCUMENT ME!
77    */
78   public int getEnd();
79
80   /**
81    * DOCUMENT ME!
82    *
83    * @return DOCUMENT ME!
84    */
85   public int getLength();
86
87   /**
88    * DOCUMENT ME!
89    *
90    * @param sequence DOCUMENT ME!
91    */
92   public void setSequence(String sequence);
93
94   /**
95    * DOCUMENT ME!
96    *
97    * @return DOCUMENT ME!
98    */
99   public String getSequenceAsString();
100
101   /**
102    * DOCUMENT ME!
103    *
104    * @param start DOCUMENT ME!
105    * @param end DOCUMENT ME!
106    *
107    * @return DOCUMENT ME!
108    */
109   public String getSequenceAsString(int start, int end);
110
111   /**
112    * DOCUMENT ME!
113    *
114    * @return DOCUMENT ME!
115    */
116   public char[] getSequence();
117
118   /**
119    * DOCUMENT ME!
120    *
121    * @param start DOCUMENT ME!
122    * @param end DOCUMENT ME!
123    *
124    * @return DOCUMENT ME!
125    */
126   public char[] getSequence(int start, int end);
127
128   /**
129    * create a new sequence object from start to end of this sequence
130    * @param start int
131    * @param end int
132    * @return SequenceI
133    */
134   public SequenceI getSubSequence(int start, int end);
135
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    * DOCUMENT ME!
194    *
195    * @param i DOCUMENT ME!
196    * @param c DOCUMENT ME!
197    */
198   public void insertCharAt(int i, char c);
199
200   /**
201    * DOCUMENT ME!
202    *
203    * @param i DOCUMENT ME!
204    * @param c DOCUMENT ME!
205    */
206   public void insertCharAt(int i, int length, char c);
207
208   /**
209    * DOCUMENT ME!
210    *
211    * @return DOCUMENT ME!
212    */
213   public SequenceFeature[] getSequenceFeatures();
214
215   /**
216    * DOCUMENT ME!
217    *
218    * @param v DOCUMENT ME!
219    */
220   public void setSequenceFeatures(SequenceFeature[] features);
221
222   /**
223    * DOCUMENT ME!
224    *
225    * @param id DOCUMENT ME!
226    */
227   public void setPDBId(Vector ids);
228
229   /**
230    * DOCUMENT ME!
231    *
232    * @return DOCUMENT ME!
233    */
234   public Vector getPDBId();
235
236   public void addPDBId(PDBEntry entry);
237
238   public String getVamsasId();
239
240   public void setVamsasId(String id);
241
242   public void setDBRef(DBRefEntry[] dbs);
243
244   public DBRefEntry[] getDBRef();
245
246   public void addDBRef(DBRefEntry entry);
247
248   public void addSequenceFeature(SequenceFeature sf);
249
250   public void deleteFeature(SequenceFeature sf);
251
252   public void setDatasetSequence(SequenceI seq);
253
254   public SequenceI getDatasetSequence();
255
256   public AlignmentAnnotation[] getAnnotation();
257
258   public void addAlignmentAnnotation(AlignmentAnnotation annotation);
259
260   /**
261    * Derive a sequence (using this one's dataset or as the dataset)
262    * @return duplicate sequence with valid dataset sequence
263    */
264   public SequenceI deriveSequence();
265
266 }