X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fmsa_compactor%2FChart.java;h=ccb6a0bc281d1cf99b889a949f05f7b54335ee99;hb=3945d8f21a983506954bfa12295de6ab39b8ab92;hp=73f569cfc5ec2eb15fc6dc6218e54405da769bd2;hpb=3bbed51e2cc2f70cdaa3caeb2e169ebe3da3d704;p=jalview.git diff --git a/forester/java/src/org/forester/msa_compactor/Chart.java b/forester/java/src/org/forester/msa_compactor/Chart.java index 73f569c..ccb6a0b 100644 --- a/forester/java/src/org/forester/msa_compactor/Chart.java +++ b/forester/java/src/org/forester/msa_compactor/Chart.java @@ -50,12 +50,21 @@ public final class Chart extends JDialog implements ActionListener { private ChartPanel _chart_panel = null; private final JMenuItem _m_exit = new JMenuItem(); private List _msa_props; + private final boolean _show_msa_qual; + private final int _initial_number_of_seqs; + private final String _title; - private Chart( final List msa_props ) { + private Chart( final List msa_props, + final int initial_number_of_seqs, + final boolean show_msa_qual, + final String title ) { super(); _msa_props = msa_props; + _title = title; + _initial_number_of_seqs = initial_number_of_seqs; + _show_msa_qual = show_msa_qual; setTitle( "msa compactor" ); - setSize( 500, 400 ); + setSize( 600, 500 ); setResizable( true ); final JPanel content_pane = new JPanel(); content_pane.setLayout( new BorderLayout() ); @@ -95,7 +104,7 @@ public final class Chart extends JDialog implements ActionListener { } final double[][] seqs_length = new double[ _msa_props.size() ][ 2 ]; for( int i = 0; i < _msa_props.size(); ++i ) { - seqs_length[ i ][ 0 ] = _msa_props.get( i ).getNumberOfSequences(); + seqs_length[ i ][ 0 ] = _initial_number_of_seqs - _msa_props.get( i ).getNumberOfSequences(); seqs_length[ i ][ 1 ] = _msa_props.get( i ).getLength(); } model.addData( seqs_length, "Length" ); @@ -103,26 +112,29 @@ public final class Chart extends JDialog implements ActionListener { model.setSeriesMarker( "Series " + "Length", false ); 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 ] = ForesterUtil.roundToInt( _msa_props.get( i ).getGapRatio() * 100 ); + seqs_gaps[ i ][ 0 ] = _initial_number_of_seqs - _msa_props.get( i ).getNumberOfSequences(); + seqs_gaps[ i ][ 1 ] = ForesterUtil.roundToInt( _msa_props.get( i ).getGapRatio() * 200 ); } - model.addData( seqs_gaps, "Gaps" ); - model.setSeriesLine( "Series " + "Gaps", true ); - model.setSeriesMarker( "Series " + "Gaps", false ); - 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 ] = ForesterUtil.roundToInt( _msa_props.get( i ).getAverageIdentityRatio() * 100 ); + model.addData( seqs_gaps, "Gap ratio" ); + model.setSeriesLine( "Series " + "Gap ratio", true ); + model.setSeriesMarker( "Series " + "Gap ratio", false ); + if ( _show_msa_qual ) { + final double[][] seqs_identity = new double[ _msa_props.size() ][ 2 ]; + for( int i = 0; i < _msa_props.size(); ++i ) { + seqs_identity[ i ][ 0 ] = _initial_number_of_seqs - _msa_props.get( i ).getNumberOfSequences(); + seqs_identity[ i ][ 1 ] = ForesterUtil + .roundToInt( _msa_props.get( i ).getAverageIdentityRatio() * 200 ); + } + model.addData( seqs_identity, "mean MSA column identity" ); + model.setSeriesLine( "Series " + "mean MSA column identity", true ); + model.setSeriesMarker( "Series " + "mean MSA column identity", false ); } - model.addData( seqs_identity, "Id" ); - model.setSeriesLine( "Series " + "Id", true ); - model.setSeriesMarker( "Series " + "Id", false ); final BoxCoordSystem coord = new BoxCoordSystem( model ); - coord.setUnitFont( coord.getUnitFont().deriveFont( 20.0f ) ); - coord.setXAxisUnit( "Number of Sequences" ); + coord.setUnitFont( coord.getUnitFont().deriveFont( 16.0f ) ); + coord.setXAxisUnit( "Number of Removed Sequences" ); coord.setPaintGrid( true ); coord.setYAxisUnit( "MSA Length" ); - _chart_panel = new ChartPanel( model, "msa compactor" ); + _chart_panel = new ChartPanel( model, _title ); _chart_panel.setCoordSystem( coord ); final MultiScatterChartRenderer renderer = new MultiScatterChartRenderer( coord, model ); renderer.setAllowBuffer( false ); @@ -131,14 +143,17 @@ public final class Chart extends JDialog implements ActionListener { return _chart_panel; } - public static void display( final List msa_props ) { + public static void display( final List msa_props, + final int initial_number_of_seqs, + final boolean show_msa_qual, + final String title ) { try { UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() ); } catch ( final Exception e ) { e.printStackTrace(); } - final Chart chart = new Chart( msa_props ); + final Chart chart = new Chart( msa_props, initial_number_of_seqs, show_msa_qual, title ); chart.setVisible( true ); } @@ -149,7 +164,7 @@ public final class Chart extends JDialog implements ActionListener { catch ( final Exception e ) { e.printStackTrace(); } - final Chart temp = new Chart( null ); + final Chart temp = new Chart( null, 0, true, "title" ); temp.setVisible( true ); } }