JAL-1705 further unit tests
[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   // SO:0000104
11   public static final String POLYPEPTIDE = "polypeptide";
12
13   // SO:0000349
14   public static final String PROTEIN_MATCH = "protein_match";
15
16   // SO:0000347
17   public static final String NUCLEOTIDE_MATCH = "nucleotide_match";
18
19   // SO:0000316
20   public static final String CDS = "CDS";
21
22   // SO:0001060
23   public static final String SEQUENCE_VARIANT = "sequence_variant";
24
25   // SO:0000147
26   public static final String EXON = "exon";
27
28   // SO:0000673
29   public static final String TRANSCRIPT = "transcript";
30
31   // SO:0001621 isA sequence_variant but used in Ensembl as a transcript
32   public static final String NMD_TRANSCRIPT_VARIANT = "NMD_transcript_variant";
33
34   // SO:0000704
35   public static final String GENE = "gene";
36
37   public boolean isA(String childTerm, String parentTerm);
38
39   /**
40    * Returns a sorted list of all valid terms queried for (i.e. terms processed
41    * which were valid in the SO), using the friendly description.
42    * 
43    * This can be used to check that any hard-coded stand-in for the full SO
44    * includes all the terms needed for correct processing.
45    * 
46    * @return
47    */
48   public List<String> termsFound();
49
50   /**
51    * Returns a sorted list of all invalid terms queried for (i.e. terms
52    * processed which were not found in the SO), using the friendly description.
53    * 
54    * This can be used to report any 'non-compliance' in data, and/or to report
55    * valid terms missing from any hard-coded stand-in for the full SO.
56    * 
57    * @return
58    */
59   public List<String> termsNotFound();
60 }