- model.setSeriesMarker( "Series " + "Length", true );
- // final double[][] seqs_gaps = new double[ _msa_props.size() ][ 2 ];
- // for( int i = 0; i < _msa_props.size(); ++i ) {
- // seqs_gaps[ i ][ 0 ] = _msa_props.get( i ).getNumberOfSequences();
- // seqs_gaps[ i ][ 1 ] = _msa_props.get( i ).getGapRatio();
- // }
- // model.addData( seqs_gaps, "Gaps" );
- // model.setSeriesLine( "Series " + "Gaps", true );
- // model.setSeriesMarker( "Series " + "Gaps", true );
- // final double[][] seqs_identity = new double[ _msa_props.size() ][ 2 ];
- // for( int i = 0; i < _msa_props.size(); ++i ) {
- // seqs_identity[ i ][ 0 ] = _msa_props.get( i ).getNumberOfSequences();
- // seqs_identity[ i ][ 1 ] = _msa_props.get( i ).getAverageIdentityRatio();
- // }
- // model.addData( seqs_identity, "Id" );
- // model.setSeriesLine( "Series " + "Id", false );
- // model.setSeriesMarker( "Series " + "Id", true );
+ model.setSeriesMarker( "Series " + "Length", false );
+ final double[][] seqs_gaps = new double[ _msa_props.size() ][ 2 ];
+ double max_ent7 = -1;
+ double max_ent21 = -1;
+ double min_ent7 = Double.MAX_VALUE;
+ double min_ent21 = Double.MAX_VALUE;
+ if ( _show_msa_qual ) {
+ for( int i = 0; i < _msa_props.size(); ++i ) {
+ final double ent7 = _msa_props.get( i ).getEntropy7();
+ if ( ent7 > max_ent7 ) {
+ max_ent7 = ent7;
+ }
+ if ( ent7 < max_ent7 ) {
+ min_ent7 = ent7;
+ }
+ final double ent21 = _msa_props.get( i ).getEntropy21();
+ if ( ent21 > min_ent21 ) {
+ max_ent21 = ent21;
+ }
+ if ( ent21 < min_ent21 ) {
+ min_ent21 = ent21;
+ }
+ }
+ }
+ final double gap_ratio_factor = ( max_length / 2.0 ) / max_gap_ratio;
+ final double avg_gaps_counts_factor = ( max_length / 2.0 ) / max_avg_gap_count;
+ final double ent7_factor = ( max_length / 2.0 ) / max_ent7;
+ final double ent21_factor = ( max_length / 2.0 ) / max_ent21;
+ for( int i = 0; i < _msa_props.size(); ++i ) {
+ seqs_gaps[ i ][ 0 ] = _initial_number_of_seqs - _msa_props.get( i ).getNumberOfSequences();
+ seqs_gaps[ i ][ 1 ] = ForesterUtil.roundToInt( _msa_props.get( i ).getGapRatio() * gap_ratio_factor );
+ }
+ model.addData( seqs_gaps, "Gap Ratio" + " (" + minMaxToString( min_gap_ratio, max_gap_ratio ) + ")" );
+ model.setSeriesLine( "Series " + "Gap Ratio", true );
+ model.setSeriesMarker( "Series " + "Gap Ratio", false );
+ final double[][] gap_counts = new double[ _msa_props.size() ][ 2 ];
+ for( int i = 0; i < _msa_props.size(); ++i ) {
+ gap_counts[ i ][ 0 ] = _initial_number_of_seqs - _msa_props.get( i ).getNumberOfSequences();
+ gap_counts[ i ][ 1 ] = ForesterUtil.roundToInt( _msa_props.get( i ).getAvgNumberOfGaps()
+ * avg_gaps_counts_factor );
+ }
+ model.addData( gap_counts, "Mean Gap Count" + " (" + minMaxToString( min_avg_gap_count, max_avg_gap_count )
+ + ")" );
+ model.setSeriesLine( "Series " + "Mean Gap Count", true );
+ model.setSeriesMarker( "Series " + "Mean Gap Count", false );
+ if ( _show_msa_qual ) {
+ final double[][] entropy7 = new double[ _msa_props.size() ][ 2 ];
+ for( int i = 0; i < _msa_props.size(); ++i ) {
+ entropy7[ i ][ 0 ] = _initial_number_of_seqs - _msa_props.get( i ).getNumberOfSequences();
+ entropy7[ i ][ 1 ] = ForesterUtil.roundToInt( _msa_props.get( i ).getEntropy7() * ent7_factor );
+ }
+ model.addData( entropy7, "Entropy norm 7" + " (" + minMaxToString( min_ent7, max_ent7 ) + ")" );
+ model.setSeriesLine( "Series " + "Entropy norm 7", true );
+ model.setSeriesMarker( "Series " + "Entropy norm 7", false );
+ //
+ final double[][] entropy21 = new double[ _msa_props.size() ][ 2 ];
+ for( int i = 0; i < _msa_props.size(); ++i ) {
+ entropy21[ i ][ 0 ] = _initial_number_of_seqs - _msa_props.get( i ).getNumberOfSequences();
+ entropy21[ i ][ 1 ] = ForesterUtil.roundToInt( _msa_props.get( i ).getEntropy21() * ent21_factor );
+ }
+ model.addData( entropy21, "Entropy norm 21" + " (" + minMaxToString( min_ent21, max_ent21 ) + ")" );
+ model.setSeriesLine( "Series " + "Entropy norm 21", true );
+ model.setSeriesMarker( "Series " + "Entropy norm 21", false );
+ }