in progress...
[jalview.git] / forester / java / src / org / forester / phylogeny / PhylogenyMethods.java
index dfe3341..ee17de9 100644 (file)
@@ -42,7 +42,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 
-import org.forester.archaeopteryx.TreePanelUtil;
 import org.forester.io.parsers.FastaParser;
 import org.forester.io.parsers.PhylogenyParser;
 import org.forester.io.parsers.phyloxml.PhyloXmlDataFormatException;
@@ -1003,7 +1002,7 @@ public class PhylogenyMethods {
     private static enum NDF {
                              NodeName( "NN" ),
                              TaxonomyCode( "TC" ),
-                             TaxonomyCommonName( "CN" ),
+                             TaxonomyCommonName( "TN" ),
                              TaxonomyScientificName( "TS" ),
                              TaxonomyIdentifier( "TI" ),
                              TaxonomySynonym( "SY" ),
@@ -1697,6 +1696,9 @@ public class PhylogenyMethods {
                         n.getNodeData().getTaxonomy().setIdentifier( new Identifier( name ) );
                         break;
                     }
+                    case CLADE_NAME:
+                        n.setName( name );
+                        break;
                     default: {
                         throw new IllegalArgumentException( "don't know what to do with " + field );
                     }
@@ -2126,6 +2128,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;
+    }
     
 }