import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.Annotation;
-import jalview.datamodel.Profile;
+import jalview.datamodel.ProfileI;
+import jalview.datamodel.ProfilesI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AAFrequencyTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testCalculate_noProfile()
{
SequenceI seq3 = new Sequence("Seq3", "C---G");
SequenceI seq4 = new Sequence("Seq4", "CA--t");
SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 };
- Profile[] result = new Profile[seq1.getLength()];
-
- AAFrequency.calculate(seqs, 0, seq1.getLength(), result, false);
+ int width = seq1.getLength();
+ ProfilesI result = AAFrequency.calculate(seqs, width, 0, width,
+ false);
// col 0 is 100% C
- Profile col = result[0];
+ ProfileI col = result.get(0);
assertEquals(100f, col.getPercentageIdentity(false));
assertEquals(100f, col.getPercentageIdentity(true));
assertEquals(4, col.getMaxCount());
assertNull(col.getCounts());
// col 1 is 75% A
- col = result[1];
+ col = result.get(1);
assertEquals(75f, col.getPercentageIdentity(false));
assertEquals(100f, col.getPercentageIdentity(true));
assertEquals(3, col.getMaxCount());
assertEquals("A", col.getModalResidue());
// col 2 is 50% G 50% C or 25/25 counting gaps
- col = result[2];
+ col = result.get(2);
assertEquals(25f, col.getPercentageIdentity(false));
assertEquals(50f, col.getPercentageIdentity(true));
assertEquals(1, col.getMaxCount());
assertEquals("CG", col.getModalResidue());
// col 3 is all gaps
- col = result[3];
+ col = result.get(3);
assertEquals(0f, col.getPercentageIdentity(false));
assertEquals(0f, col.getPercentageIdentity(true));
assertEquals(0, col.getMaxCount());
assertEquals("", col.getModalResidue());
// col 4 is 75% T 25% G
- col = result[4];
+ col = result.get(4);
assertEquals(75f, col.getPercentageIdentity(false));
assertEquals(75f, col.getPercentageIdentity(true));
assertEquals(3, col.getMaxCount());
SequenceI seq3 = new Sequence("Seq3", "C--G");
SequenceI seq4 = new Sequence("Seq4", "CA-t");
SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 };
- Profile[] result = new Profile[seq1.getLength()];
+ int width = seq1.getLength();
+ ProfilesI result = AAFrequency.calculate(seqs, width, 0, width,
+ true);
- AAFrequency.calculate(seqs, 0, seq1.getLength(), result, true);
- Profile profile = result[0];
+ ProfileI profile = result.get(0);
assertEquals(4, profile.getCounts().getCount('C'));
assertEquals(4, profile.getHeight());
assertEquals(4, profile.getNonGapped());
- profile = result[1];
+ profile = result.get(1);
assertEquals(3, profile.getCounts().getCount('A'));
assertEquals(4, profile.getHeight());
assertEquals(3, profile.getNonGapped());
- profile = result[2];
+ profile = result.get(2);
assertEquals(1, profile.getCounts().getCount('C'));
assertEquals(1, profile.getCounts().getCount('G'));
assertEquals(4, profile.getHeight());
assertEquals(2, profile.getNonGapped());
- profile = result[3];
+ profile = result.get(3);
assertEquals(3, profile.getCounts().getCount('T'));
assertEquals(1, profile.getCounts().getCount('G'));
assertEquals(4, profile.getHeight());
SequenceI seq3 = new Sequence("Seq3", "C--G");
SequenceI seq4 = new Sequence("Seq4", "CA-t");
SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 };
- Profile[] result = new Profile[seq1.getLength()];
- // ensure class loaded and initialized
- AAFrequency.calculate(seqs, 0, seq1.getLength(), result, true);
+ // ensure class loaded and initialised
+ int width = seq1.getLength();
+ AAFrequency.calculate(seqs, width, 0, width, true);
+
int reps = 100000;
long start = System.currentTimeMillis();
for (int i = 0; i < reps; i++)
{
- AAFrequency.calculate(seqs, 0, seq1.getLength(), result, true);
+ AAFrequency.calculate(seqs, width, 0, width, true);
}
System.out.println(System.currentTimeMillis() - start);
}
SequenceI seq3 = new Sequence("Seq3", "C---G");
SequenceI seq4 = new Sequence("Seq4", "CA--t");
SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 };
- Profile[] profiles = new Profile[seq1.getLength()];
- AAFrequency.calculate(seqs, 0, seq1.getLength(), profiles, true);
+ int width = seq1.getLength();
+ ProfilesI profiles = AAFrequency.calculate(seqs, width, 0, width, true);
AlignmentAnnotation consensus = new AlignmentAnnotation("Consensus",
- "PID", new Annotation[seq1.getLength()]);
+ "PID", new Annotation[width]);
AAFrequency
.completeConsensus(consensus, profiles, 0, 5, false, true, 4);
SequenceI seq3 = new Sequence("Seq3", "C---G");
SequenceI seq4 = new Sequence("Seq4", "CA--t");
SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 };
- Profile[] profiles = new Profile[seq1.getLength()];
- AAFrequency.calculate(seqs, 0, seq1.getLength(), profiles, true);
+ int width = seq1.getLength();
+ ProfilesI profiles = AAFrequency.calculate(seqs, width, 0, width, true);
AlignmentAnnotation consensus = new AlignmentAnnotation("Consensus",
- "PID", new Annotation[seq1.getLength()]);
+ "PID", new Annotation[width]);
AAFrequency
.completeConsensus(consensus, profiles, 0, 5, true, false, 4);