X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FAnnotationFile.java;h=34fdabe0f9625ad6a54204bf32a54ab21bcb0f8d;hb=9a0f307f1fea87200c2ce905073942570795c6cc;hp=8dc84b829c7d7f813ef788111cc4cc0d1166a850;hpb=4884e25f5b34c098cbfe5f207b2a3d938c9b82c4;p=jalview.git diff --git a/src/jalview/io/AnnotationFile.java b/src/jalview/io/AnnotationFile.java index 8dc84b8..34fdabe 100755 --- a/src/jalview/io/AnnotationFile.java +++ b/src/jalview/io/AnnotationFile.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. * @@ -32,7 +32,6 @@ import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeProperty; -import jalview.schemes.ResidueProperties; import jalview.schemes.UserColourScheme; import java.io.BufferedReader; @@ -241,7 +240,7 @@ public class AnnotationFile && row.annotations[j].displayCharacter.length() > 0 && !row.annotations[j].displayCharacter .equals(" ")); hasGlyphs |= (row.annotations[j].secondaryStructure != 0 && row.annotations[j].secondaryStructure != ' '); - hasValues |= (row.annotations[j].value != Float.NaN); // NaNs can't + hasValues |= (!Float.isNaN(row.annotations[j].value)); // NaNs can't // be // rendered.. hasText |= (row.annotations[j].description != null && row.annotations[j].description @@ -294,8 +293,7 @@ public class AnnotationFile } else { - graphGroup_refs.put(key, new Object[] - { refSeq, refGroup }); + graphGroup_refs.put(key, new Object[] { refSeq, refGroup }); graphGroup.put(key, row.label); } } @@ -331,13 +329,13 @@ public class AnnotationFile } if (hasValues) { - if (row.annotations[j].value != Float.NaN) + if (!Float.isNaN(row.annotations[j].value)) { text.append(comma + row.annotations[j].value); } else { - System.err.println("Skipping NaN - not valid value."); + // System.err.println("Skipping NaN - not valid value."); text.append(comma + 0f);// row.annotations[j].value); } comma = ","; @@ -472,8 +470,9 @@ public class AnnotationFile text.append(properties.get(key)); } // TODO: output alignment visualization settings here if required - // iterate through one or more views, defining, marking columns and rows as visible/hidden, and emmitting view properties. - // View specific annotation is + // iterate through one or more views, defining, marking columns and rows + // as visible/hidden, and emmitting view properties. + // View specific annotation is } return text.toString(); @@ -670,14 +669,14 @@ public class AnnotationFile } boolean rslt = readAnnotationFile(viewport.getAlignment(), colSel, file, protocol); - if (rslt - && (colSel.hasSelectedColumns() || colSel.hasHiddenColumns())) + if (rslt && (colSel.hasSelectedColumns() || colSel.hasHiddenColumns())) { viewport.setColumnSelection(colSel); } return rslt; } + public boolean readAnnotationFile(AlignmentI al, String file, String protocol) { @@ -737,8 +736,7 @@ public class AnnotationFile private static String GRAPHLINE = "GRAPHLINE", COMBINE = "COMBINE"; public boolean parseAnnotationFrom(AlignmentI al, ColumnSelection colSel, - BufferedReader in) - throws Exception + BufferedReader in) throws Exception { nlinesread = 0; ArrayList combineAnnotation_calls = new ArrayList(); @@ -831,8 +829,8 @@ public class AnnotationFile else if (token.equalsIgnoreCase(COMBINE)) { // keep a record of current state and resolve groupRef at end - combineAnnotation_calls.add(new Object[] - { st, refSeq, groupRef }); + combineAnnotation_calls + .add(new Object[] { st, refSeq, groupRef }); modified = true; continue; } @@ -845,8 +843,8 @@ public class AnnotationFile else if (token.equalsIgnoreCase(GRAPHLINE)) { // resolve at end - deferredAnnotation_calls.add(new Object[] - { GRAPHLINE, st, refSeq, groupRef }); + deferredAnnotation_calls.add(new Object[] { GRAPHLINE, st, + refSeq, groupRef }); modified = true; continue; } @@ -1154,7 +1152,7 @@ public class AnnotationFile (SequenceI) _deferred_args[2], // refSeq (_deferred_args[3] == null) ? null : groupRefLookup .get(_deferred_args[3]) // the reference - // group, or null + // group, or null ); } } @@ -1174,7 +1172,7 @@ public class AnnotationFile (SequenceI) _combine_args[1], // refSeq (_combine_args[2] == null) ? null : groupRefLookup .get(_combine_args[2]) // the reference group, - // or null + // or null ); } } @@ -1183,7 +1181,7 @@ public class AnnotationFile private void parseHideCols(ColumnSelection colSel, String nextToken) { - StringTokenizer inval = new StringTokenizer(nextToken,","); + StringTokenizer inval = new StringTokenizer(nextToken, ","); while (inval.hasMoreTokens()) { String range = inval.nextToken().trim(); @@ -1301,8 +1299,8 @@ public class AnnotationFile } } if (hasSymbols - && (token.equals("H") || token.equals("E") - || token.equals("S") || token.equals(" "))) + && (token.length() == 1 && "()<>[]{}AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" + .contains(token))) { // Either this character represents a helix or sheet // or an integer which can be displayed @@ -1639,9 +1637,9 @@ public class AnnotationFile else if (key.equalsIgnoreCase("consThreshold")) { sg.cs.setConservationInc(Integer.parseInt(value)); - Conservation c = new Conservation("Group", - ResidueProperties.propHash, 3, sg.getSequences(null), - sg.getStartRes(), sg.getEndRes() + 1); + Conservation c = new Conservation("Group", 3, + sg.getSequences(null), sg.getStartRes(), + sg.getEndRes() + 1); c.calculate(); c.verdict(false, 25); // TODO: refer to conservation percent threshold @@ -1761,6 +1759,10 @@ public class AnnotationFile */ public String printCSVAnnotations(AlignmentAnnotation[] annotations) { + if (annotations == null) + { + return ""; + } StringBuffer sp = new StringBuffer(); for (int i = 0; i < annotations.length; i++) {