X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fphylogeny%2FPhylogenyMethods.java;h=1532e41e0c0e28e2ac1cb182963a04ed710aa1be;hb=665e671efec73fcb36a9aac45f119330f290fa81;hp=dfe3341531e856040bce2f81b8b4bdbf4ce986f0;hpb=4a71774e563925de62c37378a6c32c3275f2e287;p=jalview.git diff --git a/forester/java/src/org/forester/phylogeny/PhylogenyMethods.java b/forester/java/src/org/forester/phylogeny/PhylogenyMethods.java index dfe3341..1532e41 100644 --- a/forester/java/src/org/forester/phylogeny/PhylogenyMethods.java +++ b/forester/java/src/org/forester/phylogeny/PhylogenyMethods.java @@ -66,6 +66,7 @@ import org.forester.phylogeny.iterators.PhylogenyNodeIterator; import org.forester.phylogeny.iterators.PreorderTreeIterator; import org.forester.util.BasicDescriptiveStatistics; import org.forester.util.DescriptiveStatistics; +import org.forester.util.FailedConditionCheckException; import org.forester.util.ForesterUtil; import org.forester.util.TaxonomyUtil; @@ -1003,7 +1004,7 @@ public class PhylogenyMethods { private static enum NDF { NodeName( "NN" ), TaxonomyCode( "TC" ), - TaxonomyCommonName( "CN" ), + TaxonomyCommonName( "TN" ), TaxonomyScientificName( "TS" ), TaxonomyIdentifier( "TI" ), TaxonomySynonym( "SY" ), @@ -2126,6 +2127,30 @@ public class PhylogenyMethods { } } - + public final static PhylogenyNode getFirstExternalNode( final PhylogenyNode node ) { + PhylogenyNode n = node; + while ( n.isInternal() ) { + n = n.getFirstChildNode(); + } + return n; + } + + public final static PhylogenyNode getLastExternalNode( final PhylogenyNode node ) { + PhylogenyNode n = node; + while ( n.isInternal() ) { + n = n.getLastChildNode(); + } + return n; + } + + public final static boolean isHasCollapsedNodes( final Phylogeny phy ) { + for( final PhylogenyNodeIterator iter = phy.iteratorPreorder(); iter.hasNext(); ) { + final PhylogenyNode n = iter.next(); + if ( !n.isExternal() && ( n.isCollapse() ) ) { + return true; + } + } + return false; + } }