/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
import jalview.datamodel.AlignedCodon;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignViewport;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import java.io.IOException;
+import java.util.Iterator;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DnaTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// @formatter:off
// AA encoding codons as ordered on the Jalview help page Amino Acid Table
private static String fasta = ">B\n" + "GCT" + "GCC" + "GCA" + "GCG"
throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(
- JAL_1312_example_align_fasta, jalview.io.FormatAdapter.PASTE,
- "FASTA");
- ColumnSelection cs = new ColumnSelection();
+ JAL_1312_example_align_fasta, DataSourceType.PASTE,
+ FileFormat.Fasta);
+ HiddenColumns cs = new HiddenColumns();
AlignViewportI av = new AlignViewport(alf, cs);
- Dna dna = new Dna(av, new int[] { 0, alf.getWidth() - 1 });
- AlignmentI translated = dna.translateCdna();
+ Iterator<int[]> contigs = cs.getVisContigsIterator(0, alf.getWidth(),
+ false);
+ Dna dna = new Dna(av, contigs);
+ AlignmentI translated = dna.translateCdna(
+ GeneticCodes.getInstance().getStandardCodeTable());
assertNotNull("Couldn't do a full width translation of test data.",
translated);
}
throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(
- JAL_1312_example_align_fasta, jalview.io.FormatAdapter.PASTE,
- "FASTA");
+ JAL_1312_example_align_fasta, DataSourceType.PASTE,
+ FileFormat.Fasta);
int vwidth = 15;
for (int ipos = 0; ipos + vwidth < alf.getWidth(); ipos += vwidth)
{
- ColumnSelection cs = new ColumnSelection();
+ HiddenColumns cs = new HiddenColumns();
if (ipos > 0)
{
cs.hideColumns(0, ipos - 1);
}
cs.hideColumns(ipos + vwidth, alf.getWidth());
- int[] vcontigs = cs.getVisibleContigs(0, alf.getWidth());
+ Iterator<int[]> vcontigs = cs.getVisContigsIterator(0, alf.getWidth(),
+ false);
AlignViewportI av = new AlignViewport(alf, cs);
Dna dna = new Dna(av, vcontigs);
- AlignmentI transAlf = dna.translateCdna();
+ AlignmentI transAlf = dna.translateCdna(
+ GeneticCodes.getInstance().getStandardCodeTable());
- assertTrue("Translation failed (ipos=" + ipos
- + ") No alignment data.", transAlf != null);
+ assertTrue(
+ "Translation failed (ipos=" + ipos + ") No alignment data.",
+ transAlf != null);
assertTrue("Translation failed (ipos=" + ipos + ") Empty alignment.",
transAlf.getHeight() > 0);
- assertTrue("Translation failed (ipos=" + ipos + ") Translated "
- + transAlf.getHeight() + " sequences from " + alf.getHeight()
- + " sequences", alf.getHeight() == transAlf.getHeight());
+ assertTrue(
+ "Translation failed (ipos=" + ipos + ") Translated "
+ + transAlf.getHeight() + " sequences from "
+ + alf.getHeight() + " sequences",
+ alf.getHeight() == transAlf.getHeight());
}
}
public void testTranslateCdna_simple() throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(fasta,
- FormatAdapter.PASTE, "FASTA");
- ColumnSelection cs = new ColumnSelection();
+ DataSourceType.PASTE, FileFormat.Fasta);
+ HiddenColumns cs = new HiddenColumns();
AlignViewportI av = new AlignViewport(alf, cs);
- Dna dna = new Dna(av, new int[] { 0, alf.getWidth() - 1 });
- AlignmentI translated = dna.translateCdna();
+ Iterator<int[]> contigs = cs.getVisContigsIterator(0, alf.getWidth(),
+ false);
+ Dna dna = new Dna(av, contigs);
+ AlignmentI translated = dna.translateCdna(
+ GeneticCodes.getInstance().getStandardCodeTable());
String aa = translated.getSequenceAt(0).getSequenceAsString();
assertEquals(
"AAAACCDDEEFFGGGGHHIIIKKLLLLLLMNNPPPPQQRRRRRRSSSSSSTTTTVVVVWYY***",
public void testTranslateCdna_hiddenColumns() throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(fasta,
- FormatAdapter.PASTE, "FASTA");
- ColumnSelection cs = new jalview.datamodel.ColumnSelection();
+ DataSourceType.PASTE, FileFormat.Fasta);
+ HiddenColumns cs = new HiddenColumns();
cs.hideColumns(6, 14); // hide codons 3/4/5
cs.hideColumns(24, 35); // hide codons 9-12
cs.hideColumns(177, 191); // hide codons 60-64
AlignViewportI av = new AlignViewport(alf, cs);
- Dna dna = new Dna(av, new int[] { 0, alf.getWidth() - 1 });
- AlignmentI translated = dna.translateCdna();
+ Iterator<int[]> contigs = cs.getVisContigsIterator(0, alf.getWidth(),
+ false);
+ Dna dna = new Dna(av, contigs);
+ AlignmentI translated = dna.translateCdna(
+ GeneticCodes.getInstance().getStandardCodeTable());
String aa = translated.getSequenceAt(0).getSequenceAsString();
- assertEquals("AACDDGGGGHHIIIKKLLLLLLMNNPPPPQQRRRRRRSSSSSSTTTTVVVVW", aa);
+ assertEquals("AACDDGGGGHHIIIKKLLLLLLMNNPPPPQQRRRRRRSSSSSSTTTTVVVVW",
+ aa);
}
/**
/*
* Generate cDNA - 8 sequences of 12 bases each.
*/
- AlignmentI cdna = new DnaAlignmentGenerator().generate(12, 8, 97, 5, 5);
- ColumnSelection cs = new ColumnSelection();
+ AlignmentI cdna = new AlignmentGenerator(true).generate(12, 8, 97, 5,
+ 5);
+ HiddenColumns cs = new HiddenColumns();
AlignViewportI av = new AlignViewport(cdna, cs);
- Dna dna = new Dna(av, new int[] { 0, cdna.getWidth() - 1 });
- AlignmentI translated = dna.translateCdna();
+ Iterator<int[]> contigs = cs.getVisContigsIterator(0, cdna.getWidth(),
+ false);
+ Dna dna = new Dna(av, contigs);
+ AlignmentI translated = dna.translateCdna(
+ GeneticCodes.getInstance().getStandardCodeTable());
/*
* Jumble the cDNA sequences and translate.
}
AlignmentI cdnaReordered = new Alignment(sorted);
av = new AlignViewport(cdnaReordered, cs);
- dna = new Dna(av, new int[] { 0, cdna.getWidth() - 1 });
- AlignmentI translated2 = dna.translateCdna();
+ contigs = cs.getVisContigsIterator(0, cdna.getWidth(), false);
+ dna = new Dna(av, contigs);
+ AlignmentI translated2 = dna.translateCdna(
+ GeneticCodes.getInstance().getStandardCodeTable());
/*
* Check translated sequences are the same in both alignments.
int sortedSequenceIndex = 0;
for (int originalSequenceIndex : jumbler)
{
- final String translation1 = translated.getSequenceAt(
- originalSequenceIndex).getSequenceAsString();
- final String translation2 = translated2.getSequenceAt(
- sortedSequenceIndex).getSequenceAsString();
+ final String translation1 = translated
+ .getSequenceAt(originalSequenceIndex).getSequenceAsString();
+ final String translation2 = translated2
+ .getSequenceAt(sortedSequenceIndex).getSequenceAsString();
assertEquals(translation2, translation1);
sortedSequenceIndex++;
}
private void assertSymmetric(String codon1, String codon2)
{
- assertEquals("Comparison of '" + codon1 + "' and '" + codon2
- + " not symmetric", Integer.signum(compare(codon1, codon2)),
+ assertEquals(
+ "Comparison of '" + codon1 + "' and '" + codon2
+ + " not symmetric",
+ Integer.signum(compare(codon1, codon2)),
-Integer.signum(compare(codon2, codon1)));
}
*/
private void assertPrecedes(String codon1, String codon2)
{
- assertEquals("Expected '" + codon1 + "' precedes '" + codon2 + "'",
- -1, compare(codon1, codon2));
+ assertEquals("Expected '" + codon1 + "' precedes '" + codon2 + "'", -1,
+ compare(codon1, codon2));
}
/**
SequenceI dna = new Sequence("Seq1", seq);
Alignment al = new Alignment(new SequenceI[] { dna });
al.createDatasetAlignment();
- assertEquals(seqDs, al.getSequenceAt(0).getDatasetSequence()
- .getSequenceAsString());
+ assertEquals(seqDs,
+ al.getSequenceAt(0).getDatasetSequence().getSequenceAsString());
- ColumnSelection cs = new ColumnSelection();
+ HiddenColumns cs = new HiddenColumns();
AlignViewportI av = new AlignViewport(al, cs);
- Dna testee = new Dna(av, new int[] { 0, al.getWidth() - 1 });
+ Iterator<int[]> contigs = cs.getVisContigsIterator(0, al.getWidth(),
+ false);
+ Dna testee = new Dna(av, contigs);
AlignmentI reversed = testee.reverseCdna(false);
assertEquals(1, reversed.getHeight());
assertEquals(seqRev, reversed.getSequenceAt(0).getSequenceAsString());