{
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)
{
}
// 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')
{