1 package jalview.datamodel.ontology;
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertTrue;
6 import jalview.ext.so.SequenceOntology;
7 import jalview.io.gff.SequenceOntologyFactory;
9 import java.util.Arrays;
10 import java.util.List;
13 import org.testng.annotations.AfterClass;
14 import org.testng.annotations.BeforeClass;
15 import org.testng.annotations.Test;
17 public class OntologyBaseTest
19 @BeforeClass(alwaysRun = true)
22 SequenceOntologyFactory.setInstance(new SequenceOntology());
25 @AfterClass(alwaysRun = true)
26 public void tearDown()
28 SequenceOntologyFactory.setInstance(null);
31 @Test(groups = "Functional")
32 public void testfindSequenceOntologyGroupings()
35 * typical gnomAD feature types, plus the top level 'sequence_variant' as in dbSNP
37 List<String> featureTypes = Arrays.asList("sequence_variant",
38 "inframe_insertion", "stop_lost", "stop_gained",
39 "5_prime_UTR_variant", "non_coding_transcript_exon_variant",
40 "synonymous_variant", "inframe_deletion", "frameshift_variant",
41 "upstream_gene_variant", "splice_region_variant",
46 * transcript_variant further adds 5_prime_UTR_variant,
47 * non_coding_transcript_exon_variant, synonymous_variant, splice_region_variant
48 * feature_variant further adds upstream_gene_variant
49 * sequence_variant further adds sequence_variant
51 Map<String, List<String>> map = SequenceOntologyFactory.getInstance()
52 .findSequenceOntologyGroupings("stop_gained", featureTypes);
53 assertEquals(map.size(), 10);
56 * feature_truncation adds inframe_deletion
58 List<String> terms = map.get("feature_truncation");
59 assertEquals(terms.size(), 1);
60 assertTrue(terms.contains("inframe_deletion"));
63 * nonsynonymous_variant adds stop_lost, missense_variant
65 terms = map.get("nonsynonymous_variant");
66 assertEquals(terms.size(), 2);
67 assertEquals(terms.toString(), "[missense_variant, stop_lost]");
70 * inframe_variant further adds inframe_deletion, inframe_insertion
72 terms = map.get("inframe_variant");
73 assertEquals(terms.size(), 4);
74 assertEquals(terms.toString(),
75 "[inframe_deletion, inframe_insertion, missense_variant, stop_lost]");
78 * protein_altering_variant further adds frameshift_variant
80 terms = map.get("protein_altering_variant");
81 assertEquals(terms.size(), 5);
82 assertEquals(terms.toString(),
83 "[frameshift_variant, inframe_deletion, inframe_insertion, "
84 + "missense_variant, stop_lost]");
87 * coding_sequence_variant further adds synonymous_variant
89 terms = map.get("coding_sequence_variant");
90 assertEquals(terms.size(), 6);
91 assertEquals(terms.toString(),
92 "[frameshift_variant, inframe_deletion, inframe_insertion, "
93 + "missense_variant, stop_lost, synonymous_variant]");
96 * coding_transcript_variant further adds 5_prime_UTR_variant
98 terms = map.get("coding_transcript_variant");
99 assertEquals(terms.size(), 7);
100 assertEquals(terms.toString(),
101 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
102 + "inframe_insertion, missense_variant, stop_lost, synonymous_variant]");
105 * exon_variant further adds non_coding_transcript_exon_variant
107 terms = map.get("exon_variant");
108 assertEquals(terms.size(), 8);
109 assertEquals(terms.toString(),
110 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
111 + "inframe_insertion, missense_variant, "
112 + "non_coding_transcript_exon_variant, stop_lost, synonymous_variant]");
115 * transcript_variant further adds splice_region_variant
117 terms = map.get("transcript_variant");
118 assertEquals(terms.size(), 9);
119 assertEquals(terms.toString(),
120 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
121 + "inframe_insertion, missense_variant, "
122 + "non_coding_transcript_exon_variant, splice_region_variant, "
123 + "stop_lost, synonymous_variant]");
126 * feature_variant further adds upstream_gene_variant
128 terms = map.get("feature_variant");
129 assertEquals(terms.size(), 10);
130 assertEquals(terms.toString(),
131 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
132 + "inframe_insertion, missense_variant, "
133 + "non_coding_transcript_exon_variant, splice_region_variant, "
134 + "stop_lost, synonymous_variant, upstream_gene_variant]");
137 * sequence_variant adds itself
139 terms = map.get("sequence_variant");
140 assertEquals(terms.size(), 11);
141 assertEquals(terms.toString(),
142 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
143 + "inframe_insertion, missense_variant, "
144 + "non_coding_transcript_exon_variant, sequence_variant, splice_region_variant, "
145 + "stop_lost, synonymous_variant, upstream_gene_variant]");