1 package jalview.ext.ensembl;
3 import jalview.datamodel.SequenceFeature;
4 import jalview.io.gff.SequenceOntology;
6 import com.stevesoft.pat.Regex;
8 public class EnsemblCdna extends EnsemblSeqProxy
11 * fetch exon features on genomic sequence (to identify the cdnaregions)
12 * and cds and variation features (to retain)
14 private static final EnsemblFeatureType[] FEATURES_TO_FETCH = {
15 EnsemblFeatureType.exon, EnsemblFeatureType.cds,
16 EnsemblFeatureType.variation };
24 public String getDbName()
26 return "ENSEMBL (CDNA)";
30 protected EnsemblSeqType getSourceEnsemblType()
32 return EnsemblSeqType.CDNA;
36 public Regex getAccessionValidator()
38 return new Regex("((ENST|ENSG|CCDS)[0-9.]{3,})");
42 protected EnsemblFeatureType[] getFeaturesToFetch()
44 return FEATURES_TO_FETCH;
48 * Answers true unless the feature type is 'transcript' or 'exon' (or a
49 * sub-type in the Sequence Ontology). These features are only retrieved in
50 * order to identify the exon sequence loci, and are redundant information on
51 * the exon sequence itself.
54 protected boolean retainFeature(SequenceFeature sf, String accessionId)
56 SequenceOntology so = SequenceOntology.getInstance();
57 String type = sf.getType();
59 if (isTranscript(type) || so.isA(type, SequenceOntology.EXON))
63 return featureMayBelong(sf, accessionId);
67 * Answers true if the sequence feature type is 'exon' (or a subtype of exon
68 * in the Sequence Ontology), and the Parent of the feature is the transcript
72 protected boolean identifiesSequence(SequenceFeature sf, String accId)
74 if (SequenceOntology.getInstance().isA(sf.getType(),
75 SequenceOntology.EXON))
77 String parentFeature = (String) sf.getValue(PARENT);
78 if (("transcript:" + accId).equals(parentFeature))