2 package org.forester.rio;
6 import org.forester.datastructures.IntMatrix;
7 import org.forester.io.parsers.nhx.NHXParser;
8 import org.forester.phylogeny.Phylogeny;
9 import org.forester.phylogeny.PhylogenyMethods;
10 import org.forester.phylogeny.PhylogenyMethods.PhylogenyNodeField;
11 import org.forester.phylogeny.factories.ParserBasedPhylogenyFactory;
12 import org.forester.phylogeny.factories.PhylogenyFactory;
13 import org.forester.rio.RIO.REROOTING;
14 import org.forester.sdi.SDIutil.ALGORITHM;
15 import org.forester.sdi.SDIutil.TaxonomyComparisonBase;
16 import org.forester.util.ForesterUtil;
18 public final class TestRIO {
20 private final static String PATH_TO_TEST_DATA = System.getProperty( "user.dir" ) + ForesterUtil.getFileSeparator()
21 + "test_data" + ForesterUtil.getFileSeparator();
23 public static void main( final String[] args ) {
24 if ( !testRIO_GSDIR() ) {
25 System.out.println( "testRIO GSDIR failed" );
27 if ( !testRIO_GSDIR_Iterating() ) {
28 System.out.println( "testRIO GSDIR iterating failed" );
31 System.out.println( "OK" );
35 public static boolean test() {
36 if ( !testRIO_GSDIR() ) {
39 if ( !testRIO_GSDIR_Iterating() ) {
45 private static boolean testRIO_GSDIR_Iterating() {
47 final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
48 final NHXParser nhx = new NHXParser();
49 nhx.setReplaceUnderscores( false );
50 nhx.setIgnoreQuotes( true );
51 nhx.setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.YES );
52 final String gene_trees_1_str = "(((((MOUSE,RAT),HUMAN),CAEEL),YEAST),ARATH);"
53 + "((((MOUSE,RAT),HUMAN),(ARATH,YEAST)),CAEEL);" + "((MOUSE,RAT),(((ARATH,YEAST),CAEEL),HUMAN));"
54 + "(((((MOUSE,HUMAN),RAT),CAEEL),YEAST),ARATH);" + "((((HUMAN,MOUSE),RAT),(ARATH,YEAST)),CAEEL);";
55 nhx.setSource( gene_trees_1_str );
56 final String species_trees_1_str = "(((((MOUSE,RAT),HUMAN),CAEEL),YEAST),ARATH);";
57 final Phylogeny species_tree_1 = factory.create( species_trees_1_str, new NHXParser() )[ 0 ];
58 species_tree_1.setRooted( true );
59 PhylogenyMethods.transferNodeNameToField( species_tree_1, PhylogenyNodeField.TAXONOMY_CODE, true );
60 //Archaeopteryx.createApplication( species_trees_1 );
61 RIO rio = RIO.executeAnalysis( nhx,
64 REROOTING.BY_ALGORITHM,
68 //if ( rio.getAnalyzedGeneTrees().length != 5 ) {
71 if ( rio.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
74 if ( rio.getGSDIRtaxCompBase() != TaxonomyComparisonBase.CODE ) {
77 if ( rio.getRemovedGeneTreeNodes().size() != 0 ) {
80 IntMatrix m = rio.getOrthologTable();
81 //System.out.println( m.toString() );
82 if ( !m.getRowAsString( 0, ',' ).equals( "ARATH,5,5,5,5,5,5" ) ) {
85 if ( !m.getRowAsString( 1, ',' ).equals( "CAEEL,5,5,5,5,5,5" ) ) {
88 if ( !m.getRowAsString( 2, ',' ).equals( "HUMAN,5,5,5,5,3,5" ) ) {
91 if ( !m.getRowAsString( 3, ',' ).equals( "MOUSE,5,5,5,5,3,5" ) ) {
94 if ( !m.getRowAsString( 4, ',' ).equals( "RAT,5,5,3,3,5,5" ) ) {
97 if ( !m.getRowAsString( 5, ',' ).equals( "YEAST,5,5,5,5,5,5" ) ) {
101 final String species_trees_2_str = "((((MOUSE,RAT,HUMAN),CAEEL),YEAST),ARATH);";
102 final Phylogeny species_tree_2 = factory.create( species_trees_2_str, new NHXParser() )[ 0 ];
103 species_tree_2.setRooted( true );
104 PhylogenyMethods.transferNodeNameToField( species_tree_2, PhylogenyNodeField.TAXONOMY_CODE, true );
105 rio = RIO.executeAnalysis( nhx, species_tree_2, ALGORITHM.GSDIR, REROOTING.BY_ALGORITHM, "", true, false );
106 m = rio.getOrthologTable();
107 // System.out.println( m.toString() );
108 if ( !m.getRowAsString( 0, ',' ).equals( "ARATH,5,5,5,5,5,5" ) ) {
111 if ( !m.getRowAsString( 1, ',' ).equals( "CAEEL,5,5,5,5,5,5" ) ) {
114 if ( !m.getRowAsString( 2, ',' ).equals( "HUMAN,5,5,5,5,5,5" ) ) {
117 if ( !m.getRowAsString( 3, ',' ).equals( "MOUSE,5,5,5,5,5,5" ) ) {
120 if ( !m.getRowAsString( 4, ',' ).equals( "RAT,5,5,5,5,5,5" ) ) {
123 if ( !m.getRowAsString( 5, ',' ).equals( "YEAST,5,5,5,5,5,5" ) ) {
127 catch ( final Exception e ) {
128 e.printStackTrace( System.out );
134 private static boolean testRIO_GSDIR() {
136 final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
137 final NHXParser nhx = new NHXParser();
138 nhx.setReplaceUnderscores( false );
139 nhx.setIgnoreQuotes( true );
140 nhx.setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.YES );
141 final String gene_trees_1_str = "(((((MOUSE,RAT),HUMAN),CAEEL),YEAST),ARATH);"
142 + "((((MOUSE,RAT),HUMAN),(ARATH,YEAST)),CAEEL);" + "((MOUSE,RAT),(((ARATH,YEAST),CAEEL),HUMAN));"
143 + "(((((MOUSE,HUMAN),RAT),CAEEL),YEAST),ARATH);" + "((((HUMAN,MOUSE),RAT),(ARATH,YEAST)),CAEEL);";
144 final Phylogeny[] gene_trees_1 = factory.create( gene_trees_1_str, nhx );
145 final String species_trees_1_str = "(((((MOUSE,RAT),HUMAN),CAEEL),YEAST),ARATH);";
146 final Phylogeny species_tree_1 = factory.create( species_trees_1_str, new NHXParser() )[ 0 ];
147 species_tree_1.setRooted( true );
148 PhylogenyMethods.transferNodeNameToField( species_tree_1, PhylogenyNodeField.TAXONOMY_CODE, true );
149 //Archaeopteryx.createApplication( species_trees_1 );
150 RIO rio = RIO.executeAnalysis( gene_trees_1,
153 REROOTING.BY_ALGORITHM,
157 if ( rio.getAnalyzedGeneTrees().length != 5 ) {
160 if ( rio.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
163 if ( rio.getGSDIRtaxCompBase() != TaxonomyComparisonBase.CODE ) {
166 if ( rio.getRemovedGeneTreeNodes().size() != 0 ) {
169 IntMatrix m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
170 // System.out.println( m.toString() );
171 if ( !m.getRowAsString( 0, ',' ).equals( "ARATH,5,5,5,5,5,5" ) ) {
174 if ( !m.getRowAsString( 1, ',' ).equals( "CAEEL,5,5,5,5,5,5" ) ) {
177 if ( !m.getRowAsString( 2, ',' ).equals( "HUMAN,5,5,5,5,3,5" ) ) {
180 if ( !m.getRowAsString( 3, ',' ).equals( "MOUSE,5,5,5,5,3,5" ) ) {
183 if ( !m.getRowAsString( 4, ',' ).equals( "RAT,5,5,3,3,5,5" ) ) {
186 if ( !m.getRowAsString( 5, ',' ).equals( "YEAST,5,5,5,5,5,5" ) ) {
190 final Phylogeny[] gene_trees_2 = factory.create( gene_trees_1_str, nhx );
191 final String species_trees_2_str = "((((MOUSE,RAT,HUMAN),CAEEL),YEAST),ARATH);";
192 final Phylogeny species_tree_2 = factory.create( species_trees_2_str, new NHXParser() )[ 0 ];
193 species_tree_2.setRooted( true );
194 PhylogenyMethods.transferNodeNameToField( species_tree_2, PhylogenyNodeField.TAXONOMY_CODE, true );
195 rio = RIO.executeAnalysis( gene_trees_2, species_tree_2 );
196 m = RIO.calculateOrthologTable( rio.getAnalyzedGeneTrees(), true );
197 // System.out.println( m.toString() );
198 if ( !m.getRowAsString( 0, ',' ).equals( "ARATH,5,5,5,5,5,5" ) ) {
201 if ( !m.getRowAsString( 1, ',' ).equals( "CAEEL,5,5,5,5,5,5" ) ) {
204 if ( !m.getRowAsString( 2, ',' ).equals( "HUMAN,5,5,5,5,5,5" ) ) {
207 if ( !m.getRowAsString( 3, ',' ).equals( "MOUSE,5,5,5,5,5,5" ) ) {
210 if ( !m.getRowAsString( 4, ',' ).equals( "RAT,5,5,5,5,5,5" ) ) {
213 if ( !m.getRowAsString( 5, ',' ).equals( "YEAST,5,5,5,5,5,5" ) ) {
217 RIO r0 = RIO.executeAnalysis( new File( PATH_TO_TEST_DATA + "rio_mb_taxcode.run1.t" ),
218 new File( PATH_TO_TEST_DATA + "rio_tol_1.xml" ),
220 REROOTING.BY_ALGORITHM,
226 if ( r0.getGSDIRtaxCompBase() != TaxonomyComparisonBase.CODE ) {
229 if ( r0.getAnalyzedGeneTrees().length != 201 ) {
232 if ( r0.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
235 if ( r0.getIntNodesOfAnalyzedGeneTrees() != 5 ) {
238 if ( r0.getRemovedGeneTreeNodes().size() != 0 ) {
241 if ( ForesterUtil.roundToInt( r0.getDuplicationsStatistics().median() ) != 1 ) {
244 m = RIO.calculateOrthologTable( r0.getAnalyzedGeneTrees(), true );
245 if ( !m.getRowAsString( 0, ',' ).equals( "A7SHU1_NEMVE,201,201,200,200,200,200" ) ) {
246 System.out.println( m.getRowAsString( 0, ',' ) );
249 if ( !m.getRowAsString( 1, ',' ).equals( "BCDO2_HUMAN,201,201,200,200,200,43" ) ) {
250 System.out.println( m.getRowAsString( 1, ',' ) );
253 if ( !m.getRowAsString( 2, ',' ).equals( "BCDO2_MOUSE,200,200,201,201,201,43" ) ) {
254 System.out.println( m.getRowAsString( 2, ',' ) );
257 if ( !m.getRowAsString( 3, ',' ).equals( "H2ZH97_CIOSA,200,200,201,201,201,201" ) ) {
258 System.out.println( m.getRowAsString( 3, ',' ) );
261 if ( !m.getRowAsString( 4, ',' ).equals( "Q1RLW1_DANRE,200,200,201,201,201,43" ) ) {
262 System.out.println( m.getRowAsString( 4, ',' ) );
265 if ( !m.getRowAsString( 5, ',' ).equals( "Q6DIN7_XENTR,200,43,43,201,43,201" ) ) {
266 System.out.println( m.getRowAsString( 5, ',' ) );
270 r0 = RIO.executeAnalysis( new File( PATH_TO_TEST_DATA + "rio_mb_taxid.run1.t" ),
271 new File( PATH_TO_TEST_DATA + "rio_tol_1.xml" ),
273 REROOTING.BY_ALGORITHM,
279 if ( r0.getGSDIRtaxCompBase() != TaxonomyComparisonBase.ID ) {
282 if ( r0.getAnalyzedGeneTrees().length != 201 ) {
285 if ( r0.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
288 if ( r0.getIntNodesOfAnalyzedGeneTrees() != 5 ) {
291 if ( r0.getRemovedGeneTreeNodes().size() != 0 ) {
294 if ( ForesterUtil.roundToInt( r0.getDuplicationsStatistics().median() ) != 1 ) {
297 m = RIO.calculateOrthologTable( r0.getAnalyzedGeneTrees(), true );
298 if ( !m.getRowAsString( 0, ',' ).equals( "A7SHU1_45351,201,200,201,200,200,200" ) ) {
299 System.out.println( m.getRowAsString( 0, ',' ) );
303 if ( !m.getRowAsString( 1, ',' ).equals( "BCDO2_10090,200,201,200,201,201,43" ) ) {
304 System.out.println( m.getRowAsString( 1, ',' ) );
308 if ( !m.getRowAsString( 2, ',' ).equals( "BCDO2_9606,201,200,201,200,200,43" ) ) {
309 System.out.println( m.getRowAsString( 2, ',' ) );
312 if ( !m.getRowAsString( 3, ',' ).equals( "H2ZH97_51511,200,201,200,201,201,201" ) ) {
313 System.out.println( m.getRowAsString( 3, ',' ) );
316 if ( !m.getRowAsString( 4, ',' ).equals( "Q1RLW1_7955,200,201,200,201,201,43" ) ) {
317 System.out.println( m.getRowAsString( 4, ',' ) );
320 if ( !m.getRowAsString( 5, ',' ).equals( "Q6DIN7_8364,200,43,43,201,43,201" ) ) {
321 System.out.println( m.getRowAsString( 5, ',' ) );
324 r0 = RIO.executeAnalysis( new File( PATH_TO_TEST_DATA + "rio_mb_taxsn.run1.t" ),
325 new File( PATH_TO_TEST_DATA + "rio_tol_1.xml" ),
327 REROOTING.BY_ALGORITHM,
333 if ( r0.getGSDIRtaxCompBase() != TaxonomyComparisonBase.SCIENTIFIC_NAME ) {
336 if ( r0.getAnalyzedGeneTrees().length != 201 ) {
339 if ( r0.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
342 if ( r0.getIntNodesOfAnalyzedGeneTrees() != 5 ) {
345 if ( r0.getRemovedGeneTreeNodes().size() != 0 ) {
348 if ( ForesterUtil.roundToInt( r0.getDuplicationsStatistics().median() ) != 1 ) {
351 m = RIO.calculateOrthologTable( r0.getAnalyzedGeneTrees(), true );
352 if ( !m.getRowAsString( 0, ',' ).equals( "A7SHU1_Nematostella_vectensis,201,201,200,200,200,200" ) ) {
353 System.out.println( m.getRowAsString( 0, ',' ) );
356 if ( !m.getRowAsString( 1, ',' ).equals( "BCDO2_Homo_sapiens,201,201,200,200,200,43" ) ) {
357 System.out.println( m.getRowAsString( 1, ',' ) );
360 if ( !m.getRowAsString( 2, ',' ).equals( "BCDO2_Mus_musculus,200,200,201,201,201,43" ) ) {
361 System.out.println( m.getRowAsString( 2, ',' ) );
364 if ( !m.getRowAsString( 3, ',' ).equals( "H2ZH97_Ciona_savignyi,200,200,201,201,201,201" ) ) {
365 System.out.println( m.getRowAsString( 3, ',' ) );
368 if ( !m.getRowAsString( 4, ',' ).equals( "Q1RLW1_Danio_rerio,200,200,201,201,201,43" ) ) {
369 System.out.println( m.getRowAsString( 4, ',' ) );
372 if ( !m.getRowAsString( 5, ',' ).equals( "Q6DIN7_Xenopus_tropicalis,200,43,43,201,43,201" ) ) {
373 System.out.println( m.getRowAsString( 5, ',' ) );
377 r0 = RIO.executeAnalysis( new File( PATH_TO_TEST_DATA + "rio_mb_taxsn.run1.t" ),
378 new File( PATH_TO_TEST_DATA + "rio_tol_1.xml" ),
386 if ( r0.getGSDIRtaxCompBase() != TaxonomyComparisonBase.SCIENTIFIC_NAME ) {
389 if ( r0.getAnalyzedGeneTrees().length != 201 ) {
392 if ( r0.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
395 if ( r0.getIntNodesOfAnalyzedGeneTrees() != 5 ) {
398 if ( r0.getRemovedGeneTreeNodes().size() != 0 ) {
401 if ( ForesterUtil.roundToInt( r0.getDuplicationsStatistics().median() ) != 2 ) {
404 m = RIO.calculateOrthologTable( r0.getAnalyzedGeneTrees(), true );
405 if ( !m.getRowAsString( 0, ',' ).equals( "A7SHU1_Nematostella_vectensis,201,94,93,160,93,93" ) ) {
406 System.out.println( m.getRowAsString( 0, ',' ) );
409 if ( !m.getRowAsString( 1, ',' ).equals( "BCDO2_Homo_sapiens,94,201,200,53,200,43" ) ) {
410 System.out.println( m.getRowAsString( 1, ',' ) );
413 if ( !m.getRowAsString( 2, ',' ).equals( "BCDO2_Mus_musculus,93,200,201,53,201,43" ) ) {
414 System.out.println( m.getRowAsString( 2, ',' ) );
417 if ( !m.getRowAsString( 3, ',' ).equals( "H2ZH97_Ciona_savignyi,160,53,53,201,53,53" ) ) {
418 System.out.println( m.getRowAsString( 3, ',' ) );
421 if ( !m.getRowAsString( 4, ',' ).equals( "Q1RLW1_Danio_rerio,93,200,201,53,201,43" ) ) {
422 System.out.println( m.getRowAsString( 4, ',' ) );
425 if ( !m.getRowAsString( 5, ',' ).equals( "Q6DIN7_Xenopus_tropicalis,93,43,43,53,43,201" ) ) {
426 System.out.println( m.getRowAsString( 5, ',' ) );
430 r0 = RIO.executeAnalysis( new File( PATH_TO_TEST_DATA + "rio_mb_taxsn.run1.t" ),
431 new File( PATH_TO_TEST_DATA + "rio_tol_1.xml" ),
434 "H2ZH97_Ciona_savignyi",
439 if ( r0.getGSDIRtaxCompBase() != TaxonomyComparisonBase.SCIENTIFIC_NAME ) {
442 if ( r0.getAnalyzedGeneTrees().length != 201 ) {
445 if ( r0.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
448 if ( r0.getIntNodesOfAnalyzedGeneTrees() != 5 ) {
451 if ( r0.getRemovedGeneTreeNodes().size() != 0 ) {
454 if ( ForesterUtil.roundToInt( r0.getDuplicationsStatistics().median() ) != 2 ) {
457 m = RIO.calculateOrthologTable( r0.getAnalyzedGeneTrees(), true );
458 if ( !m.getRowAsString( 0, ',' ).equals( "A7SHU1_Nematostella_vectensis,201,201,200,0,200,200" ) ) {
459 System.out.println( m.getRowAsString( 0, ',' ) );
462 if ( !m.getRowAsString( 1, ',' ).equals( "BCDO2_Homo_sapiens,201,201,200,0,200,43" ) ) {
463 System.out.println( m.getRowAsString( 1, ',' ) );
466 if ( !m.getRowAsString( 2, ',' ).equals( "BCDO2_Mus_musculus,200,200,201,0,201,43" ) ) {
467 System.out.println( m.getRowAsString( 2, ',' ) );
470 if ( !m.getRowAsString( 3, ',' ).equals( "H2ZH97_Ciona_savignyi,0,0,0,201,0,0" ) ) {
471 System.out.println( m.getRowAsString( 3, ',' ) );
474 if ( !m.getRowAsString( 4, ',' ).equals( "Q1RLW1_Danio_rerio,200,200,201,0,201,43" ) ) {
475 System.out.println( m.getRowAsString( 4, ',' ) );
478 if ( !m.getRowAsString( 5, ',' ).equals( "Q6DIN7_Xenopus_tropicalis,200,43,43,0,43,201" ) ) {
479 System.out.println( m.getRowAsString( 5, ',' ) );
484 r0 = RIO.executeAnalysis( new File( PATH_TO_TEST_DATA + "rio_mb_taxsn.run1.t" ),
485 new File( PATH_TO_TEST_DATA + "rio_tol_1.xml" ),
493 if ( r0.getGSDIRtaxCompBase() != TaxonomyComparisonBase.SCIENTIFIC_NAME ) {
496 if ( r0.getAnalyzedGeneTrees().length != 10 ) {
499 if ( r0.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
502 if ( r0.getIntNodesOfAnalyzedGeneTrees() != 5 ) {
505 if ( r0.getRemovedGeneTreeNodes().size() != 0 ) {
508 if ( ForesterUtil.roundToInt( r0.getDuplicationsStatistics().median() ) != 4 ) {
511 m = RIO.calculateOrthologTable( r0.getAnalyzedGeneTrees(), true );
512 if ( !m.getRowAsString( 0, ',' ).equals( "A7SHU1_Nematostella_vectensis,10,0,0,10,0,0" ) ) {
513 System.out.println( m.getRowAsString( 0, ',' ) );
516 if ( !m.getRowAsString( 1, ',' ).equals( "BCDO2_Homo_sapiens,0,10,0,0,0,0" ) ) {
517 System.out.println( m.getRowAsString( 1, ',' ) );
520 if ( !m.getRowAsString( 2, ',' ).equals( "BCDO2_Mus_musculus,0,0,10,0,0,0" ) ) {
521 System.out.println( m.getRowAsString( 2, ',' ) );
524 if ( !m.getRowAsString( 3, ',' ).equals( "H2ZH97_Ciona_savignyi,10,0,0,10,0,0" ) ) {
525 System.out.println( m.getRowAsString( 3, ',' ) );
528 if ( !m.getRowAsString( 4, ',' ).equals( "Q1RLW1_Danio_rerio,0,0,0,0,10,0" ) ) {
529 System.out.println( m.getRowAsString( 4, ',' ) );
532 if ( !m.getRowAsString( 5, ',' ).equals( "Q6DIN7_Xenopus_tropicalis,0,0,0,0,0,10" ) ) {
533 System.out.println( m.getRowAsString( 5, ',' ) );
537 r0 = RIO.executeAnalysis( new File( PATH_TO_TEST_DATA + "rio_mb_taxcode_1.run1.t" ),
538 new File( PATH_TO_TEST_DATA + "rio_tol_1.xml" ),
540 REROOTING.BY_ALGORITHM,
546 if ( r0.getGSDIRtaxCompBase() != TaxonomyComparisonBase.CODE ) {
549 if ( r0.getAnalyzedGeneTrees().length != 201 ) {
552 if ( r0.getExtNodesOfAnalyzedGeneTrees() != 3 ) {
555 if ( r0.getIntNodesOfAnalyzedGeneTrees() != 2 ) {
558 if ( r0.getRemovedGeneTreeNodes().size() != 3 ) {
561 if ( ForesterUtil.roundToInt( r0.getDuplicationsStatistics().median() ) != 0 ) {
564 m = RIO.calculateOrthologTable( r0.getAnalyzedGeneTrees(), true );
565 if ( !m.getRowAsString( 0, ',' ).equals( "BCDO2_HUMAN,201,201,201" ) ) {
566 System.out.println( m.getRowAsString( 0, ',' ) );
569 if ( !m.getRowAsString( 1, ',' ).equals( "Q1RLW1_DANRE,201,201,201" ) ) {
570 System.out.println( m.getRowAsString( 1, ',' ) );
573 if ( !m.getRowAsString( 2, ',' ).equals( "Q6DIN7_XENTR,201,201,201" ) ) {
574 System.out.println( m.getRowAsString( 2, ',' ) );
579 r0 = RIO.executeAnalysis( new File( PATH_TO_TEST_DATA + "rio_mb_taxcode_2.run1.t" ),
580 new File( PATH_TO_TEST_DATA + "rio_tol_1.xml" ),
582 REROOTING.BY_ALGORITHM,
588 if ( r0.getGSDIRtaxCompBase() != TaxonomyComparisonBase.CODE ) {
591 if ( r0.getAnalyzedGeneTrees().length != 201 ) {
594 if ( r0.getExtNodesOfAnalyzedGeneTrees() != 6 ) {
597 if ( r0.getIntNodesOfAnalyzedGeneTrees() != 5 ) {
600 if ( r0.getRemovedGeneTreeNodes().size() != 0 ) {
603 if ( ForesterUtil.roundToInt( r0.getDuplicationsStatistics().median() ) != 1 ) {
606 m = RIO.calculateOrthologTable( r0.getAnalyzedGeneTrees(), true );
607 if ( !m.getRowAsString( 0, ',' ).equals( "A7SHU1_NEMVE&1,201,201,200,200,200,200" ) ) {
608 System.out.println( m.getRowAsString( 0, ',' ) );
611 if ( !m.getRowAsString( 1, ',' ).equals( "BCDO2_HUMAN+,201,201,200,200,200,43" ) ) {
612 System.out.println( m.getRowAsString( 1, ',' ) );
615 if ( !m.getRowAsString( 2, ',' ).equals( "BCDO2_MOUSE,200,200,201,201,201,43" ) ) {
616 System.out.println( m.getRowAsString( 2, ',' ) );
619 if ( !m.getRowAsString( 3, ',' ).equals( "CIOSA,200,200,201,201,201,201" ) ) {
620 System.out.println( m.getRowAsString( 3, ',' ) );
623 if ( !m.getRowAsString( 4, ',' ).equals( "Q1RLW1_DANRE/12-45,200,200,201,201,201,43" ) ) {
624 System.out.println( m.getRowAsString( 4, ',' ) );
627 if ( !m.getRowAsString( 5, ',' ).equals( "Q6DIN7_XENTR-LOUSE,200,43,43,201,43,201" ) ) {
628 System.out.println( m.getRowAsString( 5, ',' ) );
633 catch ( final Exception e ) {
634 e.printStackTrace( System.out );