+ private final static void printResult( final ResultMulti res,
+ final int counter,
+ final boolean remove_annotation_sep ) {
+ System.out.println();
+ if ( counter == -1 ) {
+ System.out.println( "Result for " + res.getQueryNamePrefix() );
+ }
+ else {
+ System.out.println( "Result for " + res.getQueryNamePrefix() + " [tree " + counter + "]" );
+ }
+ if ( ( res.getAllMultiHitPrefixes() == null ) | ( res.getAllMultiHitPrefixes().size() < 1 ) ) {
+ System.out.println( " No match to query pattern!" );
+ }
+ else {
+ System.out.println( " Matching Clade(s):" );
+ for( final Prefix prefix : res.getCollapsedMultiHitPrefixes() ) {
+ if ( remove_annotation_sep ) {
+ System.out.println( " " + prefix.toStringRemovSeparator() );
+ }
+ else {
+ System.out.println( " " + prefix );
+ }
+ }
+ if ( res.isHasSpecificMultiHitsPrefixes() ) {
+ System.out.println();
+ System.out.println( " Specific-hit(s):" );
+ for( final Prefix prefix : res.getSpecificMultiHitPrefixes() ) {
+ if ( remove_annotation_sep ) {
+ System.out.println( " " + prefix.toStringRemovSeparator() );
+ }
+ else {
+ System.out.println( " " + prefix );
+ }
+ }
+ System.out.println();
+ System.out.println( " Matching Clade(s) with Specific-hit(s):" );
+ for( final Prefix prefix : res.getCollapsedMultiHitPrefixes() ) {
+ if ( remove_annotation_sep ) {
+ System.out.println( " " + prefix.toStringRemovSeparator() );
+ }
+ else {
+ System.out.println( " " + prefix );
+ }
+ for( final Prefix spec : res.getSpecificMultiHitPrefixes() ) {
+ if ( spec.getPrefix().startsWith( prefix.getPrefix() ) ) {
+ if ( remove_annotation_sep ) {
+ System.out.println( " " + spec.toStringRemovSeparator() );
+ }
+ else {
+ System.out.println( " " + spec );
+ }
+ }
+ }
+ }
+ }
+ if ( !ForesterUtil.isEmpty( res.getAllMultiHitPrefixesDown() ) ) {
+ System.out.println();
+ System.out.println( " Matching Down-tree Bracketing Clade(s):" );
+ for( final Prefix prefix : res.getCollapsedMultiHitPrefixesDown() ) {
+ if ( remove_annotation_sep ) {
+ System.out.println( " " + prefix.toStringRemovSeparator() );
+ }
+ else {
+ System.out.println( " " + prefix );
+ }
+ }
+ }
+ if ( !ForesterUtil.isEmpty( res.getAllMultiHitPrefixesUp() ) ) {
+ System.out.println();
+ System.out.println( " Matching Up-tree Bracketing Clade(s):" );
+ for( final Prefix prefix : res.getCollapsedMultiHitPrefixesUp() ) {
+ if ( remove_annotation_sep ) {
+ System.out.println( " " + prefix.toStringRemovSeparator() );
+ }
+ else {
+ System.out.println( " " + prefix );
+ }
+ }
+ }
+ System.out.println();
+ System.out.println( " Total Number of Matches: " + res.getNumberOfMatches() + "/"
+ + res.getReferenceTreeNumberOfExternalNodes() );
+ }
+ System.out.println();
+ }
+
+ private final static void writeResultToTable( final ResultMulti res,
+ final EasyWriter w,
+ final boolean remove_annotation_sep )
+ throws IOException {
+ if ( ( res.getAllMultiHitPrefixes() == null ) | ( res.getAllMultiHitPrefixes().size() < 1 ) ) {
+ w.print( res.getQueryNamePrefix() );
+ w.print( "\t" );
+ w.println( "No match to query pattern!" );
+ }
+ else {
+ for( final Prefix prefix : res.getCollapsedMultiHitPrefixes() ) {
+ w.print( res.getQueryNamePrefix() );
+ w.print( "\t" );
+ w.print( "Matching Clades" );
+ w.print( "\t" );
+ if ( remove_annotation_sep ) {
+ w.print( prefix.getPrefixRemovSeparator() );
+ }
+ else {
+ w.print( prefix.getPrefix() );
+ }
+ w.print( "\t" );
+ w.print( df.format( prefix.getConfidence() ) );
+ w.print( "\t" );
+ w.print( String.valueOf( res.getNumberOfMatches() ) );
+ w.print( "\t" );
+ w.print( String.valueOf( res.getReferenceTreeNumberOfExternalNodes() ) );
+ w.println();
+ }
+ if ( res.isHasSpecificMultiHitsPrefixes() ) {
+ for( final Prefix prefix : res.getSpecificMultiHitPrefixes() ) {
+ w.print( res.getQueryNamePrefix() );
+ w.print( "\t" );
+ w.print( "Specific-hits" );
+ w.print( "\t" );
+ if ( remove_annotation_sep ) {
+ w.print( prefix.getPrefixRemovSeparator() );
+ }
+ else {
+ w.print( prefix.getPrefix() );
+ }
+ w.print( "\t" );
+ w.print( df.format( prefix.getConfidence() ) );
+ w.print( "\t" );
+ w.print( String.valueOf( res.getNumberOfMatches() ) );
+ w.print( "\t" );
+ w.print( String.valueOf( res.getReferenceTreeNumberOfExternalNodes() ) );
+ w.println();
+ }
+ }
+ if ( !ForesterUtil.isEmpty( res.getAllMultiHitPrefixesDown() ) ) {
+ for( final Prefix prefix : res.getCollapsedMultiHitPrefixesDown() ) {
+ w.print( res.getQueryNamePrefix() );
+ w.print( "\t" );
+ w.print( "Matching Down-tree Bracketing Clades" );
+ w.print( "\t" );
+ if ( remove_annotation_sep ) {
+ w.print( prefix.getPrefixRemovSeparator() );
+ }
+ else {
+ w.print( prefix.getPrefix() );
+ }
+ w.print( "\t" );
+ w.print( df.format( prefix.getConfidence() ) );
+ w.print( "\t" );
+ w.print( String.valueOf( res.getNumberOfMatches() ) );
+ w.print( "\t" );
+ w.print( String.valueOf( res.getReferenceTreeNumberOfExternalNodes() ) );
+ w.println();
+ }
+ }
+ if ( !ForesterUtil.isEmpty( res.getAllMultiHitPrefixesUp() ) ) {
+ for( final Prefix prefix : res.getCollapsedMultiHitPrefixesUp() ) {
+ w.print( res.getQueryNamePrefix() );
+ w.print( "\t" );
+ w.print( "Matching Up-tree Bracketing Clades" );
+ w.print( "\t" );
+ if ( remove_annotation_sep ) {
+ w.print( prefix.getPrefixRemovSeparator() );
+ }
+ else {
+ w.print( prefix.getPrefix() );
+ }
+ w.print( "\t" );
+ w.print( df.format( prefix.getConfidence() ) );
+ w.print( "\t" );
+ w.print( String.valueOf( res.getNumberOfMatches() ) );
+ w.print( "\t" );
+ w.print( String.valueOf( res.getReferenceTreeNumberOfExternalNodes() ) );
+ w.println();
+ }
+ }
+ }
+ }
+