/*
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
*/
package jalview.io;
{
int i = 0;
boolean flag = false;
-
+ boolean rna=false;
+ boolean top=false;
+ StringBuffer pssecstr=new StringBuffer(),consstr=new StringBuffer();
Vector headers = new Vector();
Hashtable seqhash = new Hashtable();
StringBuffer tempseq;
{
while ((line = nextLine()) != null)
{
+ if (line.length()==0)
+ {
+ top=true;
+ }
if (line.indexOf(" ") != 0)
{
str = new StringTokenizer(line, " ");
{
tempseq.append(str.nextToken());
}
+ top=false;
}
}
}
{
flag = true;
}
+ } else {
+ if (line.matches("\\s+(-|\\.|\\(|\\[|\\]|\\))+"))
+ {
+ if (top)
+ {
+ pssecstr.append(line.trim());
+ } else {
+ consstr.append(line.trim());
+ }
+ }
}
}
} catch (IOException e)
+ headers.elementAt(i));
}
}
+ AlignmentAnnotation lastssa=null;
+ if (pssecstr.length()==maxLength)
+ {
+ Vector ss=new Vector();
+ AlignmentAnnotation ssa=lastssa=StockholmFile.parseAnnotationRow(ss, "secondary structure", pssecstr.toString());
+ ssa.label="Secondary Structure";
+ annotations.addElement(ssa);
+ }
+ if (consstr.length()==maxLength)
+ {
+ Vector ss=new Vector();
+ AlignmentAnnotation ssa=StockholmFile.parseAnnotationRow(ss, "secondary structure", consstr.toString());
+ ssa.label="Consensus Secondary Structure";
+ if (lastssa==null || !lastssa.getRNAStruc().equals(ssa.getRNAStruc().replace('-', '.')))
+ {
+ annotations.addElement(ssa);
+ }
+ }
}
}
-
public String print()
{
return print(getSeqsAsArray());
public String print(SequenceI[] s)
{
- StringBuffer out = new StringBuffer("CLUSTAL\n\n");
+ StringBuffer out = new StringBuffer("CLUSTAL"+newline+newline);
int max = 0;
int maxid = 0;
while ((j < s.length) && (s[j] != null))
{
- out
- .append(new Format("%-" + maxid + "s").form(printId(s[j])
- + " "));
+ out.append(new Format("%-" + maxid + "s").form(printId(s[j]) + " "));
int start = i * len;
int end = start + len;
}
}
- out.append("\n");
+ out.append(newline);
j++;
}
- out.append("\n");
+ out.append(newline);
}
return out.toString();