X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FCrossRefAction.java;h=c15cf2d9b7963ed42d9969307380de4b98d9f5cf;hb=57738a1f3c19b1c3a00bd3ac5108f8cd0af32f99;hp=37f11dfbe837d7e25184b76906f8c95bfd7031ab;hpb=3740241b6d0dfa109dc81847afe58f17497c39e8;p=jalview.git diff --git a/src/jalview/gui/CrossRefAction.java b/src/jalview/gui/CrossRefAction.java index 37f11df..c15cf2d 100644 --- a/src/jalview/gui/CrossRefAction.java +++ b/src/jalview/gui/CrossRefAction.java @@ -25,6 +25,7 @@ import jalview.analysis.CrossRef; import jalview.api.AlignmentViewPanel; import jalview.api.FeatureSettingsModelI; import jalview.bin.Cache; +import jalview.bin.Console; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.DBRefEntry; @@ -112,6 +113,14 @@ public class CrossRefAction implements Runnable FeatureSettingsModelI featureColourScheme = new SequenceFetcher() .getFeatureColourScheme(source); + if (dna && AlignmentUtils.looksLikeEnsembl(alignment)) + { + // override default featureColourScheme so products have Ensembl variant + // colours + featureColourScheme = new SequenceFetcher() + .getFeatureColourScheme(DBRefSource.ENSEMBL); + } + AlignmentI xrefsAlignment = makeCrossReferencesAlignment(dataset, xrefs); if (!dna) @@ -188,15 +197,25 @@ public class CrossRefAction implements Runnable /* * apply 'database source' feature configuration - * if any was found + * if any - first to the new splitframe view about to be displayed */ - // TODO is this the feature colouring for the original - // alignment or the fetched xrefs? either could be Ensembl + newFrame.getViewport().applyFeaturesStyle(featureColourScheme); copyThis.getViewport().applyFeaturesStyle(featureColourScheme); + /* + * and for JAL-3330 also to original alignFrame view(s) + * this currently trashes any original settings. + */ + for (AlignmentViewPanel origpanel : alignFrame.getAlignPanels()) + { + origpanel.getAlignViewport() + .mergeFeaturesStyle(featureColourScheme); + } + SplitFrame sf = new SplitFrame(dna ? copyThis : newFrame, dna ? newFrame : copyThis); + newFrame.setVisible(true); copyThis.setVisible(true); String linkedTitle = MessageManager @@ -213,7 +232,7 @@ public class CrossRefAction implements Runnable new OOMWarning("whilst fetching crossreferences", e); } catch (Throwable e) { - Cache.log.error("Error when finding crossreferences", e); + Console.error("Error when finding crossreferences", e); } finally { alignFrame.setProgressBar(MessageManager.formatMessage( @@ -276,16 +295,16 @@ public class CrossRefAction implements Runnable { return; } - + Set ensemblDivisions = new EnsemblInfo().getDivisions(); - + /* * first look for direct dbrefs from sequence to Ensembl */ String[] divisionsArray = ensemblDivisions .toArray(new String[ensemblDivisions.size()]); - DBRefEntry[] seqRefs = seq.getDBRefs(); - DBRefEntry[] directEnsemblRefs = DBRefUtils.selectRefs(seqRefs, + List seqRefs = seq.getDBRefs(); + List directEnsemblRefs = DBRefUtils.selectRefs(seqRefs, divisionsArray); if (directEnsemblRefs != null) { @@ -305,8 +324,8 @@ public class CrossRefAction implements Runnable { if (dbref.getMap() != null && dbref.getMap().getTo() != null) { - DBRefEntry[] dbrefs = dbref.getMap().getTo().getDBRefs(); - DBRefEntry[] indirectEnsemblRefs = DBRefUtils.selectRefs(dbrefs, + List dbrefs = dbref.getMap().getTo().getDBRefs(); + List indirectEnsemblRefs = DBRefUtils.selectRefs(dbrefs, divisionsArray); if (indirectEnsemblRefs != null) { @@ -357,12 +376,12 @@ public class CrossRefAction implements Runnable seq.getLength()); if (geneLoci != null) { - MapList map = geneLoci.getMap(); + MapList map = geneLoci.getMapping(); int mappedFromLength = MappingUtils.getLength(map.getFromRanges()); if (mappedFromLength == seq.getLength()) { seq.setGeneLoci(geneLoci.getSpeciesId(), geneLoci.getAssemblyId(), - geneLoci.getChromosomeId(), geneLoci.getMap()); + geneLoci.getChromosomeId(), map); retrievedLoci.put(dbref, geneLoci); return true; } @@ -375,12 +394,12 @@ public class CrossRefAction implements Runnable seq.getLength()); if (geneLoci != null) { - MapList map = geneLoci.getMap(); + MapList map = geneLoci.getMapping(); int mappedFromLength = MappingUtils.getLength(map.getFromRanges()); if (mappedFromLength == seq.getLength()) { seq.setGeneLoci(geneLoci.getSpeciesId(), geneLoci.getAssemblyId(), - geneLoci.getChromosomeId(), geneLoci.getMap()); + geneLoci.getChromosomeId(), map); retrievedLoci.put(dbref, geneLoci); return true; } @@ -434,8 +453,7 @@ public class CrossRefAction implements Runnable copyAlignment = AlignmentUtils.makeCopyAlignment(sel, xrefs.getSequencesArray(), dataset); } - copyAlignment - .setGapCharacter(alignFrame.viewport.getGapCharacter()); + copyAlignment.setGapCharacter(alignFrame.viewport.getGapCharacter()); StructureSelectionManager ssm = StructureSelectionManager .getStructureSelectionManager(Desktop.instance); @@ -448,8 +466,7 @@ public class CrossRefAction implements Runnable if (copyAlignment.getHeight() <= 0) { - System.err.println( - "No Sequences generated for xRef type " + source); + System.err.println("No Sequences generated for xRef type " + source); return null; }