X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=88b0c35aee782c7492b8a7a7808e1a6b343b1032;hb=5133de48f4251fa73eedcda66d6e2f2c25ff876b;hp=c5fb11f32b3ae2776df5064c96479eed26fb94bc;hpb=b10330c2e330e409d2fd3812f1001f9542dc1b36;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index c5fb11f..88b0c35 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -4734,6 +4734,15 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, AlignmentI xrefsAlignment = makeCrossReferencesAlignment(dataset, xrefs); + final SequenceI[] sequenceSelection = AlignFrame.this.viewport + .getSequenceSelection(); + if (!dna) + { + xrefsAlignment = AlignmentUtils.makeCdsAlignment( + xrefsAlignment.getSequencesArray(), dataset, + sequenceSelection); + xrefsAlignment.alignAs(alignment); + } AlignFrame newFrame = new AlignFrame(xrefsAlignment, DEFAULT_WIDTH, DEFAULT_HEIGHT); @@ -4761,14 +4770,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * sequences). If we are DNA, drop introns and update mappings */ AlignmentI copyAlignment = null; - final SequenceI[] sequenceSelection = AlignFrame.this.viewport - .getSequenceSelection(); - // List cf = xrefs.getCodonFrames(); boolean copyAlignmentIsAligned = false; if (dna) { copyAlignment = AlignmentUtils.makeCdsAlignment( - sequenceSelection, dataset); + sequenceSelection, dataset, + xrefsAlignment.getSequencesArray()); if (copyAlignment.getHeight() == 0) { System.err.println("Failed to make CDS alignment"); @@ -4789,7 +4796,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, else { copyAlignment = AlignmentUtils.makeCopyAlignment( - sequenceSelection, xrefs.getSequencesArray()); + sequenceSelection, xrefs.getSequencesArray(), dataset); } copyAlignment.setGapCharacter(AlignFrame.this.viewport .getGapCharacter()); @@ -4822,7 +4829,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * align cdna to protein - currently only if * fetching and aligning Ensembl transcripts! */ - if (DBRefSource.ENSEMBL.equalsIgnoreCase(source)) + if (dna && DBRefSource.ENSEMBL.equalsIgnoreCase(source)) { copyAlignment.alignAs(xrefsAlignment); } @@ -5950,8 +5957,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, protected void setAnnotationsVisibility(boolean visible, boolean forSequences, boolean forAlignment) { - for (AlignmentAnnotation aa : alignPanel.getAlignment() - .getAlignmentAnnotation()) + AlignmentAnnotation[] anns = alignPanel.getAlignment() + .getAlignmentAnnotation(); + if (anns == null) + { + return; + } + for (AlignmentAnnotation aa : anns) { /* * don't display non-positional annotations on an alignment