JAL-1457 refactoring to explore why '-' appear in annotation rows (see AlignmentAnnot...
authorJim Procter <jprocter@compbio.dundee.ac.uk>
Wed, 26 Feb 2014 16:19:34 +0000 (16:19 +0000)
committerJim Procter <jprocter@compbio.dundee.ac.uk>
Wed, 26 Feb 2014 16:19:34 +0000 (16:19 +0000)
src/jalview/io/FastaFile.java

index f866928..3a7197f 100755 (executable)
@@ -92,17 +92,7 @@ public class FastaFile extends AlignFile
           {
             if (annotation)
             {
-              Annotation[] anots = new Annotation[sb.length()];
-              String anotString = sb.toString();
-              for (int i = 0; i < sb.length(); i++)
-              {
-                anots[i] = new Annotation(anotString.substring(i, i + 1),
-                        null, ' ', 0);
-              }
-              AlignmentAnnotation aa = new AlignmentAnnotation(seq
-                      .getName().substring(2), seq.getDescription(), anots);
-
-              annotations.addElement(aa);
+              annotations.addElement(makeAnnotation(seq, sb));
             }
           }
           else
@@ -139,17 +129,7 @@ public class FastaFile extends AlignFile
 
     if (annotation)
     {
-      Annotation[] anots = new Annotation[sb.length()];
-      String anotString = sb.toString();
-      for (int i = 0; i < sb.length(); i++)
-      {
-        anots[i] = new Annotation(anotString.substring(i, i + 1), null,
-                ' ', 0);
-      }
-      AlignmentAnnotation aa = new AlignmentAnnotation(seq.getName()
-              .substring(2), seq.getDescription(), anots);
-
-      annotations.addElement(aa);
+      annotations.addElement(makeAnnotation(seq, sb));
     }
 
     else if (!firstLine)
@@ -158,7 +138,23 @@ public class FastaFile extends AlignFile
       seqs.addElement(seq);
     }
   }
-
+  private AlignmentAnnotation makeAnnotation(SequenceI seq, StringBuffer sb)
+  {
+    Annotation[] anots = new Annotation[sb.length()];
+    char cb;
+    for (int i=0;i<anots.length;i++)
+    {
+      char cn = sb.charAt(i);
+      if (cn != ' ')
+      {
+        anots[i] = new Annotation(""+cn, null,
+              ' ', Float.NaN);
+      }
+    }
+    AlignmentAnnotation aa = new AlignmentAnnotation(seq.getName()
+            .substring(2), seq.getDescription(), anots);
+    return aa;
+  }
   /**
    * called by AppletFormatAdapter to generate an annotated alignment, rather
    * than bare sequences.