transfer of taxonomy in GSDI and RIO
authorcmzmasek@gmail.com <cmzmasek@gmail.com@ca865154-3058-d1c3-3e42-d8f55a55bdbd>
Mon, 25 Mar 2013 20:49:21 +0000 (20:49 +0000)
committercmzmasek@gmail.com <cmzmasek@gmail.com@ca865154-3058-d1c3-3e42-d8f55a55bdbd>
Mon, 25 Mar 2013 20:49:21 +0000 (20:49 +0000)
forester/java/src/org/forester/application/gsdi.java
forester/java/src/org/forester/application/rio.java
forester/java/src/org/forester/sdi/GSDIR.java

index 711b1e6..b16b733 100644 (file)
@@ -245,12 +245,12 @@ public final class gsdi {
         final long start_time = new Date().getTime();
         try {
             if ( base_algorithm == ALGORITHM.GSDI ) {
-                System.out.println( "Algorithm       : GSDI" );
-                log_writer.println( "Algorithm       : GSDI" );
+                System.out.println( "Algorithm                                : GSDI" );
+                log_writer.println( "Algorithm                                : GSDI" );
             }
             else if ( base_algorithm == ALGORITHM.GSDIR ) {
-                System.out.println( "Algorithm       : GSDIR" );
-                log_writer.println( "Algorithm       : GSDIR" );
+                System.out.println( "Algorithm                                : GSDIR" );
+                log_writer.println( "Algorithm                                : GSDIR" );
             }
             System.out.println( "Use most parsimonous duplication model   : " + most_parsimonous_duplication_model );
             System.out.println( "Allow stripping of gene tree nodes       : " + allow_stripping_of_gene_tree );
index d3414a7..1b9687e 100644 (file)
@@ -88,7 +88,7 @@ public class rio {
         if ( cla.isOptionSet( HELP_OPTION_1 ) || cla.isOptionSet( HELP_OPTION_2 ) || ( args.length == 0 ) ) {
             printHelp();
         }
-        if ( ( args.length < 3 ) || ( args.length > 11 ) ) {
+        if ( ( args.length < 3 ) || ( args.length > 11 ) || ( cla.getNumberOfNames() < 3 ) ) {
             System.out.println();
             System.out.println( "error: incorrect number of arguments" );
             System.out.println();
@@ -287,6 +287,7 @@ public class rio {
         }
         if ( return_gene_tree != null ) {
             System.out.println( "Write best gene tree to   : " + return_gene_tree );
+            System.out.println( "Transfer taxonomic data   : " + transfer_taxonomy );
         }
         time = System.currentTimeMillis();
         final ALGORITHM algorithm;
@@ -369,9 +370,13 @@ public class rio {
                 writeTree( rio.getSpeciesTree(), return_species_tree, "Wrote (stripped) species tree to" );
             }
             if ( return_gene_tree != null ) {
+                String tt = "";
+                if ( transfer_taxonomy ) {
+                    tt = "(with transferred taxonomic data) ";
+                }
                 writeTree( rio.getMinDuplicationsGeneTree(),
                            return_gene_tree,
-                           "Wrote (one) minimal duplication gene tree to" );
+                           "Wrote (one) minimal duplication gene tree " + tt + "to" );
             }
             final java.text.DecimalFormat df = new java.text.DecimalFormat( "0.#" );
             System.out.println( "Mean number of duplications  : " + df.format( stats.arithmeticMean() ) + " (sd: "
index 7ca8dca..52620a2 100644 (file)
@@ -90,10 +90,10 @@ public class GSDIR implements GSDII {
             if ( gsdi_result.getDuplicationsSum() < min_duplications_sum ) {\r
                 min_duplications_sum = gsdi_result.getDuplicationsSum();\r
                 speciations_sum = gsdi_result.getSpeciationsSum();\r
+                _min_duplications_sum_gene_tree = gene_tree.copy();\r
                 if ( transfer_taxonomy ) {\r
-                    transferTaxonomy( gene_tree );\r
+                    transferTaxonomy( _min_duplications_sum_gene_tree );\r
                 }\r
-                _min_duplications_sum_gene_tree = gene_tree.copy();\r
             }\r
             else if ( gsdi_result.getDuplicationsSum() == min_duplications_sum ) {\r
                 final List<Phylogeny> l = new ArrayList<Phylogeny>();\r
@@ -101,10 +101,10 @@ public class GSDIR implements GSDII {
                 l.add( gene_tree );\r
                 final int index = getIndexesOfShortestTree( l ).get( 0 );\r
                 if ( index == 1 ) {\r
+                    _min_duplications_sum_gene_tree = gene_tree.copy();\r
                     if ( transfer_taxonomy ) {\r
-                        transferTaxonomy( gene_tree );\r
+                        transferTaxonomy( _min_duplications_sum_gene_tree );\r
                     }\r
-                    _min_duplications_sum_gene_tree = gene_tree.copy();\r
                 }\r
             }\r
             _duplications_sum_stats.addValue( gsdi_result.getDuplicationsSum() );\r