- final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
- final PhylogenyParser p = ParserUtils.createParserDependingOnFileType( species_tree_file, true );
- if ( p instanceof PhyloXmlParser ) {
- species_tree = factory.create( species_tree_file, p )[ 0 ];
- }
- else {
- if ( REPLACE_UNDERSCORES_IN_NH_SPECIES_TREE && ( p instanceof NHXParser ) ) {
- ( ( NHXParser ) p ).setReplaceUnderscores( true );
- }
- species_tree = factory.create( species_tree_file, p )[ 0 ];
- final TaxonomyComparisonBase comp_base = GSDI.determineTaxonomyComparisonBase( gene_tree );
- switch ( comp_base ) {
- case SCIENTIFIC_NAME:
- 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:
- 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:
- 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" );
- }
- }
+ species_tree = SDIutil.parseSpeciesTree( gene_tree,
+ species_tree_file,
+ REPLACE_UNDERSCORES_IN_NH_SPECIES_TREE,
+ true,
+ TAXONOMY_EXTRACTION.NO );
+ }
+ catch ( final PhyloXmlDataFormatException e ) {
+ fatalError( "user error",
+ "failed to transfer general node name, in [" + species_tree_file + "]: " + e.getMessage(),
+ log_writer );
+ }
+ catch ( final SDIException e ) {
+ fatalError( "user error", e.getMessage(), log_writer );