@Override
public void focusGained(FocusEvent e)
{
- Desktop.setCurrentAlignFrame(AlignFrame.this);
+ Jalview.setCurrentAlignFrame(AlignFrame.this);
}
});
final boolean dna = viewport.getAlignment().isNucleotide();
List<String> ptypes = (seqs == null || seqs.length == 0) ? null
: new CrossRef(seqs, dataset)
- .findXrefSourcesForSequences();
+ .findXrefSourcesForSequences(dna);
for (final String source : ptypes)
{
* @param source
* the database to show cross-references for
*/
- protected void showProductsFor(final SequenceI[] sel, final boolean dna,
+ protected void showProductsFor(final SequenceI[] sel, final boolean _odna,
final String source)
{
Runnable foo = new Runnable()
.getAlignment();
AlignmentI dataset = alignment.getDataset() == null ? alignment
: alignment.getDataset();
- AlignmentI xrefs = new CrossRef(sel, alignment)
- .findXrefSequences(source);
+ boolean dna = alignment.isNucleotide();
+ if (_odna!=dna)
+ {
+ System.err
+ .println("Conflict: showProducts for alignment originally "
+ + "thought to be "
+ + (_odna ? "DNA" : "Protein")
+ + " now searching for "
+ + (dna ? "DNA" : "Protein") + " Context.");
+ }
+ AlignmentI xrefs = new CrossRef(sel, dataset)
+ .findXrefSequences(source, dna);
if (xrefs == null)
{
return;
AlignmentI xrefsAlignment = makeCrossReferencesAlignment(dataset,
xrefs);
+ if (!dna)
+ {
+ xrefsAlignment = AlignmentUtils.makeCdsAlignment(
+ xrefsAlignment.getSequencesArray(), dataset, sel);
+ xrefsAlignment.alignAs(alignment);
+ }
AlignFrame newFrame = new AlignFrame(xrefsAlignment, DEFAULT_WIDTH,
DEFAULT_HEIGHT);
* sequences). If we are DNA, drop introns and update mappings
*/
AlignmentI copyAlignment = null;
- final SequenceI[] sequenceSelection = AlignFrame.this.viewport
- .getSequenceSelection();
- // List<AlignedCodonFrame> cf = xrefs.getCodonFrames();
boolean copyAlignmentIsAligned = false;
if (dna)
{
- copyAlignment = AlignmentUtils.makeCdsAlignment(
- sequenceSelection, dataset);
+ copyAlignment = AlignmentUtils.makeCdsAlignment(sel, dataset,
+ xrefsAlignment.getSequencesArray());
if (copyAlignment.getHeight() == 0)
{
System.err.println("Failed to make CDS alignment");
}
else
{
- copyAlignment = AlignmentUtils.makeCopyAlignment(
- sequenceSelection, xrefs.getSequencesArray());
+ copyAlignment = AlignmentUtils.makeCopyAlignment(sel,
+ xrefs.getSequencesArray(), dataset);
}
copyAlignment.setGapCharacter(AlignFrame.this.viewport
.getGapCharacter());
* align cdna to protein - currently only if
* fetching and aligning Ensembl transcripts!
*/
- if (DBRefSource.ENSEMBL.equalsIgnoreCase(source))
+ // TODO: generalise for other sources of locus/transcript/cds data
+ if (dna && DBRefSource.ENSEMBL.equalsIgnoreCase(source))
{
copyAlignment.alignAs(xrefsAlignment);
}
* Makes an alignment containing the given sequences, and adds them to the
* given dataset, which is also set as the dataset for the new alignment
*
+ * TODO: refactor to DatasetI method
+ *
* @param dataset
* @param seqs
* @return
sprods[s].updatePDBIds();
}
Alignment al = new Alignment(sprods);
- al.setDataset((Alignment) dataset);
+ al.setDataset(dataset);
return al;
}
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
@Override
protected void runGroovy_actionPerformed()
{
- Desktop.setCurrentAlignFrame(this);
+ Jalview.setCurrentAlignFrame(this);
groovy.ui.Console console = Desktop.getGroovyConsole();
if (console != null)
{