X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=testsrc%2Fcompbio%2Fdata%2Fsequence%2FSequenceUtilTester.java;h=7db01eecf1c9528bada4c93abdf988b8c1c39d4a;hb=99ab39d360a99ec101152070146b63773a1d6453;hp=edb57a49b33254009ec6c7ee5ff070adbc25cfe8;hpb=4d6083e0cf39c4989e08bdaf9384e9d44c0da607;p=jabaws.git diff --git a/testsrc/compbio/data/sequence/SequenceUtilTester.java b/testsrc/compbio/data/sequence/SequenceUtilTester.java index edb57a4..7db01ee 100644 --- a/testsrc/compbio/data/sequence/SequenceUtilTester.java +++ b/testsrc/compbio/data/sequence/SequenceUtilTester.java @@ -24,6 +24,8 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.PrintWriter; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -82,6 +84,31 @@ public class SequenceUtilTester { } @Test() + public void testCleanProteinSequence() { + String dirtySeq = "atgAGTggt\taGGTgc\ncgcAC\rTgc gACtcgcGAt cgA "; + assertFalse(SequenceUtil.isProteinSequence(dirtySeq)); + // This will still be NON protein sequence despite having only correct + // letters because the letters match perfectly the nucleotide sequence! + assertFalse(SequenceUtil.isProteinSequence(SequenceUtil + .cleanProteinSequence(dirtySeq))); + + String notaSeq = "atgc1tgatgcatgcatgatgmctga"; + assertFalse(SequenceUtil.isProteinSequence(notaSeq)); + assertTrue(SequenceUtil.isProteinSequence(SequenceUtil + .cleanProteinSequence(notaSeq))); + + String AAseq = "ARLGRVRWTQQRHAEAAVLLQQASDAAPEHPGIALWLGHALEDAGQAEAAAAAYTRAHQL"; + assertTrue(SequenceUtil.isProteinSequence(AAseq)); + assertTrue(SequenceUtil.isProteinSequence(SequenceUtil + .cleanProteinSequence(AAseq))); + AAseq += "XU"; + + assertFalse(SequenceUtil.isProteinSequence(AAseq)); + assertTrue(SequenceUtil.isProteinSequence(SequenceUtil + .cleanProteinSequence(AAseq))); + } + + @Test() public void testReadWriteFasta() { try { @@ -149,11 +176,11 @@ public class SequenceUtilTester { /** * This test tests the loading of horizontally formatted Jronn output file * - * First seq + * First seq * - * M 0.86010 0.88512 0.37094 + * M 0.86010 0.88512 0.37094 * - * T 0.79983 0.85864 0.44331 + * T 0.79983 0.85864 0.44331 * */ @SuppressWarnings("unchecked") @@ -163,18 +190,90 @@ public class SequenceUtilTester { FileInputStream fio; try { fio = new FileInputStream(AllTestSuit.TEST_DATA_PATH - + "scores.out"); - Map> aseqs = SequenceUtil - .readDisembl(fio); + + "disembl.out"); + Map> aseqs = SequenceUtil.readDisembl(fio); assertNotNull(aseqs); - assertEquals(aseqs.size(), 3); - System.out.println(aseqs); - for(FastaSequence fs: aseqs.keySet()) { - assertTrue(" Foobar_dundeefriends Foobar dundeefriends ".contains(fs.getId())); - Set scores = aseqs.get(fs); - assertEquals(scores.size(),3); + assertEquals(aseqs.size(), 3); + ScoreManager sman = ScoreManager.newInstance(aseqs); + + for (String fs : aseqs.keySet()) { + assertTrue(" Foobar_dundeefriends Foobar dundeefriends " + .contains(fs)); + Set scores = aseqs.get(fs); + assertEquals(scores.size(), 3); } - fio.close(); + fio.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (UnknownFileFormatException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } + } + + /** + * This test tests the loading of horizontally formatted Jronn output file + * + * First sequence: + * + * >Foobar_dundeefriends + * + * # GlobDoms 2-358, 373-568 + * + * # Disorder 1-5, 206-218, 243-250, 288-300, 313-324, 359-372, 475-481 + * + * # RESIDUE DYDX RAW SMOOTHED + * + * M 0.0044 -0.2259 -0.2259 + * + * T -0.1308 -0.2170 -0.2170 + * + * ............ + * + * > Second sequence + */ + @SuppressWarnings("unchecked") + @Test + public void testReadGlobPlotResults() { + + FileInputStream fio; + try { + fio = new FileInputStream(AllTestSuit.TEST_DATA_PATH + + "globplot.out"); + HashMap> aseqs = SequenceUtil.readGlobPlot(fio); + assertNotNull(aseqs); + assertEquals(aseqs.size(), 3); + + String fsdf = null; + Set scores = null; + for (String fs : aseqs.keySet()) { + if ("Foobar_dundeefriends".contains(fs)) { + fsdf = fs; + scores = aseqs.get(fs); + } + assertEquals(scores.size(), 5); + } + + ScoreManager sm = ScoreManager.newInstanceSingleSequence(scores); + sm.writeOut(new PrintWriter(System.out, true)); + + for (Score score : scores) { + + if (score.getMethod() + .equals(GlobProtResult.Disorder.toString())) { + assertEquals(score.getRanges().size(), 7); + assertTrue(score.getScores().isEmpty()); + } + if (GlobProtResult.valueOf(score.getMethod()) == GlobProtResult.Dydx) { + assertFalse(score.getScores().isEmpty()); + assertTrue(score.getRanges().isEmpty()); + } + } + fio.close(); } catch (FileNotFoundException e) { e.printStackTrace(); fail(e.getLocalizedMessage());