3 import jalview.datamodel.HMMNode;
4 import jalview.datamodel.HiddenMarkovModel;
5 import jalview.datamodel.Sequence;
6 import jalview.datamodel.SequenceI;
8 import static org.testng.Assert.assertEquals;
9 import static org.testng.Assert.assertNull;
11 import java.io.BufferedReader;
12 import java.io.FileReader;
13 import java.io.IOException;
14 import java.util.ArrayList;
15 import java.util.List;
17 import java.util.Vector;
19 import org.testng.annotations.Test;
21 import junit.extensions.PA;
23 public class HMMProbabilityDistributionAnalyserTest {
25 HMMProbabilityDistributionAnalyser analyser = new HMMProbabilityDistributionAnalyser();
28 public void testMoveToFile() throws IOException
31 BufferedReader br = new BufferedReader(new FileReader(
32 "test/jalview/util/test_Fams_for_probability_analysis"));
33 analyser.moveLocationBy(1, br);
35 String line = br.readLine();
36 assertEquals(line, "# STOCKHOLM 1.0");
38 assertEquals(line, "seq1 ATW");
40 assertEquals(line, "seq2 ATI");
45 public void testCountValidResidues()
47 analyser.sequences = new Vector<>();
48 analyser.hmm = new HiddenMarkovModel();
49 analyser.hmm.setProperty("LENG", "8");
51 List<HMMNode> nodes = new ArrayList<>();
52 nodes.add(new HMMNode());
53 for (int i = 1; i < 9; i++)
55 HMMNode node = new HMMNode();
56 node.setResidueNumber(i - 1);
60 PA.setValue(analyser.hmm, "nodes", nodes);
62 SequenceI[] sequence = new Sequence[] {
63 new Sequence("seq1", "ATGWWSCF"), new Sequence("seq2", "GGMKI"),
64 new Sequence("seq3", "--.ATccGc") };
65 analyser.sequences.add(sequence[0]);
66 analyser.sequences.add(sequence[1]);
67 analyser.sequences.add(sequence[2]);
69 int count = analyser.countValidResidues();
70 assertEquals(count, 16);
74 public void testReadBinned() throws IOException
76 analyser.readBinned("test/jalview/util/");
77 Map<String, Double> map = analyser.binned;
78 assertEquals((double) map.get("1.8"), 4.53);
79 assertEquals((double) map.get("3.4"), 2.65);
80 assertEquals((double) map.get("6.4"), 10.8);
81 assertEquals((double) map.get("0"), 5.4);
85 public void testReadRaw() throws IOException
87 analyser.readRaw("test/jalview/util/");
88 List<ArrayList<Double>> list = analyser.raw;
90 assertEquals((double) list.get(0).get(0), 1.43);
91 assertNull(list.get(0).get(2));
92 assertEquals((double) list.get(1).get(1), 1.2);
93 assertEquals((double) list.get(2).get(0), 5.6);
94 assertEquals((double) list.get(2).get(2), 6.8);
99 public void testProcessData() throws IOException
101 analyser.keepRaw = true;
102 BufferedReader brFam = new BufferedReader(new FileReader(
103 "test/jalview/util/test_Fams_for_probability_analysis"));
104 BufferedReader brHMM = new BufferedReader(new FileReader(
105 "test/jalview/util/test_HMMs_for_probability_analysis"));
106 analyser.readStockholm(brFam);
107 analyser.readHMM(brHMM);
108 analyser.processData(6);
109 Map<String, Double> map = analyser.binned;
110 List<ArrayList<Double>> list = analyser.raw;
111 assertEquals((double) map.get("1.8"), 4.863d, 0.001d);
112 assertEquals((double) map.get("3.4"), 2.65);
113 assertEquals((double) map.get("0"), 5.4);
114 assertEquals((double) map.get("6.4"), 10.8);
115 assertEquals((double) map.get("1.4"), 0.166667, 0.00001d);
116 assertEquals((double) map.get("4.4"), 0.5);