assertEquals(2f, sf.getScore(), 0.001f);
}
+ @Test(groups = { "Functional" })
+ public void testImportGFF2ExonerateCDSAndCoding2Genome()
+ throws IOException
+ {
+ /*
+ * test assumes sequence 1 in imported alignment is a
+ * transcript shorter and aligned to exons on locus (sequence 0)
+ *
+ * exonerate script was - where mode was query or target
+ * exonerate --showvulgar false --showalignment false --show${mode}gff ... > test_${mode}.gff2
+ * echo '##FASTA' >> test_${mode}.gff2
+ * cat example_Locus.fa example_CDS.fa >> test_${mode}.gff2
+ * [ then edit out stuff before gff-version-2 header and the end of exonerate lines after the gff dump ]
+ */
+ String[][] testFiles = new String[][] {
+ { "test_cdna2genome_showquerygff.gff2",
+ "test_cdna2genome_showtargetgff.gff2" },
+ { "test_coding2genome_showquerygff.gff2",
+ "test_coding2genome_showtargetgff.gff2" } };
+
+ for (String[] testfilepair : testFiles)
+ {
+ FormatAdapter fa = new FormatAdapter();
+ AlignmentI al = fa.readFile("examples/testdata/" + testfilepair[0],
+ DataSourceType.FILE, FileFormat.Features);
+
+ assertEquals(2, al.getHeight());
+ // check there are gaps in sequence 1
+ assertTrue(al.getSequenceAt(1).getSequenceAsString().contains(""+al.getGapCharacter()));
+ assertTrue(al.isAligned());
+
+ AlignmentI al2 = fa.readFile("examples/testdata/" + testfilepair[1],
+ DataSourceType.FILE, FileFormat.Features);
+
+ assertEquals(2, al2.getHeight());
+ assertTrue(al2.isAligned());
+ // check sequence 1 is identical for alignment imported from both query and target gff
+ assertEquals(al.getSequenceAt(1).getSequenceAsString(),
+ al2.getSequenceAt(1).getSequenceAsString());
+ }
+ }
+
public static AlignmentI readAlignmentFile(File f) throws IOException
{
System.out.println("Reading file: " + f);