X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2Fgff%2FSequenceOntologyLite.java;h=f989f7b78a53e98a33ee170fe4b9ec335ffc284f;hb=0669bcd76c254141146c1fc2628812c782571c0b;hp=173dea6324e5003e3c89e79f7e0d66b735ab831d;hpb=3cccac4697c371b1964236e17b532fd3d180e1c4;p=jalview.git
diff --git a/src/jalview/io/gff/SequenceOntologyLite.java b/src/jalview/io/gff/SequenceOntologyLite.java
index 173dea6..f989f7b 100644
--- a/src/jalview/io/gff/SequenceOntologyLite.java
+++ b/src/jalview/io/gff/SequenceOntologyLite.java
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.io.gff;
import java.util.ArrayList;
@@ -22,6 +42,9 @@ public class SequenceOntologyLite implements SequenceOntologyI
{
/*
* initial selection of types of interest when processing Ensembl features
+ * NB unlike the full SequenceOntology we don't traverse indirect
+ * child-parent relationships here so e.g. need to list every sub-type
+ * of gene (direct or indirect) that is of interest
*/
// @formatter:off
private final String[][] TERMS = new String[][] {
@@ -32,15 +55,24 @@ public class SequenceOntologyLite implements SequenceOntologyI
{ "gene", "gene" },
{ "ncRNA_gene", "gene" },
{ "snRNA_gene", "gene" },
+ { "miRNA_gene", "gene" },
+ { "lincRNA_gene", "gene" },
+ { "rRNA_gene", "gene" },
/*
* transcript sub-types:
*/
{ "transcript", "transcript" },
{ "mature_transcript", "transcript" },
+ { "processed_transcript", "transcript" },
+ { "aberrant_processed_transcript", "transcript" },
{ "ncRNA", "transcript" },
{ "snRNA", "transcript" },
- { "aberrant_processed_transcript", "transcript" },
+ { "miRNA", "transcript" },
+ { "lincRNA", "transcript" },
+ { "rRNA", "transcript" },
+ { "mRNA", "transcript" },
+ // there are many more sub-types of ncRNA...
/*
* sequence_variant sub-types:
@@ -55,10 +87,25 @@ public class SequenceOntologyLite implements SequenceOntologyI
{ "structural_variant", "sequence_variant" },
/*
- * no sub-types of exon or CDS yet encountered; add if needed
+ * no sub-types of exon or CDS yet seen in Ensembl
+ * some added here for testing purposes
*/
{ "exon", "exon" },
- { "CDS", "CDS" }
+ { "coding_exon", "exon" },
+ { "CDS", "CDS" },
+ { "CDS_predicted", "CDS" },
+
+ /*
+ * terms used in exonerate or PASA GFF
+ */
+ { "protein_match", "protein_match"},
+ { "nucleotide_match", "nucleotide_match"},
+ { "cDNA_match", "nucleotide_match"},
+
+ /*
+ * used in InterProScan GFF
+ */
+ { "polypeptide", "polypeptide" }
};
// @formatter:on
@@ -85,7 +132,8 @@ public class SequenceOntologyLite implements SequenceOntologyI
private void loadStaticData()
{
parents = new HashMap>();
- for (String [] pair : TERMS) {
+ for (String[] pair : TERMS)
+ {
List p = parents.get(pair[0]);
if (p == null)
{
@@ -154,9 +202,11 @@ public class SequenceOntologyLite implements SequenceOntologyI
{
if (!termsNotFound.contains(term))
{
- System.out.println("SO term " + term
- + " not known - either invalid or needs modelled in "
- + getClass().getName());
+ // suppress logging here as it reports Uniprot sequence features
+ // (which do not use SO terms) when auto-configuring feature colours
+ // System.out.println("SO term " + term
+ // + " not known - add to model if needed in "
+ // + getClass().getName());
termsNotFound.add(term);
}
}