JAL-1827 added overloaded method for convenience
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 2 Dec 2015 16:43:32 +0000 (16:43 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 2 Dec 2015 16:43:32 +0000 (16:43 +0000)
src/jalview/util/Comparison.java

index 95f298b..dfc243d 100644 (file)
@@ -262,9 +262,32 @@ public class Comparison
     {
       return false;
     }
+    char[][] letters = new char[seqs.length][];
+    for (int i = 0; i < seqs.length; i++)
+    {
+      char[] sequence = seqs[i].getSequence();
+      if (sequence != null)
+      {
+        letters[i] = sequence;
+      }
+    }
+
+    return areNucleotide(letters);
+  }
+
+  /**
+   * Answers true if more than 85% of the sequence residues (ignoring gaps) are
+   * A, G, C, T or U, else false. This is just a heuristic guess and may give a
+   * wrong answer (as AGCT are also amino acid codes).
+   * 
+   * @param letters
+   * @return
+   */
+  public static final boolean areNucleotide(char[][] letters)
+  {
     int ntCount = 0;
     int aaCount = 0;
-    for (SequenceI seq : seqs)
+    for (char[] seq : letters)
     {
       if (seq == null)
       {
@@ -272,7 +295,7 @@ public class Comparison
       }
       // TODO could possibly make an informed guess just from the first sequence
       // to save a lengthy calculation
-      for (char c : seq.getSequence())
+      for (char c : seq)
       {
         if ('a' <= c && c <= 'z')
         {