1 /* Jalview - a java multiple alignment editor
\r
2 * Copyright (C) 1998 Michele Clamp
\r
4 * This program is free software; you can redistribute it and/or
\r
5 * modify it under the terms of the GNU General Public License
\r
6 * as published by the Free Software Foundation; either version 2
\r
7 * of the License, or (at your option) any later version.
\r
9 * This program is distributed in the hope that it will be useful,
\r
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
12 * GNU General Public License for more details.
\r
14 * You should have received a copy of the GNU General Public License
\r
15 * along with this program; if not, write to the Free Software
\r
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
\r
20 import jalview.datamodel.*;
\r
25 import java.awt.Font;
\r
27 public class BLCFile extends AlignFile {
\r
34 public BLCFile(String inStr) {
\r
38 public void initData() {
\r
40 titles = new Vector();
\r
43 public BLCFile(String inFile, String type) throws IOException {
\r
50 boolean idsFound=false;
\r
51 Vector ids = new Vector();
\r
52 StringBuffer seqstrings [];
\r
53 Vector starts = new Vector();
\r
54 Vector ends = new Vector();
\r
62 if (line.indexOf("*") > -1)
\r
68 if (line.indexOf(">") > -1)
\r
71 if(line.indexOf(" ")>-1 )
\r
73 //>54402046 0 1 137 137: immunog
\r
74 ids.addElement(line.substring(1, line.indexOf(" ")));
\r
77 line = line.substring(line.indexOf(" ") + 1);
\r
80 line = line.substring(line.indexOf(" ") + 1);
\r
82 starts.addElement(line.substring(0, line.indexOf(" ")));
\r
83 line = line.substring(line.indexOf(" ") + 1);
\r
85 ends.addElement(line.substring(0, line.indexOf(" ")));
\r
89 ids.addElement( line.substring(line.indexOf(">") + 1, line.indexOf("/")));
\r
90 line = line.substring(line.indexOf("/") + 1);
\r
91 starts.addElement(line.substring(0, line.indexOf("-")));
\r
92 ends.addElement(line.substring(line.indexOf("-")+1));
\r
97 int starCol = line.indexOf("*");
\r
98 seqstrings = new StringBuffer[ids.size()];
\r
99 for(int i=0; i<ids.size(); i++)
\r
101 if(seqstrings[i]==null)
\r
102 seqstrings[i] = new StringBuffer();
\r
105 while ((line = nextLine()).indexOf("*")==-1)
\r
107 for(int i=0; i<ids.size(); i++)
\r
108 seqstrings[i].append( line.charAt(i+starCol) );
\r
111 for(int i=0; i<ids.size(); i++)
\r
113 Sequence newSeq = new Sequence(ids.elementAt(i).toString(),
\r
114 seqstrings[i].toString(),
\r
115 Integer.parseInt(starts.elementAt(i).toString()),
\r
116 Integer.parseInt(ends.elementAt(i).toString()));
\r
117 seqs.addElement(newSeq);
\r
120 }catch(Exception ex){ex.printStackTrace();}
\r
123 public String print() {
\r
124 return print(getSeqsAsArray());
\r
126 public static String print(SequenceI[] s) {
\r
127 StringBuffer out = new StringBuffer();
\r
131 while (i < s.length && s[i] != null) {
\r
132 out.append(">" + s[i].getName() + "/" + s[i].getStart() + "-" + s[i].getEnd() + "\n");
\r
133 if (s[i].getSequence().length() > max) { max = s[i].getSequence().length();}
\r
137 out.append("* iteration 1\n");
\r
138 for (int j = 0; j < max; j++) {
\r
140 while (i < s.length && s[i] != null) {
\r
141 if(s[i].getSequence().length()>j )
\r
142 out.append(s[i].getSequence().substring(j,j+1));
\r
150 return out.toString();
\r