+ break;
+ }
+ // if (data.indexOf(">") > -1)
+ if (data.startsWith(">"))
+ {
+ // FASTA, PIR file or BLC file
+ boolean checkPIR = false, starterm = false;
+ if ((data.indexOf(">P1;") > -1) || (data.indexOf(">DL;") > -1))
+ {
+ // watch for PIR file attributes
+ checkPIR = true;
+ reply = "PIR";
+ }
+ // could also be BLC file, read next line to confirm
+ data = source.nextLine();
+
+ if (data.indexOf(">") > -1)
+ {
+ reply = "BLC";
+ }
+ else
+ {
+ // Is this a single line BLC file?
+ String data1 = source.nextLine();
+ String data2 = source.nextLine();
+ int c1;
+ if (checkPIR)
+ {
+ starterm = (data1 != null && data1.indexOf("*") > -1)
+ || (data2 != null && data2.indexOf("*") > -1);
+ }
+ if (data2 != null && (c1 = data.indexOf("*")) > -1)
+ {
+ if (c1 == 0 && c1 == data2.indexOf("*"))
+ {
+ reply = "BLC";
+ }
+ else
+ {
+ reply = "FASTA"; // possibly a bad choice - may be recognised as
+ // PIR
+ }
+ // otherwise can still possibly be a PIR file
+ }
+ else
+ {
+ reply = "FASTA";
+ // TODO : AMSA File is indicated if there is annotation in the
+ // FASTA file - but FASTA will automatically generate this at the
+ // mo.
+ if (!checkPIR)
+ {
+ break;
+ }
+ }
+ }
+ // final check for PIR content. require
+ // >P1;title\n<blah>\nterminated sequence to occur at least once.