improving GSDI, under construction...
[jalview.git] / forester / java / src / org / forester / application / gsdi.java
index de949a8..4c5d0cd 100644 (file)
@@ -34,6 +34,7 @@ import java.util.List;
 
 import org.forester.io.parsers.PhylogenyParser;
 import org.forester.io.parsers.nhx.NHXParser;
+import org.forester.io.parsers.phyloxml.PhyloXmlDataFormatException;
 import org.forester.io.parsers.phyloxml.PhyloXmlParser;
 import org.forester.io.parsers.util.ParserUtils;
 import org.forester.io.writers.PhylogenyWriter;
@@ -203,17 +204,42 @@ public final class gsdi {
                 final TaxonomyComparisonBase comp_base = GSDI.determineTaxonomyComparisonBase( gene_tree );
                 switch ( comp_base ) {
                     case SCIENTIFIC_NAME:
-                        PhylogenyMethods
-                                .transferNodeNameToField( species_tree,
-                                                          PhylogenyMethods.PhylogenyNodeField.TAXONOMY_ID_UNIPROT_1 );
+                        try {
+                            PhylogenyMethods
+                                    .transferNodeNameToField( species_tree,
+                                                              PhylogenyMethods.PhylogenyNodeField.TAXONOMY_SCIENTIFIC_NAME,
+                                                              true );
+                        }
+                        catch ( final PhyloXmlDataFormatException e ) {
+                            ForesterUtil.fatalError( gsdi.PRG_NAME,
+                                                     "Failed to transfer general node name to scientific name, in ["
+                                                             + species_tree_file + "]: " + e.getMessage() );
+                        }
                         break;
                     case CODE:
-                        PhylogenyMethods.transferNodeNameToField( species_tree,
-                                                                  PhylogenyMethods.PhylogenyNodeField.TAXONOMY_CODE );
+                        try {
+                            PhylogenyMethods
+                                    .transferNodeNameToField( species_tree,
+                                                              PhylogenyMethods.PhylogenyNodeField.TAXONOMY_CODE,
+                                                              true );
+                        }
+                        catch ( final PhyloXmlDataFormatException e ) {
+                            ForesterUtil.fatalError( gsdi.PRG_NAME,
+                                                     "Failed to transfer general node name to taxonomy code, in ["
+                                                             + species_tree_file + "]: " + e.getMessage() );
+                        }
                         break;
                     case ID:
-                        PhylogenyMethods.transferNodeNameToField( species_tree,
-                                                                  PhylogenyMethods.PhylogenyNodeField.TAXONOMY_ID );
+                        try {
+                            PhylogenyMethods.transferNodeNameToField( species_tree,
+                                                                      PhylogenyMethods.PhylogenyNodeField.TAXONOMY_ID,
+                                                                      true );
+                        }
+                        catch ( final PhyloXmlDataFormatException e ) {
+                            ForesterUtil.fatalError( gsdi.PRG_NAME,
+                                                     "Failed to transfer general node name to taxonomy id, in ["
+                                                             + species_tree_file + "]: " + e.getMessage() );
+                        }
                         break;
                     default:
                         ForesterUtil.fatalError( gsdi.PRG_NAME, "unable to determine comparison base" );
@@ -221,8 +247,8 @@ public final class gsdi {
             }
         }
         catch ( final IOException e ) {
-            ForesterUtil.fatalError( gsdi.PRG_NAME,
-                                     "Failed to read species tree from [" + gene_tree_file + "]: " + e.getMessage() );
+            ForesterUtil.fatalError( gsdi.PRG_NAME, "Failed to read species tree from [" + species_tree_file + "]: "
+                    + e.getMessage() );
         }
         gene_tree.setRooted( true );
         species_tree.setRooted( true );
@@ -325,7 +351,7 @@ public final class gsdi {
         log_writer.println( "Number of duplications          : " + sdi.getDuplicationsSum() );
         if ( ( base_algorithm == BASE_ALGORITHM.GSDI ) ) {
             final GSDI gsdi = ( GSDI ) sdi;
-            File species_tree_used_file = new File( out_file + SUFFIX_FOR_SPECIES_TREE_USED );
+            final File species_tree_used_file = new File( out_file + SUFFIX_FOR_SPECIES_TREE_USED );
             try {
                 final PhylogenyWriter writer = new PhylogenyWriter();
                 writer.toPhyloXML( species_tree_used_file, gsdi.getSpeciesTree(), 0 );
@@ -346,7 +372,7 @@ public final class gsdi {
             final int spec = gsdi.getSpeciationsSum();
             System.out.println( "Number of speciations            : " + spec );
             log_writer.println( "Number of speciations            : " + spec );
-            for( PhylogenyNode n : gsdi.getMappedExternalSpeciesTreeNodes() ) {
+            for( final PhylogenyNode n : gsdi.getMappedExternalSpeciesTreeNodes() ) {
                 System.out.println( n.toString() );
             }
         }