X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FStockholmFile.java;h=cb4c786dbbec7782b32529d1e1f9560e6ed56e50;hb=4a5137b64f7ec23db2a09290bfcd392984a52150;hp=c4d3e5c4a295c6f842d32351eb1db95a72d6e2c5;hpb=b13f521553582ef2fbfd7815ae25e23284babdea;p=jalview.git diff --git a/src/jalview/io/StockholmFile.java b/src/jalview/io/StockholmFile.java index c4d3e5c..cb4c786 100644 --- a/src/jalview/io/StockholmFile.java +++ b/src/jalview/io/StockholmFile.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -91,9 +91,10 @@ public class StockholmFile extends AlignFile this.al = al; } - public StockholmFile(String inFile, String type) throws IOException + public StockholmFile(String inFile, DataSourceType sourceType) + throws IOException { - super(inFile, type); + super(inFile, sourceType); } public StockholmFile(FileParse source) throws IOException @@ -101,6 +102,7 @@ public class StockholmFile extends AlignFile super(source); } + @Override public void initData() { super.initData(); @@ -178,6 +180,7 @@ public class StockholmFile extends AlignFile * @throws IOException * If there is an error with the input file */ + @Override public void parse() throws IOException { StringBuffer treeString = new StringBuffer(); @@ -420,8 +423,8 @@ public class StockholmFile extends AlignFile { // logger.error("Could not parse sequence line: " + line); throw new IOException(MessageManager.formatMessage( - "exception.couldnt_parse_sequence_line", new String[] - { line })); + "exception.couldnt_parse_sequence_line", + new String[] { line })); } String ns = seqs.get(x.stringMatched(1)); if (ns == null) @@ -533,9 +536,9 @@ public class StockholmFile extends AlignFile } else { - throw new IOException(MessageManager.formatMessage( - "exception.error_parsing_line", new String[] - { line })); + // throw new IOException(MessageManager.formatMessage( + // "exception.error_parsing_line", new String[] { line })); + System.err.println(">> missing annotation: " + line); } } else if (annType.equals("GC")) @@ -665,8 +668,8 @@ public class StockholmFile extends AlignFile else { throw new IOException(MessageManager.formatMessage( - "exception.unknown_annotation_detected", new String[] - { annType, annContent })); + "exception.unknown_annotation_detected", new String[] { + annType, annContent })); } } } @@ -779,9 +782,8 @@ public class StockholmFile extends AlignFile { for (DBRefEntry d : dbrs) { - jalview.util.MapList mp = new jalview.util.MapList(new int[] - { seqO.getStart(), seqO.getEnd() }, new int[] - { st, en }, 1, 1); + jalview.util.MapList mp = new jalview.util.MapList(new int[] { + seqO.getStart(), seqO.getEnd() }, new int[] { st, en }, 1, 1); jalview.datamodel.Mapping mping = new Mapping(mp); d.setMap(mping); } @@ -826,7 +828,7 @@ public class StockholmFile extends AlignFile // be written out if (ss) { - //if (" .-_".indexOf(pos) == -1) + // if (" .-_".indexOf(pos) == -1) { if (detectbrackets.search(pos)) { @@ -848,7 +850,7 @@ public class StockholmFile extends AlignFile ann.displayCharacter = " " + ann.displayCharacter; } } - + } els[i] = ann; @@ -882,8 +884,12 @@ public class StockholmFile extends AlignFile return annot; } - public String print(SequenceI[] s) + @Override + public String print(SequenceI[] s, boolean jvsuffix) { + // out.append("# STOCKHOLM 1.0"); + // out.append(newline); + // find max length of id int max = 0; int maxid = 0; @@ -891,7 +897,7 @@ public class StockholmFile extends AlignFile Hashtable dataRef = null; while ((in < s.length) && (s[in] != null)) { - String tmp = printId(s[in]); + String tmp = printId(s[in], jvsuffix); if (s[in].getSequence().length > max) { max = s[in].getSequence().length; @@ -901,18 +907,18 @@ public class StockholmFile extends AlignFile { maxid = tmp.length(); } - if (s[in].getDBRef() != null) + if (s[in].getDBRefs() != null) { - for (int idb = 0; idb < s[in].getDBRef().length; idb++) + for (int idb = 0; idb < s[in].getDBRefs().length; idb++) { if (dataRef == null) { dataRef = new Hashtable(); } - String datAs1 = s[in].getDBRef()[idb].getSource().toString() + String datAs1 = s[in].getDBRefs()[idb].getSource().toString() + " ; " - + s[in].getDBRef()[idb].getAccessionId().toString(); + + s[in].getDBRefs()[idb].getAccessionId().toString(); dataRef.put(tmp, datAs1); } } @@ -988,7 +994,7 @@ public class StockholmFile extends AlignFile // out.append("#=GR "); out.append(new Format("%-" + maxid + "s").form("#=GR " - + printId(s[i]) + " " + key + " ")); + + printId(s[i], jvsuffix) + " " + key + " ")); ann = alAnot[j].annotations; boolean isrna = alAnot[j].isValidStruc(); String seq = ""; @@ -1002,7 +1008,8 @@ public class StockholmFile extends AlignFile } } - out.append(new Format("%-" + maxid + "s").form(printId(s[i]) + " ")); + out.append(new Format("%-" + maxid + "s") + .form(printId(s[i], jvsuffix) + " ")); out.append(s[i].getSequenceAsString()); out.append(newline); i++; @@ -1055,6 +1062,8 @@ public class StockholmFile extends AlignFile out.append(newline); } } + // out.append("//"); + // out.append(newline); return out.toString(); } @@ -1068,21 +1077,19 @@ public class StockholmFile extends AlignFile * @param ann * @param sequenceI */ - private char outputCharacter(String key, int k, - boolean isrna, Annotation[] ann, SequenceI sequenceI) + private char outputCharacter(String key, int k, boolean isrna, + Annotation[] ann, SequenceI sequenceI) { char seq = ' '; Annotation annot = ann[k]; String ch = (annot == null) ? ((sequenceI == null) ? "-" : Character - .toString(sequenceI.getCharAt(k))) - : annot.displayCharacter; + .toString(sequenceI.getCharAt(k))) : annot.displayCharacter; if (key != null && key.equals("SS")) { if (annot == null) { // sensible gap character if one is available or make one up - return sequenceI == null ? '-' : sequenceI - .getCharAt(k); + return sequenceI == null ? '-' : sequenceI.getCharAt(k); } else { @@ -1109,18 +1116,6 @@ public class StockholmFile extends AlignFile return seq; } - public String print() - { - out = new StringBuffer(); - out.append("# STOCKHOLM 1.0"); - out.append(newline); - print(getSeqsAsArray()); - - out.append("//"); - out.append(newline); - return out.toString(); - } - private static Hashtable typeIds = null; static {