X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblGene.java;h=37c787b37222a61a29e186554ec346ecbe22bc88;hb=67affee2e65ca942447570c35526c04d64f41fe1;hp=4dd1bba3161075043669341275565c1fea6a1a86;hpb=d547268f85f377f14dbeb169072caebad45f9e2b;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblGene.java b/src/jalview/ext/ensembl/EnsemblGene.java index 4dd1bba..37c787b 100644 --- a/src/jalview/ext/ensembl/EnsemblGene.java +++ b/src/jalview/ext/ensembl/EnsemblGene.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.ext.ensembl; import jalview.api.FeatureColourI; @@ -8,7 +28,7 @@ import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.io.gff.SequenceOntologyFactory; import jalview.io.gff.SequenceOntologyI; -import jalview.schemes.FeatureColourAdapter; +import jalview.schemes.FeatureColour; import jalview.schemes.FeatureSettingsAdapter; import jalview.util.MapList; @@ -118,7 +138,10 @@ public class EnsemblGene extends EnsemblSeqProxy * fetch the gene sequence(s) with features and xrefs */ AlignmentI geneAlignment = super.getSequenceRecords(geneId); - + if (geneAlignment == null) + { + continue; + } if (geneAlignment.getHeight() == 1) { getTranscripts(geneAlignment, geneId); @@ -167,14 +190,30 @@ public class EnsemblGene extends EnsemblSeqProxy geneIds.add(geneId); } } + else if (isProteinIdentifier(acc)) + { + String tscriptId = new EnsemblLookup(getDomain()).getParent(acc); + if (tscriptId != null) + { + String geneId = new EnsemblLookup(getDomain()) + .getParent(tscriptId); + if (geneId != null && !geneIds.contains(geneId)) + { + geneIds.add(geneId); + } + } + // NOTE - acc is lost if it resembles an ENS.+ ID but isn't actually + // resolving to one... e.g. ENSMICP00000009241 + } /* * if given a gene or other external name, lookup and fetch * the corresponding gene for all model organisms */ else { - List ids = new EnsemblSymbol(getDomain()).getIds(acc); + List ids = new EnsemblSymbol(getDomain(), getDbSource(), + getDbVersion()).getIds(acc); for (String geneId : ids) { if (!geneIds.contains(geneId)) @@ -196,7 +235,8 @@ public class EnsemblGene extends EnsemblSeqProxy */ protected String getGeneIdentifiersForName(String query) { - List ids = new EnsemblSymbol(getDomain()).getIds(query); + List ids = new EnsemblSymbol(getDomain(), getDbSource(), + getDbVersion()).getIds(query); if (ids != null) { for (String id : ids) @@ -257,8 +297,7 @@ public class EnsemblGene extends EnsemblSeqProxy } } gene.setSequenceFeatures(filtered - .toArray(new SequenceFeature[filtered - .size()])); + .toArray(new SequenceFeature[filtered.size()])); } } @@ -524,6 +563,7 @@ public class EnsemblGene extends EnsemblSeqProxy return new FeatureSettingsAdapter() { SequenceOntologyI so = SequenceOntologyFactory.getInstance(); + @Override public boolean isFeatureDisplayed(String type) { @@ -536,7 +576,7 @@ public class EnsemblGene extends EnsemblSeqProxy { if (so.isA(type, SequenceOntologyI.EXON)) { - return new FeatureColourAdapter() + return new FeatureColour() { @Override public boolean isColourByLabel() @@ -547,7 +587,7 @@ public class EnsemblGene extends EnsemblSeqProxy } if (so.isA(type, SequenceOntologyI.SEQUENCE_VARIANT)) { - return new FeatureColourAdapter() + return new FeatureColour() { @Override