1 package jalview.analysis.scoremodels;
3 import jalview.datamodel.AlignmentI;
4 import jalview.datamodel.SequenceFeature;
5 import jalview.datamodel.SequenceI;
6 import jalview.gui.AlignFrame;
7 import jalview.io.FileLoader;
8 import jalview.io.FormatAdapter;
10 import org.testng.AssertJUnit;
11 import org.testng.annotations.Test;
13 public class FeatureScoreModelTest
15 public static String alntestFile = "FER1_MESCR/72-76 DVYIL\nFER1_SPIOL/71-75 DVYIL\nFER3_RAPSA/21-25 DVYVL\nFER1_MAIZE/73-77 DVYIL\n";
18 { 74, 74, 73, 73, 23, 23, -1, -1 };
21 { -1, -1, 74, 75, -1, -1, 76, 77 };
24 { -1, -1, -1, -1, -1, -1, 76, 77 };
26 @Test(groups ={ "Functional" })
27 public void testFeatureScoreModel() throws Exception
29 AlignFrame alf = new FileLoader(false).LoadFileWaitTillLoaded(alntestFile,
31 AlignmentI al = alf.getViewport().getAlignment();
32 AssertJUnit.assertEquals(4, al.getHeight());
33 AssertJUnit.assertEquals(5, al.getWidth());
34 for (int i = 0; i < 4; i++)
36 SequenceI ds = al.getSequenceAt(i).getDatasetSequence();
39 ds.addSequenceFeature(new SequenceFeature("sf1", "sf1", "sf1",
40 sf1[i * 2], sf1[i * 2 + 1], "sf1"));
44 ds.addSequenceFeature(new SequenceFeature("sf2", "sf2", "sf2",
45 sf2[i * 2], sf2[i * 2 + 1], "sf2"));
49 ds.addSequenceFeature(new SequenceFeature("sf3", "sf3", "sf3",
50 sf3[i * 2], sf3[i * 2 + 1], "sf3"));
53 alf.setShowSeqFeatures(true);
54 alf.getFeatureRenderer().setVisible("sf1");
55 alf.getFeatureRenderer().setVisible("sf2");
56 alf.getFeatureRenderer().setVisible("sf3");
57 alf.getFeatureRenderer().findAllFeatures(true);
58 AssertJUnit.assertEquals("Number of feature types", 3, alf
59 .getFeatureRenderer().getDisplayedFeatureTypes().length);
60 AssertJUnit.assertTrue(alf.getCurrentView().areFeaturesDisplayed());
61 FeatureScoreModel fsm = new FeatureScoreModel();
62 AssertJUnit.assertTrue(fsm.configureFromAlignmentView(alf.getCurrentView()
64 alf.selectAllSequenceMenuItem_actionPerformed(null);
65 float[][] dm = fsm.findDistances(alf.getViewport().getAlignmentView(
67 AssertJUnit.assertTrue("FER1_MESCR should be identical with RAPSA (2)",
69 AssertJUnit.assertTrue(
70 "FER1_MESCR should be further from SPIOL (1) than it is from RAPSA (2)",