JAL-1705 JAL-1191 SequenceOntologyLite added as hard-coded alternative
[jalview.git] / src / jalview / io / gff / SequenceOntologyI.java
1 package jalview.io.gff;
2
3 import java.util.List;
4
5 public interface SequenceOntologyI
6 {
7   /*
8    * selected commonly used values for quick reference
9    */
10   public static final String POLYPEPTIDE = "polypeptide";
11
12   public static final String PROTEIN_MATCH = "protein_match";
13
14   public static final String NUCLEOTIDE_MATCH = "nucleotide_match";
15
16   // SO:0000316
17   public static final String CDS = "CDS";
18
19   // SO:0001060
20   public static final String SEQUENCE_VARIANT = "sequence_variant";
21
22   // SO:0000147
23   public static final String EXON = "exon";
24
25   // SO:0000673
26   public static final String TRANSCRIPT = "transcript";
27
28   // SO:0000704
29   public static final String GENE = "gene";
30
31   public boolean isA(String childTerm, String parentTerm);
32
33   /**
34    * Returns a sorted list of all valid terms queried for (i.e. terms processed
35    * which were valid in the SO), using the friendly description.
36    * 
37    * This can be used to check that any hard-coded stand-in for the full SO
38    * includes all the terms needed for correct processing.
39    * 
40    * @return
41    */
42   public List<String> termsFound();
43
44   /**
45    * Returns a sorted list of all invalid terms queried for (i.e. terms
46    * processed which were not found in the SO), using the friendly description.
47    * 
48    * This can be used to report any 'non-compliance' in data, and/or to report
49    * valid terms missing from any hard-coded stand-in for the full SO.
50    * 
51    * @return
52    */
53   public List<String> termsNotFound();
54 }