3 import jalview.datamodel.Alignment;
4 import jalview.datamodel.AlignmentI;
5 import jalview.datamodel.SequenceDummy;
6 import jalview.datamodel.SequenceI;
7 import jalview.gui.AlignFrame;
9 import java.io.IOException;
11 import org.junit.Assert;
12 import org.junit.Test;
14 public class Gff3tests
17 private static String exonerateSeqs = "examples/testdata/exonerateseqs.fa",
18 exonerateOutput = "examples/testdata/exonerateoutput.gff",
19 simpleGff3file = "examples/testdata/simpleGff3.gff";
22 public void testExonerateImport()
24 // exonerate does not tag sequences after features, so we have a more
25 // conventional annotation import test here
27 FileLoader loader = new FileLoader(false);
29 AlignFrame af = loader.LoadFileWaitTillLoaded(exonerateSeqs,
32 Assert.assertEquals("Unexpected number of DNA protein associations", 0,
33 af.getViewport().getAlignment().getCodonFrames().size());
35 af.loadJalviewDataFile(exonerateOutput, FormatAdapter.FILE, null, null);
37 Assert.assertNotEquals("Expected at least one DNA protein association",
38 0, af.getViewport().getAlignment().getDataset()
39 .getCodonFrames().size());
44 public void simpleGff3() throws IOException
46 AlignmentI dataset = new Alignment(new SequenceI[]
48 FeaturesFile ffile = new FeaturesFile(simpleGff3file,
51 boolean parseResult = ffile.parse(dataset, null, null, false, false);
52 Assert.assertTrue("return result should be true", parseResult);
53 checkDatasetfromSimpleGff3(dataset);
57 public void simpleGff3RelaxedIdMatching() throws IOException
59 AlignmentI dataset = new Alignment(new SequenceI[]
61 FeaturesFile ffile = new FeaturesFile(simpleGff3file,
64 boolean parseResult = ffile.parse(dataset, null, null, false, true);
65 Assert.assertTrue("return result (relaxedID matching) should be true",
67 checkDatasetfromSimpleGff3(dataset);
70 private void checkDatasetfromSimpleGff3(AlignmentI dataset)
72 Assert.assertEquals("no sequences extracted from GFF3 file", 2,
75 SequenceI seq1 = dataset.findName("seq1"), seq2 = dataset
77 Assert.assertNotNull(seq1);
78 Assert.assertNotNull(seq2);
80 "Failed to replace dummy seq1 with real sequence",
81 seq1 instanceof SequenceDummy
82 && ((SequenceDummy) seq1).isDummy());
84 "Failed to replace dummy seq2 with real sequence",
85 seq2 instanceof SequenceDummy
86 && ((SequenceDummy) seq2).isDummy());
87 String placeholderseq = new SequenceDummy("foo").getSequenceAsString();
88 Assert.assertFalse("dummy replacement buggy for seq1",
89 placeholderseq.equals(seq1.getSequenceAsString()));
90 Assert.assertNotEquals("dummy replacement buggy for seq2",
91 placeholderseq.equals(seq2.getSequenceAsString()));
92 Assert.assertNotNull("No features added to seq1",
93 seq1.getSequenceFeatures());// != null);
94 Assert.assertEquals("Wrong number of features", 3,
95 seq1.getSequenceFeatures().length);
96 Assert.assertNull(seq2.getSequenceFeatures());
97 Assert.assertEquals("Wrong number of features", 0, seq2
98 .getSequenceFeatures() == null ? 0
99 : seq2.getSequenceFeatures().length);
103 // public final void testPrintGFFFormatSequenceIArrayMapOfStringObject()
105 // fail("Not yet implemented");
109 // public final void testAlignFileBooleanStringString()
111 // fail("Not yet implemented");