in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / AptxUtil.java
index 0dd82d7..627e152 100644 (file)
@@ -88,6 +88,12 @@ import org.forester.ws.seqdb.UniProtTaxonomy;
 
 public final class AptxUtil {
 
+    final static String           UNIPROT_KB                     = "http://www.uniprot.org/uniprot/";
+    final static Pattern          UNIPROT_KB_PATTERN_1             = Pattern
+            .compile( "\\bsp|tr.\\S([A-Z0-9]{5,6})\\b" );
+
+    final static Pattern          UNIPROT_KB_PATTERN_2             = Pattern
+                                                                         .compile( "\\b[A-Z0-9]{5,6}_[A-Z9][A-Z]{2}[A-Z0-9]{2}|RAT|PIG|PEA\\b" );
     private final static Pattern  seq_identifier_pattern_1       = Pattern
                                                                          .compile( "^([A-Za-z]{2,5})[|=:]([0-9A-Za-z_\\.]{5,40})\\s*$" );
     private final static Pattern  seq_identifier_pattern_2       = Pattern
@@ -186,6 +192,36 @@ public final class AptxUtil {
         }
     }
 
+    public static Set<Taxonomy> obtainAllDistinctTaxonomies( final PhylogenyNode node ) {
+        final List<PhylogenyNode> descs = node.getAllExternalDescendants();
+        final Set<Taxonomy> tax_set = new HashSet<Taxonomy>();
+        for( final PhylogenyNode n : descs ) {
+            if ( n.getNodeData().isHasTaxonomy() && !n.getNodeData().getTaxonomy().isEmpty() ) {
+                tax_set.add( n.getNodeData().getTaxonomy() );
+            }
+        }
+        return tax_set;
+    }
+
+    /**
+     * Returns the set of distinct taxonomies of
+     * all external nodes of node.
+     * If at least one the external nodes has no taxonomy,
+     * null is returned.
+     * 
+     */
+    public static Set<Taxonomy> obtainDistinctTaxonomies( final PhylogenyNode node ) {
+        final List<PhylogenyNode> descs = node.getAllExternalDescendants();
+        final Set<Taxonomy> tax_set = new HashSet<Taxonomy>();
+        for( final PhylogenyNode n : descs ) {
+            if ( !n.getNodeData().isHasTaxonomy() || n.getNodeData().getTaxonomy().isEmpty() ) {
+                return null;
+            }
+            tax_set.add( n.getNodeData().getTaxonomy() );
+        }
+        return tax_set;
+    }
+
     public final static Accession obtainSequenceAccessionFromName( final String sequence_name ) {
         final String n = sequence_name.trim();
         final Matcher matcher1 = seq_identifier_pattern_1.matcher( n );
@@ -494,40 +530,6 @@ public final class AptxUtil {
         }
     }
 
-    /**
-     * Returns the set of distinct taxonomies of
-     * all external nodes of node.
-     * If at least one the external nodes has no taxonomy,
-     * null is returned.
-     * 
-     */
-    public static Set<Taxonomy> obtainDistinctTaxonomies( final PhylogenyNode node ) {
-        final List<PhylogenyNode> descs = node.getAllExternalDescendants();
-        final Set<Taxonomy> tax_set = new HashSet<Taxonomy>();
-        for( final PhylogenyNode n : descs ) {
-            if ( !n.getNodeData().isHasTaxonomy() || n.getNodeData().getTaxonomy().isEmpty() ) {
-                return null;
-            }
-            tax_set.add( n.getNodeData().getTaxonomy() );
-        }
-        return tax_set;
-    }
-
-    public static Set<Taxonomy> obtainAllDistinctTaxonomies( final PhylogenyNode node ) {
-        final List<PhylogenyNode> descs = node.getAllExternalDescendants();
-        final Set<Taxonomy> tax_set = new HashSet<Taxonomy>();
-        for( final PhylogenyNode n : descs ) {
-            if ( n.getNodeData().isHasTaxonomy() && !n.getNodeData().getTaxonomy().isEmpty() ) {
-                tax_set.add( n.getNodeData().getTaxonomy() );
-                System.out.println( n.getNodeData().getTaxonomy() );
-            }
-        }
-        for( final Taxonomy taxonomy : tax_set ) {
-            System.out.println( taxonomy );
-        }
-        return tax_set;
-    }
-
     final static void collapseSubtree( final PhylogenyNode node, final boolean collapse ) {
         node.setCollapse( collapse );
         if ( node.isExternal() ) {
@@ -695,16 +697,19 @@ public final class AptxUtil {
             desc.append( "Rerootable: " );
             desc.append( phy.isRerootable() );
             desc.append( "\n" );
-            desc.append( "Node sum: " );
+            desc.append( "Nodes: " );
             desc.append( phy.getNodeCount() );
             desc.append( "\n" );
-            desc.append( "External node sum: " );
+            desc.append( "External nodes: " );
             desc.append( phy.getNumberOfExternalNodes() );
             desc.append( "\n" );
-            desc.append( "Internal node sum: " );
+            desc.append( "Internal nodes: " );
             desc.append( phy.getNodeCount() - phy.getNumberOfExternalNodes() );
             desc.append( "\n" );
-            desc.append( "Branche sum: " );
+            desc.append( "Internal nodes with polytomies: " );
+            desc.append( PhylogenyMethods.countNumberOfPolytomies( phy ) );
+            desc.append( "\n" );
+            desc.append( "Branches: " );
             desc.append( phy.getNumberOfBranches() );
             desc.append( "\n" );
             desc.append( "Depth: " );
@@ -854,17 +859,6 @@ public final class AptxUtil {
         return true;
     }
 
-    final static boolean isJava15() {
-        try {
-            final String s = ForesterUtil.JAVA_VERSION;
-            return s.startsWith( "1.5" );
-        }
-        catch ( final Exception e ) {
-            ForesterUtil.printWarningMessage( Constants.PRG_NAME, "minor error: " + e );
-            return false;
-        }
-    }
-
     final static boolean isMac() {
         try {
             final String s = ForesterUtil.OS_NAME.toLowerCase();
@@ -950,6 +944,20 @@ public final class AptxUtil {
         }
     }
 
+    final static void outOfMemoryError( final OutOfMemoryError e ) {
+        System.err.println();
+        System.err.println( "Java memory allocation might be too small, try \"-Xmx2048m\" java command line option" );
+        System.err.println();
+        e.printStackTrace();
+        System.err.println();
+        JOptionPane.showMessageDialog( null,
+                                       "Java memory allocation might be too small, try \"-Xmx2048m\" java command line option"
+                                               + "\n\nError: " + e.getLocalizedMessage(),
+                                       "Out of Memory Error [" + Constants.PRG_NAME + " " + Constants.VERSION + "]",
+                                       JOptionPane.ERROR_MESSAGE );
+        System.exit( -1 );
+    }
+
     final static void printAppletMessage( final String applet_name, final String message ) {
         System.out.println( "[" + applet_name + "] > " + message );
     }
@@ -1015,20 +1023,6 @@ public final class AptxUtil {
         System.exit( -1 );
     }
 
-    final static void outOfMemoryError( final OutOfMemoryError e ) {
-        System.err.println();
-        System.err.println( "Java memory allocation might be too small, try \"-Xmx2048m\" java command line option" );
-        System.err.println();
-        e.printStackTrace();
-        System.err.println();
-        JOptionPane.showMessageDialog( null,
-                                       "Java memory allocation might be too small, try \"-Xmx2048m\" java command line option"
-                                               + "\n\nError: " + e.getLocalizedMessage(),
-                                       "Out of Memory Error [" + Constants.PRG_NAME + " " + Constants.VERSION + "]",
-                                       JOptionPane.ERROR_MESSAGE );
-        System.exit( -1 );
-    }
-
     final static void unexpectedException( final Exception e ) {
         System.err.println();
         e.printStackTrace( System.err );