phylotastic hackathon at NESCENT 120607
[jalview.git] / forester / java / src / org / forester / test / Test.java
index adcbac9..814bf7c 100644 (file)
@@ -103,10 +103,11 @@ import org.forester.util.DescriptiveStatistics;
 import org.forester.util.ForesterConstants;
 import org.forester.util.ForesterUtil;
 import org.forester.util.GeneralTable;
-import org.forester.ws.uniprot.DatabaseTools;
-import org.forester.ws.uniprot.SequenceDatabaseEntry;
-import org.forester.ws.uniprot.UniProtTaxonomy;
-import org.forester.ws.uniprot.UniProtWsTools;
+import org.forester.util.SequenceIdParser;
+import org.forester.ws.seqdb.DatabaseTools;
+import org.forester.ws.seqdb.SequenceDatabaseEntry;
+import org.forester.ws.seqdb.SequenceDbWsTools;
+import org.forester.ws.seqdb.UniProtTaxonomy;
 import org.forester.ws.wabi.TxSearch;
 import org.forester.ws.wabi.TxSearch.RANKS;
 import org.forester.ws.wabi.TxSearch.TAX_NAME_CLASS;
@@ -171,6 +172,19 @@ public final class Test {
             System.exit( -1 );
         }
         final long start_time = new Date().getTime();
+        
+        
+       
+        System.out.print( "Sequence id parsing: " );
+        if (  testSequenceIdParsing() ) {
+            System.out.println( "OK." );
+            succeeded++;
+        }
+        else {
+            System.out.println( "failed." );
+            System.exit( -1 ); //TODO FIXME remove me!! ~
+            failed++;
+        }
         System.out.print( "Hmmscan output parser: " );
         if ( testHmmscanOutputParser() ) {
             System.out.println( "OK." );
@@ -7836,7 +7850,7 @@ public final class Test {
 
     private static boolean testUniprotTaxonomySearch() {
         try {
-            List<UniProtTaxonomy> results = UniProtWsTools
+            List<UniProtTaxonomy> results = SequenceDbWsTools
                     .getTaxonomiesFromCommonNameStrict( "starlet sea anemone", 10 );
             if ( results.size() != 1 ) {
                 return false;
@@ -7857,7 +7871,7 @@ public final class Test {
                 return false;
             }
             results = null;
-            results = UniProtWsTools.getTaxonomiesFromScientificNameStrict( "Nematostella vectensis", 10 );
+            results = SequenceDbWsTools.getTaxonomiesFromScientificNameStrict( "Nematostella vectensis", 10 );
             if ( results.size() != 1 ) {
                 return false;
             }
@@ -7877,7 +7891,7 @@ public final class Test {
                 return false;
             }
             results = null;
-            results = UniProtWsTools.getTaxonomiesFromId( "45351", 10 );
+            results = SequenceDbWsTools.getTaxonomiesFromId( "45351", 10 );
             if ( results.size() != 1 ) {
                 return false;
             }
@@ -7897,7 +7911,7 @@ public final class Test {
                 return false;
             }
             results = null;
-            results = UniProtWsTools.getTaxonomiesFromTaxonomyCode( "NEMVE", 10 );
+            results = SequenceDbWsTools.getTaxonomiesFromTaxonomyCode( "NEMVE", 10 );
             if ( results.size() != 1 ) {
                 return false;
             }
@@ -7945,90 +7959,90 @@ public final class Test {
         //Nucleotide: 1 letter + 5 numerals OR 2 letters + 6 numerals
         //Protein:    3 letters + 5 numerals
         //http://www.ncbi.nlm.nih.gov/Sequin/acc.html
-        if ( !DatabaseTools.parseGenbankAccessor( "AY423861" ).equals( "AY423861" ) ) {
+        if ( !SequenceIdParser.parseGenbankAccessor( "AY423861" ).equals( "AY423861" ) ) {
             return false;
         }
-        if ( !DatabaseTools.parseGenbankAccessor( ".AY423861." ).equals( "AY423861" ) ) {
+        if ( !SequenceIdParser.parseGenbankAccessor( ".AY423861." ).equals( "AY423861" ) ) {
             return false;
         }
-        if ( DatabaseTools.parseGenbankAccessor( "AAY423861" ) != null ) {
+        if ( SequenceIdParser.parseGenbankAccessor( "AAY423861" ) != null ) {
             return false;
         }
-        if ( DatabaseTools.parseGenbankAccessor( "AY4238612" ) != null ) {
+        if ( SequenceIdParser.parseGenbankAccessor( "AY4238612" ) != null ) {
             return false;
         }
-        if ( DatabaseTools.parseGenbankAccessor( "AAY4238612" ) != null ) {
+        if ( SequenceIdParser.parseGenbankAccessor( "AAY4238612" ) != null ) {
             return false;
         }
-        if ( DatabaseTools.parseGenbankAccessor( "Y423861" ) != null ) {
+        if ( SequenceIdParser.parseGenbankAccessor( "Y423861" ) != null ) {
             return false;
         }
-        if ( !DatabaseTools.parseGenbankAccessor( "S12345" ).equals( "S12345" ) ) {
+        if ( !SequenceIdParser.parseGenbankAccessor( "S12345" ).equals( "S12345" ) ) {
             return false;
         }
-        if ( !DatabaseTools.parseGenbankAccessor( "|S12345|" ).equals( "S12345" ) ) {
+        if ( !SequenceIdParser.parseGenbankAccessor( "|S12345|" ).equals( "S12345" ) ) {
             return false;
         }
-        if ( DatabaseTools.parseGenbankAccessor( "|S123456" ) != null ) {
+        if ( SequenceIdParser.parseGenbankAccessor( "|S123456" ) != null ) {
             return false;
         }
-        if ( DatabaseTools.parseGenbankAccessor( "ABC123456" ) != null ) {
+        if ( SequenceIdParser.parseGenbankAccessor( "ABC123456" ) != null ) {
             return false;
         }
-        if ( !DatabaseTools.parseGenbankAccessor( "ABC12345" ).equals( "ABC12345" ) ) {
+        if ( !SequenceIdParser.parseGenbankAccessor( "ABC12345" ).equals( "ABC12345" ) ) {
             return false;
         }
-        if ( !DatabaseTools.parseGenbankAccessor( "&ABC12345&" ).equals( "ABC12345" ) ) {
+        if ( !SequenceIdParser.parseGenbankAccessor( "&ABC12345&" ).equals( "ABC12345" ) ) {
             return false;
         }
-        if ( DatabaseTools.parseGenbankAccessor( "ABCD12345" ) != null ) {
+        if ( SequenceIdParser.parseGenbankAccessor( "ABCD12345" ) != null ) {
             return false;
         }
         return true;
     }
 
     private static boolean testUniprotEntryRetrieval() {
-        if ( !UniProtWsTools.parseUniProtAccessor( "P12345" ).equals( "P12345" ) ) {
+        if ( !SequenceDbWsTools.parseUniProtAccessor( "P12345" ).equals( "P12345" ) ) {
             return false;
         }
-        if ( UniProtWsTools.parseUniProtAccessor( "EP12345" ) != null ) {
+        if ( SequenceDbWsTools.parseUniProtAccessor( "EP12345" ) != null ) {
             return false;
         }
-        if ( UniProtWsTools.parseUniProtAccessor( "3 4P12345" ) != null ) {
+        if ( SequenceDbWsTools.parseUniProtAccessor( "3 4P12345" ) != null ) {
             return false;
         }
-        if ( UniProtWsTools.parseUniProtAccessor( "P12345E" ) != null ) {
+        if ( SequenceDbWsTools.parseUniProtAccessor( "P12345E" ) != null ) {
             return false;
         }
-        if ( UniProtWsTools.parseUniProtAccessor( "P123455" ) != null ) {
+        if ( SequenceDbWsTools.parseUniProtAccessor( "P123455" ) != null ) {
             return false;
         }
-        if ( UniProtWsTools.parseUniProtAccessor( "EP12345E" ) != null ) {
+        if ( SequenceDbWsTools.parseUniProtAccessor( "EP12345E" ) != null ) {
             return false;
         }
-        if ( UniProtWsTools.parseUniProtAccessor( "AY423861" ) != null ) {
+        if ( SequenceDbWsTools.parseUniProtAccessor( "AY423861" ) != null ) {
             return false;
         }
-        if ( !UniProtWsTools.parseUniProtAccessor( "P1DDD5" ).equals( "P1DDD5" ) ) {
+        if ( !SequenceDbWsTools.parseUniProtAccessor( "P1DDD5" ).equals( "P1DDD5" ) ) {
             return false;
         }
-        if ( UniProtWsTools.parseUniProtAccessor( "P1DDDD" ) != null ) {
+        if ( SequenceDbWsTools.parseUniProtAccessor( "P1DDDD" ) != null ) {
             return false;
         }
-        if ( !UniProtWsTools.parseUniProtAccessor( "P1234X/P12345/12-42" ).equals( "P12345" ) ) {
+        if ( !SequenceDbWsTools.parseUniProtAccessor( "P1234X/P12345/12-42" ).equals( "P12345" ) ) {
             return false;
         }
-        if ( !UniProtWsTools.parseUniProtAccessor( "P1234X P12345 12-42" ).equals( "P12345" ) ) {
+        if ( !SequenceDbWsTools.parseUniProtAccessor( "P1234X P12345 12-42" ).equals( "P12345" ) ) {
             return false;
         }
-        if ( !UniProtWsTools.parseUniProtAccessor( "P12345/12-42" ).equals( "P12345" ) ) {
+        if ( !SequenceDbWsTools.parseUniProtAccessor( "P12345/12-42" ).equals( "P12345" ) ) {
             return false;
         }
-        if ( !UniProtWsTools.parseUniProtAccessor( "P1234X/P12345" ).equals( "P12345" ) ) {
+        if ( !SequenceDbWsTools.parseUniProtAccessor( "P1234X/P12345" ).equals( "P12345" ) ) {
             return false;
         }
         try {
-            final SequenceDatabaseEntry entry = UniProtWsTools.obtainUniProtEntry( "P12345", 200 );
+            final SequenceDatabaseEntry entry = SequenceDbWsTools.obtainUniProtEntry( "P12345", 200 );
             if ( !entry.getAccession().equals( "P12345" ) ) {
                 return false;
             }
@@ -8907,4 +8921,138 @@ public final class Test {
         }
         return true;
     }
+    
+    private static boolean testSequenceIdParsing() {
+        try {
+            Identifier id = SequenceIdParser.parse( "gb_ADF31344_segmented_worms_" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "ADF31344" )
+                 || !id.getProvider().equals( "ncbi" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+            //
+            id = SequenceIdParser.parse( "segmented worms|gb_ADF31344" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "ADF31344" )
+                 || !id.getProvider().equals( "ncbi" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+            //
+            id = SequenceIdParser.parse( "segmented worms gb_ADF31344 and more" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "ADF31344" )
+                 || !id.getProvider().equals( "ncbi" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+           
+            // 
+            id = SequenceIdParser.parse( "gb_AAA96518_1" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "AAA96518" )
+                 || !id.getProvider().equals( "ncbi" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+            // 
+            id = SequenceIdParser.parse( "gb_EHB07727_1_rodents_" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "EHB07727" )
+                 || !id.getProvider().equals( "ncbi" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+            // 
+            id = SequenceIdParser.parse( "dbj_BAF37827_1_turtles_" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "BAF37827" )
+                 || !id.getProvider().equals( "ncbi" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+            // 
+            id = SequenceIdParser.parse( "emb_CAA73223_1_primates_" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "CAA73223" )
+                 || !id.getProvider().equals( "ncbi" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+            // 
+            id = SequenceIdParser.parse( "mites|ref_XP_002434188_1" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "XP_002434188" )
+                 || !id.getProvider().equals( "refseq" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+            // 
+            id = SequenceIdParser.parse( "mites_ref_XP_002434188_1_bla_XP_12345" );
+            if ( id == null
+                 || ForesterUtil.isEmpty( id.getValue() )
+                 || ForesterUtil.isEmpty( id.getProvider() )
+                 || !id.getValue().equals( "XP_002434188" )
+                 || !id.getProvider().equals( "refseq" ) ) {
+                if ( id != null ) {
+                    System.out.println( "value   =" + id.getValue() );
+                    System.out.println( "provider=" + id.getProvider() );
+                }
+                return false;
+            }
+            // 
+            id = SequenceIdParser.parse( "XP_12345" );
+            if ( id != null ) {
+                return false;
+            }
+            
+            // lcl_91970_unknown_
+        }
+        catch ( final Exception e ) {
+            e.printStackTrace( System.out );
+            return false;
+        }
+        return true;
+    }
 }