X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fclade_analysis%2FCladeAnalysisTest.java;h=35c08b54a2556eac28e7d503842e93a853f8a1a3;hb=917fdd32a745f77a8b70d7779e44b8b36e11185f;hp=d91e36e71496e9b06f80471dc781396b05ccde3a;hpb=5e2bc10f84f648553a90984d7aa97d7c5a3b73a7;p=jalview.git diff --git a/forester/java/src/org/forester/clade_analysis/CladeAnalysisTest.java b/forester/java/src/org/forester/clade_analysis/CladeAnalysisTest.java index d91e36e..35c08b5 100644 --- a/forester/java/src/org/forester/clade_analysis/CladeAnalysisTest.java +++ b/forester/java/src/org/forester/clade_analysis/CladeAnalysisTest.java @@ -2,7 +2,6 @@ package org.forester.clade_analysis; import java.io.File; -import java.util.List; import org.forester.io.parsers.PhylogenyParser; import org.forester.io.parsers.util.ParserUtils; @@ -30,9 +29,24 @@ public class CladeAnalysisTest { System.out.println( "Clade analysis 3 failed" ); failed = true; } + if ( !testCladeAnalysis4() ) { + System.out.println( "Clade analysis 4 failed" ); + failed = true; + } + if ( !testCladeAnalysis5() ) { + System.out.println( "Clade analysis 5 failed" ); + failed = true; + } + if ( !testCladeAnalysis6() ) { + System.out.println( "Clade analysis 6 failed" ); + failed = true; + } if ( !failed ) { System.out.println( "OK" ); } + else { + System.out.println( "NOT OK" ); + } } public static boolean test() { @@ -45,6 +59,15 @@ public class CladeAnalysisTest { if ( !testCladeAnalysis3() ) { return false; } + if ( !testCladeAnalysis4() ) { + return false; + } + if ( !testCladeAnalysis5() ) { + return false; + } + if ( !testCladeAnalysis6() ) { + return false; + } return true; } @@ -54,7 +77,7 @@ public class CladeAnalysisTest { final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance(); final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true ); final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ]; - Result res = Analysis.execute( p1, "A.1.1.1", "." ); + ResultSingle res = AnalysisSingle.execute( p1, "A.1.1.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) { return false; } @@ -73,7 +96,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.1.1.2", "." ); + res = AnalysisSingle.execute( p1, "A.1.1.2", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) { return false; } @@ -92,7 +115,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.1.1.3", "." ); + res = AnalysisSingle.execute( p1, "A.1.1.3", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) { return false; } @@ -111,7 +134,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.1.1.4", "." ); + res = AnalysisSingle.execute( p1, "A.1.1.4", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.1.1" ) ) { return false; } @@ -130,7 +153,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.1.2.1", "." ); + res = AnalysisSingle.execute( p1, "A.1.2.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "A" ) ) { return false; } @@ -149,7 +172,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.2.1.1", "." ); + res = AnalysisSingle.execute( p1, "A.2.1.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "A" ) ) { return false; } @@ -168,7 +191,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.2.1.2", "." ); + res = AnalysisSingle.execute( p1, "A.2.1.2", "." ); if ( !res.getGreatestCommonPrefix().equals( "A" ) ) { return false; } @@ -187,7 +210,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.3.1.1", "." ); + res = AnalysisSingle.execute( p1, "A.3.1.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.3" ) ) { return false; } @@ -206,7 +229,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.3.1.2", "." ); + res = AnalysisSingle.execute( p1, "A.3.1.2", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.3" ) ) { return false; } @@ -225,7 +248,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.3.2.1", "." ); + res = AnalysisSingle.execute( p1, "A.3.2.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.3" ) ) { return false; } @@ -244,7 +267,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.3.3.1", "." ); + res = AnalysisSingle.execute( p1, "A.3.3.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "A" ) ) { return false; } @@ -263,7 +286,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.4.1.1", "." ); + res = AnalysisSingle.execute( p1, "A.4.1.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.4.1" ) ) { return false; } @@ -282,7 +305,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.4.1.1.a", "." ); + res = AnalysisSingle.execute( p1, "A.4.1.1.a", "." ); if ( !res.getGreatestCommonPrefix().equals( "A.4.1" ) ) { return false; } @@ -301,9 +324,9 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.4.1.2", "." ); - res = Analysis.execute( p1, "A.4.1.2.a", "." ); - res = Analysis.execute( p1, "A.5.1.1", "." ); + res = AnalysisSingle.execute( p1, "A.4.1.2", "." ); + res = AnalysisSingle.execute( p1, "A.4.1.2.a", "." ); + res = AnalysisSingle.execute( p1, "A.5.1.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "A" ) ) { return false; } @@ -322,7 +345,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.5.1.2", "." ); + res = AnalysisSingle.execute( p1, "A.5.1.2", "." ); if ( !res.getGreatestCommonPrefix().equals( "A" ) ) { return false; } @@ -341,7 +364,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "A.6.3.12", "." ); + res = AnalysisSingle.execute( p1, "A.6.3.12", "." ); if ( !res.getGreatestCommonPrefix().equals( "A" ) ) { return false; } @@ -360,7 +383,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "B.1.1.1", "." ); + res = AnalysisSingle.execute( p1, "B.1.1.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "" ) ) { return false; } @@ -379,7 +402,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 2 ) { return false; } - res = Analysis.execute( p1, "B.1.234.3", "." ); + res = AnalysisSingle.execute( p1, "B.1.234.3", "." ); if ( !res.getGreatestCommonPrefix().equals( "" ) ) { return false; } @@ -398,7 +421,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 2 ) { return false; } - res = Analysis.execute( p1, "C.1.1.1", "." ); + res = AnalysisSingle.execute( p1, "C.1.1.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "C.1" ) ) { return false; } @@ -417,7 +440,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "C.1.1.2", "." ); + res = AnalysisSingle.execute( p1, "C.1.1.2", "." ); if ( !res.getGreatestCommonPrefix().equals( "C.1" ) ) { return false; } @@ -436,7 +459,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "C.1.2.1", "." ); + res = AnalysisSingle.execute( p1, "C.1.2.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "C" ) ) { return false; } @@ -455,7 +478,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "C.2.1", "." ); + res = AnalysisSingle.execute( p1, "C.2.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "C" ) ) { return false; } @@ -474,7 +497,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "C.3", "." ); + res = AnalysisSingle.execute( p1, "C.3", "." ); if ( !res.getGreatestCommonPrefix().equals( "" ) ) { return false; } @@ -493,7 +516,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 1 ) { return false; } - res = Analysis.execute( p1, "QE.1.1.1.2.1", "." ); + res = AnalysisSingle.execute( p1, "QE.1.1.1.2.1", "." ); if ( !res.getGreatestCommonPrefix().equals( "" ) ) { return false; } @@ -526,7 +549,7 @@ public class CladeAnalysisTest { final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance(); final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true ); final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ]; - Result res = Analysis.execute( p1, "6_DQ278891", null ); + ResultSingle res = AnalysisSingle.execute( p1, "6_DQ278891", null ); if ( !res.getGreatestCommonPrefix().equals( "6_" ) ) { return false; } @@ -545,7 +568,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "6xa_EU408330", null ); + res = AnalysisSingle.execute( p1, "6xa_EU408330", null ); if ( !res.getGreatestCommonPrefix().equals( "6xa_EU40833" ) ) { return false; } @@ -564,7 +587,7 @@ public class CladeAnalysisTest { if ( res.getWarnings().size() != 0 ) { return false; } - res = Analysis.execute( p1, "7a_EF108306", null ); + res = AnalysisSingle.execute( p1, "7a_EF108306", null ); if ( !res.getGreatestCommonPrefix().equals( "" ) ) { return false; } @@ -590,55 +613,167 @@ public class CladeAnalysisTest { } return true; } - + private static boolean testCladeAnalysis3() { try { - final Result2 res1 = new Result2(); - res1.addGreatestCommonPrefix( "A.1.1", 0.3 ); - res1.addGreatestCommonPrefix( "A.1.2", 0.3 ); - res1.addGreatestCommonPrefix( "A.1.3", 0.3 ); - res1.addGreatestCommonPrefix( "B.1", 0.1 ); - - List x = ForesterUtil.spliIntoPrefixes( "A.1.2.3.4", "." ); - // System.out.println( x ); - x =ForesterUtil.spliIntoPrefixes( "A", "." ); - // System.out.println( x ); - - - res1.analyzeGreatestCommonPrefixes( "." ); - - final Result2 res2 = new Result2(); - res2.addGreatestCommonPrefix( "A.1.1.1", 0.1 ); - res2.addGreatestCommonPrefix( "A.1", 0.7 ); - res2.addGreatestCommonPrefix( "A.1.2", 0.1 ); - res2.addGreatestCommonPrefix( "B.1", 0.1 ); - res2.analyzeGreatestCommonPrefixes( "." ); - - final Result2 res3 = new Result2(); - res3.addGreatestCommonPrefix( "A.1.1.1", 0.7 ); - res3.addGreatestCommonPrefix( "A.1", 0.1 ); - res3.addGreatestCommonPrefix( "A.1.2", 0.1 ); - res3.addGreatestCommonPrefix( "B.1", 0.1 ); - res3.analyzeGreatestCommonPrefixes( "." ); - - - final Result2 res4 = new Result2(); - res4.addGreatestCommonPrefix( "A.1.1.1.1", 0.35); - res4.addGreatestCommonPrefix( "A.1.1.1.2", 0.35 ); - res4.addGreatestCommonPrefix( "A.1", 0.1 ); - res4.addGreatestCommonPrefix( "A.1.2", 0.1 ); - res4.addGreatestCommonPrefix( "B.1", 0.1 ); - res4.analyzeGreatestCommonPrefixes( "." ); - - final Result2 res5 = new Result2(); - res5.addGreatestCommonPrefix( "A.1.1.1.1", 0.2); - res5.addGreatestCommonPrefix( "C.2.3", 0.2 ); - res5.addGreatestCommonPrefix( "A.1.5", 0.1 ); - res5.addGreatestCommonPrefix( "A.3.1.4", 0.2 ); - res5.addGreatestCommonPrefix( "B.1.1", 0.2 ); - res5.addGreatestCommonPrefix( "B.1.2", 0.09 ); - res5.addGreatestCommonPrefix( "D.1.1.1.1", 0.01 ); - res5.analyzeGreatestCommonPrefixes( "." ); + final ResultMulti res1 = new ResultMulti(); + res1.addGreatestCommonPrefix( "A.1.1", 0.3 ); + res1.addGreatestCommonPrefix( "A.1.2", 0.3 ); + res1.addGreatestCommonPrefix( "A.1.3", 0.3 ); + res1.addGreatestCommonPrefix( "B.1", 0.1 ); + res1.analyze( 0.5 ); + System.out.print( res1.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res2 = new ResultMulti( "." ); + res2.addGreatestCommonPrefix( "A.1.1.1", 0.1 ); + res2.addGreatestCommonPrefix( "A.1", 0.7 ); + res2.addGreatestCommonPrefix( "A.1.2", 0.1 ); + res2.addGreatestCommonPrefix( "B.1", 0.1 ); + res2.analyze( 0.3 ); + System.out.print( res2.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res3 = new ResultMulti( "." ); + res3.addGreatestCommonPrefix( "A.1.1.1", 0.1 ); + res3.addGreatestCommonPrefix( "A.1.1.1.1", 0.6 ); + res3.addGreatestCommonPrefix( "A.1", 0.1 ); + res3.addGreatestCommonPrefix( "A.1.2", 0.1 ); + res3.addGreatestCommonPrefix( "B.1", 0.1 ); + res3.analyze( 0.3 ); + System.out.print( res3.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res33 = new ResultMulti( "." ); + res33.addGreatestCommonPrefix( "A.1.1.1", 0.1 ); + res33.addGreatestCommonPrefix( "A.1.1.1.1", 0.3 ); + res33.addGreatestCommonPrefix( "A.1", 0.1 ); + res33.addGreatestCommonPrefix( "A.1.2", 0.1 ); + res33.addGreatestCommonPrefix( "B.1", 0.1 ); + res33.addGreatestCommonPrefix( "B.1.1.1", 0.3 ); + res33.analyze( 0.3 ); + System.out.print( res33.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res4 = new ResultMulti(); + res4.addGreatestCommonPrefix( "A.1.1.1.1", 0.35 ); + res4.addGreatestCommonPrefix( "A.1.1.1.2", 0.35 ); + res4.addGreatestCommonPrefix( "A.1", 0.1 ); + res4.addGreatestCommonPrefix( "A.1.2", 0.1 ); + res4.addGreatestCommonPrefix( "B.1", 0.1 ); + res4.analyze( 0.3 ); + System.out.print( res4.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res5 = new ResultMulti(); + res5.addGreatestCommonPrefix( "A.1.1.1.1", 0.2 ); + res5.addGreatestCommonPrefix( "C.2.3", 0.2 ); + res5.addGreatestCommonPrefix( "A.1.5", 0.1 ); + res5.addGreatestCommonPrefix( "A.3.1.4", 0.2 ); + res5.addGreatestCommonPrefix( "B.1.1", 0.2 ); + res5.addGreatestCommonPrefix( "B.1.2", 0.09 ); + res5.addGreatestCommonPrefix( "D.1.1.1.1", 0.01 ); + res5.analyze( 0.3 ); + System.out.print( res5.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res6 = new ResultMulti(); + res6.addGreatestCommonPrefix( "A.1.1.1", 0.05 ); + res6.addGreatestCommonPrefix( "A.1.1.1.1", 0.65 ); + res6.addGreatestCommonPrefix( "A.1", 0.1 ); + res6.addGreatestCommonPrefix( "A.1.2", 0.1 ); + res6.addGreatestCommonPrefix( "B.1", 0.1 ); + res6.analyze( 0.3 ); + System.out.print( res6.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res7 = new ResultMulti(); + res7.addGreatestCommonPrefix( "A.1.1.1", 0.07 ); + res7.addGreatestCommonPrefix( "A.1.1.1.1", 0.9 ); + res7.addGreatestCommonPrefix( "A.1", 0.01 ); + res7.addGreatestCommonPrefix( "A.1.2", 0.01 ); + res7.addGreatestCommonPrefix( "B.1", 0.01 ); + res7.analyze( 0.3 ); + System.out.print( res7.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res8 = new ResultMulti( "_/_" ); + res8.addGreatestCommonPrefix( "AA_/_abc_/_def", 0.07 ); + res8.addGreatestCommonPrefix( "AA_/_abc_/_sfc", 0.9 ); + res8.addGreatestCommonPrefix( "AA_/_abc_/_xcd", 0.01 ); + res8.addGreatestCommonPrefix( "AA_/_abc_/_memr", 0.01 ); + res8.addGreatestCommonPrefix( "AA_/_abc_/_fkem_/_odem", 0.01 ); + res8.analyze( 0.3 ); + System.out.print( res8.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + final ResultMulti res9 = new ResultMulti( "_/_" ); + res9.addGreatestCommonPrefix( "AA_/_abc_/_def", 0.07 ); + res9.addGreatestCommonPrefix( "AA_/_abc_/_sfc", 0.6 ); + res9.addGreatestCommonPrefix( "AA_/_abc_/_xcd", 0.01 ); + res9.addGreatestCommonPrefix( "AA_/_abc_/_memr", 0.01 ); + res9.addGreatestCommonPrefix( "AA_/_abc_/_fkem_/_odem", 0.01 ); + res9.addGreatestCommonPrefix( "BB_/_fke_/_dme_/_nx2", 0.3 ); + res9.analyze( 0.3 ); + System.out.print( res9.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + } + catch ( final Exception e ) { + e.printStackTrace( System.out ); + return false; + } + return true; + } + + private static boolean testCladeAnalysis4() { + try { + final File intreefile1 = new File( PATH_TO_TEST_DATA + "pplacer_2.tre" ); + final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance(); + final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true ); + final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ]; + ResultMulti res2 = AnalysisMulti.execute( p1 ); + res2.analyze( 0.3 ); + System.out.print( res2.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + } + catch ( final Exception e ) { + e.printStackTrace( System.out ); + return false; + } + return true; + } + + private static boolean testCladeAnalysis5() { + try { + final File intreefile1 = new File( PATH_TO_TEST_DATA + "clade_analysis_test_3.xml" ); + final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance(); + final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true ); + final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ]; + ResultMulti res = AnalysisMulti.execute( p1 ); + res.analyze( 0.3 ); + System.out.print( res.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); + } + catch ( final Exception e ) { + e.printStackTrace( System.out ); + return false; + } + return true; + } + + private static boolean testCladeAnalysis6() { + try { + final File intreefile1 = new File( PATH_TO_TEST_DATA + "clade_analysis_test_4.xml" ); + final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance(); + final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true ); + final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ]; + ResultMulti res = AnalysisMulti.execute( p1, 0.45 ); + System.out.print( res.toString() ); + System.out.println( "------------------------- " ); + System.out.println(); } catch ( final Exception e ) { e.printStackTrace( System.out );