"",
true,
false );
- //if ( rio.getAnalyzedGeneTrees().length != 5 ) {
- // return false;
- //}
if ( rio.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
return false;
}
nhx.setReplaceUnderscores( false );
nhx.setIgnoreQuotes( true );
nhx.setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.YES );
+ //
+ final String gene_trees_00_str = "(MOUSE,RAT);(MOUSE,RAT);(MOUSE,RAT);(RAT,MOUSE);";
+ final Phylogeny[] gene_trees_00 = factory.create( gene_trees_00_str, nhx );
+ final String species_trees_00_str = "(MOUSE,RAT);";
+ final Phylogeny species_tree_00 = factory.create( species_trees_00_str, new NHXParser() )[ 0 ];
+ species_tree_00.setRooted( true );
+ PhylogenyMethods.transferNodeNameToField( species_tree_00, PhylogenyNodeField.TAXONOMY_CODE, true );
+ RIO rio = RIO.executeAnalysis( gene_trees_00,
+ species_tree_00,
+ ALGORITHM.GSDIR,
+ REROOTING.BY_ALGORITHM,
+ "",
+ true,
+ false );
+ if ( rio.getAnalyzedGeneTrees().length != 4 ) {
+ return false;
+ }
+ if ( rio.getExtNodesOfAnalyzedGeneTrees() != 2 ) {
+ return false;
+ }
+ if ( rio.getGSDIRtaxCompBase() != TaxonomyComparisonBase.CODE ) {
+ return false;
+ }
+ if ( rio.getRemovedGeneTreeNodes().size() != 0 ) {
+ return false;
+ }
+ IntMatrix m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
+ if ( !m.getRowAsString( 0, ',' ).equals( "MOUSE,4,4" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ if ( !m.getRowAsString( 1, ',' ).equals( "RAT,4,4" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ //
+ final String gene_trees_000_str = "(MOUSE1[&&NHX:S=MOUSE],MOUSE2[&&NHX:S=MOUSE]);(MOUSE1[&&NHX:S=MOUSE],MOUSE2[&&NHX:S=MOUSE])";
+ final Phylogeny[] gene_trees_000 = factory.create( gene_trees_000_str, nhx );
+ final String species_trees_000_str = "[&&NHX:S=MOUSE];";
+ final Phylogeny species_tree_000 = factory.create( species_trees_000_str, new NHXParser() )[ 0 ];
+ species_tree_000.setRooted( true );
+ rio = RIO.executeAnalysis( gene_trees_000,
+ species_tree_000,
+ ALGORITHM.GSDIR,
+ REROOTING.BY_ALGORITHM,
+ "",
+ true,
+ false );
+ if ( rio.getAnalyzedGeneTrees().length != 2 ) {
+ return false;
+ }
+ if ( rio.getExtNodesOfAnalyzedGeneTrees() != 2 ) {
+ return false;
+ }
+ if ( rio.getGSDIRtaxCompBase() != TaxonomyComparisonBase.SCIENTIFIC_NAME ) {
+ return false;
+ }
+ if ( rio.getRemovedGeneTreeNodes().size() != 0 ) {
+ return false;
+ }
+ m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
+ if ( !m.getRowAsString( 0, ',' ).equals( "MOUSE1,2,0" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ if ( !m.getRowAsString( 1, ',' ).equals( "MOUSE2,0,2" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ //
+ //
+ final String gene_trees_0000_str = "(MOUSE1[&&NHX:S=MOUSE],MOUSE2[&&NHX:S=MOUSE]);(MOUSE1[&&NHX:S=MOUSE],MOUSE2[&&NHX:S=MOUSE]);(MOUSE1[&&NHX:S=MOUSE],MOUSE2[&&NHX:S=MOUSE])";
+ final Phylogeny[] gene_trees_0000 = factory.create( gene_trees_0000_str, nhx );
+ final String species_trees_0000_str = "([&&NHX:S=MOUSE]);";
+ final Phylogeny species_tree_0000 = factory.create( species_trees_0000_str, new NHXParser() )[ 0 ];
+ species_tree_0000.setRooted( true );
+ rio = RIO.executeAnalysis( gene_trees_0000,
+ species_tree_0000,
+ ALGORITHM.GSDIR,
+ REROOTING.BY_ALGORITHM,
+ "",
+ true,
+ false );
+ if ( rio.getAnalyzedGeneTrees().length != 3 ) {
+ return false;
+ }
+ if ( rio.getExtNodesOfAnalyzedGeneTrees() != 2 ) {
+ return false;
+ }
+ if ( rio.getGSDIRtaxCompBase() != TaxonomyComparisonBase.SCIENTIFIC_NAME ) {
+ return false;
+ }
+ if ( rio.getRemovedGeneTreeNodes().size() != 0 ) {
+ return false;
+ }
+ m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
+ if ( !m.getRowAsString( 0, ',' ).equals( "MOUSE1,3,0" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ if ( !m.getRowAsString( 1, ',' ).equals( "MOUSE2,0,3" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ //
+ final String gene_trees_x_str = "(MOUSE1[&&NHX:S=MOUSE],MOUSE2[&&NHX:S=MOUSE])";
+ final Phylogeny[] gene_trees_x = factory.create( gene_trees_x_str, nhx );
+ final String species_trees_x_str = "[&&NHX:S=MOUSE];";
+ final Phylogeny species_tree_x = factory.create( species_trees_x_str, new NHXParser() )[ 0 ];
+ species_tree_x.setRooted( true );
+ rio = RIO.executeAnalysis( gene_trees_x,
+ species_tree_x,
+ ALGORITHM.GSDIR,
+ REROOTING.BY_ALGORITHM,
+ "",
+ true,
+ false );
+ if ( rio.getAnalyzedGeneTrees().length != 1 ) {
+ return false;
+ }
+ if ( rio.getExtNodesOfAnalyzedGeneTrees() != 2 ) {
+ return false;
+ }
+ if ( rio.getGSDIRtaxCompBase() != TaxonomyComparisonBase.SCIENTIFIC_NAME ) {
+ return false;
+ }
+ if ( rio.getRemovedGeneTreeNodes().size() != 0 ) {
+ return false;
+ }
+ m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
+ if ( !m.getRowAsString( 0, ',' ).equals( "MOUSE1,1,0" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ if ( !m.getRowAsString( 1, ',' ).equals( "MOUSE2,0,1" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ //
+ final String gene_trees_xx_str = "(MOUSE1[&&NHX:S=MOUSE],RAT1[&&NHX:S=RAT])";
+ final Phylogeny[] gene_trees_xx = factory.create( gene_trees_xx_str, nhx );
+ final String species_trees_xx_str = "([&&NHX:S=MOUSE],[&&NHX:S=RAT]);";
+ final Phylogeny species_tree_xx = factory.create( species_trees_xx_str, new NHXParser() )[ 0 ];
+ species_tree_xx.setRooted( true );
+ rio = RIO.executeAnalysis( gene_trees_xx,
+ species_tree_xx,
+ ALGORITHM.GSDIR,
+ REROOTING.BY_ALGORITHM,
+ "",
+ true,
+ false );
+ if ( rio.getAnalyzedGeneTrees().length != 1 ) {
+ return false;
+ }
+ if ( rio.getExtNodesOfAnalyzedGeneTrees() != 2 ) {
+ return false;
+ }
+ if ( rio.getGSDIRtaxCompBase() != TaxonomyComparisonBase.SCIENTIFIC_NAME ) {
+ return false;
+ }
+ if ( rio.getRemovedGeneTreeNodes().size() != 0 ) {
+ return false;
+ }
+ m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
+ if ( !m.getRowAsString( 0, ',' ).equals( "MOUSE1,1,1" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ if ( !m.getRowAsString( 1, ',' ).equals( "RAT1,1,1" ) ) {
+ System.out.println( m.toString() );
+ return false;
+ }
+ //
final String gene_trees_1_str = "(((((MOUSE,RAT),HUMAN),CAEEL),YEAST),ARATH);"
+ "((((MOUSE,RAT),HUMAN),(ARATH,YEAST)),CAEEL);" + "((MOUSE,RAT),(((ARATH,YEAST),CAEEL),HUMAN));"
+ "(((((MOUSE,HUMAN),RAT),CAEEL),YEAST),ARATH);" + "((((HUMAN,MOUSE),RAT),(ARATH,YEAST)),CAEEL);";
final Phylogeny species_tree_1 = factory.create( species_trees_1_str, new NHXParser() )[ 0 ];
species_tree_1.setRooted( true );
PhylogenyMethods.transferNodeNameToField( species_tree_1, PhylogenyNodeField.TAXONOMY_CODE, true );
- //Archaeopteryx.createApplication( species_trees_1 );
- RIO rio = RIO.executeAnalysis( gene_trees_1,
- species_tree_1,
- ALGORITHM.GSDIR,
- REROOTING.BY_ALGORITHM,
- "",
- true,
- false );
+ rio = RIO.executeAnalysis( gene_trees_1,
+ species_tree_1,
+ ALGORITHM.GSDIR,
+ REROOTING.BY_ALGORITHM,
+ "",
+ true,
+ false );
if ( rio.getAnalyzedGeneTrees().length != 5 ) {
return false;
}
if ( rio.getRemovedGeneTreeNodes().size() != 0 ) {
return false;
}
- IntMatrix m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
+ m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
// System.out.println( m.toString() );
if ( !m.getRowAsString( 0, ',' ).equals( "ARATH,5,5,5,5,5,5" ) ) {
return false;
else {
System.out.println( "OK" );
}
- // boolean success = test();
- // if ( success ) {
- // System.out.println( "OK" );
- // }
- // else {
- // System.out.println( "failed" );
- // }
}
public static boolean test() {
private static boolean testGSDI_against_binary_gene_tree() {
try {
+ final PhylogenyFactory factory0 = ParserBasedPhylogenyFactory.getInstance();
+ final String s0 = "([&&NHX:S=1]);";
+ final String gene_0_str = "([&&NHX:S=1],[&&NHX:S=1]);";
+ final Phylogeny s_0 = factory0.create( s0, new NHXParser() )[ 0 ];
+ final Phylogeny gene_0 = factory0.create( gene_0_str, new NHXParser() )[ 0 ];
+ s_0.setRooted( true );
+ gene_0.setRooted( true );
+ final GSDI sdi0 = new GSDI( gene_0, s_0, false, false, false );
+ if ( sdi0.getSpeciationOrDuplicationEventsSum() != 0 ) {
+ return false;
+ }
+ if ( sdi0.getDuplicationsSum() != 1 ) {
+ return false;
+ }
+ if ( sdi0.getSpeciationsSum() != 0 ) {
+ return false;
+ }
final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
final String multi_species_2_str = "(((((([&&NHX:S=1],[&&NHX:S=2]),"
+ "([&&NHX:S=3],[&&NHX:S=4],[&&NHX:S=5])),"
private static boolean testGSDIR_general() {
try {
+ final PhylogenyFactory factory0 = ParserBasedPhylogenyFactory.getInstance();
+ final String s0 = "([&&NHX:S=1]);";
+ final String gene_0_str = "([&&NHX:S=1],[&&NHX:S=1]);";
+ final Phylogeny s_0 = factory0.create( s0, new NHXParser() )[ 0 ];
+ final Phylogeny gene_0 = factory0.create( gene_0_str, new NHXParser() )[ 0 ];
+ s_0.setRooted( true );
+ gene_0.setRooted( true );
+ final GSDIR sdi0 = new GSDIR( gene_0, s_0, true, true );
+ if ( sdi0.getSpeciationsSum() != 0 ) {
+ return false;
+ }
+ if ( sdi0.getMinDuplicationsSum() != 1 ) {
+ return false;
+ }
+ //
+ final PhylogenyFactory factory00 = ParserBasedPhylogenyFactory.getInstance();
+ final String s00 = "[&&NHX:S=1];";
+ final String gene_00_str = "([&&NHX:S=1],[&&NHX:S=1]);";
+ final Phylogeny s_00 = factory00.create( s00, new NHXParser() )[ 0 ];
+ final Phylogeny gene_00 = factory00.create( gene_00_str, new NHXParser() )[ 0 ];
+ s_00.setRooted( true );
+ gene_00.setRooted( true );
+ final GSDIR sdi00 = new GSDIR( gene_00, s_00, true, true );
+ if ( sdi00.getSpeciationsSum() != 0 ) {
+ return false;
+ }
+ if ( sdi00.getMinDuplicationsSum() != 1 ) {
+ return false;
+ }
+ //
final String s1str = "(((([&&NHX:S=HUMAN],([&&NHX:S=MOUSE],[&&NHX:S=RAT])),([&&NHX:S=CAEEL],[&&NHX:S=CAEBR])),[&&NHX:S=YEAST]),[&&NHX:S=ARATH])";
final Phylogeny s1 = ParserBasedPhylogenyFactory.getInstance().create( s1str, new NHXParser() )[ 0 ];
s1.setRooted( true );