+ }
+ final String species_tree_file_name = species_tree_file.getName();
+ final File gene_trees_files[] = indir.listFiles( new FilenameFilter() {
+
+ @Override
+ public boolean accept( final File dir, final String name ) {
+ return ( ( name.endsWith( gene_trees_suffix ) ) && !( name.equals( species_tree_file_name ) ) );
+ }
+ } );
+ if ( gene_trees_files.length < 1 ) {
+ ForesterUtil.fatalError( PRG_NAME,
+ "in-directory [" + indir
+ + "] does not contain any gene tree files with suffix "
+ + gene_trees_suffix );
+ }
+ try {
+ log = ForesterUtil.createEasyWriter( logfile );
+ }
+ catch ( final IOException e ) {
+ ForesterUtil.fatalError( PRG_NAME, "could not create [" + logfile + "]" );
+ }
+ Arrays.sort( gene_trees_files );
+ try {
+ log.print( "# program" );
+ log.print( "\t" );
+ log.print( PRG_NAME );
+ log.println();
+ log.print( "# version" );
+ log.print( "\t" );
+ log.print( PRG_VERSION );
+ log.println();
+ log.print( "# date" );
+ log.print( "\t" );
+ log.print( PRG_DATE );
+ log.println();
+ log.print( "# Algorithm " );
+ log.print( "\t" );
+ log.print( algorithm.toString() );
+ log.println();
+ log.print( "# Gene trees in-dir" );
+ log.print( "\t" );
+ log.print( indir.getCanonicalPath() );
+ log.println();
+ log.print( "# Gene trees suffix" );
+ log.print( "\t" );
+ log.print( gene_trees_suffix );
+ log.println();
+ log.print( "# Species tree" );
+ log.print( "\t" );
+ log.print( species_tree_file.getCanonicalPath() );
+ log.println();
+ log.print( "# Out-dir" );
+ log.print( "\t" );
+ log.print( outdir.getCanonicalPath() );
+ log.println();
+ log.print( "# Logfile" );
+ log.print( "\t" );
+ log.print( logfile.getCanonicalPath() );
+ log.println();
+ log.print( "# Ortholog groups cutoff" );
+ log.print( "\t" );
+ log.print( Double.toString( ortholog_group_cutoff ) );
+ log.println();
+ if ( gt_first != RIO.DEFAULT_RANGE ) {
+ log.print( "# First gene tree to analyze" );
+ log.print( "\t" );
+ log.print( Integer.toString( gt_first ) );
+ log.println();
+ }
+ if ( gt_last != RIO.DEFAULT_RANGE ) {
+ log.print( "# Last gene tree to analyze" );
+ log.print( "\t" );
+ log.print( Integer.toString( gt_last ) );
+ log.println();
+ }
+ log.print( "# Re-rooting" );
+ log.print( "\t" );
+ log.print( rerooting_str );
+ log.println();
+ log.print( "# Non binary species tree" );
+ log.print( "\t" );
+ if ( !sdir ) {
+ log.print( "allowed" );