diff --git a/uk/ac/sanger/artemis/io/IndexFastaStream.java b/uk/ac/sanger/artemis/io/IndexFastaStream.java index e02f58d0c6aae6ef9b8e24f19f0c51d32835c108..9408bd348ae0254a292bf872441e1f751e01dbcd 100644 --- a/uk/ac/sanger/artemis/io/IndexFastaStream.java +++ b/uk/ac/sanger/artemis/io/IndexFastaStream.java @@ -47,12 +47,6 @@ public class IndexFastaStream extends StreamSequence private FastaSequenceIndex fastaIndex; private int len; private String contig; - static { - ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".dna"); - ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".seq"); - ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".fas"); - ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".ffn"); - } public IndexFastaStream(Entry entry) { @@ -111,7 +105,19 @@ public class IndexFastaStream extends StreamSequence else fastaIndexFile = new File(fasta.getName() + ".fai"); if (fastaIndexFile.exists()) + { + try + { + setExtensions(); + } + catch(UnsupportedClassVersionError e) + { + System.err.println("Java version "+System.getProperty("java.version")+ + " does not support indexed fasta - use Java 1.6 or higher."); + return false; + } return true; + } } } catch(Exception e) @@ -121,6 +127,19 @@ public class IndexFastaStream extends StreamSequence return false; } + /** + * Add to supported FASTA allowed suffixes. + */ + private static void setExtensions() + { + if(ReferenceSequenceFileFactory.FASTA_EXTENSIONS.contains(".dna")) + return; + ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".dna"); + ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".seq"); + ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".fas"); + ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".ffn"); + } + public void setContigByIndex(int seqIndex) { /*ReferenceSequence ref = getReferenceSequence(seqIndex);