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_nucleotide()
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",
45 * hierarchy from stop_gained
47 Map<String, List<String>> map = SequenceOntologyFactory.getInstance()
48 .findSequenceOntologyGroupings("stop_gained", featureTypes);
49 assertEquals(map.size(), 10);
52 * feature_truncation adds inframe_deletion
54 List<String> terms = map.get("feature_truncation");
55 assertEquals(terms.size(), 1);
56 assertTrue(terms.contains("inframe_deletion"));
59 * nonsynonymous_variant adds stop_lost, missense_variant
61 terms = map.get("nonsynonymous_variant");
62 assertEquals(terms.size(), 2);
63 assertEquals(terms.toString(), "[missense_variant, stop_lost]");
66 * inframe_variant further adds inframe_deletion, inframe_insertion
68 terms = map.get("inframe_variant");
69 assertEquals(terms.size(), 4);
70 assertEquals(terms.toString(),
71 "[inframe_deletion, inframe_insertion, missense_variant, stop_lost]");
74 * protein_altering_variant further adds frameshift_variant
76 terms = map.get("protein_altering_variant");
77 assertEquals(terms.size(), 5);
78 assertEquals(terms.toString(),
79 "[frameshift_variant, inframe_deletion, inframe_insertion, "
80 + "missense_variant, stop_lost]");
83 * coding_sequence_variant further adds synonymous_variant
85 terms = map.get("coding_sequence_variant");
86 assertEquals(terms.size(), 6);
87 assertEquals(terms.toString(),
88 "[frameshift_variant, inframe_deletion, inframe_insertion, "
89 + "missense_variant, stop_lost, synonymous_variant]");
92 * coding_transcript_variant further adds 5_prime_UTR_variant
94 terms = map.get("coding_transcript_variant");
95 assertEquals(terms.size(), 7);
96 assertEquals(terms.toString(),
97 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
98 + "inframe_insertion, missense_variant, stop_lost, synonymous_variant]");
101 * exon_variant further adds non_coding_transcript_exon_variant
103 terms = map.get("exon_variant");
104 assertEquals(terms.size(), 8);
105 assertEquals(terms.toString(),
106 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
107 + "inframe_insertion, missense_variant, "
108 + "non_coding_transcript_exon_variant, stop_lost, synonymous_variant]");
111 * transcript_variant further adds splice_region_variant
113 terms = map.get("transcript_variant");
114 assertEquals(terms.size(), 9);
115 assertEquals(terms.toString(),
116 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
117 + "inframe_insertion, missense_variant, "
118 + "non_coding_transcript_exon_variant, splice_region_variant, "
119 + "stop_lost, synonymous_variant]");
122 * feature_variant further adds upstream_gene_variant
124 terms = map.get("feature_variant");
125 assertEquals(terms.size(), 10);
126 assertEquals(terms.toString(),
127 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
128 + "inframe_insertion, missense_variant, "
129 + "non_coding_transcript_exon_variant, splice_region_variant, "
130 + "stop_lost, synonymous_variant, upstream_gene_variant]");
133 * sequence_variant adds itself
135 terms = map.get("sequence_variant");
136 assertEquals(terms.size(), 11);
137 assertEquals(terms.toString(),
138 "[5_prime_UTR_variant, frameshift_variant, inframe_deletion, "
139 + "inframe_insertion, missense_variant, "
140 + "non_coding_transcript_exon_variant, sequence_variant, splice_region_variant, "
141 + "stop_lost, synonymous_variant, upstream_gene_variant]");
144 @Test(groups = "Functional")
145 public void testfindSequenceOntologyGroupings_peptide()
148 * typical Uniprot feature types
150 List<String> featureTypes = Arrays.asList("BETA-TURN-IR", "NEST-RL",
151 "BETA-BULGE", "ALPHA-BETA-MOTIF", "ASX-TURN-IR",
152 "GAMMA-TURN-CLASSIC", "GAMMA-TURN-INVERSE", "BETA-TURN-IL",
156 * hierarchy from GAMMA-TURN-INVERSE
157 * this is a synonym for
159 Map<String, List<String>> map = SequenceOntologyFactory.getInstance()
160 .findSequenceOntologyGroupings("TURN", featureTypes);
161 assertEquals(map.size(), 10);