X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2FAptxUtil.java;h=e35596765ffbf79ac368e1f9fd7846f21eded4d1;hb=7ad84913635263ddc191fcbebd8a9bd46a9ac7e3;hp=cc0c3657e08a05a73d652eb9df6849c5aa32b779;hpb=3be5f9e46469980f068a9f8170e1d20849b5eaf8;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/AptxUtil.java b/forester/java/src/org/forester/archaeopteryx/AptxUtil.java index cc0c365..e355967 100644 --- a/forester/java/src/org/forester/archaeopteryx/AptxUtil.java +++ b/forester/java/src/org/forester/archaeopteryx/AptxUtil.java @@ -62,7 +62,7 @@ import javax.swing.JApplet; import javax.swing.JOptionPane; import javax.swing.text.MaskFormatter; -import org.forester.analysis.AncestralTaxonomyInference; +import org.forester.analysis.TaxonomyDataManager; import org.forester.io.parsers.PhylogenyParser; import org.forester.io.parsers.phyloxml.PhyloXmlUtil; import org.forester.io.parsers.tol.TolParser; @@ -79,9 +79,10 @@ import org.forester.phylogeny.factories.ParserBasedPhylogenyFactory; import org.forester.phylogeny.factories.PhylogenyFactory; import org.forester.phylogeny.iterators.PhylogenyNodeIterator; import org.forester.phylogeny.iterators.PreorderTreeIterator; +import org.forester.util.AsciiHistogram; import org.forester.util.DescriptiveStatistics; import org.forester.util.ForesterUtil; -import org.forester.ws.uniprot.UniProtTaxonomy; +import org.forester.ws.seqdb.UniProtTaxonomy; public final class AptxUtil { @@ -463,7 +464,7 @@ public final class AptxUtil { else { UniProtTaxonomy up = null; try { - up = AncestralTaxonomyInference.obtainUniProtTaxonomy( temp_tax, null, null ); + up = TaxonomyDataManager.obtainUniProtTaxonomy( temp_tax, null, null ); } catch ( final Exception e ) { e.printStackTrace(); @@ -536,7 +537,7 @@ public final class AptxUtil { } } - final static String crateBasicInformation( final Phylogeny phy ) { + final static String createBasicInformation( final Phylogeny phy ) { final StringBuilder desc = new StringBuilder(); if ( ( phy != null ) && !phy.isEmpty() ) { if ( !ForesterUtil.isEmpty( phy.getName() ) ) { @@ -573,42 +574,88 @@ public final class AptxUtil { desc.append( "Maximum distance to root: " ); desc.append( ForesterUtil.round( PhylogenyMethods.calculateMaxDistanceToRoot( phy ), 6 ) ); desc.append( "\n" ); - desc.append( "Descendants per node statistics: " ); - final DescriptiveStatistics ds = PhylogenyMethods.calculatNumberOfDescendantsPerNodeStatistics( phy ); - desc.append( "\n" ); - desc.append( " Median: " + ForesterUtil.round( ds.median(), 2 ) ); - desc.append( "\n" ); - desc.append( " Mean: " + ForesterUtil.round( ds.arithmeticMean(), 2 ) ); - desc.append( "\n" ); - desc.append( " SD: " + ForesterUtil.round( ds.sampleStandardDeviation(), 2 ) ); - desc.append( "\n" ); - desc.append( " Minimum: " + ForesterUtil.roundToInt( ds.getMin() ) ); - desc.append( "\n" ); - desc.append( " Maximum: " + ForesterUtil.roundToInt( ds.getMax() ) ); + final Set taxs = PhylogenyMethods.obtainDistinctTaxonomies( phy.getRoot() ); + if ( taxs != null ) { + desc.append( "Distinct external taxonomies: " ); + desc.append( taxs.size() ); + } desc.append( "\n" ); - final DescriptiveStatistics cs = PhylogenyMethods.calculatConfidenceStatistics( phy ); - if ( cs.getN() > 1 ) { - desc.append( "Support statistics: " ); + final DescriptiveStatistics bs = PhylogenyMethods.calculatBranchLengthStatistics( phy ); + if ( bs.getN() > 2 ) { desc.append( "\n" ); - desc.append( " Branches with support: " + cs.getN() ); + desc.append( "Branch-length statistics: " ); desc.append( "\n" ); - desc.append( " Median: " + ForesterUtil.round( cs.median(), 6 ) ); + desc.append( " Number of branches with non-negative branch-lengths: " + bs.getN() ); desc.append( "\n" ); - desc.append( " Mean: " + ForesterUtil.round( cs.arithmeticMean(), 6 ) ); + desc.append( " Median: " + ForesterUtil.round( bs.median(), 6 ) ); desc.append( "\n" ); - if ( cs.getN() > 2 ) { - desc.append( " SD: " + ForesterUtil.round( cs.sampleStandardDeviation(), 6 ) ); - desc.append( "\n" ); - } - desc.append( " Minimum: " + ForesterUtil.roundToInt( cs.getMin() ) ); + desc.append( " Mean: " + ForesterUtil.round( bs.arithmeticMean(), 6 ) ); + desc.append( "\n" ); + desc.append( " SD: " + ForesterUtil.round( bs.sampleStandardDeviation(), 6 ) ); + desc.append( "\n" ); + desc.append( " Minimum: " + ForesterUtil.round( bs.getMin(), 6 ) ); + desc.append( "\n" ); + desc.append( " Maximum: " + ForesterUtil.round( bs.getMax(), 6 ) ); desc.append( "\n" ); - desc.append( " Maximum: " + ForesterUtil.roundToInt( cs.getMax() ) ); desc.append( "\n" ); + final AsciiHistogram histo = new AsciiHistogram( bs ); + desc.append( histo.toStringBuffer( 12, '#', 40, 7, " " ) ); } - final Set taxs = PhylogenyMethods.obtainDistinctTaxonomies( phy.getRoot() ); - if ( taxs != null ) { - desc.append( "Distinct external taxonomies: " ); - desc.append( taxs.size() ); + final DescriptiveStatistics ds = PhylogenyMethods.calculatNumberOfDescendantsPerNodeStatistics( phy ); + if ( ds.getN() > 2 ) { + desc.append( "\n" ); + desc.append( "Descendants per node statistics: " ); + desc.append( "\n" ); + desc.append( " Median: " + ForesterUtil.round( ds.median(), 2 ) ); + desc.append( "\n" ); + desc.append( " Mean: " + ForesterUtil.round( ds.arithmeticMean(), 2 ) ); + desc.append( "\n" ); + desc.append( " SD: " + ForesterUtil.round( ds.sampleStandardDeviation(), 2 ) ); + desc.append( "\n" ); + desc.append( " Minimum: " + ForesterUtil.roundToInt( ds.getMin() ) ); + desc.append( "\n" ); + desc.append( " Maximum: " + ForesterUtil.roundToInt( ds.getMax() ) ); + desc.append( "\n" ); + } + List css = null; + try { + css = PhylogenyMethods.calculatConfidenceStatistics( phy ); + } + catch ( final IllegalArgumentException e ) { + ForesterUtil.printWarningMessage( Constants.PRG_NAME, e.getMessage() ); + } + if ( ( css != null ) && ( css.size() > 0 ) ) { + desc.append( "\n" ); + for( int i = 0; i < css.size(); ++i ) { + final DescriptiveStatistics cs = css.get( i ); + if ( ( cs != null ) && ( cs.getN() > 1 ) ) { + if ( css.size() > 1 ) { + desc.append( "Support statistics " + ( i + 1 ) + ": " ); + } + else { + desc.append( "Support statistics: " ); + } + if ( !ForesterUtil.isEmpty( cs.getDescription() ) ) { + desc.append( "\n" ); + desc.append( " Type: " + cs.getDescription() ); + } + desc.append( "\n" ); + desc.append( " Branches with support: " + cs.getN() ); + desc.append( "\n" ); + desc.append( " Median: " + ForesterUtil.round( cs.median(), 6 ) ); + desc.append( "\n" ); + desc.append( " Mean: " + ForesterUtil.round( cs.arithmeticMean(), 6 ) ); + desc.append( "\n" ); + if ( cs.getN() > 2 ) { + desc.append( " SD: " + ForesterUtil.round( cs.sampleStandardDeviation(), 6 ) ); + desc.append( "\n" ); + } + desc.append( " Minimum: " + ForesterUtil.roundToInt( cs.getMin() ) ); + desc.append( "\n" ); + desc.append( " Maximum: " + ForesterUtil.roundToInt( cs.getMax() ) ); + desc.append( "\n" ); + } + } } } return desc.toString();