- final DescriptiveStatistics stats = new BasicDescriptiveStatistics();
- String histogram_title = null;
- switch ( sort_field ) {
- case ABS_MAX_COUNTS_DIFFERENCE:
- if ( treat_as_binary ) {
- histogram_title = "absolute counts difference:";
- }
- else {
- histogram_title = "absolute (maximal) counts difference:";
- }
- break;
- case MAX_COUNTS_DIFFERENCE:
- if ( treat_as_binary ) {
- histogram_title = "counts difference:";
- }
- else {
- histogram_title = "(maximal) counts difference:";
- }
- break;
- case DOMAIN_ID:
- histogram_title = "score mean:";
- break;
- case MIN:
- histogram_title = "score minimum:";
- break;
- case MAX:
- histogram_title = "score maximum:";
- break;
- case MAX_DIFFERENCE:
- if ( treat_as_binary ) {
- histogram_title = "difference:";
- }
- else {
- histogram_title = "(maximal) difference:";
- }
- break;
- case MEAN:
- histogram_title = "score mean:";
- break;
- case SD:
- histogram_title = "score standard deviation:";
- break;
- case SPECIES_COUNT:
- histogram_title = "species number:";
- break;
- default:
- throw new AssertionError( "Unknown sort field: " + sort_field );
- }
- for( final DomainSimilarity similarity : similarities ) {
- switch ( sort_field ) {
- case ABS_MAX_COUNTS_DIFFERENCE:
- stats.addValue( Math.abs( similarity.getMaximalDifferenceInCounts() ) );
- break;
- case MAX_COUNTS_DIFFERENCE:
- stats.addValue( similarity.getMaximalDifferenceInCounts() );
- break;
- case DOMAIN_ID:
- stats.addValue( similarity.getMeanSimilarityScore() );
- break;
- case MIN:
- stats.addValue( similarity.getMinimalSimilarityScore() );
- break;
- case MAX:
- stats.addValue( similarity.getMaximalSimilarityScore() );
- break;
- case MAX_DIFFERENCE:
- stats.addValue( similarity.getMaximalDifference() );
- break;
- case MEAN:
- stats.addValue( similarity.getMeanSimilarityScore() );
- break;
- case SD:
- stats.addValue( similarity.getStandardDeviationOfSimilarityScore() );
- break;
- case SPECIES_COUNT:
- stats.addValue( similarity.getSpecies().size() );
- break;
- default:
- throw new AssertionError( "Unknown sort field: " + sort_field );
- }
- }
- AsciiHistogram histo = null;
- if ( stats.getMin() < stats.getMin() ) {
- histo = new AsciiHistogram( stats, histogram_title );
- }
- if ( verbose ) {
- if ( histo != null ) {
- System.out.println( histo.toStringBuffer( 20, '|', 40, 5 ) );
- }
- System.out.println();
- System.out.println( "N : " + stats.getN() );
- System.out.println( "Min : " + stats.getMin() );
- System.out.println( "Max : " + stats.getMax() );
- System.out.println( "Mean : " + stats.arithmeticMean() );
- if ( stats.getN() > 1 ) {
- System.out.println( "SD : " + stats.sampleStandardDeviation() );
- }
- else {
- System.out.println( "SD : n/a" );
- }
- System.out.println( "Median : " + stats.median() );
- if ( stats.getN() > 1 ) {
- System.out.println( "Pearsonian skewness : " + stats.pearsonianSkewness() );
- }
- else {
- System.out.println( "Pearsonian skewness : n/a" );
- }
- }