Merge branch 'develop' into trialmerge/JAL-1950_hmmer3client
[jalview.git] / src / jalview / util / Comparison.java
index 5c26e2d..581d9e8 100644 (file)
@@ -262,9 +262,35 @@ public class Comparison
     {
       return false;
     }
+    char[][] letters = new char[seqs.length][];
+    for (int i = 0; i < seqs.length; i++)
+    {
+      if (seqs[i] != null)
+      {
+        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 +298,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')
         {